bilibili-backup/app/admin/main/reply/dao/message.go

59 lines
1.7 KiB
Go
Raw Permalink Normal View History

2019-04-22 10:59:20 +08:00
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
}