tasks.md 2.8 KB

Tasks

  • [x] Task 1: 修复 PayUtil 验签逻辑反转

    • SubTask 1.1: 修复 PayUtil.java(ybPay 版)isSgin 方法,改为 return sg.equals(sign);
    • SubTask 1.2: 修复 PayUtil.java(pay 版)isSgin 方法,同样修正逻辑反转
    • SubTask 1.3: 修正两个文件中方法名拼写 isSginisSignPayScrmServiceImpl.java 3 处调用已同步更新
  • [x] Task 2: 修复 PayScrmController.ybPayNotify 双 @RequestBody 与密钥硬编码

    • SubTask 2.1: 移除第二个 @RequestBody OrderCallback o,改为从 params 获取 lowOrderId
    • SubTask 2.2: 验签密钥改为从 DB 配置读取 PayUtil.sign(params, fsPayConfig.getYbKey())
    • SubTask 2.3: params.get("sign") 增加 null 校验,返回 FAIL
    • SubTask 2.4: lowOrderId.split("-") 增加数组长度校验
    • SubTask 2.5: 返回值统一为 SUCCESS/FAIL
  • [x] Task 3: 修复 YbPayController.payNotify 双 @RequestBody 与异常处理

    • SubTask 3.1: 移除第二个 @RequestBody
    • SubTask 3.2: params.get("sign") 增加 null 校验
    • SubTask 3.3: 验签失败不再抛异常,改为返回 FAIL
    • SubTask 3.4: System.out.println 替换为 Logger
    • SubTask 3.5: SpringUtils.getBean 改为 @Autowired 注入 ISysConfigService
    • SubTask 3.6: switch 补充 default 分支
  • [x] Task 4: 清理 TestYb.java 硬编码敏感信息

    • SubTask 4.1: 已删除 TestYb.java 文件,确认无其他文件引用
  • [x] Task 5: 修复满减限购失效

    • SubTask 5.1: 取消 resolveDisabledReason 中限购判断的注释
    • SubTask 5.2: countEffectiveByActivityAndUser SQL 改为 usage_status IN (0, 1)
  • [x] Task 6: 修复制单改价满减重复应用

    • SubTask 6.1: applyPromotionFields 增加 skipPromotion 参数,两处调用点(createOrder、createOrderMultiStore)均传入
  • [x] Task 7: 修复满减档位未排序

    • SubTask 7.1: saveTiers 保存前按 thresholdAmount 升序排序
    • SubTask 7.2: matchAmountTier 增加防御性排序(使用 stream 生成新 list)
  • [x] Task 8: 满减 usage 记录幂等保护

    • SubTask 8.1: recordPendingUsage 插入前查询 (order_id, activity_id) 是否存在
    • SubTask 8.2: 新增 selectByOrderIdAndActivityId Mapper 方法和 XML SQL
  • [x] Task 9: 修复 enableActivity 并发竞态

    • SubTask 9.1: 新增 enableActivityIfNoConflict 条件 UPDATE 方法,通过受影响行数判断冲突

Task Dependencies

  • Task 1(PayUtil 验签修复)与 Task 2、Task 3(回调修复)可并行,但 Task 2、3 依赖 Task 1 完成后验证验签链路
  • Task 4(TestYb 清理)独立,可并行
  • Task 5、6、7、8、9(满减修复)相互独立,可并行
  • Task 2 与 Task 3 修改不同文件,可并行