3.4 KiB
ADDED Requirements
Requirement: 退款后处理状态展示
退款列表与退款详情 SHALL 展示资产后处理状态 asset_post_status(0 未开始、1 待重试、2 已完成、3 需人工处理),列表用标签展示,"需人工处理"用警示色。详情 SHALL 另外展示已尝试次数 asset_post_attempts(注明自动重试上限 10 次)、最后一次错误 asset_post_last_error、下次自动重试时间 asset_post_next_at(仅待重试时有值)。字段缺失时显示"-",不影响现有展示。
Scenario: 待重试
- WHEN 一笔退款
asset_post_status = 1、已尝试 3 次、下次重试时间为 10:30 - THEN 详情显示"待重试"、已尝试 3/10 次、最后错误与下次重试时间 10:30
Requirement: 按后处理状态筛选
退款列表 SHALL 增加"资产后处理状态"筛选项,选中后请求带 asset_post_status;清空时不传该参数。
Scenario: 筛选需人工处理
- WHEN 运营选择"需人工处理"并查询
- THEN 请求带
asset_post_status = 3,列表只显示需人工处理的退款单
Requirement: 人工重试后处理
退款单 asset_post_status = 3 且当前账号为平台账号或超级管理员、并有人工重试按钮权限时,退款列表操作列与详情页 SHALL 显示"人工重试"按钮;其他状态或账号类型 MUST NOT 显示。点击后 SHALL 二次确认,提示"重试会重新执行退款后的资产处理(可能包括停机),确认继续?"。调用 POST /api/admin/refunds/{id}/asset-post-processing/retry,提交中 MUST 防重复。成功时 SHALL 用返回的最新退款详情刷新当前行或详情;失败时 SHALL 显示后端错误信息(如"资产后处理仍未完成:…"),并重新加载该退款单以展示最新尝试次数与错误。
Scenario: 重试成功
- WHEN 运营对需人工处理的退款单点击"人工重试"并确认,后端返回成功
- THEN 页面提示重试成功,该退款单后处理状态显示"已完成",按钮消失
Scenario: 重试仍失败
- WHEN 后端返回"资产后处理仍未完成:停机失败"
- THEN 页面显示该错误,重新加载后仍显示"需人工处理"和最新错误
Scenario: 非需人工处理
- WHEN 退款单后处理状态为"待重试"
- THEN 不显示"人工重试"按钮
Requirement: 后处理尝试记录查询
系统 SHALL 提供"退款后处理尝试记录"列表页,调用 GET /api/admin/refund-post-process-attempts,仅平台账号与超级管理员可用。筛选条件:时间范围(必填,跨度不超过 31 天)、退款单 ID 或单号、资产标识、处理步骤 step、结果 result、错误码、触发方式 trigger(自动 / 人工)。列表 SHALL 展示记录时间、退款单号、资产类型与 ICCID、第几次尝试、步骤、结果、错误码与错误信息、触发方式、耗时;步骤、结果、触发方式显示中文名称。退款详情 SHALL 提供"后处理尝试记录"入口,打开该列表并自动带上退款单 ID。
Scenario: 从退款详情查看
- WHEN 运营在退款详情点击"后处理尝试记录"
- THEN 打开尝试记录列表,已按该退款单 ID 筛选,时间范围为最近 31 天
Scenario: 时间范围必填
- WHEN 运营清空时间范围后查询
- THEN 页面提示请选择时间范围,不发请求