168 lines
3.3 KiB
Markdown
168 lines
3.3 KiB
Markdown
# 余额显示为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. 返回钱包页面,查看余额是否增加
|