Commit Graph

41 Commits

Author SHA1 Message Date
danial
863dc33ba3 feat(orderpool): 优化订单提交流程及代理获取逻辑
- 为 SubmitOrder 添加重试机制,增强订单创建、绑定和处理的鲁棒性
- 提供订单创建失败和处理失败时的资源清理方法,避免资源泄漏
- 统一订单处理各阶段的日志记录,增加失败场景的上下文信息
- 调整 Nuclear 任务中随机ID生成逻辑,使用 Pipeline 批量写 Redis 降低压力
- 发送请求时增加访问异常处理,避免无代理情况下报错
- 为各 channel 接口添加获取代理失败的容错处理,防止服务中断
- proxy_pool 中代理可用性检测新增独立超时,提升检测稳定性
- 优化代理过期清理逻辑,缩短锁持有时间,避免性能瓶颈
- GetProxy 增加超时控制,异步获取防止阻塞调用线程
- scan_controller 和 service 添加 gopool panic 处理,防止任务异常崩溃
- Nuclear.go 中添加锁机制保证随机ID生成线程安全
- 减少 submitPool 线程池数量,优化资源使用
- 统一并增强日志和追踪,导入 runtime/debug 用于堆栈信息打印
2025-12-14 21:24:02 +08:00
danial
2409c85a22 fix(pool): 调整日志字段名避免混淆
- 将飞鱼查询返回日志中的respData字段名改为respRawData
- 保留解析后的respData字段,防止日志信息混淆
- 改进日志可读性,有助于后续问题排查

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

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

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

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

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

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

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

- 将获取代理时传入的参数从 LocalOrderID 改为生成的新 ID
- 修正代理获取调用以避免错误传递参数导致的问题
- 添加代理获取日志,便于调试和追踪请求过程
2025-12-10 21:52:44 +08:00
danial
4fac3e2336 refactor(proxy): 优化基于订单号的代理池管理
- 将代理缓存结构由map[string][]*ProxyInfo改为map[string]*ProxyInfo,简化数据结构
- 统一缓存键格式为channel:orderID,避免混淆和错误
- 优化跨通道代理复用逻辑,排除指定通道代理并筛选使用次数合适的代理
- 实现清理不可用代理功能,及时从缓存和代理列表中剔除失效代理
- 优化代理使用记录,更新最后使用时间和使用次数
- 精简清理协程逻辑,删除过期代理,避免内存泄漏
- 修正测试用例,增加更多通道模拟,验证代理获取与使用状况
2025-12-09 02:38:38 +08:00
danial
08f5488ba9 refactor(proxy): 使用resty简化代理获取和检测逻辑
- 将 DefaultProxyStrategy 和 OrderBasedProxyStrategy 的 HTTP 请求客户端改为 resty
- 替换 http.Client 请求代码,使用 resty 支持的链式调用和上下文传递
- 调整代理可用性检测,使用 resty 并检测响应成功状态
- 在获取代理失败时添加错误日志记录,增加异常可追踪性
- 缩短请求超时时间,优化网络请求性能
- 删除多余的手动读写响应体代码,简化逻辑实现
2025-12-09 01:22:49 +08:00
danial
d5d681ea52 fix(proxy): 修复代理地址换行符问题并优化代理池初始化
- 将代理URL中的换行符由\r\n修改为\n,避免解析错误
- 代理相关配置文件及Dockerfile中统一调整换行符格式
- flyfishv2卡片发送模块设置正确的User-Agent头部
- 使用strutil.SplitAndTrim代替strings.Split优化代理IP列表处理
- 修正全局代理池单例初始化方式,确保线程安全
- 调整main.go中包引入顺序,提升代码规范性
2025-12-07 23:47:16 +08:00
danial
a48dc9d351 fix(utils):修复代理池锁释放问题并增加测试通道
- 修正 defer 中的 mutex 锁调用错误,从 Lock 改为 Unlock
- 在测试文件中引入 time 包以支持延迟操作
- 扩展测试用例中的通道列表,新增 channel_six
- 添加 time.Sleep 调用以模拟实际使用场景中的延时
2025-10-28 23:47:30 +08:00
danial
7c2b8a5b0c fix(utils):修复代理池中的空指针异常
- 在遍历代理时跳过空代理对象
- 修正删除无效代理时的并发访问问题-优化代理过滤逻辑避免潜在崩溃
2025-10-28 23:25:58 +08:00
danial
00a53d8ab2 fix(proxy):修复代理池清理不可用代理时的并发问题
- 使用匿名函数和 defer 确保锁正确释放
- 避免在清理代理时出现并发访问冲突-保持代理池数据一致性
2025-10-28 23:10:08 +08:00
danial
18d2850d6e fix(utils):修复代理池删除空指针问题- 在删除代理信息时增加对空指针的判断
- 避免因空指针导致的程序异常- 提高代理池的健壮性
2025-10-28 13:50:46 +08:00
danial
2b11eb4818 feat(tracing): 增强订单处理链路追踪能力
- 在 MyselfCardImpl.PayNotify 方法中添加 OpenTelemetry 追踪- 统一 NinjaCardImpl.Scan 中的属性键名为小驼峰格式
-为 OrderController.OrderSchedule 接口增加链路追踪上下文
- 将订单调度逻辑放入 goroutine 异步执行以提升响应速度-优化 SolvePayFail 日志记录,移除冗余 bankOrderId 字段- 完善 proxy_pool 中代理信息删除时的空指针检查
- 提前生成订单记录并调整上游渠道获取逻辑顺序
-修正 SDPAY 卡密发送地址判断条件
- 使用 convertor.ToString 替代 fmt.Sprintf 序列化任务对象
- 简化 settle_service 中结算流程的日志输出逻辑
2025-10-28 13:42:54 +08:00
danial
9b5a53cfb2 refactor(proxy):优化代理池策略以支持多代理管理
- 修改代理存储结构,从单个代理对象改为代理对象切片
- 更新代理获取逻辑,支持遍历多个代理并检查可用性
-重构跨通道代理查找逻辑,引入随机选择和去重机制
- 调整代理清理逻辑,适配新的代理存储结构
- 更新测试用例,使用新的代理池管理方式
-修复 HeepayImpl 中的追踪 span 名称错误问题
2025-10-26 01:07:59 +08:00
danial
9b0056248b fix(supplier):修正卡类型查询和发送任务中的多个问题
-修复卡类型查询中字符串转换错误
- 在 eggplant 卡发送任务中添加远程订单 ID 字段
- 更新 eggplant 测试用例中的支付类型和签名密钥
- 调整代理池中订单 IP 使用次数的判断逻辑
- 增加 sdpay 请求重试等待时间以提高稳定性
- 更新 sdpay 测试用例,增加 HandleSendCardTask 调用逻辑
- 修改 wtr 支付提交地址以适配新的网关
2025-10-19 23:34:57 +08:00
danial
22f9ec1fc6 fix(proxy): 调整代理配置和错误提示
- 修改代理URL中的请求数量参数从10为2
- 更新茄子卡支付通知的追踪名称-修正忍者支付成功处理时的请求参数记录
-优化卡密错误时的提示信息,增加联系店铺指引
- 调整代理策略结构体字段顺序,提升可读性
2025-09-27 22:54:13 +08:00
danial
65af6134d8 fix(supplier):优化OCR验证码识别与支付异常处理
- 添加OCR重新提交事件追踪
- 处理页面访问异常并触发刷新重试
-修复支付失败时的错误码判断逻辑
- 优化代理IP列表处理,去除空格干扰
- 增强验证码识别失败时的重试机制
2025-09-23 19:09:29 +08:00
danial
af306da250 ```
feat(supplier): 优化第三方供应商接口调用与代理池逻辑- 移除 unused 依赖 `fakeuseragent`、`golang/freetype` 和 `golang.org/x/image`
- 新增 `useragent` 工具包引入,用于生成请求头
-修复 `nuclear.go` 中响应数据解析逻辑,增加对返回码的判断及错误信息提取
- 增加 JSON 标签以正确解析嵌套结构体 `Payload`-修复 `GetProxy` 错误日志中使用错误变量的问题
- 优化代理池缓存键生成逻辑并移除无用代码注释
- 完善测试代码中 JSON 解析错误处理和结果校验逻辑```
2025-09-22 23:13:52 +08:00
danial
a373715936 ```
refactor(config): 移除 SELF_API、SELF_MERCHANT 和 SELF_HELP 常量定义

从 internal/config/config.go 中删除了已弃用的 SELF_API、SELF_MERCHANT 和 SELF_HELP 常量,这些常量不再使用。

feat(trace): 统一并修正 OpenTelemetry Span 属性命名风格

将多个文件中 Span 属性名由驼峰式(如 BankOrderId)改为下划线小写格式(如 bankOrderId),以统一追踪属性命名风格。
同时修正部分 Span 名称为更准确的方法路径,如 "MagicFish.Scan"。refactor(http): 移除自定义 HTTP 工具类

删除 internal/utils/http.go 文件中自定义的 HTTP 请求封装类 Request 和 Response,后续将使用标准库或更成熟的第三方库替代。

refactor(mq): 移除代付查询消息队列配置项

从 internal/config/mq_config.go 中移除了 MqPayForQuery 配置项,该队列已不再使用。

refactor(notify): 简化自有卡支付回调逻辑与返回值调整 internal/service/supplier/third_party/myself.go 中的 PayNotify 方法:
- 移除调试日志输出;- 统一错误响应为 "Fail";
- 成功时返回 "SUCCESS" 并移除冗余 StopRun 调用。

fix(log): 修正 SolvePayFail 日志输出格式

修复 internal/service/pay_solve.go 中 otelTrace.Logger.Error 的参数格式问题,移除多余的冒号。

refactor(proxy): 调整代理获取策略和重试机制

更新 internal/utils/proxy_pool.go 中代理获取逻辑:
- 增加代理获取数量至 20;- 修改 tryGetProxy 返回类型为字符串数组;
- 优化代理检查锁机制;- 增加重试次数到3 次;
- 调整代理过期时间为 55 秒;
- 增强日志记录与错误处理。

refactor(order): 调整订单提交流程顺序在 internal/service/supplier/third_party/pool/service.go 中调整 SubmitOrder 方法逻辑顺序,
先绑定订单 ID 和卡片信息 ID,再执行 HandleSendCardTask,确保数据一致性。refactor(trace):修正 SesameImpl 和 WowsPayImpl 的 Span 名称修正 SesameImpl.Scan 和 WowsPayImpl.Scan 方法中的 Span 名称为完整方法路径,
如 "SesameImpl.Scan" 和 "FatSixImpl.Scan",提升追踪可读性。```
2025-09-20 00:44:43 +08:00
danial
227c698e6b refactor(internal): 优化多个内部服务的配置和日志
- 移除了 card_type.go 中的错误日志
- 更新了 fat_six.go 中的签名逻辑- 修改了 proxy_pool.go 中的重试日志和超时设置
- 调整了 resender.go 中的请求超时设置
- 在 scan_controller.go 中添加了链路追踪上下文
2025-09-02 22:02:05 +08:00
danial
a447d99697 refactor(supplier): 优化了多个第三方支付处理逻辑并调整了代理策略
- 调整了 fat_six、luban 和 magic_fish 第三方支付处理逻辑
- 优化了代理池策略,缩短了请求超时时间
- 在 fat_six 和 proxy_pool 中添加了 OpenTelemetry跟踪事件
2025-08-30 21:11:05 +08:00
danial
6956628562 优化盛天支付卡片发送逻辑,增加日志记录,调整代理过期时间为 50 秒,以提高稳定性和性能。 2025-08-16 00:18:33 +08:00
danial
c96439983b fix(proxy): 更新代理检查逻辑以支持 SOCKS5 协议
- 修改了代理可用性检查函数,将代理协议从 HTTP 更新为 SOCKS5,以确保兼容性和更广泛的使用场景。
2025-08-15 21:58:19 +08:00
danial
f47596358e fix(proxy): 更新代理获取逻辑以支持 SOCKS5 协议
- 修改了获取代理的函数,将返回的代理协议从 HTTP 更新为 SOCKS5,以支持更广泛的代理使用场景。
2025-08-15 21:58:19 +08:00
danial
3d946c1f89 fix(supplier): 更新代理获取逻辑以支持通道参数
- 在多个文件中修改了获取代理的函数,增加了通道参数以支持不同的发卡任务类型
- 优化了代理获取的错误处理逻辑,确保在获取代理失败时记录详细错误信息
- 更新了相关的测试用例以验证新的代理获取逻辑
2025-08-15 21:58:18 +08:00
danial
18af2a1af1 feat(proxy): 更新代理获取策略并优化代理池
- 修改 getNewProxy 方法返回多个代理 IP
- 实现代理 IP 随机选择
- 优化代理有效性检查和存储逻辑
- 调整预拉取代理的处理方式
- 更新 DMProxyStrategy 实例配置,增加每次获取的代理数量
2025-07-24 23:50:30 +08:00
danial
65b3ef5d6b feat(proxy): 更新代理获取逻辑- 新增 GetProxy 函数,根据订单 ID 和代理配置动态选择代理策略
- 修改 Dockerfile,添加 proxyName 环境变量
- 更新多个文件中的代理获取逻辑,使用新的 GetProxy 函数
- 优化 proxy_pool 中的代理策略初始化
2025-07-24 23:27:18 +08:00
danial
983b92907d feat(tasks): 添加任务管理功能和相关方法
- 在 main.go 中启动缓存、代理池和任务管理
- 重构 Redis 客户端的初始化方法为 Start
- 在 merchant_info.go 中添加通过名称获取商户信息的方法
- 在 merchant_deploy_info.go 中添加根据 roadUid 获取商户部署信息的方法
- 在 order_info.go 中添加获取随机订单的方法
- 新增任务相关功能,包括 FakeOrderTask 和任务调度
- 在 utils 中重构代理池的初始化方法为 StartProxyPool
- 添加 order_test.go 测试文件
2025-06-23 19:24:05 +08:00
danial
aa2b92e046 feat(utils): 切换代理策略并优化网络请求
- 移除订单代理策略,使用大漠代理策略替代
- 优化多个文件中的网络请求逻辑,统一代理设置方式
- 改进错误处理和日志记录
2025-06-13 16:56:00 +08:00
danial
fbbf483f28 更新依赖项并优化代码结构
- 在 go.mod 中新增了 prometheus/client_golang 依赖。
- 优化了 RedisClient 相关方法的调用,确保代码一致性和可读性。
- 移除了冗余的代码和注释,提升了整体代码整洁性。
2025-06-13 11:43:59 +08:00
danial
64ccb74913 优化鲁班支付的 SendCard 方法,新增请求参数的代理设置逻辑,调整代理过期时间和请求超时时间,提升代码的健壮性和可维护性。同时,移除冗余的注释代码,确保代码简洁性。 2025-05-25 18:50:50 +08:00
danial
8f4607a9a1 新增代理池测试用例,验证基于订单号的代理获取逻辑。同时优化代理获取方法,增加内部代理获取逻辑,提升代码的可读性和可维护性。 2025-05-24 20:02:17 +08:00
danial
53f167fb52 优化闪付供应商的错误处理逻辑,调整代理获取失败时的返回值为 nil,以提升代码的健壮性。同时,修改代理获取的重试次数,确保逻辑更加简洁和高效。 2025-05-24 18:33:57 +08:00
danial
a8027dc61c 优化闪付供应商的HTTP请求逻辑,移除不必要的依赖,并调整代理获取时的日志记录,提升调试能力和代码整洁性。 2025-05-24 18:21:04 +08:00
danial
6393837d84 优化闪付供应商的代理获取逻辑,增加调试信息打印,并调整代理获取失败时的错误处理逻辑。同时重构HTTP客户端创建,确保代码整洁性和可维护性。 2025-05-24 18:13:49 +08:00
danial
1fd2cf54d6 优化代理池逻辑,调整代理过期时间为1分钟,并修改重试机制的等待时间为10秒。同时重构HTTP客户端创建逻辑,确保代码整洁性,并增加获取代理IP时的日志记录,提升调试能力。 2025-05-24 17:54:15 +08:00
danial
0d4e9d4db4 优化代理获取逻辑,增加获取失败时的重试日志记录,提升错误处理的可追踪性和调试能力。 2025-05-24 17:29:25 +08:00
danial
51d75bc695 更新 OrderInfo 结构体中的时间字段为指针类型,并在相关服务中调整时间赋值逻辑,以支持 nil 值处理。优化支付成功、订单冻结和解冻等逻辑中的时间更新,确保代码一致性和可维护性。 2025-05-24 15:40:35 +08:00
danial
aacc456024 更新 Dockerfile 使用 Go 1.24,优化构建命令,添加代理配置环境变量;重构配置文件,移除不必要的函数,新增代理信息结构体;在多个供应商实现中更新代理获取逻辑,确保使用订单号获取代理的灵活性和准确性。 2025-05-23 20:22:49 +08:00
danial
2aa2a0bbda fix(internal/service/supplier/third_party): 更新代理获取逻辑以支持订单号
- 在 eggplant.go 和 favorable_clouds.go 中,修改了 SendData 方法,新增了 orderId 参数,以便于在获取代理时使用订单号。
- 更新了代理获取逻辑,确保在请求中使用基于订单号的代理策略,提升了请求的稳定性和准确性。
- 在 proxy_pool.go 中,新增了基于订单号的代理策略实现,支持更灵活的代理管理和清理未使用的代理。
2025-05-02 14:29:42 +08:00
danial
25af37b0d4 fix(internal/utils/proxy_pool): 注释掉获取缓存代理的逻辑
- 在 GetProxy 方法中注释掉了使用缓存代理的逻辑,以简化代码并避免潜在的错误。此更改将强制每次都获取新代理,提升了代理获取的可靠性。
2025-05-02 14:14:33 +08:00
danial
51f738e8a1 fix(internal/utils/proxy_pool): 修正代理池URL中的换行符
- 修改了代理池实例中的URL,将换行符从`\r\n`更改为`%0D%0A`,确保URL格式正确,避免潜在的请求错误。
2025-05-02 13:57:44 +08:00
danial
094e7b5e59 fix(internal/utils/proxy_pool): 增强日志记录以便于调试
- 在获取缓存代理和新代理的逻辑中,新增了日志记录,分别记录使用的缓存代理和获取的新代理信息,提升了调试能力和可追踪性。
2025-05-02 01:23:16 +08:00
danial
efb595e2cf fix(internal/service/supplier/third_party): 增加代理池功能以优化请求
- 在 eggplant.go 和 favorable_clouds.go 中新增了代理设置逻辑,确保请求通过代理进行,提高了请求的稳定性和安全性。
- 在 heepay.go 中移除了不必要的注释,简化了代码。
- 新增了 proxy_pool.go 文件,创建了代理池管理功能,支持获取和验证代理IP,提升了代码的可维护性和扩展性。
2025-05-02 01:00:29 +08:00