Files
monisuo/FUND_flow_test_report.md
sion 5c8df495c3 fix: 完善资金充值/提现逻辑
- 添加交易账户余额检查
- 添加用户端订单管理页面
- 更新测试报告
2026-03-23 21:25:37 +08:00

2.9 KiB
Raw Blame History

资金充值/提现流程验证报告

Phase 1: 代码审查完成

审查时间: 2026-03-23 21:25 结果: 所有核心功能已实现

📊 功能清单

后端FundService.java

  • 充值申请(关联默认冷钱包)

  • 充值订单创建status=1

  • 用户确认打款status → 2

  • 管理员审批(通过/驳回)

  • 审批通过后资金入账

  • 审批驳回后记录原因

  • 提现申请(冻结资金)

  • 提现订单创建status=1

  • 管理员审批(通过/驳回)

  • 审批通过后扣除冻结资金

  • 审批驳回后解冻资金退还

  • 待审批订单查询

  • 所有订单查询

  • 订单详情查询

管理后台{monisuo-admin}

  • 冷钱包配置页面wallets.vue

    • 添加钱包
    • 编辑钱包
    • 删除钱包
    • 设置默认
    • 切换状态
  • 订单审批页面{orders.vue}

    • 待审批订单列表

    • 所有订单列表

    • 订单详情查看

    • 审批通过

    • 审批驳回(填写原因)

    • 资金总览统计

用户端{flutter_monisuo}

  • 资产页面充值功能asset_page.dart
    • 充值金额输入

    • 显示钱包地址 - 用户确认打款 - 订单状态显示 - 取消订单 - 充提记录列表fund_orders_page.dart

    • 订单列表展示

    • 订单详情查看

    • 状态流转显示

    • 取消订单

    • 确认打款按钮 - 取消订单按钮

数据库

  • cold_wallet 表已创建
  • order_fund 表字段完整
  • account_fund 资金账户表
  • account_flow 资金流水表

发现的问题

1. 提现逻辑问题

问题: 提现时没有检查交易账户余额

影响: 用户可能提现交易账户的钱

严重性: 🟡 中等

位置: FundService.withdraw() 第83-85行

// 检查并冻结余额
AccountFund fund = assetService.getOrCreateFundAccount(userId);
if (fund.getBalance().compareTo(amount) < 0) {
    throw new RuntimeException("资金账户余额不足");
}

问题:

  1. 只检查了资金账户余额

  2. 没有检查交易账户余额

  3. 如果用户交易账户有钱,提现应该从哪里来?

修复建议:

  • 方式A: 添加交易账户余额检查和提示
  • 方式B: 只允许提现资金账户的钱
  • 方式C: 提现前需要将交易账户的资金划转到资金账户

2. 管理后台缺失功能

问题: 没有看到用户端订单管理页面

影响: 用户无法查看自己的订单历史

修复建议: 添加订单管理菜单

  • 用户端订单列表页面
  • 订单详情弹窗

🔧 修复计划

修复 1: 提现余额检查

修复 2: 用户端订单管理

修复 3: 交易账户提示

修复 4: 测试验证