zhibo/立即修复余额显示.md

3.4 KiB
Raw Blame History

立即修复余额显示为0的问题

问题

APP钱包页面显示余额为0但后台管理系统中用户有余额。

最可能的原因

数据库中用户的 now_money 字段值为0。

立即执行的修复步骤

1. 连接数据库并执行SQL

# 连接到数据库
mysql -h 1.15.149.240 -u root -p zhibo

执行以下SQL

-- 查看用户43的余额
SELECT uid, account, nickname, now_money FROM eb_user WHERE uid = 43;

-- 如果余额为0给用户添加测试余额
UPDATE eb_user SET now_money = 1000.00 WHERE uid = 43;

-- 验证
SELECT uid, account, nickname, now_money FROM eb_user WHERE uid = 43;

2. 重新部署后端(确保使用最新代码)

# 运行部署脚本
deploy-balance-system.bat

3. 重新编译APP

在Android Studio中

  1. Build -> Clean Project
  2. Build -> Rebuild Project
  3. Run 'app'

4. 测试验证

  1. 打开APP
  2. 登录账号 13800000043 / 123456
  3. 进入"我的"页面
  4. 点击"钱包"
  5. 应该看到余额显示为 1000.00

如果还是显示0

检查APP日志

adb logcat -c
adb logcat -s WalletActivity:D

然后在APP中打开钱包页面查看日志输出。

可能的日志输出和对应问题

情况1: 看到 "Response code: 401"

  • 问题用户未登录或token过期
  • 解决重新登录APP

情况2: 看到 "Response code: 404"

  • 问题API路径错误
  • 解决:检查后端是否部署成功

情况3: 看到 "Response code: 500"

  • 问题:服务器错误
  • 解决:查看后端日志
ssh root@1.15.149.240 "tail -100 /www/server/project/zhibo-h/logs/crmeb-front.log"

情况4: 看到 "Balance: 0.0"

  • 问题数据库中余额确实为0
  • 解决执行上面的SQL更新余额

情况5: 看到 "Data is null or no balance key"

  • 问题API返回的数据格式不对
  • 解决:检查后端代码是否正确部署

使用curl直接测试API

# 1. 先登录获取token
curl -X POST http://1.15.149.240:8080/api/front/login \
  -H "Content-Type: application/json" \
  -d '{"account":"13800000043","password":"123456"}' \
  | jq .

# 复制返回的token

# 2. 测试余额API
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  http://1.15.149.240:8080/api/front/virtual-currency/balance \
  | jq .

预期返回:

{
  "success": true,
  "code": 200,
  "message": "操作成功",
  "data": {
    "balance": 1000.00,
    "userId": 43
  }
}

完整的测试流程

1. 数据库测试

-- 执行 fix_balance_display.sql 中的所有SQL

2. 后端测试

# 查看后端日志确认API被调用
ssh root@1.15.149.240 "tail -f /www/server/project/zhibo-h/logs/crmeb-front.log | grep balance"

3. APP测试

  • 打开钱包页面
  • 查看logcat日志
  • 确认余额显示

4. 充值测试

  • 点击充值按钮
  • 选择充值套餐
  • 模拟支付
  • 返回查看余额是否增加

注意事项

  1. 确保后端已部署最新代码:修改了 VirtualCurrencyController.java,必须重新编译部署
  2. 确保APP已重新编译:修改了 WalletActivity.java,必须重新编译安装
  3. 确保数据库有余额eb_user.now_money 字段不能为0
  4. 确保用户已登录token必须有效

快速验证命令

# 一键检查所有测试用户的余额
mysql -h 1.15.149.240 -u root -p -e "USE zhibo; SELECT uid, account, nickname, now_money FROM eb_user WHERE uid IN (43,44,45,46);"