zhibo/diagnose_balance_issue.md

3.3 KiB
Raw Blame History

余额显示为0问题诊断

问题现象

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

可能原因

1. 后端未部署最新代码

检查方法

# 查看后端日志
ssh root@1.15.149.240 "tail -f /www/server/project/zhibo-h/logs/crmeb-front.log"

解决方法

# 重新部署后端
deploy-balance-system.bat

2. 数据库字段问题

检查方法

-- 检查now_money字段是否存在
SHOW COLUMNS FROM eb_user LIKE 'now_money';

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

解决方法

-- 如果字段不存在,添加字段
ALTER TABLE eb_user ADD COLUMN now_money DECIMAL(10,2) DEFAULT 0.00 COMMENT '用户余额';

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

3. API调用失败

检查方法 在Android Studio中查看logcat日志

adb logcat -s WalletActivity:D

查看日志输出:

  • Response code: 应该是200
  • Is OK: 应该是true
  • Balance: 应该显示实际余额

可能的错误

  • 401: 未登录或token过期
  • 404: API路径错误
  • 500: 服务器错误

4. APP未重新编译

解决方法 在Android Studio中

  1. Build -> Clean Project
  2. Build -> Rebuild Project
  3. 重新运行APP

完整诊断步骤

步骤1: 检查数据库

-- 执行 test_balance_api.sql
SELECT uid, account, nickname, now_money 
FROM eb_user 
WHERE uid = 43;

如果余额为0执行

UPDATE eb_user SET now_money = 1000.00 WHERE uid = 43;

步骤2: 检查后端API

使用curl测试需要先获取token

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

# 2. 使用token测试余额API
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://1.15.149.240:8080/api/front/virtual-currency/balance

预期返回:

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

步骤3: 检查APP日志

# 清除旧日志
adb logcat -c

# 查看实时日志
adb logcat -s WalletActivity:D

# 然后在APP中打开钱包页面

查看日志输出,确认:

  1. API是否调用成功
  2. 返回的数据是否正确
  3. 是否有异常错误

步骤4: 重新部署

如果以上都正常但还是显示0重新部署

# 1. 部署后端
deploy-balance-system.bat

# 2. 重新编译APP
# 在Android Studio中 Build -> Rebuild Project

# 3. 重新安装APP到设备

快速修复

如果确认是数据库余额为0的问题

-- 给所有测试用户添加余额
UPDATE eb_user 
SET now_money = 1000.00 
WHERE uid IN (43, 44, 45, 46) AND now_money = 0;

-- 验证
SELECT uid, account, nickname, now_money 
FROM eb_user 
WHERE uid IN (43, 44, 45, 46);

然后重启APP刷新钱包页面。

验证修复

  1. 打开APP
  2. 登录账号13800000043 / 123456
  3. 进入"我的"页面
  4. 点击"钱包"
  5. 查看余额是否正确显示

如果显示正确,测试充值功能:

  1. 点击"充值"
  2. 选择充值套餐
  3. 选择支付方式
  4. 点击"确认充值"
  5. 返回钱包页面,查看余额是否增加