xiangpei
2024-05-30 1d53c2aabb4a5ba45406a3ada89a157815028464
课目下拉数据权限修复
5个文件已修改
28 ■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/enums/RoleEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/SubjectMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -187,7 +187,7 @@
        data.add(questionImportVO3);
        // 查出所有的课目(excel下拉数据)
        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");
        // 查出所有的课目(excel下拉数据)
        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()))
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;
    }
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);
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
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>