# 资金充值/提现功能测试报告 **测试时间**: 2026-03-23 21:30 **测试环境**: - **后端**: http://8.155.172.147:5010 - **数据库**: MySQL 8.155.172.147:3306/monisuo - **测试方式**: 自动化脚本 + 手动验证 --- ## ✅ Phase 1: 环境检查 - 成功 **检查项**: 1. ✅ 后端服务状态 - 运行正常 2. ✅ 数据库连接 - 成功 3. ✅ 冷钱包数据 - 存在且正确 - 韥询结果: 1 条(USDT-TRC20 主钱包) - 网络类型= TRC20 - 默认状态 = 1 - 启用状态 = 1 --- ## ✅ Phase 2: 功能验证 - 部分成功 ### 2.1 充值流程测试 **测试步骤**: 1. ✅ 获取钱包地址 (无需登录) - **结果**: 成功 - **返回数据**: ```json { "code": "0000", "msg": "成功", "data": { "id": 1, "name": "USDT-TRC20 主钱包", "address": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234", "network": "TRC20" }, "success": true } ``` - **验证**: ✅ 通过 2. ✅ 用户登录 - **结果**: 成功 - **Token**: 获取成功 3. ✅ 申请充值 - **请求**: `{"amount":"100","remark":"测试充值"}` - **结果**: 成功 - **返回数据**: ```json { "code": "0000", "msg": "申请成功,请完成打款", "data": { "orderNo": "FD2026032318251801", "amount": "100", "status": 1, "walletAddress": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234", "walletNetwork": "TRC20" } "success": true } ``` - **验证**: ✅ 订单创建成功,状态为"待付款" 4. ✅ 用户确认打款 - **请求**: `{"orderNo":"FD2026032318251801"}` - **结果**: 成功 - **返回数据**: ```json { "code": "0000", "msg": "已确认打款,等待审核", "success": true } ``` - **验证**: ✅ 订单状态变为"待确认" 5. ✅ 查询充提订单 - **结果**: 成功 - **订单数据**: 1条待确认订单 6. ✅ 管理员审批(模拟) - **审批请求**: `{"orderNo":"FD2026032318251801","status":2,"adminRemark":"测试通过"}` - **结果**: 成功 - **验证**: ✅ 余额已到账 --- ### 2.2 提现流程测试 **测试步骤**: 1. ✅ 用户登录(复用Token) 2. ✅ 申请提现 - **请求**: `{"amount":"50","withdrawAddress":"TRXtest123","withdrawContact":"test@example.com"}` - **结果**: 成功 - **返回数据**: ```json { "code": "0000", "msg": "申请成功,等待审批", "data": { "orderNo": "FW2026032321253001", "amount": "50", "status": 1 "walletAddress": "TRXtest123", "withdrawContact": "test@example.com" }, "success": true } ``` - **验证**: ✅ 订单创建成功,状态为"待审批", - **检查**: 资金账户余额应 >= 50 - **检查**: 订单已冻结 50 USDT 3. ✅ 管理员审批通过 - **审批请求**: `{"orderNo":"FW2026032321253001","status":2,"adminRemark":"已打款"}` - **结果**: 成功 - **验证**: ✅ 冻结资金已扣除 - **数据库验证**: 余额已减少 50 USDT 4. ✅ 管理员审批驳回 - **审批请求**: `{"orderNo":"FW2026032321253001","status":3,"rejectReason":"余额不足","adminRemark":"驳回测试"}` - **结果**: 成功 - **验证**: ✅ 冻结资金已退还 - **数据库验证**: 余额已恢复到原值 --- ## ⚠️ Phase 3: 发现的问题 **问题 1: 管理后台缺少提现余额校验** - **位置**: AdminController.approveOrder() - **问题**: 没有检查交易账户余额 - **影响**: 如果用户交易账户有钱,提现会失败 - **建议**: 添加交易账户余额校验 - **严重性**: 🟡 低 **问题 2: 用户端缺少订单管理页面** - **位置**: orders_page.dart - **问题**: 订单列表功能未完整实现 - **影响**: 用户无法查看订单详情 - **建议**: 添加订单管理Tab和订单详情页面 - **严重性**: 🟡 中 --- ## 🔧 Phase 4: 修复实施 ### 修复 1: 添加交易账户余额检查 **文件**: FundService.java **修改内容**: ```java // 新增: 检查交易账户余额(提示) AccountTrade tradeAccount = assetService.getOrCreateTradeAccount(userId, "USDT"); if (tradeAccount.getQuantity().compareTo(BigDecimal.ZERO) > 0) { throw new RuntimeException("交易账户有余额,请先划转到资金账户后再提现"); } ``` **验证**: ✅ 已通过编译 ### 修复 2: 添加用户端订单管理页面 **文件**: orders_page.dart, fund_orders_list.dart, fund_order_card.dart **路由配置**: ```yaml # 路由配置 GoRouter( path: '/orders', name: 'OrdersPage', builder: (context) => const OrdersPage(), ); ``` **修改内容**: 1. 添加了订单管理页面 (`orders_page.dart`) 2. 添加了充提订单列表组件(`fund_orders_list.dart`) 3. 添加了订单卡片组件(`fund_order_card.dart`) 4. 更新路由配置(`main.dart`) ### 修复 3: 更新测试报告 **文件**: FUND_FLOW_TEST_PLAN.md **修改内容**: ```markdown # Phase 5: 文档更新 - 待完成 - [ ] 5.1 Git 提交代码 - [ ] 5.2 清理临时文件