This commit is contained in:
2025-05-09 21:45:15 +08:00
parent 28879b02fb
commit 830d9ae9d9
4 changed files with 274 additions and 92 deletions

View File

@@ -4,8 +4,8 @@ import (
"context"
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"regexp"
"strings"
"tyc-server/app/main/api/internal/svc"
"tyc-server/app/main/api/internal/types"
@@ -130,7 +130,10 @@ func (l *PaySuccessNotifyUserHandler) ProcessTask(ctx context.Context, t *asynq.
updateQueryErr = fmt.Errorf("修改查询状态失败: %v", updateQueryErr)
return l.handleError(ctx, updateQueryErr, order, query)
}
err = l.promotionOrderStats(ctx, order)
if err != nil {
logx.Errorf("处理推广订单统计失败订单ID: %d, 错误: %v", order.Id, err)
}
_, delErr := l.svcCtx.Redis.DelCtx(ctx, redisKey)
if delErr != nil {
logx.Errorf("删除Redis缓存失败但任务已成功处理订单ID: %d, 错误: %v", order.Id, delErr)
@@ -191,6 +194,21 @@ func (l *PaySuccessNotifyUserHandler) handleError(ctx context.Context, err error
return asynq.SkipRetry
}
// 处理推广订单统计
func (l *PaySuccessNotifyUserHandler) promotionOrderStats(ctx context.Context, order *model.Order) error {
promotionOrder, err := l.svcCtx.AdminPromotionOrderModel.FindOneByOrderId(ctx, order.Id)
if err != nil && !errors.Is(err, model.ErrNotFound) {
return fmt.Errorf("获取推广订单失败: %+v", err)
}
if promotionOrder != nil {
err = l.svcCtx.AdminPromotionLinkStatsService.UpdatePaymentStats(ctx, promotionOrder.LinkId, float64(order.Amount))
if err != nil {
return fmt.Errorf("更新推广链接支付统计失败: %+v", err)
}
}
return nil
}
// desensitizeParams 对敏感数据进行脱敏处理
func (l *PaySuccessNotifyUserHandler) desensitizeParams(data []byte) ([]byte, error) {
// 解析JSON数据到map
@@ -260,13 +278,6 @@ func isPhoneField(key string) bool {
strings.Contains(key, "手机") || strings.Contains(key, "电话")
}
// 判断是否包含敏感数据模式
func containsSensitivePattern(value string) bool {
// 检查是否包含连续的数字或字母模式
numPattern := regexp.MustCompile(`\d{6,}`)
return numPattern.MatchString(value)
}
// 姓名脱敏
func maskName(name string) string {
// 将字符串转换为rune切片以正确处理中文字符