1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package bnj
- import (
- "context"
- "encoding/json"
- "net/http"
- "strings"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- const (
- _wechatAction = "NotifyCreate"
- _wechatType = "wechat_message"
- _wechatURL = "http://merak.bilibili.co"
- )
- // SendWechat send wechat work message.
- func (d *Dao) SendWechat(c context.Context, title, msg, user string) (err error) {
- var msgBytes []byte
- params := map[string]interface{}{
- "Action": _wechatAction,
- "SendType": _wechatType,
- "PublicKey": d.c.Bnj2019.WxKey,
- "UserName": user,
- "Content": map[string]string{
- "subject": title,
- "body": title + "\n" + msg,
- },
- "TreeId": "",
- "Signature": "1",
- "Severity": "P5",
- }
- if msgBytes, err = json.Marshal(params); err != nil {
- return
- }
- var req *http.Request
- if req, err = http.NewRequest(http.MethodPost, _wechatURL, strings.NewReader(string(msgBytes))); err != nil {
- return
- }
- req.Header.Add("content-type", "application/json; charset=UTF-8")
- res := &struct {
- RetCode int `json:"RetCode"`
- }{}
- if err = d.client.Do(c, req, &res); err != nil {
- log.Error("SendWechat d.client.Do(title:%s,msg:%s,user:%s) error(%v)", title, msg, user, err)
- return
- }
- if res.RetCode != 0 {
- err = ecode.Int(res.RetCode)
- log.Error("SendWechat d.client.Do(title:%s,msg:%s,user:%s) error(%v)", title, msg, user, err)
- return
- }
- return
- }
|