# 实施基线与手工验证清单 ## 一、当前受影响接口与链路 ### 1. 后台套餐管理 - `GET /api/admin/packages` - `GET /api/admin/packages/:id` - `POST /api/admin/packages` - `PUT /api/admin/packages/:id` - `PUT /api/admin/packages/:id/shelf-status` - `PUT /api/admin/packages/:id/retail-price` ### 2. C 端可购套餐与下单 - `GET /api/c/v1/asset/packages?identifier=xxx` - C 端创建订单链路(`internal/service/client_order/service.go`) - 充值后自动购包链路(`internal/task/auto_purchase.go`) ### 3. 后台订单与发放链路 - 后台创建订单(`internal/service/order/service.go`) - 套餐激活链路(`internal/service/order/service.go`、`internal/service/package/activation_service.go`) ### 4. 代理授权与分配 - 系列授权创建/维护(`internal/service/shop_series_grant/service.go`) - 批量分配(`internal/service/shop_package_batch_allocation/service.go`) ## 二、当前受影响数据表 - `tb_package`:套餐主数据,当前仅有 `cost_price`、`suggested_retail_price` - `tb_shop_package_allocation`:代理分配记录,当前仅有 `cost_price`、`retail_price` - `tb_order`:订单主表 - `tb_order_item`:订单价格快照 - `tb_package_usage`:套餐使用记录快照 - `tb_shop_package_allocation_price_history`:当前仅记录成本价变更历史 ## 三、回滚点与历史数据来源 ### 1. 回滚点 - 迁移文件回滚:撤销新增字段、清理人工复核清单表 - Service 层回滚:恢复到直接读取 `suggested_retail_price` / `retail_price` 的旧逻辑 - 发放策略回滚:撤销后台赠送订单专属分支,恢复统一后台订单逻辑 ### 2. 历史数据判定来源 - `tb_package.suggested_retail_price` - `tb_shop_package_allocation.retail_price` - `tb_order_item.unit_price` - `tb_order.total_amount` / `tb_order.actual_paid_amount` - `tb_package_usage.paid_amount` - 后台创建订单记录(用于识别“发放=后台创建订单”的赠送语义) ## 四、改动前诊断基线 ### 1. 无阻塞诊断错误的核心文件 - `internal/model/package.go` - `internal/service/purchase_validation/service.go` - `internal/service/client_order/service.go` - `internal/task/auto_purchase.go` - `internal/service/shop_package_batch_allocation/service.go` - `internal/service/shop_series_grant/service.go` ### 2. 已知基线提示(非本次改动引入) - `internal/service/order/service.go` 存在若干 `QF1003` 提示、`unusedparams` 提示和既有 `nilness` warning,作为改动前基线保留 - `internal/handler/app/client_asset.go` 存在 `unusedfunc` 基线提示 ## 五、手工验证清单 ### 1. 后台套餐配置 - 创建普通可售套餐,建议售价留空,保存成功 - 创建普通可售套餐,建议售价填 `0`,保存失败 - 创建赠送套餐,建议售价填 `0`,保存成功 - 编辑普通可售套餐将建议售价改成 `0`,保存失败 - 详情页/编辑页能区分“未配置价格”和“赠送 0 价” ### 2. C 端可购列表 - 平台渠道普通套餐未配置建议售价时,列表显示成本价 - 代理渠道分配记录未配置零售价时,列表显示成本价 - 赠送套餐不出现在可购列表 - 无主套餐时,加油包仍然不可见 ### 3. 下单与自动购包 - C 端普通套餐下单按生效价落单 - H5/后台普通购买接口无法购买赠送套餐 - 自动购包命中赠送套餐时被拦截 - 同一订单仍禁止正式套餐和加油包混买 ### 4. 后台发放(走创建订单) - 平台后台可为目标资产创建赠送订单并激活套餐 - 赠送订单无需支付凭证,不产生正常购买语义 - 赠送加油包必须已有主套餐,否则发放失败 ### 5. 代理授权与分配 - 代理授权列表不展示赠送套餐 - 系列授权新增赠送套餐失败 - 批量分配不会把赠送套餐分配给代理 ### 6. 迁移与历史数据 - 迁移后能区分未配置价格、赠送 0 价、已配置非 0 - 历史模糊 0 数据进入人工复核清单 - 历史快照查询不再把普通未配置价格当成显式 0 售卖价