feat: 订单费用增加项(surcharge)接口文档
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
4880e0ce42
当前提交
e2761ccfac
@ -0,0 +1,145 @@
|
||||
# 订单费用增加项(surcharge)
|
||||
|
||||
## 功能说明
|
||||
|
||||
新增"费用增加项"功能,与现有"优惠项"(discount)对称:
|
||||
- **优惠项**:减少尾款(-¥)
|
||||
- **费用增加项**:增加尾款(+¥),如升级房型补差价、加座费等
|
||||
|
||||
### 权限限制
|
||||
- **优惠项**:任意管理员可操作
|
||||
- **费用增加项**:仅该订单的**定制师本人**或**超级管理员(SUPER_ADMIN)**可操作
|
||||
|
||||
### 金额计算变更(破坏性变更)
|
||||
- **尾款** = 总价 - 定金 - 优惠总额 + **费用增加总额**
|
||||
- **全款** = 总价 - 优惠总额 + **费用增加总额**
|
||||
|
||||
---
|
||||
|
||||
## 接口清单
|
||||
|
||||
### 添加费用增加项
|
||||
- **POST** `/admin/order/{orderId}/surcharge`
|
||||
- **权限**:定制师本人 或 SUPER_ADMIN
|
||||
- **请求体**:`SurchargeRequest`
|
||||
- **响应**:`Result<OrderSurcharge>`
|
||||
|
||||
### 修改费用增加项
|
||||
- **PUT** `/admin/order/{orderId}/surcharge/{surchargeId}`
|
||||
- **权限**:定制师本人 或 SUPER_ADMIN
|
||||
- **请求体**:`SurchargeRequest`
|
||||
- **响应**:`Result<Void>`
|
||||
|
||||
### 删除费用增加项
|
||||
- **DELETE** `/admin/order/{orderId}/surcharge/{surchargeId}`
|
||||
- **权限**:定制师本人 或 SUPER_ADMIN
|
||||
- **响应**:`Result<Void>`
|
||||
|
||||
---
|
||||
|
||||
## SurchargeRequest 参数
|
||||
|
||||
| 字段 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| surchargeName | String | 是 | 费用增加项名称,如"升级房型补差价" |
|
||||
| surchargeAmount | BigDecimal | 是 | 费用增加金额,必须大于0 |
|
||||
|
||||
## OrderSurcharge 响应
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| surchargeId | String | 费用增加项ID |
|
||||
| orderId | String | 订单ID |
|
||||
| surchargeName | String | 费用增加项名称 |
|
||||
| surchargeAmount | BigDecimal | 费用增加金额 |
|
||||
| createTime | DateTime | 创建时间 |
|
||||
|
||||
---
|
||||
|
||||
## 订单详情/列表接口变更
|
||||
|
||||
### OrderDetailVO 新增字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| surchargeAmount | BigDecimal | 费用增加总额(缓存汇总值) |
|
||||
| surcharges | List\<OrderSurcharge\> | 费用增加项列表 |
|
||||
|
||||
### OrderListVO 新增字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| surchargeAmount | BigDecimal | 费用增加总额 |
|
||||
|
||||
### balanceAmount 计算变更
|
||||
|
||||
原来:`balanceAmount = totalPrice - depositAmount - discountAmount`
|
||||
现在:`balanceAmount = totalPrice - depositAmount - discountAmount + surchargeAmount`
|
||||
|
||||
---
|
||||
|
||||
## 页面布局建议
|
||||
|
||||
### 订单详情页 — 费用区域
|
||||
|
||||
在现有"优惠项"区域下方新增"费用增加项"区域:
|
||||
|
||||
```
|
||||
优惠项
|
||||
├ 会员折扣 -¥100.00 [编辑] [删除] ← 任意管理员可操作
|
||||
└ [+ 添加优惠项]
|
||||
|
||||
费用增加项
|
||||
├ 升级房型补差价 +¥200.00 [编辑] [删除] ← 仅定制师/超管可操作
|
||||
└ [+ 添加费用增加项] ← 仅定制师/超管可见
|
||||
|
||||
金额汇总
|
||||
总价: ¥3000.00
|
||||
优惠: -¥100.00
|
||||
增加: +¥200.00
|
||||
定金: ¥1000.00
|
||||
尾款: ¥2100.00 (3000 - 1000 - 100 + 200)
|
||||
```
|
||||
|
||||
### 权限判断
|
||||
|
||||
前端需要根据当前登录用户判断是否显示"添加/编辑/删除"费用增加项的按钮:
|
||||
- 当前用户 `roleKey === 'SUPER_ADMIN'` → 显示
|
||||
- 当前用户 `adminId === order.customizerId` → 显示
|
||||
- 其他情况 → 隐藏按钮
|
||||
|
||||
---
|
||||
|
||||
## 调用示例
|
||||
|
||||
### 添加费用增加项
|
||||
```json
|
||||
POST /admin/order/1234567890/surcharge
|
||||
{
|
||||
"surchargeName": "升级房型补差价",
|
||||
"surchargeAmount": 200.00
|
||||
}
|
||||
```
|
||||
|
||||
### 修改费用增加项
|
||||
```json
|
||||
PUT /admin/order/1234567890/surcharge/9876543210
|
||||
{
|
||||
"surchargeName": "升级豪华房型补差价",
|
||||
"surchargeAmount": 300.00
|
||||
}
|
||||
```
|
||||
|
||||
### 删除费用增加项
|
||||
```
|
||||
DELETE /admin/order/1234567890/surcharge/9876543210
|
||||
```
|
||||
|
||||
### 错误响应示例(权限不足)
|
||||
```json
|
||||
{
|
||||
"code": 500,
|
||||
"message": "仅超级管理员或该订单的定制师可操作费用增加项",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户