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

5.3 KiB
Raw Permalink Blame History

用户端供气订单详情开发与验证

操作时间: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-001:1条气瓶、1条历史、1条支付,配送费500分;合同MOCK-CONTRACT-001正文读取成功。缺失订单1112、匿名401。没有对既有真实订单执行签收。
  • 浏览器验证登录回跳、气瓶列表进入详情、读取合同正文及关闭。示例数据的完成时间早于建单时间,保留原值并记录为数据异常,不篡改历史。Web Release及Android Debug构建通过;平台契约同步与检查通过48个资源。

视觉结论与维护

图21仍未通过严格1:1。 时间轴已按真实数据横向排列;气站与商品分组、原始商品图片、押金、预计送达、地图配送、受控联系、完整售后和部分密度仍有差异。图32仍无完整对应页面。58图仍为14张部分实现、44张无完整页面、0张严格全功能验收通过。

证据:气瓶详情对照、390截图、320大字体。

签收规则变更须同时回归原配送签收、订单占用释放与幂等。远程回滚测试默认跳过,仅明确设置HEQI_REMOTE_RECEIPT_TEST=1时执行;不得去掉外层回滚或运行全库初始化。新字段必须继续使用白名单和本人过滤。