diff --git a/changelogs-v2/2026-08/24_6257_供应商初始收款账户最多一项-修改接口-管理后台.md b/changelogs-v2/2026-08/24_6257_供应商初始收款账户最多一项-修改接口-管理后台.md new file mode 100644 index 00000000..15e421af --- /dev/null +++ b/changelogs-v2/2026-08/24_6257_供应商初始收款账户最多一项-修改接口-管理后台.md @@ -0,0 +1,69 @@ +--- +schema: "hl-changelog/v2" +ticket: "6257" +title: "供应商初始收款账户最多一项" +consumer: "admin" +author: "lc(GIT)" +change_type: "修改接口" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "" +frontend_ref: "" +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