소스 검색

整理数据权限

wangliang 3 년 전
부모
커밋
8417309075

+ 1 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveListener.java

@@ -66,11 +66,7 @@ public class DirectorApproveListener implements TaskListener {
         }
         List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getOrgId());
         Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
-
-        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
-        sysUserQueryWrapper.lambda().eq(SysUser::getSchoolId, sysUser.getSchoolId())
-                .in(SysUser::getOrgId, orgIds);
-        List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds);
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         //添加或签的人员,一人通过即可进入下一环节
         delegateTask.addCandidateUsers(ids);

+ 1 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PresidentApproveListener.java

@@ -39,11 +39,7 @@ public class PresidentApproveListener implements TaskListener {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(sysUser.getOrgId());
         Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
-
-        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
-        sysUserQueryWrapper.lambda().eq(SysUser::getSchoolId, sysUser.getSchoolId())
-                .in(SysUser::getOrgId, orgIds);
-        List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds);
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         //添加或签的人员,一人通过即可进入下一环节
         delegateTask.addCandidateUsers(ids);

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTask.java

@@ -100,6 +100,7 @@ public class ExamTask extends BaseEntity implements Serializable {
     private String batchNo;
 
     @TableField("teaching_room_id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long teachingRoomId;
 
     @TableField("teacher_name")

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

@@ -21,9 +21,18 @@ import java.util.Set;
  */
 public interface SysUserMapper extends BaseMapper<SysUser> {
 
-    IPage<UserDto> listPage(Page<UserDto> page, @Param("schoolId") Long schoolId, @Param("loginName") String loginName, @Param("roleId") String roleId, @Param("enable") Boolean enable,@Param("realName")String realName);
+    IPage<UserDto> listPage(Page<UserDto> page, @Param("schoolId") Long schoolId, @Param("loginName") String loginName, @Param("roleId") String roleId, @Param("enable") Boolean enable, @Param("realName") String realName);
 
     List<BlurryUserDto> listUser(@Param("schoolId") Long schoolId, @Param("type") String type, @Param("courseCode") String courseCode, @Param("param") String param, @Param("orgIds") Set<Long> orgIds);
 
     IPage<UserDto> listCustomerPage(Page<UserDto> page, @Param("realName") String realName, @Param("enable") Boolean enable);
+
+    /**
+     * 过滤拥有审核权限的人
+     *
+     * @param schoolId
+     * @param orgIds
+     * @return
+     */
+    List<SysUser> filterFlowPrivilege(@Param("schoolId")Long schoolId,@Param("orgIds") Set<Long> orgIds);
 }

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

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -21,7 +22,7 @@ import java.util.List;
  */
 public interface SysUserService extends IService<SysUser> {
 
-    IPage<UserDto> list(String loginName, String roleId, Boolean enable,String realName, Integer pageNumber, Integer pageSize);
+    IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize);
 
     boolean saveUser(UserSaveParams userSaveParams);
 
@@ -45,7 +46,8 @@ public interface SysUserService extends IService<SysUser> {
 
     /**
      * 根据外键查找教师信息
-     * @param schoolId 学校id
+     *
+     * @param schoolId    学校id
      * @param teacherName 教师名称
      * @return 学院数据
      */
@@ -53,8 +55,18 @@ public interface SysUserService extends IService<SysUser> {
 
     /**
      * 临时-不鉴权保存用户 (默认创建用户角色为该学校管理员)
+     *
      * @param userSaveParams 用户参数
      * @return 结果
      */
     boolean saveUserNoAuth(UserSaveParams userSaveParams);
+
+    /**
+     * 过滤拥有审核权限的人
+     *
+     * @param schoolId
+     * @param orgIds
+     * @return
+     */
+    List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds);
 }

+ 19 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -12,6 +12,7 @@ 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.params.UserSaveParams;
+import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -69,14 +70,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private TeachcloudCommonService commonService;
 
     @Resource
-    SysUserService sysUserService;
+    SysUserMapper sysUserMapper;
 
     @Override
-    public IPage<UserDto> list(String loginName, String roleId, Boolean enable,String realName, Integer pageNumber, Integer pageSize) {
+    public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
 
         Page<UserDto> page = new Page<>(pageNumber, pageSize);
-        IPage<UserDto> userDtoIPage = this.baseMapper.listPage(page, schoolId, SystemConstant.translateSpecificSign(loginName), roleId, enable,SystemConstant.translateSpecificSign(realName));
+        IPage<UserDto> userDtoIPage = this.baseMapper.listPage(page, schoolId, SystemConstant.translateSpecificSign(loginName), roleId, enable, SystemConstant.translateSpecificSign(realName));
         if (userDtoIPage.getRecords().size() > 0) {
             userDtoIPage.getRecords().forEach(m -> {
                 //角色
@@ -263,6 +264,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @return
      */
     public boolean saveUserCommon(UserSaveParams userSaveParams) {
+        SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
@@ -340,7 +342,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @param userSaveParams 用户参数
      * @return 结果
      */
+    @Override
     public boolean saveUserNoAuth(UserSaveParams userSaveParams) {
+        SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
@@ -435,4 +439,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         return isSuccess;
     }
+
+    /**
+     * 过滤拥有审核权限的人
+     *
+     * @param schoolId
+     * @param orgIds
+     * @return
+     */
+    @Override
+    public List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds) {
+        return sysUserMapper.filterFlowPrivilege(schoolId, orgIds);
+    }
 }

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

@@ -114,4 +114,35 @@
             </if>
         </where>
     </select>
+
+    <select id="filterFlowPrivilege" resultType="com.qmth.teachcloud.common.entity.SysUser">
+        select
+            DISTINCT su.*
+        from
+            sys_user su
+        join sys_user_role sur on
+            sur.user_id = su.id
+        join sys_role_privilege srp on
+            srp.role_id = sur.role_id
+        join(
+            select
+                sp.id
+            from
+                sys_privilege sp
+            where
+                sp.url = 'flow'
+                and sp.name = '流程审核') t on
+            t.id = srp.privilege_id
+           <where>
+               <if test="orgIds != null">
+                   AND su.org_id IN
+                   <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                       #{item}
+                   </foreach>
+               </if>
+               <if test="schoolId != null and schoolId != ''">
+                   and su.school_id = #{schoolId}
+               </if>
+           </where>
+    </select>
 </mapper>