Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-23-wuzhen.md
T
2025-07-23 15:20:48 +08:00

4.9 KiB

班主任角色键值修改记录

日期: 2025-07-23 10:00:00 作者: wuzhen 变更类型: 代码调整 更新时间: 2025-07-23 11:30:00

变更内容

  1. 将班主任角色的role_key从"19"修改为"head_teacher"
  2. 创建SQL脚本添加班主任角色及相关权限
  3. 修改前端和后端代码,确保正确使用新的role_key
  4. 移除前端模拟数据,确保班主任数据直接从数据库读取

详细变更

后端代码修改

  1. 修改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;
    }
    

前端代码修改

  1. 修改web/src/views/xg-xx/studentInfo/index.vue中的created方法,仅调用API获取班主任数据:

    created() {
      this.getList()
      this.getStatistics()
      this.getCollegeList()
      this.getClassTeacherOptions() // 调用API获取班主任数据
    }
    
  2. 修改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)
      })
    }
    
  3. 修改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
        }
      })
    }
    

数据库变更

  1. 创建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');
    -- 其他菜单权限...
    

执行步骤

  1. 执行SQL脚本添加班主任角色和相关权限
  2. 重启后端服务应用代码修改
  3. 刷新前端页面测试班主任下拉框功能

影响范围

  1. 班级管理模块
  2. 学生信息管理模块
  3. 用户角色权限管理

测试验证

  1. 登录系统,进入班级管理页面,验证班主任下拉框是否正常显示数据
  2. 进入学生信息管理页面,验证班主任搜索框是否正常显示数据
  3. 验证班主任用户是否能正常访问系统并使用相关功能
  4. 确认班主任数据是否直接从数据库读取,而不是使用模拟数据