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