hl-api-changelog/changelogs/2026-04/2026-04-18_product-v2_schedule-max-participants-required.md
API Changelog Bot 5260886383 feat: 班期保存 maxParticipants 强制必填校验 (PR #861)
PR #861: ScheduleSaveReqVO/ScheduleBatchCreateReqVO 加 @NotNull
错误消息从模糊的 '违反约束' 改为明确的 '最大参与人数不能为空'
2026-04-18 20:20:52 +08:00

1.6 KiB

班期保存 - 最大参与人数 强制必填校验

日期: 2026-04-18 PR: #861 → 合并到 dev 影响端: 管理后台 Web (hl-ui-admin) 影响接口:

  • POST /admin/product/item/{id}/schedule (Step4 创建班期)
  • PUT /admin/product/item/{id}/schedule (Step4 修改班期)
  • POST /admin/product/item/{id}/schedule/batch-create (Step4 班期批量创建)

背景

测试反馈:保存班期时填了价格、班期名、出发日,没填最大参与人数,后端报错"数据操作违反约束,请检查输入"——容易让运营误以为是价格问题。

根因是 ScheduleSaveReqVO.maxParticipants@NotNull 校验,NULL 直接打到 SQLgroup_tour_batch.max_participants 是 NOT NULL 列,DB 抛异常被全局兜底为模糊消息。

行为变化

场景 修复前 修复后
maxParticipants 不传或传 null {"code":400,"message":"数据操作违反约束,请检查输入"} {"code":400,"message":"最大参与人数不能为空"}
maxParticipants 传具体数字 200 入库 200 入库(无变化)

前端建议

maxParticipants 字段在表单上加 required + 数字校验,避免提交空值再被后端打回。文档中 ApiModelProperty(required=true) 一直存在,本次只是把 runtime 校验补齐。

ScheduleBatchCreateReqVO(批量创建)同步加了 @NotNull,前端表单一致处理。

不影响

  • 字段名、字段类型、字段语义不变
  • 其他字段校验规则不变
  • 业务流程Step4 班期生命周期)不变

🤖 Generated with Claude Code