Files
junhong_cmp_fiber/openspec/specs/order-refund-exchange/spec.md
break c8052df8eb
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m30s
补充退款列表应当让本店铺的人看见
2026-08-18 11:44:30 +08:00

3.6 KiB
Raw Blame History

订单、退款与换货当前行为

Purpose

描述订单、退款、换货及订单套餐失效的当前可观察行为。

Requirements

Requirement: 订单、退款与换货状态门禁

系统 SHALL 仅允许待支付订单取消;退款申请按待审批、已通过、已拒绝、已退回流转,只有已退回申请可重新提交;换货按待填写信息、待发货、已发货、已完成或已取消流转,并拒绝与当前状态或流程类型不匹配的操作。

Scenario: 重复推进终态

  • GIVEN 退款或换货已进入不允许当前操作的状态
  • WHEN 再次审批、发货、完成、取消或重新提交
  • THEN 系统返回状态冲突且不重复改变资产、余额或业务状态

Requirement: 代理退款查询按所属店铺隔离

系统 SHALL 允许代理账号通过 GET /api/admin/refunds 查询其当前所属店铺的全部退款申请,并通过 GET /api/admin/refunds/{id} 查询其中任一申请详情,不以申请创建账号作为查询条件。该范围 SHALL 不包含下级代理店铺、其他店铺或未关联店铺的退款申请;代理账号未关联店铺时,列表 SHALL 为空且详情 SHALL 返回不存在。平台和超级管理员的既有退款查询范围 SHALL 保持不变。

Scenario: 查看同店铺其他账号提交的退款

  • GIVEN 当前代理所属店铺存在由另一账号创建的退款申请
  • WHEN 该代理查询退款列表或该申请详情
  • THEN 系统返回该退款申请

Scenario: 查询下级代理店铺的退款

  • GIVEN 当前代理的下级代理店铺存在退款申请
  • WHEN 当前代理查询退款列表或该申请详情
  • THEN 系统不返回该退款申请,详情查询返回不存在

Scenario: 未绑定店铺的代理查询退款

  • GIVEN 当前代理账号未关联店铺
  • WHEN 该代理查询退款列表或退款申请详情
  • THEN 系统返回空列表或不存在,且不泄露任何退款申请

可达操作索引

本节只用于入口导航,不是行为 Requirement业务义务以上述 Requirements 为准。

订单管理

GET /api/admin/orders(获取订单列表);POST /api/admin/orders(创建订单);GET /api/admin/orders/{id}(获取订单详情);POST /api/admin/orders/{id}/cancel(取消订单);POST /api/admin/orders/purchase-check(套餐购买预检)。

退款管理

GET /api/admin/refunds(退款申请列表);POST /api/admin/refunds(创建退款申请);GET /api/admin/refunds/{id}(退款申请详情);POST /api/admin/refunds/{id}/approve(审批通过退款申请);POST /api/admin/refunds/{id}/reject(审批拒绝退款申请);POST /api/admin/refunds/{id}/resubmit(重新提交退款申请);POST /api/admin/refunds/{id}/return(退回退款申请)。

换货管理

GET /api/admin/exchanges(获取换货单列表);POST /api/admin/exchanges(创建换货单);GET /api/admin/exchanges/{id}(获取换货单详情);POST /api/admin/exchanges/{id}/cancel(取消换货);POST /api/admin/exchanges/{id}/complete(确认换货完成);POST /api/admin/exchanges/{id}/renew(旧资产转新);POST /api/admin/exchanges/{id}/ship(换货发货)。

订单套餐失效

GET /api/admin/order-package-invalidate-tasks(查询订单套餐失效任务列表);POST /api/admin/order-package-invalidate-tasks(创建订单套餐批量失效任务);GET /api/admin/order-package-invalidate-tasks/{id}(查询订单套餐失效任务详情)。