## MODIFIED Requirements

### Requirement: 后台订单 TotalAmount 语义修正

系统 SHALL 在后台创建订单时，`Order.TotalAmount` MUST 始终存储零售价（客户面值），不得被成本价覆盖。`Order.ActualPaidAmount` MUST 存储实际支付的成本价。

**字段语义规范**：
- `total_amount`：零售价，所有场景均为套餐零售单价之和，C 端和后台均可安全展示
- `actual_paid_amount`：实付成本价，代购/钱包支付场景为买家实际支付的成本金额

**各场景赋值规则**：

| 场景 | total_amount | actual_paid_amount |
|------|-------------|-------------------|
| 平台自营 offline | 零售价 | 零售价（无差价） |
| 平台代购 offline | 零售价 | 成本价（买家成本） |
| 代理自购 wallet | 零售价 | 成本价（自己的成本价） |
| 代理代购 wallet | 零售价 | 操作方成本价 |
| 赠送套餐 offline | 零售价 | 0 |

**钱包扣款**：`createOrderWithWalletPayment` MUST 使用 `order.ActualPaidAmount` 作为扣款金额，不得使用 `order.TotalAmount`。

#### Scenario: 平台代购时 TotalAmount 为零售价

- **WHEN** 平台为代理商下属资产创建 offline 订单，套餐零售价 9900 分，代理成本价 7000 分
- **THEN** `order.total_amount = 9900`，`order.actual_paid_amount = 7000`

#### Scenario: 代理自购时 TotalAmount 为零售价

- **WHEN** 代理商以 wallet 支付为自己的资产购买套餐，套餐零售价 9900 分，代理成本价 7000 分
- **THEN** `order.total_amount = 9900`，`order.actual_paid_amount = 7000`，钱包扣款 7000 分

#### Scenario: 代理代购时 TotalAmount 为零售价

- **WHEN** 上级代理以 wallet 支付为下级代理资产购买套餐，零售价 9900 分，操作方成本价 8000 分，买家成本价 7000 分
- **THEN** `order.total_amount = 9900`，`order.actual_paid_amount = 8000`（操作方实付），钱包扣款 8000 分

#### Scenario: 赠送套餐时 TotalAmount 为零售价

- **WHEN** 平台以 offline 方式赠送套餐（含赠送标记），套餐零售价 9900 分
- **THEN** `order.total_amount = 9900`，`order.actual_paid_amount = 0`

---

### Requirement: OrderItem 新增 CostPrice 字段

系统 SHALL 在 `tb_order_item` 中新增 `cost_price BIGINT NOT NULL DEFAULT 0` 字段，存储套餐成本单价快照。`unit_price` 字段 MUST 改为存储零售单价。

**字段规范**：
- `unit_price`：零售单价（分），所有场景均为套餐对外售价
- `cost_price`：成本单价（分），代购/钱包支付场景为买家实际成本；平台自营或赠送时为 0

**赋值来源**：`cost_price` 从 `itemUnitPriceMap`（成本价 map）中取值；`unit_price` 从零售价 map 中取值。

#### Scenario: 代理自购时 OrderItem 同时记录两种价格

- **WHEN** 代理商购买套餐，零售价 9900 分，成本价 7000 分
- **THEN** `order_item.unit_price = 9900`，`order_item.cost_price = 7000`

#### Scenario: 平台自营时 CostPrice 为 0

- **WHEN** 平台以 offline 方式为平台自营资产购买套餐，零售价 9900 分
- **THEN** `order_item.unit_price = 9900`，`order_item.cost_price = 0`

#### Scenario: 赠送套餐时 CostPrice 为 0

- **WHEN** 平台赠送套餐，零售价 9900 分
- **THEN** `order_item.unit_price = 9900`，`order_item.cost_price = 0`

---

### Requirement: 后台订单 API 响应格式更新

系统 SHALL 在后台订单创建响应中，`total_amount` 字段返回零售价，`actual_paid_amount` 字段返回成本价。

#### Scenario: wallet 订单响应 total_amount 为零售价

- **WHEN** 代理在后台创建 wallet 订单成功，零售价 9900 分，成本价 7000 分
- **THEN** 响应中 `total_amount = 9900`，`actual_paid_amount = 7000`
