文件
hl-api-changelog/changelogs-v2/2026-08/24_6257_供应商初始收款账户最多一项-修改接口-管理后台.md
T
2026-08-24 16:56:11 +08:00

70 行
4.5 KiB
Markdown

---
schema: "hl-changelog/v2"
ticket: "6257"
title: "供应商初始收款账户最多一项"
consumer: "admin"
author: "lc(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "a3ef713b"
target_release: ""
verified_at: "2026-08-24"
status_note: "PR #6259 已合并 dev-v3,合并提交 1b74ad719 已随 Resource 双实例滚动部署到 TEST。创建供应商草稿和提交注册共享的 initialAccounts 现最多一项;历史多账户草稿即使省略账户快照,也会在审批创建前失败关闭。"
updated_at: "2026-08-24"
base: "dev-v3"
---
# 供应商初始收款账户最多一项
供应商注册流程中的初始收款账户从“最多 50 项”收紧为“最多 1 项”。创建草稿与提交注册使用同一请求结构和服务端门禁,不能通过绕过 Bean Validation 或省略提交快照继续保留多个初始账户。
## 变更接口
| 方法 | 路径 | 行为变化 |
|---|---|---|
| POST | `/admin/supplier/items/add` | `initialAccounts` 为 `null`、空集合或单元素时允许继续;二项及以上拒绝,供应商主体和账户均不写入 |
| POST | `/admin/supplier/items/{supplierId}/submit` | 显式账户快照最多一项;省略快照时会锁定并检查草稿现有账户,历史多账户草稿在创建审批前拒绝提交 |
`initialAccounts` 字段名、JSON 类型和响应结构均未变化。
## 校验与错误语义
- 请求包含二项及以上初始账户时,参数校验消息为 `初始收款账户最多1项`。
- 绕过 Controller 直接调用 Service 时仍执行同一数量门禁。
- 历史草稿已有多个初始账户且提交请求省略 `initialAccounts` 时,返回既有业务错误码 `395009`,消息为 `请修正随单收款账户后重新提交注册`。
- 失败发生在主体、账户、审计和审批写入之前,供应商保持草稿状态。
- 业务失败可能仍使用 HTTP 200,客户端必须同时检查统一响应的 `code`、`success`、`message` 和 `data`。
## 未变化的接口与兼容性
- 独立账户接口 `POST /admin/supplier/items/{supplierId}/bank-accounts/add` 仍支持每批 1 至 50 项,不受本次注册初始账户上限影响。
- 历史多账户草稿不会被自动删除或批量清理;用户可在完整提交快照中收敛为零或一个账户后继续注册。
- 已生效供应商的多账户维护能力不变。
- 不新增数据库 migration,不修改配置、Redis、MQ、Gateway、审批状态机或跨服务契约。
- 管理端当前仍需将旧的“最多 50 项”注册提示和交互改为最多一项;该前端工作不在本次后端工单范围内。
## 验证证据
- 自动化:#6257 定向 38 项零失败;Resource 全量 1928 项零失败(38 项仓库既有条件跳过);合并提交独立审计再跑 38 项零失败。
- 部署:TEST 部署任务退出码 0,`hl-resource-service` 的 8182、8082 双实例依次健康;服务器部署 HEAD `22be9bd8d` 明确包含合并提交 `1b74ad719` 和功能提交 `d95386706`。
- 真实 Gateway:二账户创建返回 `初始收款账户最多1项`,列表数量不变;单账户创建成功。
- 历史兼容:预置二账户草稿,提交表单省略 `initialAccounts` 时返回 `请修正随单收款账户后重新提交注册`,列表仍显示草稿且未进入审批。
- 清理:两条成功创建的 TEST 草稿均删除成功,供应商列表从 5 条恢复到原 3 条。资质表单上传的一份合成 SVG 由文件服务即时落入 TEST OSS,未关联任何供应商且不含真实证照或敏感信息;当前业务界面没有附件删除入口,已作为无业务关联测试附件残留登记。
## 撤回
1. 从最新 `dev-v3` 创建回退分支,执行 `git revert -m 1 --no-edit 1b74ad719d535244350bb41f78d29644b539e684`,经独立 PR 合入。
2. 重新构建并滚动部署 `hl-resource-service`;无需恢复数据库、配置、Redis 或 MQ。
3. 回退后创建与提交的 `initialAccounts` 上限恢复为 50;现有表结构、历史草稿和已生效供应商账户数据保持兼容,不做数据回写。
4. 经 Gateway 复测空账户、单账户、二账户、历史多账户草稿省略快照,以及独立批量新增 1 至 50 个账户。
## 关联 / 联系人
- **Issue**: [#6257](https://git.1814.love:8443/wx/HL/issues/6257)
- **PR**: [#6259](https://git.1814.love:8443/wx/HL/pulls/6259)
- **合并提交**: [1b74ad719](https://git.1814.love:8443/wx/HL/commit/1b74ad719d535244350bb41f78d29644b539e684)
- **后端负责人**: @lc