Răsfoiți Sursa

Merge remote-tracking branch 'origin/dev_v2.2.0' into dev_v2.2.0

caozixuan 3 ani în urmă
părinte
comite
2bbd787fe4

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

@@ -66,7 +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());
-        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds);
+        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds, true);
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         //添加或签的人员,一人通过即可进入下一环节
         delegateTask.addCandidateUsers(ids);

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

@@ -39,7 +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());
-        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds);
+        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds, true);
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         //添加或签的人员,一人通过即可进入下一环节
         delegateTask.addCandidateUsers(ids);

+ 1 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -99,8 +99,7 @@ public class SysUserController {
     @RequestMapping(value = "/user_list", method = RequestMethod.POST)
     public Result userQuery(@RequestParam(value = "courseCode", required = false) String courseCode,
                             @RequestParam(value = "param", required = false) String param) {
-        List<BlurryUserDto> list = sysUserService.listUser(courseCode, param);
-        return ResultUtil.ok(list);
+        return ResultUtil.ok(sysUserService.listUser(courseCode, param));
     }
 
     /**

+ 16 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/BlurryUserDto.java

@@ -1,18 +1,31 @@
 package com.qmth.teachcloud.common.bean.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
 /**
  * @Date: 2021/3/31.
  */
 public class BlurryUserDto {
 
-    private String id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
     private String name;
 
-    public String getId() {
+    public BlurryUserDto() {
+
+    }
+
+    public BlurryUserDto(Long id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
+    public Long getId() {
         return id;
     }
 
-    public void setId(String id) {
+    public void setId(Long id) {
         this.id = id;
     }
 

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

@@ -32,7 +32,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      *
      * @param schoolId
      * @param orgIds
+     * @param filter
      * @return
      */
-    List<SysUser> filterFlowPrivilege(@Param("schoolId")Long schoolId,@Param("orgIds") Set<Long> orgIds);
+    List<SysUser> filterFlowPrivilege(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds, @Param("filter") Boolean filter);
 }

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

@@ -68,9 +68,10 @@ public interface SysUserService extends IService<SysUser> {
      *
      * @param schoolId
      * @param orgIds
+     * @param filter
      * @return
      */
-    List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds);
+    List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter);
 
     /**
      * 执行批量导入用户逻辑

+ 48 - 29
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -54,9 +54,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Autowired
     private BasicCourseService basicCourseService;
 
-    @Autowired
-    private BasicUserCourseService basicUserCourseService;
-
     @Autowired
     private SysConfigService sysConfigService;
 
@@ -78,6 +75,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     SysOrgService sysOrgService;
 
+    @Resource
+    SysUserService sysUserService;
+
     @Override
     public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -215,8 +215,23 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public List<BlurryUserDto> listUser(String courseCode, String param) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
-        return this.baseMapper.listUser(schoolId, RoleTypeEnum.QUESTION_TEACHER.name(), courseCode, param, orgIds);
+        QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
+        basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId)
+                .eq(BasicCourse::getCode, courseCode)
+                .eq(BasicCourse::getEnable, true);
+        BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
+        if (Objects.isNull(basicCourse)) {
+            throw ExceptionResultEnum.ERROR.exception("找不到此课程信息");
+        }
+
+        List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
+        Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
+        List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(schoolId, orgIds, false);
+        List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
+        for (SysUser sysUser : sysUserList) {
+            blurryUserDtoList.add(new BlurryUserDto(sysUser.getId(), sysUser.getRealName()));
+        }
+        return blurryUserDtoList;
     }
 
     @Override
@@ -451,11 +466,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      *
      * @param schoolId
      * @param orgIds
+     * @param filter
      * @return
      */
     @Override
-    public List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds) {
-        return sysUserMapper.filterFlowPrivilege(schoolId, orgIds);
+    public List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter) {
+        return sysUserMapper.filterFlowPrivilege(schoolId, orgIds, filter);
     }
 
     @Override
@@ -485,15 +501,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 String roleName = sysUserImportDto.getRoleName();
 
                 UserSaveParams userSaveParams = new UserSaveParams();
-                Long orgId = this.analyzeOrgName(schoolId,orgName);
+                Long orgId = this.analyzeOrgName(schoolId, orgName);
                 List<Long> roleIdList = this.analyzeRoleName(schoolId, roleName);
 
-                SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName,name).eq(SysUser::getSchoolId,schoolId));
+                SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, name).eq(SysUser::getSchoolId, schoolId));
                 Long oldUserId = null;
-                if (Objects.nonNull(oldUser)){
-                     oldUserId = oldUser.getId();
+                if (Objects.nonNull(oldUser)) {
+                    oldUserId = oldUser.getId();
                 }
-                if (SystemConstant.longNotNull(oldUserId)){
+                if (SystemConstant.longNotNull(oldUserId)) {
                     // 编辑
                     userSaveParams.setId(oldUserId);
                 }
@@ -505,7 +521,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 userSaveParamsList.add(userSaveParams);
             }
         }
-        UserBatchDisposeResult userBatchDisposeResult = this.disposeUserInfoHelp(userSaveParamsList,sysUser);
+        UserBatchDisposeResult userBatchDisposeResult = this.disposeUserInfoHelp(userSaveParamsList, sysUser);
         List<SysUser> sysUserList = userBatchDisposeResult.getUserList();
         List<SysUserRole> sysUserRoleList = userBatchDisposeResult.getUserRoleList();
         this.saveOrUpdateBatch(sysUserList);
@@ -515,20 +531,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 批量处理用户信息帮助类
+     *
      * @param userSaveParamsList 用户信息集合
-     * @param master 创建人信息
+     * @param master             创建人信息
      * @return 处理后的结果
      */
-    private UserBatchDisposeResult disposeUserInfoHelp(List<UserSaveParams> userSaveParamsList,SysUser master) throws NoSuchAlgorithmException {
+    private UserBatchDisposeResult disposeUserInfoHelp(List<UserSaveParams> userSaveParamsList, SysUser master) throws NoSuchAlgorithmException {
         Long schoolId = master.getSchoolId();
         List<SysUser> userList = new ArrayList<>();
         List<SysUserRole> sysUserRoleList = new ArrayList<>();
         for (UserSaveParams userSaveParams : userSaveParamsList) {
             String code = userSaveParams.getCode();
-            SysUser check = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId,schoolId).eq(SysUser::getEnable,true).eq(SysUser::getCode,code));
-            if (Objects.nonNull(check)){
-                if (!check.getId().equals(userSaveParams.getId())){
-                    throw ExceptionResultEnum.ERROR.exception("用户工号【" + code +"】重复");
+            SysUser check = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getEnable, true).eq(SysUser::getCode, code));
+            if (Objects.nonNull(check)) {
+                if (!check.getId().equals(userSaveParams.getId())) {
+                    throw ExceptionResultEnum.ERROR.exception("用户工号【" + code + "】重复");
                 }
             }
             Gson gson = new Gson();
@@ -540,7 +557,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 userList.add(userCell);
                 List<SysUserRole> sysUserRoleCell = commonService.disposeUserPrivilege(userCell, userSaveParams.getRoleIds());
                 sysUserRoleList.addAll(sysUserRoleCell);
-            }else {//修改用户
+            } else {//修改用户
                 List<SysUserRole> oldRoleList = cacheService.userRolePrivilegeCache(userCell.getId());
                 List<Long> newRoleList = Arrays.asList(userSaveParams.getRoleIds());
                 Set<Long> dbUserRolesList = oldRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
@@ -577,13 +594,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 解析机构名称
+     *
      * @param schoolId 学校id
-     * @param orgName 结构名称
+     * @param orgName  结构名称
      * @return 机构id
      */
-    private Long analyzeOrgName(Long schoolId,String orgName){
-        SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getEnable,true).eq(SysOrg::getSchoolId,schoolId).eq(SysOrg::getName,orgName));
-        if (Objects.isNull(sysOrg)){
+    private Long analyzeOrgName(Long schoolId, String orgName) {
+        SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getEnable, true).eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getName, orgName));
+        if (Objects.isNull(sysOrg)) {
             throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的机构【" + orgName + "】");
         }
         return sysOrg.getId();
@@ -591,19 +609,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 根据角色名称获取角色id集合
+     *
      * @param schoolId 学校id
      * @param roleName 角色名称组
      * @return 角色集合
      */
-    private List<Long> analyzeRoleName(Long schoolId, String roleName){
+    private List<Long> analyzeRoleName(Long schoolId, String roleName) {
         List<Long> roleIdList = new ArrayList<>();
         String[] arr = roleName.split(",");
         for (String cell : arr) {
             SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda()
-                    .eq(SysRole::getEnable,true)
-                    .eq(SysRole::getName,cell)
-                    .eq(SysRole::getSchoolId,schoolId));
-            if (Objects.isNull(sysRole)){
+                    .eq(SysRole::getEnable, true)
+                    .eq(SysRole::getName, cell)
+                    .eq(SysRole::getSchoolId, schoolId));
+            if (Objects.isNull(sysRole)) {
                 throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的角色【" + cell + "】");
             }
             roleIdList.add(sysRole.getId());

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

@@ -125,15 +125,17 @@
             sur.user_id = su.id
         join sys_role_privilege srp on
             srp.role_id = sur.role_id
-        join(
+        <if test="filter != null and filter != '' and filter == 1">
+            join(
             select
-                sp.id
+            sp.id
             from
-                sys_privilege sp
+            sys_privilege sp
             where
-                sp.url = 'flow'
-                and sp.name = '流程审核') t on
+            sp.url = 'flow'
+            and sp.name = '流程审核') t on
             t.id = srp.privilege_id
+        </if>
            <where>
                <if test="orgIds != null">
                    AND su.org_id IN