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

3.8 KiB
Raw Blame History

学生管理状态和字段更新说明

问题说明

  1. 学生状态只有两个执行SQL后前端仍然只显示"在押"和"已释放",没有显示"外出"和"假释"
  2. 手机号字段未删除:手机号字段仍然存在

解决方案

1. 执行字典数据更新SQL

执行文件:update_student_status_add_out_parole.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

-- 检查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刷新页面

  • F5Ctrl+F5 强制刷新页面
  • 清除浏览器缓存后刷新

方法3在代码中已添加自动刷新

  • 页面加载时会自动刷新字典数据
  • 如果仍然不显示,请检查浏览器控制台是否有错误

4. 验证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验证字段是否已删除

-- 查询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. 清除浏览器缓存并重新加载页面