1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package msg
- import (
- "context"
- "fmt"
- "net/url"
- "go-common/app/admin/main/credit/conf"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/metadata"
- )
- const (
- _msgURL = "/api/notify/send.user.notify.do"
- )
- // Dao struct info of Dao.
- type Dao struct {
- // http
- client *bm.Client
- // conf
- c *conf.Config
- msgURL string
- }
- // New new a Dao and return.
- func New(c *conf.Config) (d *Dao) {
- d = &Dao{
- // conf
- c: c,
- // http client
- client: bm.NewClient(c.HTTPClient),
- }
- d.msgURL = c.Host.Msg + _msgURL
- return
- }
- // SendSysMsg send sys msg.
- func (dao *Dao) SendSysMsg(c context.Context, mid int64, title string, context string) (err error) {
- params := url.Values{}
- params.Set("mc", "2_1_13")
- params.Set("title", title)
- params.Set("data_type", "4")
- params.Set("context", context)
- params.Set("mid_list", fmt.Sprintf("%d", mid))
- var res struct {
- Code int `json:"code"`
- Data *struct {
- Status int8 `json:"status"`
- Remark string `json:"remark"`
- } `json:"data"`
- }
- for i := 0; i <= 5; i++ {
- if err = dao.client.Post(c, dao.msgURL, metadata.String(c, metadata.RemoteIP), params, &res); err != nil {
- log.Error("sendMsgURI(%s) error(%v)", dao.msgURL+"?"+params.Encode(), err)
- continue
- }
- if res.Code != 0 {
- log.Error("sendMsgURI(%s) error(%v)", dao.msgURL+"?"+params.Encode(), res.Code)
- err = ecode.Int(res.Code)
- continue
- }
- return
- }
- return
- }
|