提交
This commit is contained in:
1 parent
ee4abd361e
commit
c4cc7009e3
46 files changed
+16201
-9698
No files matched your search
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE biz_channel_service_order_txn
|
||||
ADD COLUMN refund_attachments TEXT NULL COMMENT '退款附件(逗号分隔URL)' AFTER remark;
|
||||
@@ -0,0 +1,127 @@
|
||||
# 渠道服务订单(gmcp)— 建单不带产品 + 编辑规则
|
||||
|
||||
**日期:** 2026-05-25
|
||||
**状态:** 已确认(方案 A + 编辑规则)
|
||||
**关联:** `2026-05-24-channel-service-order-multi-txn-design.md`
|
||||
|
||||
---
|
||||
|
||||
## 1. 背景与目标
|
||||
|
||||
「购买产品份数」(`gmcp`)订单应作为**渠道 + 协议**下的长期容器;每次实际购买通过**操作流水**(`purchase`)完成,且须经**财务确认**后生效。新增订单时不应录入产品明细,避免与「购买产品」流水入口重复,并防止用户误以为建单即已购买。
|
||||
|
||||
---
|
||||
|
||||
## 2. 方案 A:建单(新增)
|
||||
|
||||
### 2.1 前端(`channel-service-order/index.vue` 新增弹窗)
|
||||
|
||||
| 字段 | gmcp 新增 |
|
||||
|------|-----------|
|
||||
| 订单类型 | 必选(创建后不可改,沿用现有) |
|
||||
| 渠道 | 必选 |
|
||||
| 渠道协议 | 必选(须为渠道下生效中协议) |
|
||||
| 部门名称 | 可填 |
|
||||
| 备注 | 可填 |
|
||||
| 产品明细 / 购买合计 | **不展示、不校验、不提交** |
|
||||
|
||||
### 2.2 后端(`create_channel_service_order`)
|
||||
|
||||
- `order_type=gmcp` 时 **`products` 可选**,不传或空数组均允许。
|
||||
- 不调用 `_save_gmcp_product_rows`。
|
||||
- `purchase_total_amount` 初始为 `NULL` 或 `0`(与列表展示约定一致)。
|
||||
- `order_status` 仍为 `dsx`(待生效)。
|
||||
- 仍校验 `channel_agreement_id` 存在且协议生效。
|
||||
|
||||
### 2.3 购买入口(不变)
|
||||
|
||||
- 列表「购买产品」→ `POST /channel-service-orders/{id}/purchase` → `purchase` 流水 `dsx`。
|
||||
- 流水「发起财务确认」→ `dqr` → 财务确认 → `yqr` 后持仓与订单状态生效。
|
||||
|
||||
---
|
||||
|
||||
## 3. 编辑规则(gmcp,用户确认)
|
||||
|
||||
订单创建后(`dsx` 或 `sxz`,**非** `yzf`)允许编辑,字段权限如下:
|
||||
|
||||
| 字段 | 是否可改 | 条件 |
|
||||
|------|----------|------|
|
||||
| 渠道 | **否** | 始终只读(新增可选,编辑禁用) |
|
||||
| 渠道协议 | **条件可改** | 见 §3.1 |
|
||||
| 部门名称 | **是** | 任意非作废状态 |
|
||||
| 备注 | **是** | 任意非作废状态 |
|
||||
| 订单类型 | **否** | 沿用现有 `disabled` |
|
||||
| 产品明细 | **否** | 不在编辑弹窗维护;仅「购买产品」流水 |
|
||||
|
||||
### 3.1 「是否已有购买」— 锁定渠道协议
|
||||
|
||||
**定义:** 存在至少一条 **未作废** 的 `purchase` 类型流水(`txn_type=purchase` 且 `txn_status != yzf`)。
|
||||
|
||||
- **无购买流水:** 可修改 `channel_agreement_id`(须为新渠道下生效协议;渠道本身不可改)。
|
||||
- **已有购买流水:** `channel_agreement_id` 只读,后端拒绝变更。
|
||||
|
||||
**补充(历史数据):** 若订单无 `purchase` 流水但存在建单时写入的 `biz_channel_service_order_product` 行(旧逻辑迁移数据),视同「已有购买」,协议不可改。
|
||||
|
||||
**作废后:** 若所有 `purchase` 流水均为 `yzf` 且无有效持仓行,协议可再次修改(与「从未购买」一致)。
|
||||
|
||||
### 3.2 编辑入口与订单状态(已确认)
|
||||
|
||||
| 订单状态 | 中文 | gmcp 是否显示「编辑」 |
|
||||
|----------|------|----------------------|
|
||||
| `dsx` | 待生效 | 是 |
|
||||
| `sxz` | 生效中 | **是**(可改备注、部门;协议见 §3.1) |
|
||||
| `yzf` | 已作废 | 否 |
|
||||
|
||||
### 3.3 后端(`update_channel_service_order`)
|
||||
|
||||
- **gmcp + `yzf`:** 拒绝更新。
|
||||
- **gmcp + `dsx` / `sxz`:**
|
||||
- 允许更新 `dept_name`、`remark`。
|
||||
- `channel_id`:拒绝(或不接受该字段)。
|
||||
- `channel_agreement_id`:仅当 §3.1 判定「无购买」时允许;否则 `ValueError("已有购买流水,不可修改渠道协议")`。
|
||||
- **`products`:** 不再接受;若传入则忽略或 400(推荐拒绝,避免旧客户端误用)。
|
||||
- **移除** gmcp 下通过 PUT 整单替换产品明细的逻辑。
|
||||
|
||||
### 3.4 详情接口扩展(建议)
|
||||
|
||||
`GET /channel-service-orders/{id}` 增加只读字段,供前端控制协议下拉禁用:
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `agreementEditable` | boolean | 是否允许修改协议 |
|
||||
| `hasPurchaseTxn` | boolean | 是否存在未作废的 purchase 流水 |
|
||||
|
||||
---
|
||||
|
||||
## 4. yfk(预付款)— 本需求范围
|
||||
|
||||
- **新增:** 维持仅渠道 + 协议,不录充值金额(已有)。
|
||||
- **编辑:** 维持仅 `dsx` 可编辑;本 spec **不扩展** yfk 在 `sxz` 下改备注(除非后续单独需求)。
|
||||
|
||||
---
|
||||
|
||||
## 5. 前端编辑弹窗(gmcp)
|
||||
|
||||
- 与新增相同布局:**无产品明细区块**。
|
||||
- 渠道:`el-select` **disabled**。
|
||||
- 渠道协议:`:disabled="!agreementEditable"`(或 `hasPurchaseTxn`)。
|
||||
- 部门、备注:可编辑。
|
||||
- 提交 payload 仅含 `deptName`、`remark`、及条件允许时的 `channelAgreementId`;不传 `channelId`、`products`。
|
||||
|
||||
---
|
||||
|
||||
## 6. 不在本需求范围
|
||||
|
||||
- 调整 `create_purchase_txn` 在财务确认前是否预占 `current_qty`(与 multi-txn 文档「确认后累加」的差异,另开任务)。
|
||||
- 历史订单数据迁移脚本(仅新规则应用于新单与编辑校验;旧 `order_product` 按 §3.1 锁定协议)。
|
||||
- `yzf` 订单编辑。
|
||||
|
||||
---
|
||||
|
||||
## 7. 验收要点
|
||||
|
||||
1. gmcp 新增:仅渠道+协议+部门+备注,保存成功,详情无产品、无购买总额(或为 0)。
|
||||
2. gmcp 无购买前编辑:可改协议、部门、备注;渠道不可改。
|
||||
3. 发起一次「购买产品」后:协议控件禁用,仍可改部门、备注;后端改协议返回错误。
|
||||
4. gmcp `sxz` 订单仍显示编辑,可改备注与部门。
|
||||
5. 购买仅通过「购买产品」流水,财务确认前订单仍为待生效或生效中但持仓以流水状态为准(与现网一致)。
|
||||
Reference in new issue
Block a user