47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package dao
|
||
|
||
import (
|
||
"context"
|
||
"errors"
|
||
"net/url"
|
||
|
||
"go-common/library/log"
|
||
"go-common/library/xstr"
|
||
)
|
||
|
||
const (
|
||
_notifyDataType = "4" // 消息类型:1、回复我的2、@我3、收到的爱4、业务通知
|
||
_notifyURL = "/api/notify/send.user.notify.do"
|
||
_notifyMC = "1_8_2"
|
||
)
|
||
|
||
func (d *Dao) notifyURI() string {
|
||
return d.conf.Host.Message + _notifyURL
|
||
}
|
||
|
||
// SendNotify 发送站内信
|
||
func (d *Dao) SendNotify(c context.Context, title, content string, mids []int64) (err error) {
|
||
res := struct {
|
||
Code int `json:"code"`
|
||
Data struct {
|
||
TotalCount int
|
||
ErrorCount int
|
||
} `json:"data"`
|
||
}{}
|
||
params := url.Values{}
|
||
params.Set("mc", _notifyMC)
|
||
params.Set("title", title)
|
||
params.Set("data_type", _notifyDataType)
|
||
params.Set("context", content)
|
||
params.Set("mid_list", xstr.JoinInts(mids))
|
||
if err = d.httpClient.Post(c, d.notifyURI(), "", params, &res); err != nil {
|
||
log.Error("d.httpClient.Post(%s,%v,%d)", d.notifyURI(), params, err)
|
||
return
|
||
}
|
||
if res.Code != 0 {
|
||
err = errors.New("code != 0")
|
||
log.Error("d.httpClient.Post(%s,%v,%v,%d)", d.notifyURI(), params, err, res.Code)
|
||
}
|
||
return
|
||
}
|