4.8 KiB
4.8 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 | 6241 | 供应商资质类型字典化及证件编号公司级校验 | admin | lc(GIT) | 修改接口 | deployed | verified | verified | mmg | a3ef713b | 2026-08-24 | PR #6254 已合并 dev-v3,合并提交 b17ace883 已随 Resource 双实例滚动部署到 TEST。供应商新增、编辑和提交统一校验 company_qualification_type 生效字典值及证件编号通用安全格式;权威/国家核验按确认口径降级为公司级校验。 | 2026-08-24 | dev-v3 |
供应商资质类型字典化及证件编号公司级校验
供应商资质写入不再接受任意资质类型。新增、编辑和提交均以 User 服务的 company_qualification_type 生效项为准,并通过公共校验组件统一处理证件编号。
本次“核验”仅表示输入符合公司系统的格式和安全约束,不代表证照真实存在,也不声明已通过国家平台或第三方权威核验。
变更接口
| 方法 | 路径 | 行为变化 |
|---|---|---|
| POST | /admin/supplier/items/add |
显式资质类型必须是生效字典值;草稿证件编号可空,非空时校验通用格式 |
| PUT | /admin/supplier/items/{supplierId}/update |
新增或显式修改的资质类型、证件编号执行同一规则;未传类型的历史资质保持兼容 |
| POST | /admin/supplier/items/{supplierId}/submit |
提交时每项资质必须有合法证件编号;营业执照快捷影像也受字典门禁约束 |
请求和响应字段结构未变化。qualType 仍提交字符串,但其值必须来自:
GET /admin/dict/data/company_qualification_type
当前 TEST 已启用以下五项:
| 字典值 | 标签 |
|---|---|
BUSINESS_LICENSE |
营业执照 |
INDUSTRY_LICENSE |
行业经营许可证 |
FOOD_OPERATION_LICENSE |
食品经营许可证 |
PUBLIC_HEALTH_LICENSE |
公共场所卫生许可证 |
FIRE_SAFETY_CERTIFICATE |
消防安全证明 |
证件编号规则
- 自动去除首尾空白,最大为 128 个 UTF-8 字节。
- 允许 Unicode 字母、数字及常见中英文证照分隔符。
- 排除空白、控制字符及可组成 HTML 标签的半角尖括号。
- 草稿允许为空;提交审批时每项资质必须填写。
- 读取仍只返回脱敏证件号,不返回明文。
新增业务错误码
| 错误码 | 含义 | 前端处理建议 |
|---|---|---|
395040 |
资质类型不合法或已停用 | 刷新 company_qualification_type 字典并要求用户重新选择 |
395041 |
证件编号格式不合法 | 保留表单,提示用户修正编号;提交场景同时检查是否为空 |
业务失败可能仍使用 HTTP 200,客户端必须同时判断统一响应的 code、success 和 data。
兼容性与前端事项
- 不新增数据库 migration、配置、Redis、MQ 或跨服务写入。
- 既有历史自由文本资质可以读取;编辑既有项且不传
qualType时不会被强制改写。 - 前端应将资质类型自由输入改为
company_qualification_type字典选择,并只提交dictValue。 - 前端无需修改字段名、JSON 类型或接口路径。
验证证据
- 自动化:Resource 全量 1925 项零失败(38 项仓库既有条件跳过);#6241 定向 35 项零失败;独立审计 48 项零失败。
- 部署:TEST 部署任务退出码 0,
hl-resource-service的 8182、8082 双实例依次健康;服务器部署 HEAD04a6dba66明确包含合并提交b17ace883和功能提交bc899930e。 - 真实 Gateway:非法资质类型返回“资质类型不合法或已停用”,非法证件编号返回“证件编号格式不合法”,两次失败后列表仍为原 3 条。
- 真实 Gateway:使用五个生效字典值和多种常见编号格式成功创建草稿;详情页五个证件号均为脱敏值。
- 清理:TEST 草稿删除成功,供应商列表恢复原 3 条,未留下测试数据。
撤回
- 从最新
dev-v3创建回退分支,revert #6254 合并提交b17ace88399269710ea515e9b19e63a159b888c9,经独立 PR 合入。 - 重新构建并滚动部署
hl-resource-service;无需恢复数据库、User 字典、配置、Redis 或 MQ。 - 回退后既有资质数据保持可读,不做数据回写;写接口会恢复为旧的自由文本行为。
- 经 Gateway 重跑新增、编辑、提交、非法类型、非法编号和读取脱敏用例,并核对失败零写入。