From bacf62d5a9bde3ebf7deff284fc1718478b5f06b Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Tue, 10 Dec 2024 14:08:23 +0800 Subject: [PATCH] send ding msg --- api/adapter/dingtalkapi/biz_notify.go | 27 ++++++++++++++++++++++ api/adapter/dingtalkapi/biz_notify_test.go | 13 +++++++++++ app/mix/service/logic/vas.go | 13 +++++++++++ 3 files changed, 53 insertions(+) create mode 100644 api/adapter/dingtalkapi/biz_notify.go create mode 100644 api/adapter/dingtalkapi/biz_notify_test.go diff --git a/api/adapter/dingtalkapi/biz_notify.go b/api/adapter/dingtalkapi/biz_notify.go new file mode 100644 index 00000000..32405dfb --- /dev/null +++ b/api/adapter/dingtalkapi/biz_notify.go @@ -0,0 +1,27 @@ +package dingtalkapi + +import ( + "bytes" + "fmt" + "net/http" + "service/library/logger" +) + +func SendBizDingtalk(content string) { + url := "https://oapi.dingtalk.com/robot/send?access_token=df06fe143b47b0068b3e7fea924f896e2a1123679ab82639faedcab7bef1d6e2" + msg := fmt.Sprintf("{\"msgtype\":\"text\",\"text\":{\"content\":\"%s\"}}", content) + req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(msg))) + if err != nil { + logger.Error("http new request failed:%s - %s", msg, err.Error()) + return + } + req.Header.Set("Content-Type", "application/json") + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + logger.Error("accept letter send failed:%#v - %s", req, err.Error()) + return + } + logger.Info("send dingtalk biz msg: %v", msg) + _ = resp.Body.Close() +} diff --git a/api/adapter/dingtalkapi/biz_notify_test.go b/api/adapter/dingtalkapi/biz_notify_test.go new file mode 100644 index 00000000..c80b412b --- /dev/null +++ b/api/adapter/dingtalkapi/biz_notify_test.go @@ -0,0 +1,13 @@ +package dingtalkapi + +import ( + "fmt" + "testing" + "time" +) + +func TestSendBizDingtalk(t *testing.T) { + c := fmt.Sprintf("【主播TX】-%s\n用户id: %d\n用户mid: %d\n用户昵称: %s\nTX Amount: %.2f\n商户: %s\n结果: 成功", + time.Now().Format("2006-01-02 15:04:05"), 11111, 222, "测试", float64(5059859)/100.0, "ssss") + SendBizDingtalk(c) +} diff --git a/app/mix/service/logic/vas.go b/app/mix/service/logic/vas.go index f6de5663..d4ed0786 100644 --- a/app/mix/service/logic/vas.go +++ b/app/mix/service/logic/vas.go @@ -13,6 +13,7 @@ import ( "fmt" "io/ioutil" "net/http" + "service/api/adapter/dingtalkapi" "service/api/base" "service/api/errs" "service/api/message/response" @@ -1894,6 +1895,9 @@ func (v *Vas) WithdrawApply(ctx *gin.Context, req *vasproto.WithdrawApplyReq) (t } } + acntMap, _ := v.account.GetAccountMapByMids(ctx, []int64{mid}) + acnt := acntMap[mid] + // 检查余额 wallet, _ := v.CheckWalletExist(ctx, nil, mid) if wallet == nil { @@ -1968,6 +1972,15 @@ func (v *Vas) WithdrawApply(ctx *gin.Context, req *vasproto.WithdrawApplyReq) (t logger.Error("AddWithdrawHis fail, wHis: %v, errHis: %v", util.ToJson(wHis), errHis) } + // 发送钉钉消息 + dingtalkMsgContent := fmt.Sprintf("主播TX -- %s\n\n用户id: %d\n用户mid: %d\n用户昵称: %s\nTX Amount: %.2f\n商户: %s\n结果: 成功", + time.Now().Format("2006-01-02 15:04:05"), acnt.GetUserId(), mid, acnt.GetName(), float64(money)/100.0, appid) + if len(errMsgSt) > 0 { + dingtalkMsgContent = fmt.Sprintf("主播TX -- %s\n\n用户id: %d\n用户mid: %d\n用户昵称: %s\nTX Amount: %.2f\n商户: %s\n结果: 失败\n详情:%s", + time.Now().Format("2006-01-02 15:04:05"), acnt.GetUserId(), mid, acnt.GetName(), float64(money)/100.0, appid, util.ToJson(errMsgSt)) + } + dingtalkapi.SendBizDingtalk(dingtalkMsgContent) + errTx := v.store.DealTxCR(tx, err) if errTx != nil { logger.Error("DealTxCR fail, err: %v", errTx)