提交代码
This commit is contained in:
1 parent
e8665410fd
commit
be63faf496
6 files changed
+476
-37
No files matched your search
@@ -240,4 +240,91 @@ collegeName: string;
|
||||
**验证方法**:
|
||||
1. 启动后端服务,测试班级干部信息查询接口
|
||||
2. 检查返回数据是否包含专业和学院信息
|
||||
3. 验证前端页面是否正确显示新增字段
|
||||
3. 验证前端页面是否正确显示新增字段
|
||||
|
||||
## 变更概述
|
||||
修改 `XgStudentMsgServiceImpl.getUserAuthDeptIds` 方法中的第四步权限获取逻辑,从 `xg_class_teacher_counselor_rel` 表改为从 `xg_class_msg` 表获取权限信息。
|
||||
|
||||
## 变更详情
|
||||
|
||||
### 修改文件
|
||||
- `backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgStudentMsgServiceImpl.java`
|
||||
|
||||
### 变更内容
|
||||
|
||||
#### 1. 添加依赖注入
|
||||
- 添加 `XgClassMsgMapper` 的导入
|
||||
- 添加 `XgClassMsg` 实体类的导入
|
||||
- 在类字段中添加 `XgClassMsgMapper` 的依赖注入
|
||||
|
||||
#### 2. 修改权限获取逻辑
|
||||
**原逻辑(第四步)**:
|
||||
```java
|
||||
// 第四步:通过xg_class_teacher_counselor_rel,teacher_id=当前登录人id,deleted=0,获取class_id
|
||||
LambdaQueryWrapper<XgClassTeacherCounselorRel> relWrapper = Wrappers.lambdaQuery();
|
||||
relWrapper.eq(XgClassTeacherCounselorRel::getTeacherId, userId)
|
||||
.eq(XgClassTeacherCounselorRel::getTeacherType, "class_teacher")
|
||||
.eq(XgClassTeacherCounselorRel::getDeleted, 0L);
|
||||
|
||||
List<XgClassTeacherCounselorRel> relations = xgClassTeacherCounselorRelMapper.selectList(relWrapper);
|
||||
for (XgClassTeacherCounselorRel relation : relations) {
|
||||
if (relation.getClassId() != null) {
|
||||
authDeptIds.add(relation.getClassId());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**新逻辑(第四步)**:
|
||||
```java
|
||||
// 第四步:通过xg_class_msg表,class_teacher_id=当前登录人id,deleted='0',class_status='1',获取id
|
||||
LambdaQueryWrapper<XgClassMsg> classWrapper = Wrappers.lambdaQuery();
|
||||
classWrapper.eq(XgClassMsg::getClassTeacherId, userId)
|
||||
.eq(XgClassMsg::getDeleted, 0L)
|
||||
.eq(XgClassMsg::getClassStatus, "1");
|
||||
|
||||
List<XgClassMsg> classes = xgClassMsgMapper.selectList(classWrapper);
|
||||
for (XgClassMsg classMsg : classes) {
|
||||
if (classMsg.getId() != null) {
|
||||
authDeptIds.add(classMsg.getId());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 变更原因
|
||||
根据用户需求,将权限获取方式从关联表查询改为直接从班级信息表查询,提高查询效率并简化逻辑。
|
||||
|
||||
### SQL查询对比
|
||||
**原SQL逻辑**:
|
||||
```sql
|
||||
SELECT class_id FROM xg_class_teacher_counselor_rel
|
||||
WHERE teacher_id = 当前登录人id
|
||||
AND deleted = 0
|
||||
AND teacher_type = 'class_teacher'
|
||||
```
|
||||
|
||||
**新SQL逻辑**:
|
||||
```sql
|
||||
SELECT id FROM xg_class_msg
|
||||
WHERE class_teacher_id = 当前登录人id
|
||||
AND deleted = '0'
|
||||
AND class_status = '1'
|
||||
```
|
||||
|
||||
### 影响范围
|
||||
- 学生信息管理模块的权限过滤功能
|
||||
- 班主任权限范围内的学生信息查询
|
||||
- 组织架构相关的权限控制
|
||||
|
||||
### 测试建议
|
||||
1. 验证班主任用户登录后能正确获取其管理的班级权限
|
||||
2. 验证学生信息查询功能在权限过滤后正常工作
|
||||
3. 确认全校管理员权限不受影响
|
||||
|
||||
## 变更时间
|
||||
2025-01-27 14:30:00
|
||||
|
||||
## 变更人员
|
||||
Cursor AI
|
||||
|
||||
## 备注
|
||||
此次变更是对权限获取逻辑的优化,从多表关联查询改为单表直接查询,提高了查询效率。
|
||||
Reference in new issue
Block a user