tasks.md 3.3 KB

Tasks

  • [x] Task 1: 修复 UserSignScrmController 自赋值 Bug 与 NPE 风险

    • SubTask 1.1: 修复 getIntegral 方法行 71 param.setUserId(param.getUserId()) 自赋值 Bug,改为 param.setUserId(Long.parseLong(getUserId()))
    • SubTask 1.2: 修复 getUserSign 方法 user.getIntegral().intValue() 的 NPE 风险,增加 null 校验(integral 为 null 时返回 0)
  • [x] Task 2: 修复 IntegralScrmController IDOR 越权漏洞与 NPE 风险

    • SubTask 2.1: 修复 getIntegralOrderById 方法,增加订单归属校验(校验订单 userId 是否等于当前登录 userId,不匹配返回错误)
    • SubTask 2.2: 修复 getUserSign 方法 user.getIntegral().intValue() 的 NPE 风险(随 Task 3 删除重复方法一并消除)
  • [x] Task 3: 删除 IntegralScrmController 中与 UserSignScrmController 重复的方法

    • SubTask 3.1: 删除 IntegralScrmController.getUserSign 方法(行 107-118)
    • SubTask 3.2: 删除 IntegralScrmController.sign 方法(行 119-126)
    • SubTask 3.3: 清理因删除方法而不再使用的依赖注入(IFsUserScrmService userServiceIFsUserSignScrmService userSignServiceISysConfigService configService 已删除,同时清理无用 import)
  • [x] Task 4: 为 StoreOrderScrmController 下单接口增加防重复提交

    • SubTask 4.1: 为 create 方法(行 376)增加 @RepeatSubmit 注解
    • SubTask 4.2: 为 createMultiStore 方法(行 390)增加 @RepeatSubmit 注解
  • [x] Task 5: 为 PayScrmController 单门店支付回调增加分布式锁

    • SubTask 5.1: 为 hfPayNotify 方法(行 101-135)增加 Redisson 分布式锁,锁 key 基于订单号
    • SubTask 5.2: 为 ybPayNotify 方法(行 137-159)增加 Redisson 分布式锁,锁 key 基于订单号
    • SubTask 5.3: 为 hfPayNotifyybPayNotifymultiStoreHfPayNotify 的 switch 语句补充 default 分支并记录 warn 日志
  • [x] Task 6: 清理 HuifuPayScrmController 死代码

    • SubTask 6.1: 删除 asyncMessage 方法中被注释的 switch 语句(行 46-68)
    • SubTask 6.2: 删除因 switch 被注释而未使用的依赖注入(7 个 Service 全部删除)
    • SubTask 6.3: 修复 logger 声明(使用 @Slf4j 注解,删除非标准 logger 字段)
  • [x] Task 7: 抽取硬编码常量

    • SubTask 7.1: 在 UserSignScrmController 中将 "store.sign" 抽取为常量 CONFIG_KEY_STORE_SIGN(IntegralScrmController 因 configService 已删除无需处理)
    • SubTask 7.2: 在 PayScrmController 中将支付来源魔法值 1 抽取为常量 PAY_SOURCE_ONLINE(已替换全部 4 处调用)
  • [x] Task 8: 统一 @Login 注解与参数校验

    • SubTask 8.1: IntegralScrmController.getIntegralGoodsListgetIntegralGoodsById 保持公开不加 @Login(商品查询为公开接口,符合业务惯例)
    • SubTask 8.2: 为 CourseScrmController.getIntegralgetIntegralByH5Video 的 param 参数补充 @Validated 注解

Task Dependencies

  • Task 3 依赖 Task 1、Task 2 完成(先修复保留的方法,再删除重复方法)
  • Task 7 可与 Task 1-6 并行(常量抽取互不影响)
  • Task 8 可与 Task 1-7 并行
  • Task 5 的 SubTask 5.3 依赖 5.1、5.2(同一文件的 switch 修改建议顺序执行避免冲突)