预警45
This commit is contained in:
parent
018247a7d8
commit
e7a362519b
|
|
@ -1,8 +1,9 @@
|
||||||
# <p align="center">招行立减金券系统</p>
|
# <p align="center">招行立减金券系统</p>
|
||||||
|
|
||||||
* * *
|
* * *
|
||||||
|
|
||||||
### 主要工作
|
### 主要工作
|
||||||
|
|
||||||
+ 发券API
|
+ 发券API
|
||||||
* * *
|
|
||||||
|
|
||||||
|
|
||||||
|
* * *
|
||||||
|
|
@ -41,7 +41,8 @@ func (this *VoucherBiz) alarm(ctx context.Context, order *bo.OrderBo, errMsg str
|
||||||
}
|
}
|
||||||
|
|
||||||
// 通知
|
// 通知
|
||||||
if err = this.DingMixRepo.SendMarkdownMessage(ctx, "异常通知", this.alarmText(ctx, order, errMsg)); err != nil {
|
title := fmt.Sprintf("券领取异常")
|
||||||
|
if err = this.DingMixRepo.SendMarkdownMessage(ctx, title, this.alarmText(ctx, order, errMsg)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -61,7 +62,7 @@ func (this *VoucherBiz) alarmText(_ context.Context, order *bo.OrderBo, errMsg s
|
||||||
"<h1>立减金发放报警通知</h1>" +
|
"<h1>立减金发放报警通知</h1>" +
|
||||||
"</font> \n" +
|
"</font> \n" +
|
||||||
"<font color='black'>" +
|
"<font color='black'>" +
|
||||||
"不好了,订单发放发生异常了" +
|
"券领取发生异常了" +
|
||||||
"[<font color='red'>%s</font>]" +
|
"[<font color='red'>%s</font>]" +
|
||||||
"</font>"
|
"</font>"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,9 +121,9 @@ func (c *TalkClient) SendMarkdownMessage(title, text string, atMobiles []string,
|
||||||
if len(atMobiles) > 0 {
|
if len(atMobiles) > 0 {
|
||||||
var atStr string
|
var atStr string
|
||||||
for _, mobile := range atMobiles {
|
for _, mobile := range atMobiles {
|
||||||
atStr += fmt.Sprintf("<font color='#228B22'>@%s</font>", mobile)
|
atStr += fmt.Sprintf("<font color='green'>@%s</font>", mobile)
|
||||||
}
|
}
|
||||||
text += fmt.Sprintf("\n请尽快处理%s", atStr)
|
text += fmt.Sprintf("\n<font color='red'>请尽快处理</font>%s", atStr)
|
||||||
}
|
}
|
||||||
|
|
||||||
message := map[string]interface{}{
|
message := map[string]interface{}{
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
"voucher/internal/biz/bo"
|
||||||
"voucher/internal/biz/do"
|
"voucher/internal/biz/do"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -186,3 +187,76 @@ func formatAsCard(req do.WarningBudget) string {
|
||||||
|
|
||||||
return card.String()
|
return card.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOrderFailSend(t *testing.T) {
|
||||||
|
|
||||||
|
order := &bo.OrderBo{
|
||||||
|
OrderNo: "20231101001",
|
||||||
|
OutBizNo: "CMB_20231101001",
|
||||||
|
VoucherNo: "123456",
|
||||||
|
ProductNo: "CMB202020",
|
||||||
|
BatchNo: "202020",
|
||||||
|
Account: "oUx7j0xxdcdergdaegasfcg",
|
||||||
|
AppID: "app_123456gadabout",
|
||||||
|
MerchantNo: "185585225542",
|
||||||
|
}
|
||||||
|
markdownText := alarmText3(order, "测试,券发放异常通知,Post https://api.mch.weixin.qq.com/v3/marketing/favor/users/oW97fjtVl8wHarrDpptBvQQKKu7Q/coupons: EOF")
|
||||||
|
t.Log(markdownText)
|
||||||
|
|
||||||
|
markdownTitle := "测试 Markdown 消息"
|
||||||
|
atMobiles := []string{"18666173766"}
|
||||||
|
|
||||||
|
webhookURL := "https://oapi.dingtalk.com/robot/send?access_token=5f10c2213cbf8168985cb2d061ebb1a5f70bd1dd47ec7cef58fa6fe545d52588"
|
||||||
|
secret := "SEC77b63d70a9e22317144e712b4538ce1e0013db885c65f7f9bae283e8958b39eb"
|
||||||
|
|
||||||
|
client := NewDingTalkClient(webhookURL, secret)
|
||||||
|
if err := client.SendMarkdownMessage(markdownTitle, markdownText, atMobiles, false); err != nil {
|
||||||
|
fmt.Println("Markdown 消息发送失败:", err)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Markdown 消息发送成功")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func alarmText3(order *bo.OrderBo, errMsg string) string {
|
||||||
|
|
||||||
|
f := "\nAppID:%s\nOpenID:%s\n批次号:%s\n活动号:%s\n订单号:%s\n招行订单号:%s\n"
|
||||||
|
remarks := fmt.Sprintf(f, order.AppID, order.Account, order.BatchNo, order.ProductNo, order.OrderNo, order.OutBizNo)
|
||||||
|
|
||||||
|
msg := "# <font color='green'>" +
|
||||||
|
"<h1>立减金发放平台报警通知</h1>" +
|
||||||
|
"<font color='black'>%s</font>" +
|
||||||
|
"</font> \n" +
|
||||||
|
"<font color='red'>%s</font>"
|
||||||
|
|
||||||
|
return fmt.Sprintf(msg, remarks, errMsg)
|
||||||
|
}
|
||||||
|
|
||||||
|
func alarmText2(order *bo.OrderBo, errMsg string) string {
|
||||||
|
var card strings.Builder
|
||||||
|
|
||||||
|
// 警示栏(带图标和醒目颜色)
|
||||||
|
card.WriteString("<div style=\"font-size: 10px; background-color: #f8f8f8; padding: 5px; border-radius: 5px;\">\n")
|
||||||
|
card.WriteString("<h4 style=\"color: #FF8C00;\">⚠️ <strong>券发放异常</strong> ⚠️</h4>\n")
|
||||||
|
|
||||||
|
// 订单信息区块(压缩展示、增加换行、调小字体)
|
||||||
|
card.WriteString("<div style=\"font-size: 8px; padding: 2px; background-color: #f0f0f0; border-radius: 5px;\">\n")
|
||||||
|
card.WriteString("<strong>订单信息:</strong><br>\n")
|
||||||
|
card.WriteString(fmt.Sprintf("AppID: <code>%s</code><br>\n", order.AppID))
|
||||||
|
card.WriteString(fmt.Sprintf("OpenID: <code>%s</code><br>\n", order.Account))
|
||||||
|
card.WriteString(fmt.Sprintf("批次: <code>%s</code><br>\n", order.BatchNo))
|
||||||
|
card.WriteString(fmt.Sprintf("活动号: <code>%s</code><br>\n", order.ProductNo))
|
||||||
|
card.WriteString(fmt.Sprintf("订单号: <code>%s</code><br>\n", order.OrderNo))
|
||||||
|
card.WriteString(fmt.Sprintf("招行订单号: <code>%s</code><br>\n", order.OutBizNo))
|
||||||
|
card.WriteString("</div>\n")
|
||||||
|
|
||||||
|
// 报警原因区块(红色背景、字体可调、明确换行)
|
||||||
|
card.WriteString("<div style=\"font-size: 8px; padding: 2px; background-color: #ffcccc; border-radius: 5px; margin-top: 1px;\">\n")
|
||||||
|
card.WriteString("<strong>❗ 报警原因:</strong><br>\n")
|
||||||
|
card.WriteString(fmt.Sprintf("<code>%s</code>\n", errMsg))
|
||||||
|
card.WriteString("</div>\n")
|
||||||
|
|
||||||
|
// 结束 div 标签
|
||||||
|
card.WriteString("</div>\n")
|
||||||
|
|
||||||
|
return card.String()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue