hl-api-changelog/changelogs-v2/2026-06/04_3440_审计batch修复-校验收紧+行为修正-管理后台+小程序.md
API Changelog Bot a3d9a5fe1a fix(审计batch): wx近5天代码审计 batch 修复前端可见变化(PR #3442)
校验收紧(gender/status/pageSize→400) + SERVICE退费说明进快照 + 小蒙马最早可售日修正。
2026-06-04 12:33:04 +08:00

5.0 KiB

【批量修复·管理后台 + 小程序】wx 近5天代码审计 batch 修复(前端可见的校验收紧 + 行为修正)

PR: #3442 | 关联工单: #3440 服务: hl-product-service-v2 / hl-resource-service / hl-fleet-service / hl-user-service / hl-order-service-v2 | 更新时间: 2026-06-04

存放目录: changelogs-v2/2026-06/ 影响范围: 多处后端 bug 修复,本篇仅列前端可观察到的变化(校验收紧 / 展示行为修正);纯内部修复不在此列


⚠️ 关键说明

本批修复源自一次代码审计,多为后端内部纠错(无前端影响)。下面只列前端需要知道的 4 处

  1. 几处入参新增字典校验(传非法值会从"静默落库"变成 400 报错)——前端表单须传字典值。
  2. 内部员工站内信列表 pageSize 上限 100(超过返 400
  3. 服务类SERVICE资源的退费说明现在会进产品行程聚合 / 订单快照——前端行程/订单详情可能多展示出 SERVICE 节点的退费说明。
  4. 小程序小蒙马"最早可售日"修正——已售罄(满团)但出发日在未来的班期不再被当作"最早可售日"。

1. 入参校验收紧(传非法值 → 400

# 接口 字段 新校验 说明
1 司机档案新增/编辑admin gender 1=男 / 2=女(可空) 原仅长度校验,可存"男/0/AB"脏值;现非字典值返 400
2 出行人保存mp/admin TravelerRequest gender 0=未知 / 1=男 / 2=女 原无范围校验,可存 '3'/'99';现非字典值返 400
3 车型价格日历 设置/改状态admin status AVAILABLE / CLOSED 原无字典校验;现非字典值返 400

前端动作:上述表单提交前确保 gender/status 传字典值(与全系统性别字典 1=男/2=女/0=未知、价格日历两态一致)。若此前已按字典传值,则无影响

示例gender 非法)

POST /admin/fleet/driver  body 含 "gender":"男"
→ { "code": 400, "message": "性别只能 1=男/2=女" }

2. 内部员工站内信列表 pageSize 上限 100

GET /admin/message/list

补了入参校验,pageSize 超过 100 返 400原校验未生效可超量查

测试服实测

GET /admin/message/list?page=1&pageSize=10      → code 200正常
GET /admin/message/list?page=1&pageSize=100000  → code 400「每页条数不能超过100」

另:内部员工站内信目前仅 SYSTEM 一类#3427 已固定),categoryCode 传 HOUSE/ORDER 过滤结果恒空、markCategoryRead 传 HOUSE/ORDER 恒更新 0 行;建议列表 categoryCode 留空查全部。Swagger 文档已同步标注。


3. SERVICE服务类资源退费说明进入行程聚合 / 订单快照

服务类资源service_item此前已支持配置退费说明#3407,但产品行程节点聚合接口漏填了 SERVICE 的退费说明,导致admin 服务详情能看到退费说明,但它进不了产品行程聚合 → 冻不进订单快照 → 司机行程单/订单详情看不到。

本次已补齐:SERVICE 资源的退费说明现在与 SCENIC/ACTIVITY 一样,会随产品行程聚合下发,并在下单时冻进订单快照

前端动作:产品行程详情 / 订单详情中,挂在 SERVICE 节点上的资源现在可能多出 refundNote(退费说明)字段,按既有 SCENIC/ACTIVITY 的退费说明渲染逻辑展示即可。


4. 小程序小蒙马"最早可售日"修正

小蒙马产品的"最早可售日"findEarliestAvailableBatchDate)原仅按"出发日在未来 + 报名窗口未关"判定,不看库存,导致已售罄(持久 FULL但出发日在未来的班期被错误当成"最早可售日"。

已修正为**按展示态 == 报名中(含库存判定)**取最早可售班期。

前端动作:无需改动,小程序展示的"最早可售日"会自动变准(排除满团班期)。


5. 其他(无前端影响,仅备案)

  • product-v2复制产品时 GROUP 班期状态重置为"报名中"(原沿用源终态致复制出已满/已取消班期)。
  • product-v2admin 增加行程天 / 上下架去掉了误伤连续操作的幂等节流(原同管理员 5 秒内第二次操作被"请勿重复提交"拦),不影响接口契约。
  • resourceServiceUpdateRequest.vehicleType 长度上限统一为 32原有矛盾的 32/500 双重校验,实际一直生效 32
  • order-v2删除一个 0 调用死方法(无行为变化)。

6. 验证

  • 各模块编译 + 相关单测通过product-v2 +37 / resource +2 含售罄班期不选、复制重置、SERVICE refundNote 填充等回归)。
  • 5 服务部署测试服 + 双实例 health UP;API 实测 pageSize 上限 400 已生效。

7. 关联 / 联系人

  • 本次 PR#3442Closes #3440
  • 后端负责人@wx
  • 前端对接(管理后台 + 小程序)mmg