From 1d53c2aabb4a5ba45406a3ada89a157815028464 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 30 五月 2024 09:36:16 +0800 Subject: [PATCH] 课目下拉数据权限修复 --- src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java | 6 +++--- src/main/resources/mapper/SubjectMapper.xml | 2 +- src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java | 6 +++--- src/main/java/com/mindskip/xzs/repository/SubjectMapper.java | 2 +- src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java | 12 +++++------- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java index c116a5d..faa4c6c 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java @@ -187,7 +187,7 @@ data.add(questionImportVO3); // 鏌ュ嚭鎵�鏈夌殑璇剧洰锛坋xcel涓嬫媺鏁版嵁锛� - List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>()); + List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>(), Boolean.TRUE); List<String> subjectNameList = subjects.stream().map(Subject::getName).collect(Collectors.toList()); EasyExcel.write(response.getOutputStream(), QuestionImportVO.class) @@ -248,7 +248,7 @@ response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); // 鏌ュ嚭鎵�鏈夌殑璇剧洰锛坋xcel涓嬫媺鏁版嵁锛� - List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>()); + List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>(), Boolean.TRUE); List<String> subjectNameList = subjects.stream().map(Subject::getName).collect(Collectors.toList()); EasyExcel.write(response.getOutputStream(), QuestionImportVO.class) .sheet("棰樼洰瀵煎嚭鏁版嵁") @@ -341,7 +341,7 @@ // 鏌ュ嚭鎵�鏈夌殑璇剧洰 - List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>()); + List<Subject> subjects = subjectMapper.allSubject(new ArrayList<>(), Boolean.TRUE); List<String> subjectNames = Arrays.asList(excelQuestion.getSubjectName().split(SPLIT)); List<Subject> targetSubject = subjects.stream() .filter(subject -> subjectNames.contains(subject.getName())) diff --git a/src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java index eddee89..91a56aa 100644 --- a/src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java +++ b/src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java @@ -10,7 +10,7 @@ ADMIN(3, "ADMIN"), DEPT_ADMIN(-1, "DEPT_ADMIN"); - int code; + Integer code; String name; RoleEnum(int code, String name) { @@ -30,11 +30,11 @@ return keyMap.get(code); } - public int getCode() { + public Integer getCode() { return code; } - public void setCode(int code) { + public void setCode(Integer code) { this.code = code; } diff --git a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java index f552309..f893e99 100644 --- a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java @@ -12,7 +12,7 @@ List<Subject> getSubjectByLevel(Integer level); - List<Subject> allSubject(@Param("deptIds") List<Integer> deptIds); + List<Subject> allSubject(@Param("deptIds") List<Integer> deptIds, @Param("admin") Boolean admin); List<Subject> page(SubjectPageRequestVM requestVM); diff --git a/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java index bf9c107..68cde6a 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java @@ -2,6 +2,7 @@ import com.mindskip.xzs.context.WebContext; import com.mindskip.xzs.domain.Subject; +import com.mindskip.xzs.domain.enums.RoleEnum; import com.mindskip.xzs.repository.BaseMapper; import com.mindskip.xzs.repository.DepartmentMapper; import com.mindskip.xzs.repository.SubjectMapper; @@ -46,13 +47,10 @@ @Override public List<Subject> allSubject() { - // 濡傛灉鏄儴闂ㄧ鐞嗗憳锛屽彧鏌ュ叧鑱旇閮ㄩ棬鐨勮鐩� - boolean deptAdmin = webContext.isDeptAdmin(); - List<Integer> deptIds = new ArrayList<>(); - if (deptAdmin) { - deptIds = webContext.getAdminDeptIds(); - } - return subjectMapper.allSubject(deptIds); + // 鍙煡鑷繁閮ㄩ棬鐨勮鐩� + List<Integer> deptIds = webContext.getAdminDeptIds(); + Boolean admin = RoleEnum.ADMIN.getCode().equals(webContext.getCurrentUser().getRole()); + return subjectMapper.allSubject(deptIds, admin); } @Override diff --git a/src/main/resources/mapper/SubjectMapper.xml b/src/main/resources/mapper/SubjectMapper.xml index c7b6258..fac9514 100644 --- a/src/main/resources/mapper/SubjectMapper.xml +++ b/src/main/resources/mapper/SubjectMapper.xml @@ -118,7 +118,7 @@ select ts.id, ts.name from t_subject ts - <if test="deptIds != null and deptIds.size > 0"> + <if test="admin == false and deptIds != null and deptIds.size > 0"> INNER JOIN t_subject_dept tsd ON tsd.subject_id = ts.id AND tsd.dept_id IN <foreach collection="deptIds" open="(" separator="," close=")" item="deptId">#{deptId}</foreach> -- Gitblit v1.8.0