高风险公共文件影响面
本文是一份“改前必看”清单。DGJ2.0 有不少公共文件被采购、销售、库存、支付、活动、报表、外部同步共同复用,改动前必须明确影响面和回归范围。
业务目标
- 避免为了修一个入口,破坏其他入口的老逻辑。
- 知道公共 Service、MQ、库存、枚举改动后必须回归哪些链路。
- 给代码评审提供风险清单。
application/service/scm/InvPoService.php
影响业务:
- PC 采购、采购退货、采购关闭、采购入库关联。
- App 采购部分逻辑可能复用老服务。
- 订单中心、支付中心回调最终可能落到采购相关方法。
高风险点:
- 采购状态推进。
- 明细数量计算。
- 关闭/退货数量。
- 在线支付和线下挂账差异。
- 活动、赠品、秒杀来源单兼容。
回归清单:
- 普通采购、在线支付采购、采购退货、部分关闭、整单关闭、采购入库、秒杀采购。
application/service/scm/InvSaService.php
影响业务:
- PC 销售、销售出库、销售退货。
- 库存扣减、出库成本、客户收款。
- APP/SAAS 下游同步。
高风险点:
- 销售单状态和出库单状态混用。
- 可出库数量计算。
- 货位库存扣减。
- 撤销/退货反向库存。
回归清单:
- 销售开单、部分出库、整单出库、撤销、销售退货、三方配送、对账核销。
application/Services/PoOrders/PoOrderSer.php
影响业务:
- 新采购领域逻辑、采购查询、采购创建、采购状态。
- 订单中心、活动、秒杀等新链路更可能调用这里。
高风险点:
orderType、srcOrderType分支。- 多供应商、授信、活动订单兼容。
- 支付状态和采购状态联动。
回归清单:
- 普通采购、预订单、活动采购、秒杀采购、售后/关闭、支付回调。
application/Services/SaOrders/SaOrderSer.php
影响业务:
- 新销售领域逻辑。
- E站、APP、机器人、SAAS 来源销售单。
- 同步下游事件。
高风险点:
- 来源类型判断。
- 销售状态和出库状态同步。
- 收款状态、客户关系、活动关系。
回归清单:
- PC 销售、E站销售、APP 销售、机器人订单、销售关闭、下游同步。
application/Services/Storage/InventorySer.php
影响业务:
- 所有库存写入:采购入库、销售出库、销售退货、采购退货、盘点、调拨、其他出入库。
- 实时库存和库存流水一致性。
高风险点:
- 数量正负方向。
transType判断。- 仓库、货位维度。
- 重复调用幂等。
- 实时库存和流水双写一致性。
回归清单:
- 每种出入库类型都至少验证一条数据,特别是退货、盘点和套包。
application/Services/Mq/MqSer.php
影响业务:
- DGJ 发给订单中心、SAAS/APP、OA、库存、对账、渠道等下游消息。
- 消息 routing key、payload 和重试。
高风险点:
- 事件名变更导致消费者收不到。
- 消息体字段改名导致下游解析失败。
- 补偿/重发重复触发导致下游重复处理。
回归清单:
- 支付/订单中心/OA/SAAS/APP/渠道/对账每类至少确认一个事件。
application/Services/Activity/FlashSaleSer.php
影响业务:
- 秒杀商品列表、详情、加购、购物车、下单、支付、取消、关闭、补偿。
高风险点:
locked_qty、used_qty更新。- 活动库存范围。
- 黑白名单。
- 采购单生成。
- 支付超时和补偿幂等。
回归清单:
- 单品、套包、服务站仓、指定仓、全局预留、支付成功、超时、取消、采购关闭。
application/KzData/Enums/*
影响业务:
- 状态展示、按钮权限、列表筛选、报表过滤、MQ 分支、外部系统字段。
高风险点:
- 改值比改文案风险更高。
- 新增状态必须同步所有 switch/if 判断。
- 删除旧状态会破坏历史数据兼容。
回归清单:
- 枚举引用全局
rg,确认控制器、Service、报表、任务、前端接口都已兼容。
改动前检查命令
rg -n "InvPoService|InvSaService|PoOrderSer|SaOrderSer|InventorySer|MqSer|FlashSaleSer" application
rg -n "BILLSTATUS_|ORDERTYPE_|SA_STATUS_|OUT_BILLSTATUS_|ORDER_STATUS_|TRANSTYPE_" application
rg -n "send.*Mq|paycenter|ordercenter|oa_audit|inventory_event|dgj_notify" application/Services application/controllers/tasks
评审问题清单
- 这次改动影响 PC、App、inner、tasks 哪些入口?
- 是否改变表字段、状态值、订单类型、交易类型或 MQ 字段?
- 是否存在历史数据兼容问题?
- 是否会重复扣库存、重复释放库存、重复生成付款单或重复发 MQ?
- 是否需要补偿脚本或数据修复?
- 是否已经回归普通链路和特殊来源链路?