Files
platforms/docs/操作日志_用户端APP_供气订单详情_20260908.md
czl231 3ef33b531d 已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
2026-09-13 00:57:32 +08:00

51 lines
5.3 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-09-08。操作类型扩展。影响模块用户端订单、本人合同读取、供气签收。
## 行为变化
此前气瓶订单只有列表与通用操作。本次增加独立详情:历史气瓶明细、供气单位、配送员姓名、配送费、实际支付记录、状态发生时间及本人合同正文。订单列表点击详情进入 `/gas/orders/:identity`。只对待签收订单发布确认收货动作,用户确认后服务端事务记录本人签收、完成订单并释放气瓶占用;重复确认不重复写证据。
## 文件与职责
| 文件(相对仓库) | 函数及变更 |
| --- | --- |
| backend/api/internal/logic/client/user/gas_detail.go | GetGasOrder、GetGasContract所有权过滤、显式公开字段与统一状态动作 |
| backend/api/internal/logic/client/user/gas_confirm.go | ConfirmGasReceipt行锁、状态校验、签收证据、占用释放和历史记录 |
| backend/api/internal/logic/client/user/gasorder.go | ListGasOrders复用状态及动作定义 |
| backend/api/internal/models/gasorder_confirm.go | 中文注释补充user_app签收方式无表结构变更 |
| backend/api/internal/routers/client.go | 增加受保护详情、合同和签收路由,原接口兼容保留 |
| apps/user_app/lib/domain/models/gas_order_detail.dart | 强类型详情、整数分支付、合同正文模型 |
| apps/user_app/lib/data/repositories/client_repository.dart | gasOrderDetail、gasContractDetail、confirmGasReceipt会话与响应归属校验 |
| apps/user_app/lib/ui/features/orders/gas_order_sections.dart | 真实状态时间轴、服务资料、合同读取及失败重试 |
| apps/user_app/lib/ui/features/orders/shop_order_detail_page.dart | 兼容商城页面并增加供气分支 |
| apps/user_app/lib/ui/features/orders/order_action_handler.dart、orders_page.dart | 签收确认、稳定请求号重试、详情返回刷新 |
| apps/user_app/lib/app/router.dart | 本人供气订单深链与登录回跳 |
| scripts/compare-user-app-a1.ps1 | 图21气瓶与商城分支分别配对原图十五组对照对应十四张设计 |
新增后端测试gas_detail_test.go、gas_confirm_test.go、gas_receipt_remote_test.go前端test/data及test/ui/gas_order_detail_test.dart视觉Fixture明确与真实数据分离。
## 接口与边界
- `GET /heqi/client/v1/user/gas/orders/:identity``GET gas/contracts/:identity`JWT本人范围缺失或非本人1112匿名HTTP401。详情不返回内部主键、员工手机号、操作人身份或内部处理备注。
- `POST gas/orders/:identity/confirm-receipt`只接受request_no长度1—128仅状态34可签收已完成23幂等返回其他状态1704。收货人取当前账户不能由请求冒用写入user_app证据不伪造手写签名或图片。
- 合同仅阅读既有正文附件地址不外泄完整合同列表筛选、签署和附件下载仍未完成不能把正文弹层计为图32完整页面。
- 支付记录只读本订单、本付款人的成功支付不能从履约状态推断实付。订单无押金、ETA及受控联系方式契约时不填设计演示数值。
## 验证证据
- 本轮Go全量测试、vet和API构建通过Flutter全量98项及analyze通过。时间轴调整后analyze与5项详情定向测试再次通过。
- 气瓶/商城订单列表与详情32组布局检查通过时间轴调整后图21-gas的320/360/390/430宽度、1.0/1.3字号8组再次通过。已实际查看390常规、320大字体及最新原图常规宽度改为横向时间轴窄屏/大字体保留竖向完整历史。
- 一次不带`--update-goldens`的全视觉检查出现22项旧截图差异失败不能当成全视觉回归通过此次仅更新并核对气瓶详情8组。生成截图不等于1:1断言。
- 远程数据库显式回滚事务测试通过临时订单、气瓶、合同绑定、占用明细均在同一事务验证签收、重复确认、证据与占用释放再回滚并确认临时记录数为0。无迁移、种子或本机数据库/缓存操作。
- 真实HTTP读取MOCK-GASORDER-0011条气瓶、1条历史、1条支付配送费500分合同MOCK-CONTRACT-001正文读取成功。缺失订单1112、匿名401。没有对既有真实订单执行签收。
- 浏览器验证登录回跳、气瓶列表进入详情、读取合同正文及关闭。示例数据的完成时间早于建单时间保留原值并记录为数据异常不篡改历史。Web Release及Android Debug构建通过平台契约同步与检查通过48个资源。
## 视觉结论与维护
**图21仍未通过严格1:1。** 时间轴已按真实数据横向排列气站与商品分组、原始商品图片、押金、预计送达、地图配送、受控联系、完整售后和部分密度仍有差异。图32仍无完整对应页面。58图仍为14张部分实现、44张无完整页面、0张严格全功能验收通过。
证据:[气瓶详情对照](视觉验收/A1/21-gas_并排对照.png)、[390截图](视觉验收/A1/21-gas_390_1.0.png)、[320大字体](视觉验收/A1/21-gas_320_1.3.png)。
签收规则变更须同时回归原配送签收、订单占用释放与幂等。远程回滚测试默认跳过仅明确设置HEQI_REMOTE_RECEIPT_TEST=1时执行不得去掉外层回滚或运行全库初始化。新字段必须继续使用白名单和本人过滤。