zhibo/虚拟货币余额系统说明.md

3.5 KiB
Raw Blame History

虚拟货币余额系统说明

数据库表结构

1. eb_user表用户余额

  • virtual_balance - DECIMAL(10,2) - 用户虚拟货币余额

2. eb_recharge_package充值套餐表

  • 存储充值套餐配置
  • 包含充值金额、获得虚拟币、赠送虚拟币等信息

3. eb_virtual_currency_recharge充值记录表

  • 记录用户的充值订单
  • 包含订单号、金额、支付状态等

4. eb_virtual_currency_transaction交易记录表

  • 记录所有虚拟货币的收支明细
  • 包含充值、消费、退款等类型

后端API接口

基础路径

/api/front/virtual-currency

接口列表

  1. 获取用户余额

    • GET /balance
    • 返回:{ balance: number, userId: number }
  2. 获取充值套餐列表

    • GET /recharge/packages
    • 返回:套餐列表(金额、虚拟币数量、赠送等)
  3. 创建充值订单

    • POST /recharge/create
    • 参数:{ packageId: number, paymentMethod: string }
    • 返回:订单信息(订单号、金额等)
  4. 模拟支付成功(测试用)

    • POST /recharge/mock-pay
    • 参数:{ orderNo: string }
    • 功能:直接完成支付,增加用户余额
  5. 获取充值记录

    • GET /recharge/records?page=1&limit=20
    • 返回:充值记录列表
  6. 获取消费记录

    • GET /transactions?page=1&limit=20
    • 返回:交易记录列表

APP端实现

页面结构

  1. ProfileActivity个人中心

    • 显示"我的钱包"按钮
    • 显示当前余额
  2. WalletActivity钱包页面

    • 显示虎牙币余额
    • 提供充值入口
    • 提供收支明细入口
  3. BalanceActivity余额详情

    • 显示详细余额
    • 充值记录和消费记录Tab
  4. RechargeActivity充值页面

    • 显示充值套餐列表
    • 选择支付方式(支付宝/微信)
    • 确认充值
  5. TransactionHistoryActivity收支明细

    • 显示所有交易记录

数据流程

  1. 查看余额

    用户打开钱包 → 调用 /balance 接口 → 显示余额
    
  2. 充值流程

    选择套餐 → 选择支付方式 → 创建订单 → 模拟支付 → 余额增加
    
  3. 余额更新

    充值成功 → 更新 eb_user.virtual_balance → 记录到 eb_virtual_currency_transaction
    

使用说明

测试充值功能

  1. 登录APP
  2. 进入"我的"页面
  3. 点击"我的钱包"
  4. 点击"充值"按钮
  5. 选择充值套餐
  6. 选择支付方式(支付宝/微信)
  7. 点击"确认充值"
  8. 系统自动模拟支付成功
  9. 余额立即更新

查看余额

  • 个人中心:显示简要余额
  • 钱包页面:显示详细余额和虎牙币图标
  • 余额详情:显示充值记录和消费记录

后续扩展

支付集成(待实现)

目前使用模拟支付,后续可以集成:

  1. 支付宝支付

    • 集成支付宝SDK
    • 在createRechargeOrder后跳转到支付宝
    • 支付成功后回调更新余额
  2. 微信支付

    • 集成微信支付SDK
    • 在createRechargeOrder后跳转到微信
    • 支付成功后回调更新余额

消费功能

余额可用于:

  • 送礼物给主播
  • 购买虚拟道具
  • 开通会员服务
  • 其他增值服务

注意事项

  1. 所有金额使用DECIMAL(10,2)存储,避免精度问题
  2. 每次余额变动都记录到交易表
  3. 充值订单有状态管理(待支付、已支付、已取消)
  4. 支付接口需要做好安全验证
  5. 余额不足时要有提示