fix(pool): 调整日志字段名避免混淆

- 将飞鱼查询返回日志中的respData字段名改为respRawData
- 保留解析后的respData字段,防止日志信息混淆
- 改进日志可读性,有助于后续问题排查

fix(supplier): 优化飞鱼查询返回日志及错误日志记录

- 在飞鱼查询日志中添加频繁操作标志和详细响应数据
- 修改日志记录方式,避免重复输出respData
- 在任务提交错误时添加错误日志记录,利于问题排查
- 保持原有错误处理逻辑不变,确保重新下单流程正常运行

fix(pool): 修复飞鱼下单任务错误处理和日志打印问题

- 在飞鱼下单单元测试中记录任务处理的错误日志
- 修改订单提交失败错误判断关键字,从“重新下单提交卡密”调整为“重新下单”
- 保证错误判断逻辑更准确,避免误判导致异常处理流程异常
- 优化日志信息完整性,便于定位任务处理中的异常情况

fix(utils): 修复代理池中的代理选择与过期时间问题

- 修正排除通道代理使用计数的判断条件,由小于等于改为大于
- 调整代理过期时间,从55秒缩短到50秒
- 删除不必要的日志打印,减少无用信息输出

fix(card_sender): 修复获取代理时使用错误参数的问题

- 将获取代理时传入的参数从 LocalOrderID 改为生成的新 ID
- 修正代理获取调用以避免错误传递参数导致的问题
- 添加代理获取日志,便于调试和追踪请求过程
This commit is contained in:
danial
2025-12-10 20:47:01 +08:00
parent 6e26f1acb5
commit 2409c85a22
4 changed files with 9 additions and 7 deletions

View File

@@ -109,7 +109,7 @@ func (s *SendCardTaskTypeFlyFishV2) HandleSendCardTask(ctx context.Context, orde
}).
SetRetryCount(1).
SetTimeout(time.Second * 30).OnBeforeRequest(func(client *resty.Client, request *resty.Request) error {
proxy, err2 := utils.GetProxy(ctx, task.LocalOrderID, "SendCardTaskTypeFlyFishV2_cardTask")
proxy, err2 := utils.GetProxy(ctx, utils.GenerateId(), "SendCardTaskTypeFlyFishV2_cardTask")
otelTrace.Logger.WithContext(ctx).Info("获取代理", zap.String("proxy", proxy))
if err2 != nil {
otelTrace.Logger.WithContext(ctx).Error("获取代理失败", zap.Error(err2))
@@ -163,7 +163,8 @@ func (s *SendCardTaskTypeFlyFishV2) HandleSendCardTask(ctx context.Context, orde
Message string `json:"message"`
}{}
err = json.Unmarshal(resp.Body(), &respData)
otelTrace.Logger.WithContext(ctx).Info("飞鱼查询返回", zap.Any("respData", resp.String()), zap.Any("formData", formData))
otelTrace.Logger.WithContext(ctx).Info("飞鱼查询返回", zap.Any("respRawData", resp.String()), zap.Any("formData", formData),
zap.Bool("success", strings.Contains(respData.Message, "频繁操作")), zap.Any("respData", respData))
if strings.Contains(respData.Message, "频繁操作") {
return errors.New("重新下单提交卡密")
}

View File

@@ -75,7 +75,7 @@ func TestSendCardTaskTypeFlyFishV2_HandleSendCardTask(t *testing.T) {
otelTrace.Logger.WithContext(t.Context()).Info("飞鱼下单返回",
zap.Any("respData", respData),
)
(&SendCardTaskTypeFlyFishV2{}).HandleSendCardTask(t.Context(), OrderPoolItem{
err := (&SendCardTaskTypeFlyFishV2{}).HandleSendCardTask(t.Context(), OrderPoolItem{
PayURL: respData.Data.Url,
OrderID: utils.GenerateId(),
CreateTime: time.Now(),
@@ -86,4 +86,5 @@ func TestSendCardTaskTypeFlyFishV2_HandleSendCardTask(t *testing.T) {
Data: "23611016" + fmt.Sprintf("%08d", random.RandInt(10000000, 99999999)),
},
})
t.Log(err)
}

View File

@@ -572,8 +572,9 @@ func (s *OrderPoolServiceImpl) SubmitOrder(ctx context.Context, task card_sender
return fmt.Errorf("绑定订单ID和卡片信息ID失败: %v", err)
}
err = task.SendCardTaskType.GetSendCardTaskType().HandleSendCardTask(ctx, orderItem, task)
otelTrace.Logger.WithContext(ctx).Error("提交返回错误", zap.Error(err))
if err != nil {
if strings.Contains(err.Error(), "重新下单提交卡密") {
if strings.Contains(err.Error(), "重新下单") {
continue
}
return fmt.Errorf("提交订单失败: %v", err)

View File

@@ -201,7 +201,7 @@ func (p *OrderBasedProxyStrategy) getUnderLimitedProxy(ctx context.Context, perI
//需要找到指定通道所有的代理
counts := map[*ProxyInfo]int{}
for channel, info := range p.proxies {
if strings.Contains(channel, excludeChannels) && info.usageCount <= perIP {
if strings.Contains(channel, excludeChannels) && info.usageCount > perIP {
counts[info]++
}
}
@@ -280,7 +280,7 @@ func (p *OrderBasedProxyStrategy) getNewProxy(ctx context.Context, proxyRequest
p.mu.Lock()
proxyInfo := &ProxyInfo{
proxy: proxy,
expireAt: time.Now().Add(55 * time.Second),
expireAt: time.Now().Add(50 * time.Second),
authKey: p.authKey,
authPwd: p.authPwd,
channel: proxyRequest.Channel,
@@ -460,7 +460,6 @@ var DMProxyStrategyInstance *DMProxyStrategy
func StartProxyPool() {
proxyConfig := config.GetProxyInfo()
otelTrace.Logger.WithContext(context.Background()).Info("proxyConfig", zap.Any("proxyConfig", proxyConfig))
//// 初始化订单代理策略
OrderBasedProxyStrategyInstance = NewOrderBasedProxyStrategy(