You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"net/url" |
|
"strconv" |
|
"time" |
|
|
|
"go-common/app/admin/main/reply/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
"go-common/library/xstr" |
|
) |
|
|
|
const ( |
|
_msgReplyDel = "1_1_2" |
|
_msgReportAccept = "1_3_1" |
|
_msgTypeSystem = 4 |
|
|
|
// api |
|
_apiMsgSend = "http://message.bilibili.co/api/notify/send.user.notify.do" |
|
) |
|
|
|
// SendReplyDelMsg send delete reply message. |
|
func (d *Dao) SendReplyDelMsg(c context.Context, mid int64, title, msg string, now time.Time) (err error) { |
|
return d.sendMsg(c, _msgReplyDel, title, msg, _msgTypeSystem, 0, []int64{mid}, "", now.Unix()) |
|
} |
|
|
|
// SendReportAcceptMsg send report message. |
|
func (d *Dao) SendReportAcceptMsg(c context.Context, mid int64, title, msg string, now time.Time) (err error) { |
|
return d.sendMsg(c, _msgReportAccept, title, msg, _msgTypeSystem, 0, []int64{mid}, "", now.Unix()) |
|
} |
|
|
|
func (d *Dao) sendMsg(c context.Context, mc, title, msg string, typ int, pub int64, mids []int64, info string, ts int64) (err error) { |
|
params := url.Values{} |
|
params.Set("type", "json") |
|
params.Set("source", "1") |
|
params.Set("mc", mc) |
|
params.Set("title", title) |
|
params.Set("data_type", strconv.Itoa(typ)) |
|
params.Set("context", msg) |
|
params.Set("mid_list", xstr.JoinInts(mids)) |
|
params.Set("publisher", strconv.FormatInt(pub, 10)) |
|
params.Set("ext_info", info) |
|
var res struct { |
|
Code int `json:"code"` |
|
} |
|
if err = d.httpClient.Post(c, _apiMsgSend, "", params, &res); err != nil { |
|
log.Error("sendMsg error(%v) params(%v)", err, params) |
|
return |
|
} |
|
if res.Code != ecode.OK.Code() { |
|
err = model.ErrMsgSend |
|
log.Error("sendMsg failed(%v) error(%v)", _apiMsgSend+"?"+params.Encode(), res.Code) |
|
} |
|
log.Info("sendMsg(mc:%s title:%s msg:%s type:%d mids:%v error(%v)", mc, title, msg, typ, mids, err) |
|
return |
|
}
|
|
|