4.2 KiB
4.2 KiB
ADDED Requirements
Requirement: Refund Creation Submits WeCom Approval Materials
The refund creation flow SHALL submit the refund business materials required for an external WeCom approval.
Scenario: Create refund with business materials
- GIVEN 用户打开退款创建表单
- WHEN 用户填写退款金额、退款原因、备注并完成附件上传
- THEN 系统 MUST submit the refund amount, reason, remark and attachment metadata to
POST /api/admin/refunds - AND 每个附件 MUST use the structure
{ file_key, file_name, file_size }
Scenario: Submitted amount is immutable locally
- GIVEN 退款申请已创建并进入企微审批
- WHEN 用户查看退款记录
- THEN 页面 MUST NOT provide a local control to modify the submitted refund amount
- AND any changed amount MUST be submitted through the defined resubmission flow only
Requirement: Refund Detail Displays WeCom Approval
The refund detail page SHALL display the backend-provided WeCom approval object as a read-only approval record.
Scenario: Display approval details
- GIVEN
GET /api/admin/refunds/{id}returns anapprovalobject - WHEN 用户打开退款详情
- THEN 页面 MUST display the approval source,
sp_no, status, status name, applicant, approvers, comments, attachments and timeline - AND 页面 MUST preserve the backend approval values without locally changing or deriving them
Scenario: No local approval controls
- GIVEN 用户查看退款列表或退款详情
- WHEN 页面展示企微审批信息
- THEN 页面 MUST NOT display local approve, reject, return or manual refund confirmation buttons
- AND 页面 MUST NOT call local approval action endpoints for this flow
Requirement: Refund Processing Result Is Independent From Approval
The refund detail page SHALL display business processing status separately from WeCom approval status.
Scenario: Display processing result
- GIVEN 退款详情返回
processing_statusand its result fields - WHEN 用户查看退款业务处理区域
- THEN 页面 MUST display the processing status, failure summary and business process result
- AND 页面 MUST display a system-retrying or contact-administrator message when indicated by the backend
Scenario: Display required lifecycle states
- GIVEN 后端返回审批中、通过处理中、处理成功、驳回、撤销或通过后撤销异常状态
- WHEN 页面渲染退款列表或详情
- THEN 页面 MUST show an explicit status for the returned state
- AND 页面 MUST NOT infer processing completion from approval status alone
Requirement: Refund Resubmission Has Restricted Editable Fields
The refund resubmission flow SHALL allow resubmission only for rejected, revoked or deleted records and SHALL preserve immutable business snapshots.
Scenario: Resubmit an eligible refund
- GIVEN 退款状态为已驳回、已撤销或已删除
- WHEN 用户发起重新申请
- THEN 页面 MUST allow editing the refund amount, attachments and refund reason
- AND 系统 MUST submit the request to
POST /api/admin/refunds/{id}/resubmit
Scenario: Reject resubmission for an ineligible refund
- GIVEN 退款记录不属于已驳回、已撤销或已删除状态
- WHEN 用户查看退款详情
- THEN 页面 MUST NOT enable the resubmission action
- AND 页面 MUST handle a backend rejection without creating a new approval request
Scenario: Preserve refund snapshots on resubmission
- GIVEN 用户填写重新申请表单
- WHEN 用户修改可编辑字段
- THEN 页面 MUST NOT provide controls to change the order snapshot, asset snapshot or submitter snapshot
Requirement: Refund Pages Use Backend Approval And Processing Data
The refund list and detail pages SHALL use backend response data as the source of truth for approval and processing display.
Scenario: Refresh refund status
- WHEN 用户刷新退款列表或重新加载退款详情
- THEN 页面 MUST use the latest refund, approval and processing data returned by the backend
- AND 页面 MUST NOT reconstruct a status from stale local form data or legacy status mappings