docs(01-p0): 创建 Phase 1 P0 紧急修复执行计划(5 个 Plan,涵盖 CRITICAL-01~08)
This commit is contained in:
164
.planning/phases/01-p0/01-04-PLAN.md
Normal file
164
.planning/phases/01-p0/01-04-PLAN.md
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
phase: 01-p0
|
||||
plan: 04
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- internal/service/order/service.go
|
||||
autonomous: true
|
||||
requirements:
|
||||
- CRITICAL-06
|
||||
must_haves:
|
||||
truths:
|
||||
- "场景 5 分支(代理代购下级)的 sellerCostPrice 使用 operatorCostPrice,不再是 buyerCostPrice"
|
||||
- "其他 5 处 sellerCostPrice 赋值经过语义审查,确认正确或按需修正"
|
||||
- "佣金差额计算基准正确,场景 5 的上级代理能获得应有佣金"
|
||||
artifacts:
|
||||
- path: internal/service/order/service.go
|
||||
provides: "场景 5 sellerCostPrice 修正"
|
||||
contains: "operatorCostPrice"
|
||||
key_links:
|
||||
- from: internal/service/order/service.go
|
||||
to: "佣金计算链路"
|
||||
via: "sellerCostPrice 作为佣金差额基准传递"
|
||||
pattern: "sellerCostPrice"
|
||||
---
|
||||
|
||||
<objective>
|
||||
逐一审查并修正代购订单中 sellerCostPrice 的 6 处赋值(CRITICAL-06),确保场景 5(代理代购下级)使用正确的成本价基准。
|
||||
|
||||
Purpose: sellerCostPrice 是佣金差额计算的基准。场景 5 中错误使用 buyerCostPrice(下级成本价)导致整个佣金链差额为 0,所有上级代理无法获得应有佣金。修复后代购场景佣金链正常工作。
|
||||
|
||||
Output:
|
||||
- order/service.go: 场景 5 的 sellerCostPrice 改为 operatorCostPrice,其余 5 处经语义审查确认或按需修正
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@$HOME/.config/opencode/get-shit-done/workflows/execute-plan.md
|
||||
@$HOME/.config/opencode/get-shit-done/templates/summary.md
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
@.planning/phases/01-p0/01-CONTEXT.md
|
||||
|
||||
# 修复规格书(方案 A-5,第 579-618 行)
|
||||
@.sisyphus/plans/修正业务-完整方案.md
|
||||
|
||||
<interfaces>
|
||||
<!-- 五种购买场景对应表(来自规格书 A-5)
|
||||
| # | 操作方 | 资产所属 | sellerCostPrice 应为 |
|
||||
|---|--------|------------|--------------------------|
|
||||
| 1 | 平台 | 平台自己客户 | N/A(线下,不计佣金) |
|
||||
| 2 | 平台 | 某代理客户 | 该代理成本价(operatorCostPrice 即代理价)|
|
||||
| 3 | 平台 | 某代理客户 | 该代理成本价(线下场景) |
|
||||
| 4 | 代理 | 自己客户 | 自己成本价(即 operatorCostPrice)|
|
||||
| 5 | 代理 | 下级代理客户 | **operatorCostPrice(自己的成本价,非下级的)** ← Bug 在此 |
|
||||
-->
|
||||
|
||||
<!-- 6 处确认位置(来自 CONTEXT.md code_context) -->
|
||||
<!--
|
||||
internal/service/order/service.go 第 187, 262, 472, 548, 734, 809 行
|
||||
其中 525-548 行是场景 5,sellerCostPrice = buyerCostPrice 是错误的
|
||||
-->
|
||||
|
||||
<!-- 审查决策依据(per D-01, D-02, D-03) -->
|
||||
<!--
|
||||
- 逐一语义审查,按场景对照表判断
|
||||
- 不做模式匹配式全量替换
|
||||
- 有些 buyerCostPrice 赋值是正确的(如场景 1/2/3/4 的某些分支)
|
||||
-->
|
||||
</interfaces>
|
||||
</context>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: 逐一审查并修正 sellerCostPrice 6 处赋值(CRITICAL-06)</name>
|
||||
<files>internal/service/order/service.go</files>
|
||||
<action>
|
||||
**步骤 1:定位 6 处赋值**
|
||||
|
||||
```bash
|
||||
rg -n "sellerCostPrice" internal/service/order/service.go
|
||||
```
|
||||
|
||||
确认规格书所述的 6 处(第 187, 262, 472, 548, 734, 809 行)是否与实际一致(行号可能有偏移)。
|
||||
|
||||
**步骤 2:对照五种场景表逐一审查**
|
||||
|
||||
对每一处 `sellerCostPrice = buyerCostPrice`,阅读其所在分支的上下文,确认:
|
||||
- 这里的"操作方"是谁?(平台/代理)
|
||||
- 资产归属是谁?(自己客户/下级代理客户)
|
||||
- 对照上方场景表,sellerCostPrice 应该是哪个变量?
|
||||
|
||||
**步骤 3:修正确认有问题的位置**
|
||||
|
||||
规格书明确指出场景 5(代理代购下级代理客户)约在第 525-548 行:
|
||||
|
||||
```go
|
||||
// 当前错误(sellerCostPrice 用了下级成本价)
|
||||
buyerCostPrice, _ := s.getCostPrice(ctx, *resourceShopID, firstPackageID) // 下级成本价
|
||||
operatorCostPrice, _ := s.getCostPrice(ctx, operatorShopID, firstPackageID) // 自己成本价
|
||||
|
||||
totalAmount = buyerCostPrice // 下级成本价作为面值(正确)
|
||||
actualPaidAmount = &operatorCostPrice // 实际扣自己钱包(正确)
|
||||
sellerCostPrice = buyerCostPrice // ← 错误!应是 operatorCostPrice
|
||||
|
||||
// 修正后
|
||||
sellerCostPrice = operatorCostPrice // ✅ 自己(代理)的成本价作为佣金差额基准
|
||||
```
|
||||
|
||||
对其余 5 处,若语义审查确认正确(即该场景下 sellerCostPrice 本就应等于 buyerCostPrice),则**不修改**,并在 SUMMARY 中记录每处审查结论。
|
||||
|
||||
**步骤 4:执行 `go build ./...`,确认编译通过,提交独立 commit(per D-05)。**
|
||||
|
||||
注意:只改确认有问题的位置,禁止全量替换(per D-03)。
|
||||
</action>
|
||||
<verify>
|
||||
<automated>go build ./... && rg -n "sellerCostPrice" internal/service/order/service.go</automated>
|
||||
</verify>
|
||||
<done>
|
||||
- 6 处 sellerCostPrice 赋值全部经过语义审查
|
||||
- 场景 5 分支已将 sellerCostPrice = buyerCostPrice 改为 sellerCostPrice = operatorCostPrice
|
||||
- 其余各处审查结论已记录
|
||||
- go build ./... 编译通过
|
||||
- 独立 commit 已提交
|
||||
</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<verification>
|
||||
整体验收:
|
||||
|
||||
```bash
|
||||
# 1. 编译验证
|
||||
go build ./...
|
||||
|
||||
# 2. 查看所有 sellerCostPrice 赋值(人工确认场景 5 已修正)
|
||||
rg -n "sellerCostPrice" internal/service/order/service.go
|
||||
|
||||
# 3. 搜索场景 5 分支(代购下级)是否仍然存在 sellerCostPrice = buyerCostPrice
|
||||
# 需人工确认第 525-548 行附近已修改
|
||||
```
|
||||
|
||||
人工验收(参见修正业务-完整方案.md A-5 验收清单):
|
||||
- DBHub 抽查"代理代购下级代理客户"的订单和佣金记录
|
||||
- 预期:tb_order.total_amount = 下级成本价,佣金链不再全部为 0
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
1. `go build ./...` 编译通过
|
||||
2. 场景 5(代理代购下级)sellerCostPrice = operatorCostPrice(不再是 buyerCostPrice)
|
||||
3. 其余 5 处经语义审查,结论记录在 SUMMARY 中
|
||||
4. 独立 commit 已提交
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
完成后创建 `.planning/phases/01-p0/01-04-SUMMARY.md`,记录:
|
||||
- 6 处 sellerCostPrice 逐一审查结论(行号 + 场景判断 + 是否修改)
|
||||
- 场景 5 修改前后代码对比
|
||||
- 编译验证结果
|
||||
- CRITICAL-06 完成状态
|
||||
</output>
|
||||
Reference in New Issue
Block a user