guoyu/Study-Vue-redis/log/Sql/完整更新说明.md
2025-12-03 18:58:36 +08:00

126 lines
3.8 KiB
Markdown
Raw 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.

# 学生管理状态和字段更新说明
## 问题说明
1. **学生状态只有两个**执行SQL后前端仍然只显示"在押"和"已释放",没有显示"外出"和"假释"
2. **手机号字段未删除**:手机号字段仍然存在
## 解决方案
### 1. 执行字典数据更新SQL
执行文件:`update_student_status_add_out_parole.sql`
```sql
-- 1. 添加"外出"状态
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (3, '外出', 'out', 'study_student_status', '', 'warning', 'N', '0', 'admin', NOW(), '外出状态')
ON DUPLICATE KEY UPDATE
`dict_label` = '外出',
`dict_sort` = 3,
`is_default` = 'N',
`status` = '0',
`remark` = '外出状态';
-- 2. 添加"假释"状态
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (4, '假释', 'parole', 'study_student_status', '', 'info', 'N', '0', 'admin', NOW(), '假释状态')
ON DUPLICATE KEY UPDATE
`dict_label` = '假释',
`dict_sort` = 4,
`is_default` = 'N',
`status` = '0',
`remark` = '假释状态';
```
### 2. 执行手机号字段删除SQL
执行文件:`delete_phonenumber_field.sql`
```sql
-- 检查phonenumber字段是否存在
SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'sys_user'
AND COLUMN_NAME = 'phonenumber');
SET @sqlstmt := IF(@exist > 0,
'ALTER TABLE `sys_user` DROP COLUMN `phonenumber`',
'SELECT ''phonenumber字段不存在'' as result');
PREPARE stmt FROM @sqlstmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
```
### 3. 刷新前端字典数据
执行SQL后需要刷新前端字典缓存
**方法1重新登录**
- 退出登录,重新登录系统
- 字典数据会在登录时重新加载
**方法2刷新页面**
-`F5``Ctrl+F5` 强制刷新页面
- 清除浏览器缓存后刷新
**方法3在代码中已添加自动刷新**
- 页面加载时会自动刷新字典数据
- 如果仍然不显示,请检查浏览器控制台是否有错误
### 4. 验证SQL执行结果
执行以下SQL验证字典数据
```sql
-- 查询所有学员状态字典数据
SELECT `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `status`, `remark`
FROM `sys_dict_data`
WHERE `dict_type` = 'study_student_status'
ORDER BY `dict_sort`;
```
应该看到4条记录
1. 在押 (incarcerated)
2. 已释放 (released)
3. 外出 (out)
4. 假释 (parole)
### 5. 验证字段删除
执行以下SQL验证字段是否已删除
```sql
-- 查询sys_user表结构确认phonenumber字段已删除
SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'sys_user'
AND COLUMN_NAME = 'phonenumber';
```
如果查询结果为空,说明字段已成功删除。
## 注意事项
1. **执行SQL前请备份数据库**
2. **删除字段是危险操作,请确认后再执行**
3. **执行SQL后需要刷新前端缓存才能看到效果**
4. **如果前端仍然不显示新状态,检查浏览器控制台是否有错误信息**
## 常见问题
### Q: 执行SQL后前端还是不显示新状态
A:
1. 检查SQL是否执行成功使用验证SQL查询
2. 检查字典数据的 `status` 字段是否为 '0'(启用状态)
3. 清除浏览器缓存并重新登录
4. 检查浏览器控制台是否有错误
### Q: 手机号字段删除后,前端报错?
A:
1. 确保前端代码中已移除所有 `phonenumber` 字段的引用
2. 检查后端接口是否还在返回 `phonenumber` 字段
3. 清除浏览器缓存并重新加载页面