feat: 退款政策refund_type + 产品多退款政策绑定(详细变更说明)
这个提交包含在:
父节点
18f072bb29
当前提交
b4ce794de6
@ -1,26 +1,28 @@
|
|||||||
# 退款政策新增 refund_type 字段
|
# 退款政策 + 产品多退款政策绑定
|
||||||
|
|
||||||
**日期**: 2026-03-19
|
**日期**: 2026-03-19
|
||||||
**类型**: 功能增强
|
**类型**: 功能增强
|
||||||
**影响模块**: 退款管理 → 退款政策
|
**影响模块**: 退款管理 → 退款政策、产品管理 → 产品设计
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 变更说明
|
## 一、退款政策新增 refund_type 字段
|
||||||
|
|
||||||
退款政策表新增 `refund_type` 字段,支持按退款类型区分不同的退款政策。
|
### 变更说明
|
||||||
|
|
||||||
## 数据库变更
|
退款政策表新增 `refund_type` 字段,区分定金/尾款/全款退款政策。同类型只能有一个默认政策。
|
||||||
|
|
||||||
|
### 数据库变更
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL
|
ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL
|
||||||
COMMENT '退款类型(字典:refund_type)DEPOSIT/BALANCE/FULL' AFTER policy_name;
|
COMMENT '退款类型(字典:refund_type)DEPOSIT/BALANCE/FULL' AFTER policy_name;
|
||||||
```
|
```
|
||||||
|
|
||||||
## 接口影响
|
### 接口影响
|
||||||
|
|
||||||
### 创建退款政策 `POST /order/refund-policy`
|
#### 创建退款政策 `POST /order/refund-policy`
|
||||||
### 更新退款政策 `PUT /order/refund-policy/{policyId}`
|
#### 更新退款政策 `PUT /order/refund-policy/{policyId}`
|
||||||
|
|
||||||
请求参数新增:
|
请求参数新增:
|
||||||
|
|
||||||
@ -28,7 +30,7 @@ ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL
|
|||||||
|------|------|------|------|
|
|------|------|------|------|
|
||||||
| refundType | String | 否 | 退款类型(字典:refund_type) |
|
| refundType | String | 否 | 退款类型(字典:refund_type) |
|
||||||
|
|
||||||
### 查询退款政策(列表/详情)
|
#### 查询退款政策(列表/详情)
|
||||||
|
|
||||||
响应新增字段:
|
响应新增字段:
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL
|
|||||||
|------|------|------|
|
|------|------|------|
|
||||||
| refundType | String | 退款类型(字典:refund_type) |
|
| refundType | String | 退款类型(字典:refund_type) |
|
||||||
|
|
||||||
## 关联字典:refund_type
|
### 关联字典:refund_type
|
||||||
|
|
||||||
| dict_value | dict_label | 说明 |
|
| dict_value | dict_label | 说明 |
|
||||||
|-----------|-----------|------|
|
|-----------|-----------|------|
|
||||||
@ -44,6 +46,105 @@ ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL
|
|||||||
| BALANCE | 尾款 | 尾款退款政策 |
|
| BALANCE | 尾款 | 尾款退款政策 |
|
||||||
| FULL | 全款 | 全款退款政策 |
|
| FULL | 全款 | 全款退款政策 |
|
||||||
|
|
||||||
## 前端处理
|
### 业务规则
|
||||||
|
|
||||||
编辑退款政策弹窗中的"退款类型"下拉框,从字典 `refund_type` 加载选项,保存时传 `refundType` 字段,回显时从接口返回的 `refundType` 取值即可。
|
- 退款政策必须指定退款类型
|
||||||
|
- 同一退款类型下,**只能有一个默认政策**
|
||||||
|
- 不同退款类型可以各有自己的默认政策
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、产品支持多退款政策绑定
|
||||||
|
|
||||||
|
### 变更说明
|
||||||
|
|
||||||
|
产品现在支持按退款类型绑定不同的退款政策。例如:
|
||||||
|
- 全款支付方式 → 绑定一个 FULL 类型的退款政策
|
||||||
|
- 定金+尾款支付方式 → 分别绑定 DEPOSIT 和 BALANCE 类型的退款政策
|
||||||
|
|
||||||
|
### 数据库变更
|
||||||
|
|
||||||
|
```sql
|
||||||
|
ALTER TABLE product ADD COLUMN refund_policy_ids TEXT DEFAULT NULL
|
||||||
|
COMMENT '退款政策映射JSON' AFTER refund_policy_id;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 接口影响
|
||||||
|
|
||||||
|
#### 创建/更新/保存产品
|
||||||
|
|
||||||
|
请求参数新增:
|
||||||
|
|
||||||
|
| 参数 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| refundPolicyIds | Map<String, String> | 否 | 退款政策映射,key=退款类型,value=政策ID |
|
||||||
|
|
||||||
|
请求示例:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"refundPolicyIds": {
|
||||||
|
"FULL": "1893012345678901234",
|
||||||
|
"DEPOSIT": "1893012345678901235",
|
||||||
|
"BALANCE": "1893012345678901236"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 查询产品详情
|
||||||
|
|
||||||
|
响应新增字段:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| refundPolicyIds | Map<String, String> | 退款政策映射,key=退款类型,value=政策ID |
|
||||||
|
|
||||||
|
响应示例:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"refundPolicyIds": {
|
||||||
|
"FULL": "1893012345678901234",
|
||||||
|
"DEPOSIT": "1893012345678901235"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> 旧字段 `refundPolicyId`(单个ID)保留兼容,但建议迁移到 `refundPolicyIds`。
|
||||||
|
|
||||||
|
### 前端实现建议
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────┐
|
||||||
|
│ 退款政策配置 │
|
||||||
|
├─────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ 全款退款政策: [下拉选择: FULL类型政策] │
|
||||||
|
│ │
|
||||||
|
│ ── 以下仅"定金+尾款"支付方式显示 ── │
|
||||||
|
│ │
|
||||||
|
│ 定金退款政策: [下拉选择: DEPOSIT类型政策] │
|
||||||
|
│ │
|
||||||
|
│ 尾款退款政策: [下拉选择: BALANCE类型政策] │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
- 根据产品的**支付方式**决定显示哪些退款政策选择器
|
||||||
|
- 全款支付 → 只显示 FULL 类型的退款政策下拉
|
||||||
|
- 定金+尾款 → 显示 DEPOSIT 和 BALANCE 两个退款政策下拉
|
||||||
|
- 退款政策下拉列表调用 `GET /order/refund-policy/list`,按 `refundType` 字段过滤
|
||||||
|
- 保存时将选中的政策ID组装成 `refundPolicyIds` Map 传给后端
|
||||||
|
|
||||||
|
### 退款政策列表页
|
||||||
|
|
||||||
|
- 编辑弹窗中的"退款类型"下拉从字典 `refund_type` 加载
|
||||||
|
- 列表中"退款类型"列显示字典翻译值(DEPOSIT→定金,BALANCE→尾款,FULL→全款)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、已有数据处理
|
||||||
|
|
||||||
|
已自动迁移旧数据:
|
||||||
|
- 政策名含"定金" → refund_type = DEPOSIT
|
||||||
|
- 政策名含"尾款" → refund_type = BALANCE
|
||||||
|
- 政策名含"全款" → refund_type = FULL
|
||||||
|
- 其余 → refund_type = FULL
|
||||||
|
|||||||
正在加载...
x
在新工单中引用
屏蔽一个用户