# 售后逆向后端任务

## 任务列表

| Task ID  | 闭环关联   | 任务描述   | 输入         | 输出   | 触发条件 | 状态          | 优先级 | 依赖       | 预计耗时 | 负责人          | 完成时间 |
| -------- | ------ | ------ | ---------- | ---- | ---- | ----------- | --- | -------- | ---- | ------------ | -------- |
| BE-SR001 | 售后逆向闭环 | 退货处理接口 | 订单ID, 退货原因 | 退货ID | 前端提交 | ✅ completed | P0  | -        | 12h  | AI-Backend-5 | 2026-03-20 |
| BE-SR002 | 售后逆向闭环 | 退款流程引擎 | 退货ID, 审批结果 | 退款状态 | 审批完成 | ✅ completed | P0  | BE-SR001 | 14h  | AI-Backend-5 | 2026-03-20 |
| BE-SR003 | 售后逆向闭环 | 售后工单系统 | 退货ID, 工单信息 | 工单ID | 退货创建 | ✅ completed | P0  | BE-SR001 | 16h  | AI-Backend-5 | 2026-03-20 |

## 相关闭环

- 售后逆向闭环

## 依赖关系

```
BE-SR001 ─┬─► BE-SR002
          └─► BE-SR003
```

## 数据库表结构

### cf_return
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 退货记录ID |
| tenant_id | string | 租户ID |
| order_id | string | 订单ID |
| reason | string | 退货原因 |
| status | enum | PENDING/APPROVED/REJECTED/REFUNDED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |

### cf_refund
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 退款记录ID |
| tenant_id | string | 租户ID |
| return_id | string | 退货ID |
| order_id | string | 订单ID |
| amount | decimal(10,2) | 退款金额 |
| status | enum | PENDING/COMPLETED/FAILED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |

### cf_service_ticket
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 工单ID |
| tenant_id | string | 租户ID |
| return_id | string | 退货ID |
| order_id | string | 订单ID |
| subject | string | 工单主题 |
| description | text | 工单描述 |
| status | enum | OPEN/IN_PROGRESS/RESOLVED/CLOSED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |

## API端点

### 售后管理API
- `GET /api/after-sales/returns` - 获取退货列表
- `POST /api/after-sales/returns` - 创建退货申请
- `GET /api/after-sales/returns/:id` - 获取退货详情
- `PUT /api/after-sales/returns/:id/status` - 更新退货状态
- `GET /api/after-sales/refunds` - 获取退款列表
- `POST /api/after-sales/refunds` - 创建退款
- `GET /api/after-sales/refunds/:id` - 获取退款详情
- `GET /api/after-sales/tickets` - 获取工单列表
- `POST /api/after-sales/tickets` - 创建工单
- `GET /api/after-sales/tickets/:id` - 获取工单详情
- `PUT /api/after-sales/tickets/:id/status` - 更新工单状态

## 验收标准

- [ ] 退货处理接口能正确处理退货申请
- [ ] 退款流程引擎能准确执行退款流程
- [ ] 售后工单系统能有效管理售后工单
- [ ] 所有接口响应时间不超过1.5秒
- [ ] 数据一致性得到保证

## 测试要求

- [ ] 单元测试：覆盖退货和退款逻辑
- [ ] 集成测试：验证与订单系统的交互
- [ ] 端到端测试：模拟完整的售后流程
- [ ] 边界测试：测试异常数据和边界情况

## 风险提示

- **风险点1**：退款操作风险 - 应对措施：实现审批流程和限额控制
- **风险点2**：售后工单积压 - 应对措施：实现工单优先级和自动分配
- **风险点3**：退货原因分析不准确 - 应对措施：建立退货原因分类和分析机制

## 性能要求

- 响应时间：平均响应时间 < 1.5秒
- 并发处理：支持150个并发请求
- 数据处理：能处理5000条售后记录/小时

## 安全要求

- 权限控制：只有CUSTOMER_SERVICE和ADMIN角色可访问售后数据
- 审计日志：所有售后操作需记录详细日志
- 输入验证：严格验证所有售后相关输入
- 数据一致性：确保售后数据的准确性和一致性