预警47
This commit is contained in:
parent
b4e56b8303
commit
d5278f4594
|
|
@ -1,9 +1,5 @@
|
|||
# <p align="center">招行立减金券系统</p>
|
||||
|
||||
* * *
|
||||
|
||||
### 主要工作
|
||||
|
||||
+ 发券API
|
||||
|
||||
* * *
|
||||
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"github.com/redis/go-redis/v9"
|
||||
"strings"
|
||||
"voucher/internal/biz/bo"
|
||||
"voucher/internal/biz/vo"
|
||||
"voucher/internal/pkg/lock"
|
||||
|
|
@ -41,8 +42,8 @@ func (this *VoucherBiz) alarm(ctx context.Context, order *bo.OrderBo, errMsg str
|
|||
}
|
||||
|
||||
// 通知
|
||||
title := fmt.Sprintf("券领取异常")
|
||||
if err = this.DingMixRepo.SendMarkdownMessage(ctx, title, this.alarmText(ctx, order, errMsg)); err != nil {
|
||||
title := fmt.Sprintf("券发放异常")
|
||||
if err = this.DingMixRepo.SendMarkdownMessage(ctx, title, alarmText2(order, errMsg)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
@ -68,3 +69,26 @@ func (this *VoucherBiz) alarmText(_ context.Context, order *bo.OrderBo, errMsg s
|
|||
|
||||
return fmt.Sprintf(msg, remarks)
|
||||
}
|
||||
|
||||
func alarmText2(order *bo.OrderBo, errMsg string) string {
|
||||
var card strings.Builder
|
||||
|
||||
// 警示信息(简化版)
|
||||
card.WriteString("⚠️ **券发放异常** ⚠️\n\n")
|
||||
|
||||
// 订单信息(通过引用和代码块模拟小字体)
|
||||
card.WriteString("> **订单信息:**\n\n")
|
||||
card.WriteString(fmt.Sprintf("> AppID: `%s`\n\n", order.AppID))
|
||||
card.WriteString(fmt.Sprintf("> OpenID: `%s`\n\n", order.Account))
|
||||
card.WriteString(fmt.Sprintf("> 批次号: `%s`\n\n", order.BatchNo))
|
||||
card.WriteString(fmt.Sprintf("> 活动号: `%s`\n\n", order.ProductNo))
|
||||
card.WriteString(fmt.Sprintf("> 订单号: `%s`\n\n", order.OrderNo))
|
||||
card.WriteString(fmt.Sprintf("> 招行订单号: `%s`\n", order.OutBizNo))
|
||||
card.WriteString("\n")
|
||||
|
||||
// 报警原因(通过引用和代码块模拟小字体)
|
||||
card.WriteString("> **❗ 报警原因:**\n\n")
|
||||
card.WriteString(fmt.Sprintf("> `%s`\n", errMsg))
|
||||
|
||||
return card.String()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,9 +121,9 @@ func (c *TalkClient) SendMarkdownMessage(title, text string, atMobiles []string,
|
|||
if len(atMobiles) > 0 {
|
||||
var atStr string
|
||||
for _, mobile := range atMobiles {
|
||||
atStr += fmt.Sprintf("<font color='green'>@%s</font>", mobile)
|
||||
atStr += fmt.Sprintf("<font color='red'>@%s</font>", mobile)
|
||||
}
|
||||
text += fmt.Sprintf("\n<font color='red'>请尽快处理</font>%s", atStr)
|
||||
text += fmt.Sprintf("\n<font color='black'>请尽快处理</font>%s", atStr)
|
||||
}
|
||||
|
||||
message := map[string]interface{}{
|
||||
|
|
|
|||
|
|
@ -200,8 +200,8 @@ func TestOrderFailSend(t *testing.T) {
|
|||
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)
|
||||
markdownText := alarmText2(order, "测试,券发放异常通知,Post https://api.mch.weixin.qq.com/v3/marketing/favor/users/oW97fjtVl8wHarrDpptBvQQKKu7Q/coupons: EOF")
|
||||
t.Logf("\n%s", markdownText)
|
||||
|
||||
markdownTitle := "测试 Markdown 消息"
|
||||
atMobiles := []string{"18666173766"}
|
||||
|
|
@ -217,46 +217,25 @@ func TestOrderFailSend(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
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("⚠️ **券发放异常** ⚠️\n\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("> **订单信息:**\n\n")
|
||||
card.WriteString(fmt.Sprintf("> AppID: `%s`\n\n", order.AppID))
|
||||
card.WriteString(fmt.Sprintf("> OpenID: `%s`\n\n", order.Account))
|
||||
card.WriteString(fmt.Sprintf("> 批次号: `%s`\n\n", order.BatchNo))
|
||||
card.WriteString(fmt.Sprintf("> 活动号: `%s`\n\n", order.ProductNo))
|
||||
card.WriteString(fmt.Sprintf("> 订单号: `%s`\n\n", order.OrderNo))
|
||||
card.WriteString(fmt.Sprintf("> 招行订单号: `%s`\n", order.OutBizNo))
|
||||
card.WriteString("\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")
|
||||
// 报警原因(通过引用和代码块模拟小字体)
|
||||
card.WriteString("> **❗ 报警原因:**\n\n")
|
||||
card.WriteString(fmt.Sprintf("> `%s`\n", errMsg))
|
||||
|
||||
return card.String()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue