fs-user-app/.../controller/store 目录下涉及积分的 Controller 存在多处代码规范与质量问题:防重复提交缺失、支付回调无分布式锁、IDOR 越权漏洞、NPE 风险、死代码、自赋值 Bug、代码重复等。这些问题直接影响积分扣减/发放的资金安全与数据一致性,违反项目内存中"代码严谨规范、高可用、计算准确"的工程约定。
StoreOrderScrmController.create/createMultiStore 增加 @RepeatSubmit 防重复提交注解PayScrmController.hfPayNotify/ybPayNotify 增加分布式锁,避免重复回调导致积分重复发放IntegralScrmController.getIntegralOrderById 的 IDOR 越权漏洞,校验订单归属UserSignScrmController.getIntegral 行 71 的自赋值 Bug(param.setUserId(param.getUserId()) 改为从登录态取值)HuifuPayScrmController 被注释的死代码及未使用的依赖注入user.getIntegral().intValue() 的 NPE 风险,增加 null 校验IntegralScrmController 中与 UserSignScrmController 重复的 getUserSign、sign 方法store.sign)与魔法值(支付来源 1)为常量@Login 注解使用策略IntegralScrmController.getUserSign 和 IntegralScrmController.sign 两个重复端点(/store/app/integral/getUserSign、/store/app/integral/sign),前端需改用 /store/app/sign/* 路径fs-user-app/.../store/StoreOrderScrmController.java(下单防重)fs-user-app/.../store/PayScrmController.java(回调加锁、switch default)fs-user-app/.../store/IntegralScrmController.java(IDOR 修复、删除重复方法、NPE 修复)fs-user-app/.../store/UserSignScrmController.java(自赋值 Bug 修复、NPE 修复、常量化)fs-user-app/.../store/HuifuPayScrmController.java(死代码清理)fs-user-app/.../store/CourseScrmController.java(方法命名、参数校验)系统 SHALL 为所有涉及积分扣减的下单接口提供防重复提交保护。
/store/app/order/create 或 /store/app/order/createMultiStore系统 SHALL 为所有支付回调接口提供分布式锁保护,防止第三方支付平台重复回调导致积分重复发放。
系统 SHALL 校验积分订单查询接口的订单归属,防止用户查看他人订单。
/store/app/integral/getIntegralOrderById?orderId=用户B的订单ID签到接口 UserSignScrmController.sign SHALL 正确从登录态获取 userId,并保证积分余额字段读取时无 NPE 风险。
/store/app/sign/getIntegral所有积分相关的配置 key(如 store.sign)与魔法值(如支付来源 1)SHALL 抽取为常量,禁止在方法体内硬编码。
Reason: getUserSign 和 sign 方法在 IntegralScrmController 和 UserSignScrmController 中完全重复,违反 DRY 原则,维护困难
Migration: 前端需将 /store/app/integral/getUserSign 和 /store/app/integral/sign 的调用迁移到 /store/app/sign/getUserSign 和 /store/app/sign/sign
Reason: 整个 switch 语句被注释,方法体仅剩 return "ok",注入的 7 个 Service 全部未使用,属于死代码
Migration: 真正生效的支付回调在 PayScrmController 中,无需迁移;直接清理被注释代码与未使用依赖