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.
45 lines
1.5 KiB
45 lines
1.5 KiB
package newcomer |
|
|
|
import ( |
|
"context" |
|
"errors" |
|
"net/url" |
|
|
|
"go-common/library/log" |
|
"go-common/library/xstr" |
|
) |
|
|
|
// SendNotify send msg notify user |
|
func (d *Dao) SendNotify(c context.Context, mids []int64, mc, title, context string) (err error) { |
|
var ( |
|
params = url.Values{} |
|
res struct { |
|
Code int `json:"code"` |
|
Msg string `json:"msg"` |
|
Data *struct { |
|
TotalCount int `json:"total_count"` |
|
ErrorCount int `json:"error_count"` |
|
ErrorMidList []int64 `json:"error_mid_list"` |
|
} `json:"data"` |
|
} |
|
) |
|
params.Set("mc", mc) //消息码,用于识别消息类别 |
|
params.Set("data_type", "4") //消息类型:1、回复我的 2、@我 3、收到的爱 4、业务通知 5、系统公告 |
|
params.Set("title", title) //消息标题 |
|
params.Set("context", context) //消息实体内容 |
|
params.Set("mid_list", xstr.JoinInts(mids)) //用于接收该消息的用户mid列表,不超过1000个(半角逗号分割) |
|
|
|
log.Info("SendNotify params(%+v)|msgURI(%s)", params.Encode(), d.msgURI) |
|
if err = d.httpClient.Post(c, d.msgURI, "", params, &res); err != nil { |
|
log.Error("d.httpClient.Post(%s,%v,%d)", d.msgURI, params, err) |
|
return |
|
} |
|
if res.Code != 0 { |
|
err = errors.New("code != 0") |
|
log.Error("d.httpClient.Post(%s,%v,%v,%d)", d.msgURI, params, err, res.Code) |
|
} |
|
if res.Data != nil { |
|
log.Info("SendNotify log total_count(%d) error_count(%d) error_mid_list(%v)", res.Data.TotalCount, res.Data.ErrorCount, res.Data.ErrorMidList) |
|
} |
|
return |
|
}
|
|
|