changelog(#5867): 出行人智能批量导入纳入"至少一名成人填手机号"硬校验(581136,PR #5868)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
补充 #5855 changelog:smart-parse(dryRun=false 正式落库)与 5 个保存入口复用同一 成人手机门禁;dryRun=true 预览不校验。部署测试服网关实调通过:无成人手机导入被 581136 阻断且 DB 零写入,含 1 成人手机导入 200 放行落库。
这个提交包含在:
父节点
c2ec420f36
当前提交
627c4c8721
@ -31,14 +31,15 @@ base: "dev-v3"
|
|||||||
| 2 | `POST /v3/admin/order/{id}/traveler/batch-edit` | 新增服务端校验 | 批量编辑出行人保存时新增硬校验,触发返回 581136 |
|
| 2 | `POST /v3/admin/order/{id}/traveler/batch-edit` | 新增服务端校验 | 批量编辑出行人保存时新增硬校验,触发返回 581136 |
|
||||||
| 3 | `POST /v3/admin/order/{id}/traveler/add` | 新增服务端校验 | 单个新增出行人时新增硬校验,触发返回 581136 |
|
| 3 | `POST /v3/admin/order/{id}/traveler/add` | 新增服务端校验 | 单个新增出行人时新增硬校验,触发返回 581136 |
|
||||||
| 4 | `GET /v3/admin/order/{id}/traveler/validate` | 出参文案收紧 | `blockReasons[]` 文案由"至少需要一名出行人填写手机号"收紧为"至少需要一名成人出行人填写手机号",判定口径同步收紧 |
|
| 4 | `GET /v3/admin/order/{id}/traveler/validate` | 出参文案收紧 | `blockReasons[]` 文案由"至少需要一名出行人填写手机号"收紧为"至少需要一名成人出行人填写手机号",判定口径同步收紧 |
|
||||||
|
| 5 | `POST /v3/admin/order/{id}/traveler/smart-parse` | 新增服务端校验 | 智能批量导入(`dryRun=false` 正式落库)保存时新增硬校验,触发返回 581136(#5867 补入,与 5 入口同一门禁) |
|
||||||
|
|
||||||
> 说明:删除出行人接口**不**加此校验。入参 / 出参结构、字段名、类型均无变化。
|
> 说明:删除出行人接口**不**加此校验;智能导入的 `dryRun=true` 预览模式**不**校验(仅解析不落库)。入参 / 出参结构、字段名、类型均无变化。
|
||||||
|
|
||||||
## 3. 接口详情
|
## 3. 接口详情
|
||||||
|
|
||||||
| 项 | 值 |
|
| 项 | 值 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 方法 + 路径 | `PUT /v3/admin/order/{id}/traveler-info`;`POST /v3/admin/order/{id}/traveler/batch-edit`;`POST /v3/admin/order/{id}/traveler/add`;`GET /v3/admin/order/{id}/traveler/validate` |
|
| 方法 + 路径 | `PUT /v3/admin/order/{id}/traveler-info`;`POST /v3/admin/order/{id}/traveler/batch-edit`;`POST /v3/admin/order/{id}/traveler/add`;`GET /v3/admin/order/{id}/traveler/validate`;`POST /v3/admin/order/{id}/traveler/smart-parse` |
|
||||||
| 使用场景 | 管理后台订单详情 - 出行人 Tab:补全出行信息 / 批量编辑 / 单个新增 / 保存前校验 |
|
| 使用场景 | 管理后台订单详情 - 出行人 Tab:补全出行信息 / 批量编辑 / 单个新增 / 保存前校验 |
|
||||||
| 认证 | 管理后台 JWT(admin 端) |
|
| 认证 | 管理后台 JWT(admin 端) |
|
||||||
| 幂等性 | PUT traveler-info 为全量同步天然幂等;batch-edit / add 为普通写操作 |
|
| 幂等性 | PUT traveler-info 为全量同步天然幂等;batch-edit / add 为普通写操作 |
|
||||||
@ -89,7 +90,7 @@ base: "dev-v3"
|
|||||||
|
|
||||||
| code | message | 触发条件 |
|
| code | message | 触发条件 |
|
||||||
|------|---------|----------|
|
|------|---------|----------|
|
||||||
| 581136 | 至少需要一名成人出行人填写手机号用于合同签署 | 保存后"最终生效的出行人集合"中没有任何一名成人(travelerType=ADULT)填写手机号;整个请求被拒,不写库 |
|
| 581136 | 至少需要一名成人出行人填写手机号用于合同签署 | 保存后"最终生效的出行人集合"中没有任何一名成人(travelerType=ADULT)填写手机号;整个请求被拒,不写库。适用接口:traveler-info 全量同步 / batch-edit 批量编辑 / add 单个新增 / smart-parse 智能批量导入(dryRun=false) |
|
||||||
|
|
||||||
## 8. 示例
|
## 8. 示例
|
||||||
|
|
||||||
@ -127,9 +128,9 @@ base: "dev-v3"
|
|||||||
|
|
||||||
## 9. 业务边界
|
## 9. 业务边界
|
||||||
|
|
||||||
- 适用:订单出行人的补全 / 批量编辑 / 单个新增保存。
|
- 适用:订单出行人的补全 / 批量编辑 / 单个新增 / 智能批量导入(`smart-parse` 且 `dryRun=false`)保存。
|
||||||
- 不适用:删除出行人接口(删除不加此校验,即使删完后无成人有手机也不拦截删除动作本身)。
|
- 不适用:删除出行人接口(删除不加此校验,即使删完后无成人有手机也不拦截删除动作本身);智能导入 `dryRun=true` 预览模式(仅解析不落库,不校验)。
|
||||||
- 特殊边界:校验看的是"保存后最终生效的集合",不是单条提交行——例如 batch-edit 把唯一有手机的成人 phone 清空,即使其他行不变也会触发 581136。
|
- 特殊边界:校验看的是"保存后最终生效的集合",不是单条提交行——例如 batch-edit 把唯一有手机的成人 phone 清空,即使其他行不变也会触发 581136。智能导入为**追加式**(最终集合 = 库中现有 + 本次解析行),只要合并后存在一名成人有手机即放行。
|
||||||
|
|
||||||
## 10. 修改前后对比
|
## 10. 修改前后对比
|
||||||
|
|
||||||
@ -151,10 +152,12 @@ base: "dev-v3"
|
|||||||
- 581136 通过 HTTP 200 + `code=581136` 返回(Result 约定),**不是** HTTP 4xx/5xx,前端拦截器按业务 code 处理。
|
- 581136 通过 HTTP 200 + `code=581136` 返回(Result 约定),**不是** HTTP 4xx/5xx,前端拦截器按业务 code 处理。
|
||||||
- `phone` 字段更新语义:`null`=保留原值,`""`=清空。前端表单回显时注意区分"未改动"与"主动清空"。
|
- `phone` 字段更新语义:`null`=保留原值,`""`=清空。前端表单回显时注意区分"未改动"与"主动清空"。
|
||||||
- 删除出行人不受此校验约束。
|
- 删除出行人不受此校验约束。
|
||||||
|
- 智能批量导入:仅 `dryRun=false` 正式落库时校验,`dryRun=true` 预览不校验;导入文本中无法识别手机号属正常,门禁统计的是"最终集合里是否有成人带手机",不是"每行是否都有手机"。
|
||||||
|
|
||||||
## 13. 关联 / 联系人
|
## 13. 关联 / 联系人
|
||||||
|
|
||||||
- Issue: https://git.1814.love:8443/wx/HL/issues/5855
|
- Issue: https://git.1814.love:8443/wx/HL/issues/5855
|
||||||
- PR: https://git.1814.love:8443/wx/HL/pulls/5858
|
- PR: https://git.1814.love:8443/wx/HL/pulls/5858
|
||||||
- Commit: https://git.1814.love:8443/wx/HL/commit/06f03e40c3
|
- Commit: https://git.1814.love:8443/wx/HL/commit/06f03e40c3
|
||||||
|
- 关联补充(智能批量导入纳入同一门禁):Issue https://git.1814.love:8443/wx/HL/issues/5867 | PR https://git.1814.love:8443/wx/HL/pulls/5868
|
||||||
- 后端负责人:腰苏图(yst)
|
- 后端负责人:腰苏图(yst)
|
||||||
|
|||||||
正在加载...
x
在新工单中引用
屏蔽一个用户