文件
hl-api-changelog/changelogs-v2/2026-09/09_7400_资源供应商解绑免原因-修改接口-管理后台.md
T
Mimingguang 9d573b9a81
changelog-filename-gate / validate (push) Failing after 2s
docs(changelogs-v2): #7400 前端 verified (hl-admin ref 02e17345)
2026-09-09 23:27:33 +08:00

5.7 KiB
原始文件 Blame 文件历史

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 7400 资源供应商解绑免原因 admin lc(GIT) 修改接口 deployed verified verified mmg 02e17345 2026-09-09 verified 2026-09-09 mmg(hl-admin 02e17345):SupplierRelationModal 解绑改确认框确定后直接 submitUnbind,body 仅两 expected 版本字段不带 changeReason;设置/改绑原因弹窗与必填校验保留,SCENIC 设置/改绑免原因(#7274/#7357)不动;resources.js 050 JSDoc 同步。scoped checkpoint 全绿(Vitest 全量+生产构建)。 2026-09-09 dev-v3

资源供应商解绑免原因

⚠️ 关键变化

资源管理解绑供应商时,changeReason 由必填改为可选;前端无需再弹出原因输入框,也不要补写默认原因。

二、变更接口清单

# 接口 方法 路径 变更类型 说明
1 解除资源供应商 POST /admin/supplier/resource-relations/{resourceModule}/{resourceId}/unbind 修改接口 changeReason 改为可选

三、接口详情

1. 解除资源供应商 POST /admin/supplier/resource-relations/{resourceModule}/{resourceId}/unbind

VO: SupplierResourceUnbindReqVO / Result<Void>

使用场景

资源管理页面确认解除当前供应商关系时调用。

入参

字段 位置 类型 必填 约束 说明
resourceModule Path String 是 现有资源模块编码 资源模块
resourceId Path String 是 正整数 资源 ID
expectedCurrentSupplierId Body String 是 正整数 当前关系返回的 supplierId
expectedRelationUpdateTime Body String 是 yyyy-MM-dd HH:mm:ss 当前关系返回的 updateTime
changeReason Body String 否 最长 500 字 省略、null、空串或空白均视为未填写

出参 Result<Void>

字段 类型 说明
code / message / success Integer / String / Boolean 业务结果
data null 成功时固定为空

请求示例

{"expectedCurrentSupplierId":"2000000000000000022","expectedRelationUpdateTime":"2026-09-09 10:01:00"}

响应示例

{"code":200,"message":"成功","data":null,"success":true}

空数据 / 降级响应

无空成功集合;关系不存在或必要依赖不可用时返回失败结果,不执行解绑。

错误响应

{"code":395014,"message":"数据已被他人修改,请刷新后重试","data":null,"success":false}

业务边界

  • 未登录返回 401;缺少任一版本字段或原因超过 500 字返回 400;关系不存在返回 395038。
  • 权限、数据范围、景区未完成订单门禁、幂等、并发版本与软删除规则不变;失败不改写关系或审计。

四、契约约束与正确调用方式

用户确认解绑后,直接提交当前关系的两个版本字段:

场景 payload
正确:省略原因 {"expectedCurrentSupplierId":"22","expectedRelationUpdateTime":"2026-09-09 10:01:00"}
兼容:继续传原因 {"expectedCurrentSupplierId":"22","expectedRelationUpdateTime":"2026-09-09 10:01:00","changeReason":"业务调整"}
错误:缺版本时间 {"expectedCurrentSupplierId":"22"} → 400

关系版本已变化返回 395014,应刷新当前关系后再由用户重试。业务失败可能仍为 HTTP 200,须判断响应体 code 和 success。

五、数据库行为

成功解绑仍按原逻辑软删除当前关系并追加供应商变更审计;省略原因时 supplier_change_log.change_reason 记录为 NULL,非空原因继续原样审计。无表结构或迁移变化。

六、边界行为

  • changeReason 省略、null、空串或纯空白均可解绑,且不生成虚构默认值。
  • changeReason 最长 500 字;501 字返回 400 且零写入。
  • 两个 expected* 字段仍必填;陈旧版本返回 395014 且零写入。
  • 景区已有未完成订单时继续按既有规则返回 395059,不允许解绑。

六.6、修改前后对比

字段 / 行为 改前 改后
changeReason 必填 可省略;非空请求继续兼容
关系版本、权限与业务门禁 必须满足 不变

六.7、影响评估

  • 是否破坏向后兼容: 否。
  • 前端是否必须同步上线: 是,移除解绑原因弹框及必填校验。
  • 前端 workaround 清理点: 删除为了满足旧契约而填写或生成解绑原因的逻辑。

七、不影响范围

  • 仅影响资源供应商解绑请求的 changeReason 必填性。
  • 设置与改绑契约、响应字段、错误码数值、数据库结构、Redis、MQ、Feign 和网关路由均不变。

八、测试环境已验证

TEST Gateway 已验证省略原因的解绑成功并恢复原关系基线;匿名、缺版本、501 字原因及陈旧版本请求均被拒绝且零写入,原有携带原因的解绑继续成功。

当前状态:后端已交付,待前端处理。

九、相关历史 PR

PR Issue 说明 是否仍有效
#7358 #7357 景区设置及改绑免原因,不覆盖解绑 是
#7401 #7400 全部资源供应商解绑免原因 是,最新

十、相关文档

关联 / 联系人

  • Merge commit:49a05cfb
  • 后端负责人:@lc