[x] Task 1: 修复 PayUtil 验签逻辑反转
PayUtil.java(ybPay 版)isSgin 方法,改为 return sg.equals(sign);PayUtil.java(pay 版)isSgin 方法,同样修正逻辑反转isSgin → isSign,PayScrmServiceImpl.java 3 处调用已同步更新[x] Task 2: 修复 PayScrmController.ybPayNotify 双 @RequestBody 与密钥硬编码
@RequestBody OrderCallback o,改为从 params 获取 lowOrderIdPayUtil.sign(params, fsPayConfig.getYbKey())params.get("sign") 增加 null 校验,返回 FAILlowOrderId.split("-") 增加数组长度校验SUCCESS/FAIL[x] Task 3: 修复 YbPayController.payNotify 双 @RequestBody 与异常处理
@RequestBodyparams.get("sign") 增加 null 校验FAILSystem.out.println 替换为 LoggerSpringUtils.getBean 改为 @Autowired 注入 ISysConfigService[x] Task 4: 清理 TestYb.java 硬编码敏感信息
TestYb.java 文件,确认无其他文件引用[x] Task 5: 修复满减限购失效
resolveDisabledReason 中限购判断的注释countEffectiveByActivityAndUser SQL 改为 usage_status IN (0, 1)[x] Task 6: 修复制单改价满减重复应用
applyPromotionFields 增加 skipPromotion 参数,两处调用点(createOrder、createOrderMultiStore)均传入[x] Task 7: 修复满减档位未排序
saveTiers 保存前按 thresholdAmount 升序排序matchAmountTier 增加防御性排序(使用 stream 生成新 list)[x] Task 8: 满减 usage 记录幂等保护
recordPendingUsage 插入前查询 (order_id, activity_id) 是否存在selectByOrderIdAndActivityId Mapper 方法和 XML SQL[x] Task 9: 修复 enableActivity 并发竞态
enableActivityIfNoConflict 条件 UPDATE 方法,通过受影响行数判断冲突