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