文件
hl-api-changelog/changelogs-v2/2026-08/26_6343_供应商新建修改允许供应商类型为空-修改接口-管理后台.md
Mimingguang 33c0aa2c08
changelog-filename-gate / validate (push) Failing after 1s
chore(changelog): #6343 管理端 verified (ref=d84c6c25)
2026-08-26 14:16:40 +08:00

5.0 KiB

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base
hl-changelog/v2 6343 供应商新建修改允许供应商类型为空 admin lc(GIT) 修改接口 deployed verified verified mmg d84c6c25 2026-08-26 PR #6385 已合并 dev-v3,合并提交 b8d99f58 已部署到 TEST。供应商创建草稿的 types 可省略、传 null 或空数组;更新省略 types 保持原关系,显式空数组清空无资源占用的类型;注册提交仍至少需要一个类型。 2026-08-26 dev-v3

供应商新建修改允许供应商类型为空

供应商草稿阶段不再强制选择供应商类型。创建草稿可不传类型,编辑草稿也可显式清空全部未被资源占用的类型;注册提交的完整性门禁保持不变。

变更接口

方法 路径 行为变化
POST /admin/supplier/items/add types 省略、为 null 或空数组时均可创建无类型草稿;非空时继续校验最多 15 项、生效字典值和唯一性
PUT /admin/supplier/items/{supplierId}/update 省略 types 时保持原类型关系;显式传空数组时清空全部无资源占用的类型;非空快照继续执行原校验
POST /admin/supplier/items/{supplierId}/submit 行为不变:没有供应商类型时仍拒绝提交注册
GET /admin/supplier/items/{supplierId}/basic-info/view 无类型供应商的 types 返回空数组

字段名和 JSON 类型没有变化。types 非空时仍提交对象数组,类型值来自供应商类型生效字典。

校验与错误语义

  • 创建无类型草稿仅放宽草稿保存,不放宽注册提交、审批或状态机。
  • 更新显式清空前仍检查资源关系占用;存在有效资源关系的类型不能被移除,失败时主体、类型关系和审计保持零变化。
  • 无类型草稿提交继续返回既有业务错误码 395008,草稿状态和并发版本不变。
  • 非空类型继续校验最多 15 项、生效字典值、重复值和主类型约束。
  • 业务失败可能仍使用 HTTP 200,客户端必须同时检查统一响应的 code、success、message 和 data。

兼容性与前端事项

  • 管理端请求字段和响应结构不变,现有非空类型流程无需调整,因此无前端源码变更。
  • 无类型供应商仍可被列表和详情读取;客户端应兼容 types: []。
  • 不新增数据库 migration,不修改配置、Gateway、Redis、MQ、Nacos、Feign 或跨服务写入。
  • 本次不自动修改历史数据,也不绕过既有权限、数据范围、软删除、资源占用和审计规则。

验证证据

  • 合并后独立审计:#6343 相关跨层定向 153 项零失败;Resource 最新目标分支全量 2111 项零失败、38 项仓库既有条件跳过;git diff --check 通过。
  • TEST 运行态:服务器后端仓库为 dev-v3 的 1a16a5aec,包含合并提交 b8d99f58c;hl-resource-service 的 8082、8182 双实例均监听。
  • 真实 Gateway 正向:types 省略、null、空数组分别成功创建三个 DRAFT,详情均返回空类型数组;带一个生效类型的草稿创建成功。
  • 更新语义:省略 types 后原一项类型保持不变,显式 types: [] 后详情返回空数组。
  • 状态门禁:无类型草稿提交返回 395008,状态仍为 DRAFT、版本不变,确认零写入。
  • 权限门禁:未登录请求返回业务码 401,真实 CUSTOMIZER 返回 395002,两者均通过列表回读确认零写入;正向使用真实 SUPER_ADMIN 身份。
  • 清理:四条成功创建的 TEST 草稿全部删除;逐条详情返回 395001,按随机全名查询均为零条,没有留下测试业务数据。

撤回

  1. 从最新 dev-v3 创建回退分支,执行 git revert -m 1 --no-edit b8d99f58c84daa12ef50d68bcc3090f38f57a22d,经独立 PR 合入。
  2. 通过 Deploy Panel API 重新构建并滚动部署 hl-resource-service,复核 8082、8182 双实例和 Nacos 健康状态。
  3. 无数据库、配置、Redis 或 MQ 变更,不执行 DDL、DML、缓存清理或消息补偿;不要回退后续无关工单的提交或 migration。
  4. 回退前让调用方恢复创建时至少提交一个生效类型,并停止更新时发送 types: [];更新不改类型时继续省略该字段。
  5. 回退后经 Gateway 复测非空类型创建、更新省略保持、无类型创建拒绝、无类型提交拒绝、资源占用移除保护和越权零写入。

关联 / 联系人