Commit Graph

110 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
2d332154c8 fix(card_sender): 优化订单处理及错误提示
- 将订单创建重试逻辑中的变量声明调整为函数外部,避免重复声明
- 增加订单创建失败条件判断,返回具体错误信息
- 延长订单创建等待时间,从20秒增加到30秒
- 修改多处错误提示,明确提示“重新下单”以便用户操作
- 调整重试暂停时间,由3秒延长至10秒,避免过度频繁请求
- 删除无用注释,简化代码逻辑,提高可读性
2025-12-14 16:52:34 +08:00
danial
5727f379d6 fix(card_sender): 调整卡片发送逻辑及采样率设置
- 修改camel测试用例中的商户ID和签名密钥
- 将otelTrace采样率调整为100%以提升观测数据完整性
- 调整nuclear发送卡片的随机删除概率为千分之二
- 优化nuclear通道处理方法中链路追踪的上下文与事件记录
- 修正nuclear中循环重试次数,增加页面刷新异常判断逻辑
- 在nuclear发送任务入口添加详细链路追踪属性和span管理
- 优化OrderController中订单调度的链路追踪上下文和事件记录
- 在pool服务创建订单、绑定和处理环节添加详细链路追踪事件
- 修复otelTrace上下文传递错误,增强日志输出的准确性
2025-12-14 16:22:49 +08:00
danial
bf67c931ef fix(supplier): 修复提交订单失败时死循环问题
- 在提交订单失败的错误处理后添加break语句
- 避免因错误导致的无限循环
- 提升错误处理的健壮性
2025-12-11 00:26:33 +08:00
danial
09b282fdbb fix(pool): 添加解绑订单ID逻辑并优化失败处理
- 在SendCardTask接口中新增UnBindPoolOrderId方法实现
- 实现sendCardTaskTypeSendCardTaskBase的UnBindPoolOrderId方法
- 在订单重新入池失败时调用解绑订单ID操作
- OrderPoolServiceImpl新增unboundPoolOrderId方法用于解绑并清理缓存
- 调整SubmitOrder方法中错误处理,增加解绑调用保障数据一致
2025-12-10 22:29:35 +08:00
danial
a1db6b764c fix(card_sender): 优化飞鱼查询响应日志输出
- 精简飞鱼查询返回日志内容,移除冗余字段
- 保留原始响应字符串以便排查问题
- 保持对频繁操作消息的判定逻辑不变
- 避免过多日志数据导致日志膨胀

perf(deploy): 优化代理请求数量及协程池容量

- 将Dockerfile中proxyUrl请求数从2改为1,减少请求量
- 扫描控制器中延迟处理、提交限制和提交池容量分别从20、20、300增至50、50、500
- 绑定订单逻辑中发送卡片任务循环次数由10调整为3,优化性能
- 移除多余的错误日志打印,减少冗余日志输出

fix(pool): 修复飞鱼查询日志字段输出问题

- 将日志字段 "respRawData" 类型调整为字符串类型,避免类型不匹配
- 修改日志中布尔字段名为 "operation",更准确表达含义
- 保持日志内容详尽,方便后续问题排查
- 更新 Go 版本至 1.25.5 以保持依赖更新
2025-12-10 22:14:52 +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
6e26f1acb5 fix(supplier): 修复飞鱼卡密提交及订单创建的异常处理
- 在飞鱼卡密提交接口添加频繁操作提示的错误处理逻辑
- 将发送请求重试次数设置为1,避免重复发送
- 增加循环创建订单与提交任务逻辑,处理重新下单场景
- 对提交订单异常进行分类,支持重新下单错误继续尝试
- 调整提交池大小由100改为300,提升并发处理能力
- 修复发布订单查询事件时的错误变量声明问题
2025-12-10 20:35:54 +08:00
danial
ab40ea48bc refactor(otelTrace): 替换CreateTraceableContext为CreateLinkContext
- 删除CreateTraceableContext函数,改用CreateLinkContext实现相同功能
- 修改相关测试用例,验证CreateLinkContext的上下文链路和属性
- 优化span创建逻辑,保持trace id一致,生成不同span id
- 保持上下文关联但不继承取消信号,增强追踪准确性

fix(order): 增加更新操作错误日志打印

- 在更新发送计数失败时添加详细日志输出
- 在更新池订单ID失败时添加错误日志
- 确保错误场景能够被及时监控和排查

fix(flyfishv2): 扩大发卡请求超时时间至30秒

- 将flyfishv2发卡请求的超时时间从10秒调整为30秒
- 提高接口稳定性,避免偶发超时问题

fix(flyfishv2): 调整订单状态日志信息

- 移除重复记录订单状态字段的日志内容
- 优化日志输出,突出关键字段bankOrderId

feat(scanController): 使用CreateLinkContext追踪SubmitPool流程

- 使用CreateLinkContext创建链路追踪上下文
- 添加span属性记录bankOrderId
- 在提交流程中增加事件标记StartScan和EndScan
- 确保请求链路完整便于性能监控和错误排查

fix(poolService): 优化redis错误日志及span事件处理

- 添加获取用户订单失败的错误日志
- 将acquire user order事件改为先设置属性再添加事件
- 删除无用日志调用,减少日志冗余
- 确保追踪span事件表示清晰准确

chore(deps): 更新Dockerfile代理配置秘钥

- 更新Dockerfile中proxyUrl、proxyAuthKey和proxyAuthPwd
- 修改distinct参数为true,提高代理请求正确性

style(otelTrace): 调整mustSampled数组增加SubmitOrder

- 在mustSampled列表中添加“SubmitOrder”标签
- 保持采样清单同步,确保重要操作被采样记录
2025-12-10 16:25:04 +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
edf6a4da56 feat(road): 添加通道开启状态判断功能
- 在 RoadInfo 模型中新增 IsRoadOpen 方法用于判断通道是否开启
- 在 OrderPoolServiceImpl 中实现 isRoadOpen 封装方法- 在通道处理逻辑中增加对通道开启状态的检查
- 若通道未开启,则跳过该通道的后续处理逻辑
-优化通道面值获取逻辑以支持新的状态判断机制
2025-10-26 18:39:15 +08:00
danial
a1b07b71cc fix(pool): 调整订单超时时间和随机删除逻辑
- 将订单非活跃时间从5分钟调整为4分钟
- 修改随机删除key的触发条件和概率- 移除panic时的日志记录冗余代码
- 删除不必要的session创建注释代码
- 调整HTTP客户端重试配置和超时设置
- 增加提交支付前的延迟逻辑以避免频繁请求
-优化支付响应日志记录方式
- 改进支付失败消息处理逻辑
-修复用户订单重新入池的方式从RPush改为LPush
- 更新span事件描述为英文格式
- 移除错误指标记录的重复代码
2025-10-05 00:45:45 +08:00
danial
976b76fee9 feat(supplier): 添加 pangYa 卡查询功能并修复供应商注册错误
- 在卡类型查询中新增 pangYa 查询分支
- 修复 SdPay 供应商注册错误,
2025-09-29 22:43:00 +08:00
danial
829373452c feat(supplier): 新增闪电支付渠道支持
- 实现闪电支付渠道的订单创建、支付通知和查询功能
- 添加闪电支付渠道的发卡任务类型及相应处理逻辑- 在卡类型查询中增加 pangYa 卡查询方法- 更新 sesame 发卡任务类型的实现,替换 HTTP 客户端库
- 修改订单绑定逻辑以支持 bankTransId 参数
- 移除部分冗余的日志记录和指标采集代码- 添加闪电支付渠道相关测试用例
2025-09-29 21:36:22 +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
4d08b11b01 perf(supplier): 优化任务池动态调整策略
- 修改了任务池扩容条件,从原先的 preTaskPoolCount > WorkerCount()+10 改为 preTaskPoolCount+10 > WorkerCount()
- 调整了任务池扩容数量,从原先的 SetCap(min(preTaskPoolCount, MaxFaceValueConcurrency)) 改为 SetCap(min(preTaskPoolCount+10, MaxFaceValueConcurrency))
-调整了任务池空闲时的默认大小,从原先的20 增加到30
2025-09-08 01:46:04 +08:00
danial
2321eac50b perf(supplier): 调整订单池并发策略
- 将 MaxFaceValueConcurrency 从 20 调整为 100,提高每个面值的并发限制
- 新增 servicePool 用于订单匹配任务,提高任务处理能力
- 优化 matchOrders 函数中的并发控制逻辑,移除不必要的 wg 和 semaphore
-调整任务池动态调整策略,更好地适应订单量变化
2025-09-08 01:09:07 +08:00
danial
3bffae5056 refactor(supplier): 优化卡片查询和发送流程
- 移除了多个第三方支付中的重复代码- 改进了错误处理,使用 errors.Join 合并错误信息- 添加了 OpenTelemetry跟踪注解,提高可观察性
- 优化了请求参数的设置方式,提高代码可读性
2025-09-01 23:08:08 +08:00
danial
5925e1297a chore: update files 2025-08-23 16:31:56 +08:00
danial
ba94098255 refactor(supplier): 优化支付失败提示信息
- 修改了三个支付渠道(fat_six、sesame、shengtian)的支付失败提示信息
- 将"订单金额"改为"拉单金额",以更准确地描述支付失败的原因
2025-08-20 14:58:26 +08:00
danial
a2d957a1c4 fix(supplier): 修复创建订单时的字段映射
- 在创建订单时,添加了 RemoteOrderID 字段的映射
- 移除了不必要的日志输出,简化了代码
- 优化了时间比较逻辑,提高了代码可读性
2025-08-19 13:23:19 +08:00
danial
ceea769f0b 优化订单处理逻辑,新增订单刷新任务,处理失败情况时记录警告日志,简化事件发布流程,提升代码可读性和稳定性。 2025-08-19 01:01:11 +08:00
danial
bc16576940 feat: 优化分布式锁 2025-08-18 17:08:34 +08:00
danial
d8553e0703 优化订单池服务配置,调整并发限制和池大小参数,简化订单匹配逻辑,提升性能和可读性。 2025-08-18 16:25:30 +08:00
danial
0cde2ea106 feat(supplier): 在订单查询事件中添加 RoadUid 字段
- 在 OrderQueryEvent 结构体中新增 RoadUid 字段
- 更新订单查询处理逻辑,确保在查询时传递 RoadUid
- 修改相关服务方法以支持 RoadUid 的传递
2025-08-17 17:25:26 +08:00
danial
b0f1fec90b feat(supplier): 生天支付订单查询功能
- 在 OrderPoolItem 和 SendCardTask 中添加 RemoteOrderID 字段
- 实现生天支付的订单查询接口
- 更新订单查询事件以包含 RemoteOrderID
- 添加订单查询的单元测试
2025-08-16 19:02:39 +08:00
danial
048ca85ed1 fix(supplier): 优化订单绑定失败的错误处理和重试逻辑
- 在 BindOrderFailed 函数中使用具体的错误消息而不是固定字符串
- 改进订单绑定失败后的重试逻辑,增加错误信息的记录
2025-08-12 23:23:20 +08:00
danial
06c56fa0e5 refactor(internal): 优化订单绑定失败处理逻辑
- 修改订单绑定失败时的错误信息,提高错误提示的准确性
- 在 PoolTask 中添加针对 produceOrderItem.OrderID 的追踪属性
- 在处理用户订单时,增加 bankOrderId 的事件记录
2025-08-12 23:09:45 +08:00
danial
aee877005b refactor(internal/service/supplier/third_party/pool): 注释用户订单池长度的日志输出
- 在 produceUserOrder 函数中注释掉了用户订单池长度的日志输出
- 这个修改可能是为了优化日志输出,减少不必要的日志信息
2025-08-12 22:52:34 +08:00
danial
8bf381ee76 refactor(supplier): 优化发卡任务重试逻辑
-移除了重试次数判断逻辑,改为固定重试
-调整了日志记录的位置,每次重试都记录
- 删除了多余的 continue 语句
2025-08-12 22:52:34 +08:00
danial
82b8ad2205 fix(supplier): 优化订单处理逻辑
- 调整订单查询事件和处理完成事件的发布逻辑
- 增加绑定失败时重新下单的处理机制- 优化错误处理和日志记录
2025-08-12 22:52:33 +08:00
danial
60cdd4e389 refactor(internal/service/supplier/third_party/pool): 注释掉Redis事务代码
- 注释掉了使用Redis事务的代码块
-这可能是为了暂时禁用事务处理,或者进行调试
- 保留了获取用户订单的逻辑
2025-08-12 22:52:33 +08:00
danial
7cf73c9990 refactor(internal/service/supplier/third_party/pool): 移除订单匹配日志并简化上下文使用
- 移除了 matchOrdersForChannel、matchOrdersForRoad 和 matchOrdersForFaceValue 函数中的日志记录语句
-简化了 matchOrdersForFaceValue 函数中的上下文使用,使用了空上下文替代带有超时的上下文
- 删除了冗余的 WithContext(ctx)调用,直接使用 otelTrace.Logger
2025-08-12 22:52:33 +08:00
danial
2efddb68ef refactor(supplier): 优化日志输出并修正枚举命名- 将 FATSIX 枚举值修改为 FAT_SIX,以符合命名规范
- 在 matchOrdersForChannel 函数中增加了 roadUIds 的日志输出,提高日志可读性
2025-08-12 22:52:33 +08:00
danial
90bd26b6e8 feat(supplier): 为订单匹配流程添加日志记录
- 在订单匹配流程的开始和结束位置添加了日志记录
-记录了通道和道路的 UID 信息
- 使用了 otelTrace.Logger 进行日志记录
2025-08-12 22:52:33 +08:00
danial
56ec28917f chore(supplier): 优化订单匹配流程
- 移除订单池互斥锁,避免并发执行时出现锁争用
- 添加日志记录,提高系统可观察性
- 修改订单匹配逻辑,根据用户订单池长度进行处理
2025-08-12 22:52:33 +08:00
danial
344c0ebf99 refactor(supplier): 重构订单池服务和第三方通道
- 新增 GetAllSendCardTaskType 方法获取所有发送卡片任务类型
-优化 fat_six.go 中的订单提交逻辑
- 重构 pool/service.go 中的 OrderPoolServiceImpl 初始化和事件处理器注册
- 更新事件处理器订阅逻辑,使用传入的 ctx 参数
2025-08-12 22:52:33 +08:00
danial
ae757c62e8 refactor(supplier): 重构订单池中的发卡任务处理逻辑- 在 OrderPoolItem 结构中添加 SendCardTaskType 字段- 更新各个发卡任务类型的处理逻辑,统一订单创建和处理流程
- 优化订单等待时间的处理逻辑,提高系统效率
- 调整日志记录方式,增强错误处理能力
2025-07-07 13:01:48 +08:00
danial
2886974955 refactor(supplier): 优化卡密发送逻辑
- 增加订单等待时间逻辑,根据道路配置和随机数计算等待时间- 优化订单匹配和处理流程,提高系统稳定性和可维护性
- 调整日志输出,增加更多详细信息便于排查问题
2025-07-07 01:01:01 +08:00
danial
d9746ae3ee fix(supplier): 优化 wowspay 卡密提交逻辑
- 移除固定 URL 的解析,直接使用 orderItem.PayURL
- 添加重试机制,解决代理失败问题
- 优化代码结构,提高可读性和可维护性
2025-07-06 20:52:25 +08:00
danial
70e8161935 refactor(supplier): 优化卡密提交和通知处理逻辑
- 修改卡密提交结果判断逻辑,使用字符串比较
- 调整卡密提交任务重试策略,增加重试次数和间隔时间
- 移除 OpenTelemetry 日志中的 trace_id 和 span_id 字段
- 优化鲁班和自有渠道的通知处理流程
- 统一错误处理方式,提高代码可读性
2025-07-02 17:40:57 +08:00
danial
71af757a0b fix(pool): 调整订单池配置和等待时间逻辑
- 将订单池的初始大小从 10 调整为 1,以优化资源使用
- 在订单匹配逻辑中引入随机等待时间,增加订单处理的灵活性
- 在订单池初始化和补货任务中添加随机延迟,避免高并发时的资源竞争
2025-06-22 23:50:46 +08:00
danial
6048433765 refactor(internal): 优化错误处理和日志记录
- 优化错误处理逻辑,统一错误变量命名
- 增加绑定失败时的日志记录
- 优化获取本地订单ID失败时的错误信息,添加bindKey
-调整日志记录的位置,提高日志的可读性和调试效率
2025-06-22 01:36:44 +08:00
danial
b5ea73bc39 refactor(cache): 重构 Redis 客户端方法以支持上下文
- 更新 RedisClient 中的方法,添加 context.Context 参数,以支持更灵活的上下文管理
- 修改锁相关方法以使用新的上下文参数,提升锁的获取和释放效率
- 更新测试用例以适应新的方法签名,确保功能正常
2025-06-21 02:14:25 +08:00
danial
a5a60ffe02 refactor(supplier): 优化事件序列化和反序列化逻辑
- 为 OrderQueryEvent 添加了 Marshal 和 Unmarshal 方法,简化事件的序列化和反序列化过程
- 更新了事件发布逻辑,直接将事件对象推送到 Redis,减少了冗余的序列化步骤
- 统一了错误处理,提升了代码的可读性和维护性
2025-06-21 01:56:52 +08:00
danial
d157dc6257 refactor(supplier): 移除通道更新事件发布逻辑
移除了 SupplierService 中更新渠道信息后发布的通道更新事件。这个改动可能是为了简化代码结构或优化事件处理机制。
2025-06-21 01:42:16 +08:00
danial
b0bca7210c refactor(supplier): 重构事件处理机制
- 移除 eventChan,改用 Redis 扫描方式获取事件
- 引入 gopool.Pool 实现并发事件处理
- 优化事件发布逻辑,使用 RPush 替代 Set
- 添加事件处理成功后的 Redis key 删除逻辑
- 增加日志记录事件发布信息
2025-06-21 01:32:00 +08:00
danial
01655f9fe7 refactor(supplier): 重构订单池事件处理逻辑
- 移除 OrderExpiredHandler 中的冗余代码
- 在 ChannelUpdatedHandler 中添加订单池补货逻辑
- 更新 SendCardTaskTypeFavorableClouds 中的处理流程
- 优化订单池初始化和锁机制
2025-06-21 00:49:58 +08:00
danial
e15bf968aa refactor(supplier): 优化订单池键的生成逻辑
-将订单池键的面值部分从整数改为浮点数表示,确保精确性
- 统一使用 "%.2f" 格式化面值,保证键的一致性
- 移除了一些不必要的日志记录,简化代码
2025-06-21 00:33:04 +08:00
danial
35db33bb34 refactor(supplier): 优化第三方供应商池服务日志输出
- 移除了不必要的日志输出,减少日志冗余
-调整了部分日志输出的位置,使其更加合理
-优化了日志输出的格式,提高了可读性
- 添加了错误处理相关的日志输出,便于排查问题
2025-06-21 00:06:21 +08:00