Files
----/后端源码/yifan.action-ai.cn/sql/README_naming_solutions.md

154 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 改名方案页面无数据问题排查指南
## 问题现象
前端页面 `module_yifan/yifan_naming_solutions` 显示"暂无数据"
## 可能原因及解决方案
### 1. 数据库中没有测试数据(最可能)
**排查方法:**
```sql
-- 检查表中是否有数据
SELECT COUNT(*) FROM yifan_naming_solutions;
-- 查看所有数据
SELECT * FROM yifan_naming_solutions;
-- 查看启用状态的数据
SELECT * FROM yifan_naming_solutions WHERE status = 0;
```
**解决方案:**
执行测试数据插入脚本:
```bash
mysql -u your_username -p your_database < backend/sql/yifan_naming_solutions_test_data.sql
```
**注意事项:**
- 插入数据前需要确保 `yifan_naming_reports` 表中有对应的 `report_id`
- 如果没有报告数据,需要先创建报告记录
- `status` 字段0=启用1=停用
- `is_deleted` 字段0=未删除1=已删除
### 2. 查询条件过滤了所有数据
**排查方法:**
检查前端页面的默认查询条件:
- 打开浏览器开发者工具 -> Network 标签
- 刷新页面,查看 `/yifan/yifan_naming_solutions/list` 请求
- 检查请求参数中是否有意外的筛选条件
**常见问题:**
- `status` 参数可能默认筛选了停用状态
- `is_deleted` 参数可能筛选了已删除数据
- 时间范围筛选可能过于严格
**解决方案:**
点击页面上的"重置"按钮,清除所有筛选条件后再查询
### 3. 权限问题
**排查方法:**
```sql
-- 检查用户是否有查询权限
SELECT * FROM sys_role_permission
WHERE permission_code = 'module_yifan:yifan_naming_solutions:query';
-- 检查当前用户的角色权限
SELECT r.* FROM sys_role r
JOIN sys_user_role ur ON r.id = ur.role_id
WHERE ur.user_id = YOUR_USER_ID;
```
**解决方案:**
- 使用管理员账号登录
- 或者为当前用户分配 `module_yifan:yifan_naming_solutions:query` 权限
### 4. 后端服务问题
**排查方法:**
查看后端日志:
```bash
# 查看最近的日志
tail -f backend/logs/app.log
# 搜索相关错误
grep "yifan_naming_solutions" backend/logs/app.log
```
**常见错误:**
- 数据库连接失败
- SQL 语法错误
- 模型字段映射错误
### 5. 前端 API 调用问题
**排查方法:**
1. 打开浏览器开发者工具 -> Console 标签
2. 查看是否有 JavaScript 错误
3. 检查 Network 标签中的 API 响应
**常见问题:**
- API 路径错误404
- 认证失败401
- 权限不足403
- 服务器错误500
## 快速测试步骤
### 步骤 1检查数据库
```sql
-- 1. 检查表是否存在
SHOW TABLES LIKE 'yifan_naming_solutions';
-- 2. 检查表结构
DESC yifan_naming_solutions;
-- 3. 检查数据量
SELECT
COUNT(*) as total,
SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) as enabled,
SUM(CASE WHEN is_deleted = 0 THEN 1 ELSE 0 END) as not_deleted
FROM yifan_naming_solutions;
```
### 步骤 2插入测试数据
```sql
-- 简单的测试数据(假设 report_id=1 存在)
INSERT INTO yifan_naming_solutions
(report_id, name, pinyin, total_score, star_rating, wuxing, shuxiang, tags, name_meaning, is_recommended, sort_order, status, is_deleted)
VALUES
(1, '测试名字', 'Ce Shi Ming Zi', 90, 4, '金木', '', '["测试标签"]', '这是一个测试方案', 0, 1, 0, 0);
```
### 步骤 3测试 API
使用 curl 或 Postman 测试:
```bash
# 获取列表(需要替换 TOKEN
curl -X GET "http://localhost:8000/yifan/yifan_naming_solutions/list?page_no=1&page_size=10" \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 步骤 4检查前端
1. 清除浏览器缓存
2. 刷新页面
3. 点击"重置"按钮
4. 点击"查询"按钮
## 推荐的解决顺序
1. **首先**:执行 SQL 查询检查数据库中是否有数据
2. **如果没有数据**:执行测试数据插入脚本
3. **如果有数据但页面不显示**:检查前端筛选条件
4. **如果还是不行**:检查后端日志和权限配置
5. **最后**:检查前端 Console 和 Network 是否有错误
## 联系支持
如果以上方法都无法解决问题,请提供以下信息:
1. 数据库查询结果截图
2. 浏览器 Network 标签的 API 请求/响应截图
3. 后端日志中的相关错误信息
4. 前端 Console 中的错误信息