Files
platforms/docs/操作日志_配送点订单创建联动_20260823.md
2026-08-23 11:30:52 +08:00

49 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 操作日志:配送点订单创建联动
操作时间2026-08-23
操作类型:扩展、修改
影响模块5176 创建订单页、配送合同候选、用户地址候选、合同气瓶候选
## 操作前状态
- 页面挂载时并行加载所有关系,地址和气瓶不依赖所选合同。
- 配送后端忽略订单合同、合同用户地址和合同气瓶筛选参数。
- 地址候选退化显示唯一标识;合同气瓶无法区分当前名称、编码和类型。
- 切换合同不会清空旧地址和气瓶,可能填到最后才被服务端拒绝。
- 优惠金额没有非负前端约束,页面不展示金额预估。
## 具体操作
1. 合同候选增加当前配送点范围和可履约状态过滤。
2. 地址候选增加合同归属校验,并限定合同签约用户。
3. 合同气瓶候选增加合同归属、未解绑过滤和名称/编码/类型搜索。
4. 新增前端父子联动、默认地址选择、防抖搜索和请求版本守卫。
5. 切换合同时原子清空旧地址和气瓶,加载期间禁用控件及保存。
6. 联系人和联系电话继续独立手填;请求流水号继续按 5173 人工必填。
7. 优惠金额默认 0、禁止负数并展示服务端最终计算声明的金额预估。
8. 保存增加显式防重入、候选空态阻断和金额正数校验。
## 行为变化
- 变更前:候选看似可选,但服务端最终可能因跨合同或失效记录拒绝。
- 变更后:页面只展示当前合同有效候选,后端仍执行最终授权与一致性校验。
- 兼容性:不修改数据库和创建订单请求结构;三个列表接口仅新增可选筛选参数。
## 验证结果
- `go test ./api/internal/logic/delivery ./api/internal/logic/platform/gasorder`:通过;覆盖当前点范围、有效合同、合同用户地址和未解绑气瓶。
- `npm.cmd run type:check`:通过。
- `npm.cmd run resource-pages:check`:通过,详情 17、新建 9、编辑 5覆盖联动参数、可读候选、版本守卫、保存阻断和金额公式。
- `npm.cmd run contract:check`通过18 个资源。
- `npm.cmd run profile:check`:通过。
- `npm.cmd run build`通过2648 个模块完成生产构建。
- 后端已重新构建并恢复监听 12426旧程序保存在 `platform-api.before-order-linkage.exe`
- 应用内浏览器访问创建订单页被登录页拦截,未在未授权状态下填写或提交账号信息;页面交互需由现有已登录会话刷新后复核。
## 风险评估
- 快速切换合同:通过逐资源版本号丢弃旧响应。
- 伪造筛选参数:后端先校验合同属于当前配送点,并在创建时再次校验。
- 前端金额与服务端不同:页面明确标为预估,写入金额完全由服务端计算。
- 地址无联系人字段:保持独立必填快照,不生成虚假联系人数据。