tasks.md 3.7 KB

Tasks: 平台订单状态受控调整

Feature: 018-order-status-admin Implementation status: 代码与自动化验证完成;真实数据库、真实 OMG 网关和预发布 UI 手工验收未在本地执行。

1. Backend contract and lifecycle

  • T001 新增仅包含四状态快照和原因的管理端请求 DTO,并校验范围、空白原因和 200 字上限。
  • T002 新增服务端状态上下文,统一返回允许的订单/配送目标及支付操作能力。
  • T003 实现订单状态 0→1→2→3、未支付取消和配送 NULL→0→1→2→3 白名单。
  • T004 使用订单、配送、支付、售后四字段旧快照执行 CAS,冲突时不产生日志、账单或积分副作用。
  • T005 将管理员送达与骑手送达收敛到统一完成逻辑,同步 state=3deliveryStatus=3sdTime 和幂等账单。
  • T006 实现线下收款及线下退款专用操作;退款同步订单三状态并复用幂等积分返还。
  • T007 加固旧 PUT /system/order,禁止写订单、配送、支付、售后和送达时间字段。
  • T008 为 7 个管理接口统一添加 system:order:edit 权限、请求频控和专用 DTO。

2. OMG payment and refund

  • T009 管理端补单复用 OMG 查询结果,仅在真实支付校验成功后同步订单支付状态。
  • T010 自动退款先 CAS 支付流水,成功后再同步 state=4/payStatus=2/afterSaleStatus=3
  • T011 网关结果未知时保持退款中并禁止重复调用;明确失败恢复已支付。
  • T012 不支持退款 API 的支付方式只创建一个人工待办,确认前订单保持已支付。
  • T013 人工退款二次确认通过支付流水 1→4→3 收口,并支持流水已完成后的本地状态补偿重试。
  • T014 网关成功但本地同步失败时写高优先级审计;异常日志只记录异常类型,不输出凭证或网关异常详情。

3. Admin frontend

  • T015 新增状态上下文、受控状态、线下收退款、OMG 补单/退款/人工确认 API 封装。
  • T016 将订单修改弹窗改为服务端白名单驱动,支付和售后状态保持只读。
  • T017 所有支付业务动作要求原因;退款及人工退款确认提供不可逆二次确认和加载态。
  • T018 列表、搜索、详情和弹窗接入 zh_CNzh_TWen_USvi 四语言文本。

4. Automated verification

  • T019 OrderLifecycleServiceTestPosOrderAdminStatusControllerTestOmgPayControllerTest:22 个用例通过。
  • T020 原有 PosOrderOmgPaymentServiceImplTestPosOrderOmgRefundServiceImplTest:5 个回归用例通过。
  • T021 Maven 聚焦测试过程完成全部依赖模块及 ruoyi-admin 编译,构建成功。
  • T022 管理后台 npm run build:prod 成功;仅保留两个既有 *.vue~ 文件及包体积警告。
  • T023 ESLint 全库脚本因既有 .eslintignoresrc 全部排除而不可运行;--no-ignore 对修改的两个业务文件核对为 317 项,基线为 339 项,未增加历史问题总数。
  • T024 服务端和管理端 git diff --check 通过;敏感字段日志模式扫描无命中。

5. Staging acceptance (requires environment and test data)

  • T025 在预发布环境用可恢复测试订单执行 quickstart.md 的 10 项手工场景。
  • T026 逐一切换四种语言,核对列表、详情、弹窗、确认框及错误提示无原始 key。
  • T027 使用只读 SQL 核对订单、操作日志、OMG 支付流水和退款流水;不得调用真实生产退款。

未完成的 T025~T027 属于环境验收,不阻塞代码实现完成;发布前仍必须执行。