hl-api-changelog/changelogs/2026-04/27_fix_admin-cost-item_status-endpoint-404.md

3.1 KiB

fix: 额外成本状态开关 404 已修复

日期: 2026-04-27 PR: #1479 (Closes #1477) 类型: BUG 修复 — 前端零改动, 自动生效 影响端: 管理后台 (admin) — 额外成本管理页


修复内容

之前的问题

蒋雨莲 (橙子) SUPER_ADMIN 在「额外成本」管理页点状态开关, 顶部弹红色 toast:

接口不存在: PUT /admin/cost/item/{id}/status

(其他 9 个资源模块 — 景区/酒店/车辆/餐厅/物资/服务人员/活动/服务项/客房 — 状态开关都正常, 只有额外成本(cost-item)报错。)

根因

后端 CostItemController 历史遗留漏写 PUT /admin/cost/item/{id}/status 端点。前端 useStatusApproval hook 双轨设计 (超管直更 / 非超管走审批) 中, 9/10 模块的超管端点都已实现, 唯独 cost 漏掉。

修复

后端补齐 PUT /admin/cost/item/{id}/status:

PUT /admin/cost/item/{costId}/status
Body: {"status": 0 | 1}
Response: {"code": 200, "message": "成功", "data": null}

校验:

  • 必须 SUPER_ADMIN 身份, 否则 400 (前端 useStatusApproval 已经在做角色判断, 一般触不到这个错)
  • status 必须 0 或 1, 否则 400 (@NotNull/@Min(0)/@Max(1))
  • 费用项不存在 → 404 「费用项不存在」
  • 费用项审批中 → 400 「审批中, 不可修改状态」 (沿用其他模块审批拦截)

前端动作

必须

hl-uiextraCharge.js:58 updateCostItemStatus 调用方式不变, 后端补齐端点后自动工作, 无需改前端代码。

验收

在测试服管理后台:

  1. 用 SUPER_ADMIN 账号登录
  2. 进「额外成本」管理页
  3. 点任意一行的状态开关
  4. 立即切换 (修前会弹「接口不存在」红 toast)

测试服已部署完成 (deploy_id b747855d, 2026-04-27 16:40)。

参考路径

文件
前端 API hl-ui/src/api/extraCharge.js 58 updateCostItemStatus
前端管理页 hl-ui/src/views/resource/extra-charge/index.vue 153 状态开关 onChange
前端 hook hl-ui/src/composables/useStatusApproval.js 50 双轨判断
后端 (新) hl-resource-service/.../cost/controller/CostItemController.java PUT /item/{id}/status

兄弟模块完整清单(对照)

模块 path 后端实现
cost-item PUT /admin/cost/item/{id}/status 本 PR 新加
scenic PUT /admin/scenic/spot/{id}/status 早已有
hotel PUT /admin/hotel/item/{id}/status 早已有
hotel/RoomType PUT /admin/hotel/room-type/{id}/status 早已有
vehicle PUT /admin/vehicle/model/{id}/status 早已有
restaurant PUT /admin/restaurant/item/{id}/status 早已有
supplies PUT /admin/supplies/item/{id}/status 早已有
staff PUT /admin/staff/{id}/status 早已有
activity PUT /admin/activity/item/{id}/status 早已有
serviceItem PUT /admin/service/item/{id}/status 早已有

关联

  • 反馈人: 蒋雨莲 (橙子) 2026-04-27
  • 后端 changelog: hl-backend-changelog/changelogs/2026-04/2026-04-27_resource_cost-item-status-endpoint.md