Explorar o código

3.2.3 bug修改

xiaofei %!s(int64=2) %!d(string=hai) anos
pai
achega
d9f6222352

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/SysRolePrivilegeParams.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionInfo;
 import com.qmth.teachcloud.common.annotation.EditKey;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 
@@ -39,6 +40,9 @@ public class SysRolePrivilegeParams implements Serializable {
     @NotEmpty(message = "数据权限集合不能为空")
     private List<DataPermissionInfo> dataPermissionInfo;
 
+    @ApiModelProperty("是否系统角色")
+    private Boolean defaultRole;
+
     public Long getId() {
         return id;
     }
@@ -78,4 +82,12 @@ public class SysRolePrivilegeParams implements Serializable {
     public void setDataPermissionInfo(List<DataPermissionInfo> dataPermissionInfo) {
         this.dataPermissionInfo = dataPermissionInfo;
     }
+
+    public Boolean getDefaultRole() {
+        return defaultRole;
+    }
+
+    public void setDefaultRole(Boolean defaultRole) {
+        this.defaultRole = defaultRole;
+    }
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPaperStructureService.java

@@ -6,6 +6,7 @@ import com.qmth.distributed.print.business.bean.marking.CardJpgResult;
 import com.qmth.distributed.print.business.bean.marking.GroupInfo;
 import com.qmth.distributed.print.business.bean.marking.Question;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
+import com.qmth.teachcloud.common.bean.dto.UserRoleDto;
 import com.qmth.teachcloud.common.bean.dto.stmms.ExamCloudPaperStructDto;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.QuestionType;
@@ -78,7 +79,7 @@ public interface ExamPaperStructureService extends IService<ExamPaperStructure>
 
     ExamPaperStructure saveMarker(Long examPaperStructureId, GroupInfo groupInfo);
 
-    List<SysUser> listSecretary();
+    List<UserRoleDto> listSecretary();
 
     /**
      * 转办/打回

+ 8 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -65,23 +65,25 @@ public class ConditionServiceImpl implements ConditionService {
     @Override
     public List<BasicCourse> listCourse(Long semesterId, Long examId, Boolean enable, List<String> printPlanIds) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        String privilegeIdString = privilegeId == null ? null : String.valueOf(privilegeId);
 
         DataPermissionRule dpr = new DataPermissionRule();
         // 未找到权限菜单,默认为本人权限
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         // 入库申请菜单
-        if ("40".equals(privilegeId)) {
+        if ("40".equals(privilegeIdString)) {
             return conditionMapper.listCourseForApply(semesterId, examId, enable, sysUser.getId());
         }
         // 入库审核菜单
-        else if ("41".equals(privilegeId)) {
+        else if ("41".equals(privilegeIdString)) {
             return conditionMapper.listCourseForAudit(semesterId, examId, enable, sysUser.getId());
         }
         // 成绩查询
-        else if ("487".equals(privilegeId)) {
+        else if ("487".equals(privilegeIdString)) {
             return conditionMapper.listCourseForScore(semesterId, examId, dpr);
         } else {
+            dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
             return conditionMapper.listCourse(semesterId, examId, enable, printPlanIds, dpr);
         }
     }
@@ -89,6 +91,7 @@ public class ConditionServiceImpl implements ConditionService {
     @Override
     public List<String> listPaperNumber(Long semesterId, Long examId, String courseCode, List<String> printPlanIds) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        String privilegeIdString = privilegeId == null ? null : String.valueOf(privilegeId);
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
         // 未找到权限菜单,默认为本人权限
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -102,11 +105,11 @@ public class ConditionServiceImpl implements ConditionService {
         }
 
         // 入库申请菜单
-        if ("40".equals(privilegeId)) {
+        if ("40".equals(privilegeIdString)) {
             return conditionMapper.listPaperNumberForApply(semesterId, examId, courseCode, sysUser.getId());
         }
         // 入库审核菜单
-        else if ("41".equals(privilegeId)) {
+        else if ("41".equals(privilegeIdString)) {
             return conditionMapper.listPaperNumberAudit(semesterId, examId, courseCode, sysUser.getId());
         } else {
             return conditionMapper.listPaperNumber(semesterId, examId, courseCode, printPlanIds, dpr);

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java

@@ -20,6 +20,7 @@ import com.qmth.distributed.print.business.enums.ExamTaskSyncStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamPaperStructureMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.bean.dto.UserRoleDto;
 import com.qmth.teachcloud.common.bean.dto.stmms.ExamCloudPaperStructDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
@@ -446,7 +447,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
     }
 
     @Override
-    public List<SysUser> listSecretary() {
+    public List<UserRoleDto> listSecretary() {
         return sysUserService.listSecretary();
     }
 

+ 2 - 2
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -94,7 +94,7 @@
                 <if test="examId != null">
                     AND et.exam_id = #{examId}
                 </if>
-                <if test="userId == null">
+                <if test="userId != null">
                     AND et.user_id = #{userId}
                 </if>
             </where>)
@@ -163,7 +163,7 @@
                 AND et.course_code = #{courseCode}
             </if>
             <if test="userId != null">
-                et.user_id = #{userId}
+                AND et.user_id = #{userId}
             </if>
         </where>
         order by et.paper_number

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
 @Api(tags = "查询条件Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/condition")
-@Aac(auth = BOOL.FALSE)
 public class ConditionController {
     @Resource
     private ConditionService conditionService;

+ 1 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java

@@ -105,6 +105,7 @@ public class SysRoleController {
         role.setName(sysRolePrivilegeParams.getName());
         role.setInterpret(sysRolePrivilegeParams.getInterpret());
         role.setPrivilegeIds(sysRolePrivilegeParams.getPrivilegeIds().stream().map(SystemConstant::convertIdToLong).toArray(Long[]::new));
+        role.setDefaultRole(sysRolePrivilegeParams.getDefaultRole() == null ? false : sysRolePrivilegeParams.getDefaultRole());
         boolean rolePrivilegeResult = sysRoleService.saveRoleNew(role);
 
         // 组装角色权限

+ 63 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/UserRoleDto.java

@@ -0,0 +1,63 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+
+/**
+ * @Date: 2021/3/23.
+ */
+public class UserRoleDto {
+
+    private String userId;
+    private String schoolId;
+    private String loginName;
+    private String realName;
+    private String roleId;
+    private String roleName;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(String schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(String roleId) {
+        this.roleId = roleId;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+}

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysUserMapper.java

@@ -134,5 +134,5 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      */
     List<SysUserResult> findCourseSysUserResultList(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode);
 
-    List<SysUser> findByRoleTypeAndOrgId(@Param("roleType") String roleType, @Param("orgId") Long orgId);
+    List<UserRoleDto> findByRoleTypeAndOrgId(@Param("roleType") String roleType, @Param("orgId") Long orgId);
 }

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.LoginDto;
 import com.qmth.teachcloud.common.bean.dto.UserDto;
+import com.qmth.teachcloud.common.bean.dto.UserRoleDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.bean.params.UserSaveReportParams;
@@ -284,5 +285,5 @@ public interface SysUserService extends IService<SysUser> {
      */
     List<SysUserResult> findCourseSysUserResultList(Long schoolId, String courseCode);
 
-    List<SysUser> listSecretary();
+    List<UserRoleDto> listSecretary();
 }

+ 26 - 11
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -83,17 +83,32 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             } else if (Objects.nonNull(schoolId)) {
                 role.setSchoolId(schoolId);
             }
-            // 系统默认内置角色(不允许和系统默认角色重名)
-            List<String> defaultRoleNames = this.list(new QueryWrapper<SysRole>().lambda()
-                            .eq(SysRole::getDefaultRole, true)
-                            .eq(SysRole::getEnable, true))
-                    .stream()
-                    .map(SysRole::getName)
-                    .distinct()
-                    .collect(Collectors.toList());
-            String roleName = role.getName();
-            if (defaultRoleNames.contains(roleName)) {
-                throw ExceptionResultEnum.ERROR.exception("角色名称不能和系统默认角色【" + roleName + "】同名");
+            // 内置角色检验
+            if(role.getDefaultRole()){
+                List<SysRole> roleList = this.list(new QueryWrapper<SysRole>().lambda()
+                                .eq(SysRole::getDefaultRole, true)
+                                .eq(SysRole::getEnable, true))
+                        .stream()
+                        .filter(m->m.getName().equals(role.getName()) && !m.getId().equals(role.getId()))
+                        .distinct()
+                        .collect(Collectors.toList());
+                String roleName = role.getName();
+                if (!roleList.isEmpty()) {
+                    throw ExceptionResultEnum.ERROR.exception("已存在相同的角色名称");
+                }
+            } else {
+                // 系统默认内置角色(不允许和系统默认角色重名)
+                List<String> defaultRoleNames = this.list(new QueryWrapper<SysRole>().lambda()
+                                .eq(SysRole::getDefaultRole, true)
+                                .eq(SysRole::getEnable, true))
+                        .stream()
+                        .map(SysRole::getName)
+                        .distinct()
+                        .collect(Collectors.toList());
+                String roleName = role.getName();
+                if (defaultRoleNames.contains(roleName)) {
+                    throw ExceptionResultEnum.ERROR.exception("系统角色已存在相同的角色名称");
+                }
             }
             if (Objects.nonNull(role.getId())) {//编辑
                 List<SysRolePrivilege> sysRolePrivilegeList = commonCacheService.rolePrivilegeCache(role.getId());

+ 15 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -1116,13 +1116,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<SysUser> listSecretary() {
+    public List<UserRoleDto> listSecretary() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysOrg sysOrg = sysOrgService.findCollegeByOrgId(sysUser.getSchoolId(), sysUser.getOrgId());
-        if(sysOrg != null){
-            return this.baseMapper.findByRoleTypeAndOrgId(RoleTypeEnum.ASSISTANT.name(), sysOrg.getId());
+        List<UserRoleDto> userRoleDtos = new ArrayList<>();
+        if (sysOrg != null) {
+            // 学院秘书
+            List<UserRoleDto> assistantList = this.baseMapper.findByRoleTypeAndOrgId(RoleTypeEnum.ASSISTANT.name(), sysOrg.getId());
+            if (!assistantList.isEmpty()) {
+                userRoleDtos.addAll(assistantList);
+            }
+        }
+        // 学校管理员
+        SysOrg rootOrg = sysOrgService.findRootOrg(sysUser.getSchoolId());
+        List<UserRoleDto> adminList = this.baseMapper.findByRoleTypeAndOrgId(RoleTypeEnum.SCHOOL_ADMIN.name(), rootOrg.getId());
+        if (!adminList.isEmpty()) {
+            userRoleDtos.addAll(adminList);
         }
-        return null;
+        return userRoleDtos;
     }
 
     /**

+ 11 - 11
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -493,21 +493,21 @@
         order by
             su.login_name
     </select>
-    <select id="findByRoleTypeAndOrgId" resultType="com.qmth.teachcloud.common.entity.SysUser">
+    <select id="findByRoleTypeAndOrgId" resultType="com.qmth.teachcloud.common.bean.dto.UserRoleDto">
         SELECT
-            *
+            su.id userId,
+            su.login_name loginName,
+            su.real_name realName,
+            sr.id roleId,
+            sr.name roleName
         FROM
             sys_user su
+                JOIN
+            sys_user_role sur ON su.id = sur.user_id
+                JOIN
+            sys_role sr ON sur.role_id = sr.id
         WHERE
             su.org_id = #{orgId}
-          AND EXISTS( SELECT
-                          1
-                      FROM
-                          sys_user_role sur
-                              JOIN
-                          sys_role sr ON sur.role_id = sr.id
-                      WHERE
-                          su.id = sur.user_id
-                        AND sr.type = #{roleType})
+          AND sr.type = #{roleType}
     </select>
 </mapper>