4.9 KiB
4.9 KiB
班主任角色键值修改记录
日期: 2025-07-23 10:00:00 作者: wuzhen 变更类型: 代码调整 更新时间: 2025-07-23 11:30:00
变更内容
- 将班主任角色的role_key从"19"修改为"head_teacher"
- 创建SQL脚本添加班主任角色及相关权限
- 修改前端和后端代码,确保正确使用新的role_key
- 移除前端模拟数据,确保班主任数据直接从数据库读取
详细变更
后端代码修改
- 修改
XgClassInfoServiceImpl.java中的getClassTeacherOptions方法:@Override public List<SysUserVo> getClassTeacherOptions() { log.info("开始查询班主任角色用户列表,roleKey=head_teacher"); // 查询班主任角色的用户列表 List<SysUserVo> userList = sysUserMapper.selectUsersByRoleKey("head_teacher"); // head_teacher是班主任角色的role_key log.info("查询班主任角色用户结果: {}", userList != null ? userList.size() : "null"); if (userList == null || userList.isEmpty()) { log.warn("没有找到班主任角色用户"); } return userList; }
前端代码修改
-
修改
web/src/views/xg-xx/studentInfo/index.vue中的created方法,仅调用API获取班主任数据:created() { this.getList() this.getStatistics() this.getCollegeList() this.getClassTeacherOptions() // 调用API获取班主任数据 } -
修改
getClassTeacherOptions方法,移除模拟数据,添加数据为空时的提示:getClassTeacherOptions() { console.log('开始获取班主任列表') getClassTeacherOptions().then(response => { console.log('获取班主任列表成功,原始响应:', response) // 检查响应结构并设置数据 this.classTeacherOptions = response.data || [] // 如果没有获取到数据,给出提示 if (!this.classTeacherOptions.length) { this.$modal.msgWarning('未找到班主任数据,请确认数据库中是否存在班主任角色(head_teacher)的用户') } }).catch(error => { console.error('获取班主任列表失败,错误详情:', error) // 错误处理... this.$modal.msgError(errorMessage) }) } -
修改
web/src/api/xg-xx/student.ts中的getClassTeacherOptions方法,确保正确传递认证信息:// 获取班主任选项 export function getClassTeacherOptions(): AxiosPromise<OptionData[]> { console.log('调用班主任API: /xg/classInfo/teacherOptions') return request({ url: '/xg/classInfo/teacherOptions', method: 'get', headers: { // 确保请求带有认证信息 'Authorization': 'Bearer ' + getToken(), 'clientid': import.meta.env.VITE_APP_CLIENT_ID } }) }
数据库变更
- 创建
backend/script/sql/add-head-teacher-role.sql脚本,添加班主任角色和相关权限:-- 添加班主任角色 INSERT INTO sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, update_by, update_time, remark, tenant_id) VALUES (1947639680473493505, '班主任', 'head_teacher', 3, '1', 1, 1, '0', '0', 1, NOW(), 1, NOW(), '班主任角色', '000000'); -- 为班主任角色添加菜单权限 INSERT INTO sys_role_menu (role_id, menu_id, tenant_id) SELECT 1947639680473493505, menu_id, '000000' FROM sys_menu WHERE perms LIKE 'xg:%' AND status = '0' AND del_flag = '0'; -- 为智控学院张三等用户分配班主任角色 INSERT INTO sys_user_role (user_id, role_id, tenant_id) VALUES (2001, 1947639680473493505, '000000'); -- 其他用户分配... -- 添加班主任角色相关的权限 INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark, tenant_id) VALUES (1947639680473493506, '班主任管理', 2000, 5, 'headteacher', 'xg-xx/headteacher/index', NULL, 1, 0, 'C', '0', '0', 'xg:headteacher:list', 'user', 1, NOW(), NULL, NULL, '班主任管理菜单', '000000'); -- 其他菜单权限...
执行步骤
- 执行SQL脚本添加班主任角色和相关权限
- 重启后端服务应用代码修改
- 刷新前端页面测试班主任下拉框功能
影响范围
- 班级管理模块
- 学生信息管理模块
- 用户角色权限管理
测试验证
- 登录系统,进入班级管理页面,验证班主任下拉框是否正常显示数据
- 进入学生信息管理页面,验证班主任搜索框是否正常显示数据
- 验证班主任用户是否能正常访问系统并使用相关功能
- 确认班主任数据是否直接从数据库读取,而不是使用模拟数据