diff --git a/changelogs/2026-03/2026-03-22_refund_policy_simplify.md b/changelogs/2026-03/2026-03-22_refund_policy_simplify.md index e55694f..458ec4b 100644 --- a/changelogs/2026-03/2026-03-22_refund_policy_simplify.md +++ b/changelogs/2026-03/2026-03-22_refund_policy_simplify.md @@ -58,36 +58,32 @@ --- -## 二、产品退款政策绑定格式变更 +## 二、产品退款政策绑定(按支付方式映射) -### `refundPolicyIds` 字段类型变更 +### `refundPolicyIds` 字段格式(Map,不变) -**之前(Map):** ```json { "refundPolicyIds": { - "DEPOSIT": "1", "FULL": "3", + "DEPOSIT": "1", "BALANCE": "4" } } ``` -**现在(List):** -```json -{ - "refundPolicyIds": ["1", "3", "4"] -} -``` +- key = 支付类型:`FULL`(全款)、`DEPOSIT`(定金)、`BALANCE`(尾款) +- value = 退款政策ID(从 `GET /admin/order/refund-policy/enabled` 获取) +- 退款政策本身不再区分类型,任何政策都可以绑定到任何支付类型 -**影响接口:** -- `POST /admin/product` — 创建产品 -- `PUT /admin/product/{id}` — 更新产品 -- `PUT /admin/product/{id}/save` — 保存产品(草稿) -- `GET /admin/product/{id}` — 产品详情(响应) +### 退款政策与支付方式的关系 -### 产品"预订须知"页面 -- **退款政策选择器**:从 Map 形式改为简单多选。调用 `GET /admin/order/refund-policy/enabled` 获取列表,选中的 policyId 数组直接存入 `refundPolicyIds` +| 支付方式 | 需要配置的退款政策 | +|---------|------------------| +| 全款支付 (FULL) | FULL | +| 定金+尾款 (DEPOSIT) | DEPOSIT + BALANCE | + +**上架/完成时自动校验**:系统根据产品的支付方式(`product_pricing.payment_type`)检查 `refundPolicyIds` 中是否配置了对应的退款政策。缺少则校验不通过。 --- @@ -98,7 +94,7 @@ | 字段 | 说明 | 选择来源 | |------|------|---------| | `bookingTermsId` | 预订条款 | `GET /admin/product/booking-terms/enabled` | -| `refundPolicyIds` | 退款政策(可多选) | `GET /admin/order/refund-policy/enabled` | +| `refundPolicyIds` | 退款政策(按支付方式映射) | `GET /admin/order/refund-policy/enabled` | | `warmTipsId` | 温馨提示 | `GET /admin/product/warm-tips/enabled` | | `insuranceSchemeId` | 保险方案 | 已有 | | `contractSchemeId` | 合同方案 | 已有 |