# 余额显示为0问题诊断 ## 问题现象 APP中钱包页面显示余额为0,但后台管理系统中用户有余额。 ## 可能原因 ### 1. 后端未部署最新代码 **检查方法**: ```bash # 查看后端日志 ssh root@1.15.149.240 "tail -f /www/server/project/zhibo-h/logs/crmeb-front.log" ``` **解决方法**: ```bash # 重新部署后端 deploy-balance-system.bat ``` ### 2. 数据库字段问题 **检查方法**: ```sql -- 检查now_money字段是否存在 SHOW COLUMNS FROM eb_user LIKE 'now_money'; -- 查看测试用户的余额 SELECT uid, account, nickname, now_money FROM eb_user WHERE uid = 43; ``` **解决方法**: ```sql -- 如果字段不存在,添加字段 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日志: ```bash 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: 检查数据库 ```sql -- 执行 test_balance_api.sql SELECT uid, account, nickname, now_money FROM eb_user WHERE uid = 43; ``` 如果余额为0,执行: ```sql UPDATE eb_user SET now_money = 1000.00 WHERE uid = 43; ``` ### 步骤2: 检查后端API 使用curl测试(需要先获取token): ```bash # 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 ``` 预期返回: ```json { "success": true, "code": 200, "message": "操作成功", "data": { "balance": 1000.00, "userId": 43 } } ``` ### 步骤3: 检查APP日志 ```bash # 清除旧日志 adb logcat -c # 查看实时日志 adb logcat -s WalletActivity:D # 然后在APP中打开钱包页面 ``` 查看日志输出,确认: 1. API是否调用成功 2. 返回的数据是否正确 3. 是否有异常错误 ### 步骤4: 重新部署 如果以上都正常但还是显示0,重新部署: ```bash # 1. 部署后端 deploy-balance-system.bat # 2. 重新编译APP # 在Android Studio中 Build -> Rebuild Project # 3. 重新安装APP到设备 ``` ## 快速修复 如果确认是数据库余额为0的问题: ```sql -- 给所有测试用户添加余额 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. 返回钱包页面,查看余额是否增加