From b4ce794de6a001df55402bfcc1cbb989625b4246 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 19 Mar 2026 14:48:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=80=E6=AC=BE=E6=94=BF=E7=AD=96ref?= =?UTF-8?q?und=5Ftype=20+=20=E4=BA=A7=E5=93=81=E5=A4=9A=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E6=94=BF=E7=AD=96=E7=BB=91=E5=AE=9A=EF=BC=88=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E8=AF=B4=E6=98=8E=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2026-03-19_refund_policy_no_refund_type.md | 125 ++++++++++++++++-- 1 file changed, 113 insertions(+), 12 deletions(-) diff --git a/changelogs/2026-03/2026-03-19_refund_policy_no_refund_type.md b/changelogs/2026-03/2026-03-19_refund_policy_no_refund_type.md index 61ee985..0686057 100644 --- a/changelogs/2026-03/2026-03-19_refund_policy_no_refund_type.md +++ b/changelogs/2026-03/2026-03-19_refund_policy_no_refund_type.md @@ -1,26 +1,28 @@ -# 退款政策新增 refund_type 字段 +# 退款政策 + 产品多退款政策绑定 **日期**: 2026-03-19 **类型**: 功能增强 -**影响模块**: 退款管理 → 退款政策 +**影响模块**: 退款管理 → 退款政策、产品管理 → 产品设计 --- -## 变更说明 +## 一、退款政策新增 refund_type 字段 -退款政策表新增 `refund_type` 字段,支持按退款类型区分不同的退款政策。 +### 变更说明 -## 数据库变更 +退款政策表新增 `refund_type` 字段,区分定金/尾款/全款退款政策。同类型只能有一个默认政策。 + +### 数据库变更 ```sql ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL COMMENT '退款类型(字典:refund_type)DEPOSIT/BALANCE/FULL' AFTER policy_name; ``` -## 接口影响 +### 接口影响 -### 创建退款政策 `POST /order/refund-policy` -### 更新退款政策 `PUT /order/refund-policy/{policyId}` +#### 创建退款政策 `POST /order/refund-policy` +#### 更新退款政策 `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) | -### 查询退款政策(列表/详情) +#### 查询退款政策(列表/详情) 响应新增字段: @@ -36,7 +38,7 @@ ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL |------|------|------| | refundType | String | 退款类型(字典:refund_type) | -## 关联字典:refund_type +### 关联字典:refund_type | dict_value | dict_label | 说明 | |-----------|-----------|------| @@ -44,6 +46,105 @@ ALTER TABLE refund_policy ADD COLUMN refund_type VARCHAR(20) DEFAULT NULL | BALANCE | 尾款 | 尾款退款政策 | | 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 | 否 | 退款政策映射,key=退款类型,value=政策ID | + +请求示例: +```json +{ + "refundPolicyIds": { + "FULL": "1893012345678901234", + "DEPOSIT": "1893012345678901235", + "BALANCE": "1893012345678901236" + } +} +``` + +#### 查询产品详情 + +响应新增字段: + +| 字段 | 类型 | 说明 | +|------|------|------| +| refundPolicyIds | Map | 退款政策映射,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