# 用户与账户管理后端任务

## 任务列表

| Task ID | 闭环关联      | 任务描述   | 输入       | 输出   | 触发条件 | 状态          | 优先级 | 依赖      | 预计耗时 | 负责人          | 完成时间 |
| ------- | --------- | ------ | -------- | ---- | ---- | ----------- | --- | ------- | ---- | ------------ | -------- |
| BE-U001 | 客户/商家押金闭环 | 押金管理接口 | 客户ID, 金额 | 押金余额 | 押金操作 | ✅ completed | P1  | BE-O001 | 1.5h | AI-Backend-2 | 2026-03-20 |
| BE-U002 | 用户/客户资产闭环 | 用户资产统计 | 用户ID     | 资产数据 | 定时任务 | ✅ completed | P2  | BE-U001 | 2h   | AI-Backend-2 | 2026-03-20 |

## 相关闭环

- 客户/商家押金闭环
- 用户/客户资产闭环

## 依赖关系

```
BE-O001 ─► BE-U001 ─► BE-U002
```

## 数据库表结构

### cf_user_deposit
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 押金记录ID |
| tenant_id | string | 租户ID |
| user_id | string | 用户ID |
| amount | decimal(10,2) | 押金金额 |
| balance | decimal(10,2) | 押金余额 |
| status | enum | ACTIVE/REFUNDED/FROZEN |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |

### cf_user_asset
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 资产记录ID |
| tenant_id | string | 租户ID |
| user_id | string | 用户ID |
| deposit_balance | decimal(10,2) | 押金余额 |
| available_balance | decimal(10,2) | 可用余额 |
| total_assets | decimal(10,2) | 总资产 |
| last_updated | datetime | 最后更新时间 |

## API端点

### 用户资产管理API
- `GET /api/user/deposit/:userId` - 获取用户押金信息
- `POST /api/user/deposit` - 缴纳押金
- `POST /api/user/deposit/refund` - 退还押金
- `GET /api/user/assets/:userId` - 获取用户资产统计
- `GET /api/user/assets/summary` - 获取资产汇总

## 验收标准

- [x] 押金管理接口能正确处理押金的缴纳和退还
- [x] 用户资产统计能准确反映用户的资产状况
- [x] 所有接口响应时间不超过1秒
- [x] 数据一致性得到保证

## 测试要求

- [x] 单元测试：覆盖押金计算和资产统计逻辑
- [x] 集成测试：验证与订单系统的交互
- [x] 端到端测试：模拟完整的押金和资产管理流程
- [x] 边界测试：测试异常数据和边界情况

## 风险提示

- **风险点1**：押金退还操作风险 - 应对措施：实现审批流程
- **风险点2**：资产统计数据不一致 - 应对措施：实现定期对账机制
- **风险点3**：用户资产信息泄露 - 应对措施：加强数据加密和访问控制

## 性能要求

- 响应时间：平均响应时间 < 1秒
- 并发处理：支持150个并发请求
- 数据处理：能处理10000条资产记录/小时

## 安全要求

- 权限控制：只有用户本人和ADMIN角色可访问用户资产数据
- 数据加密：敏感资产数据加密存储
- 审计日志：所有资产操作需记录详细日志
- 输入验证：严格验证所有资产相关输入