Pārlūkot izejas kodu

新增角色成员组api

wangliang 3 gadi atpakaļ
vecāks
revīzija
64ad9863c4

+ 56 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysRoleGroupMemberResult.java

@@ -0,0 +1,56 @@
+package com.qmth.teachcloud.common.bean.result;
+
+import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 角色组成员返回
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/3/9
+ */
+public class SysRoleGroupMemberResult implements Serializable {
+
+    @ApiModelProperty(value = "用户信息")
+    ApproveUserResult user;
+
+    @ApiModelProperty(value = "成员信息")
+    List<ApproveUserResult> memberList;
+
+    public SysRoleGroupMemberResult() {
+
+    }
+
+    public SysRoleGroupMemberResult(ApproveUserResult user) {
+        this.user = user;
+    }
+
+    public SysRoleGroupMemberResult(List<ApproveUserResult> memberList) {
+        this.memberList = memberList;
+    }
+
+    public SysRoleGroupMemberResult(ApproveUserResult user, List<ApproveUserResult> memberList) {
+        this.user = user;
+        this.memberList = memberList;
+    }
+
+    public ApproveUserResult getUser() {
+        return user;
+    }
+
+    public void setUser(ApproveUserResult user) {
+        this.user = user;
+    }
+
+    public List<ApproveUserResult> getMemberList() {
+        return memberList;
+    }
+
+    public void setMemberList(List<ApproveUserResult> memberList) {
+        this.memberList = memberList;
+    }
+}

+ 5 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysRoleGroupMemberService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberResult;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
 
 import java.util.List;
@@ -33,7 +34,7 @@ public interface SysRoleGroupMemberService extends IService<SysRoleGroupMember>
      * @param roleId
      * @return
      */
-    public List<SysRoleGroupMember> findByRoleId(Long roleId);
+    public List<SysRoleGroupMemberResult> findByRoleId(Long roleId);
 
     /**
      * 根据roleId和userId查找数据
@@ -45,12 +46,13 @@ public interface SysRoleGroupMemberService extends IService<SysRoleGroupMember>
     public List<SysRoleGroupMember> findByRoleIdAndUserId(Long roleId, Long userId);
 
     /**
-     * 根据memberId查找数据
+     * 根据roleIds和memberId查找数据
      *
+     * @param roleIds
      * @param memberId
      * @return
      */
-    public List<SysRoleGroupMember> findByMemberId(Long memberId);
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberId(List<Long> roleIds, Long memberId);
 
     /**
      * 流程数据组匹配查询

+ 39 - 21
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleGroupMemberServiceImpl.java

@@ -8,12 +8,15 @@ import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatch;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
+import com.qmth.teachcloud.common.entity.SysUserRole;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.mapper.SysRoleGroupMemberMapper;
 import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
+import com.qmth.teachcloud.common.service.SysUserRoleService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.springframework.dao.DuplicateKeyException;
@@ -38,6 +41,9 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
     @Resource
     SysUserService sysUserService;
 
+    @Resource
+    SysUserRoleService sysUserRoleService;
+
     /**
      * boolean
      *
@@ -53,7 +59,7 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
             List<SysRoleGroupMember> sysRoleGroupMemberList = null;
             List<Long> memberIdList = roleGroupMemberParams.getMemberIdList();
             if (Objects.nonNull(sysRoleGroupMemberDbList) && sysRoleGroupMemberDbList.size() > 0) {//编辑
-                int count = (int) sysRoleGroupMemberDbList.stream().filter(s -> memberIdList.contains(s.getUserId())).count();
+                int count = (int) sysRoleGroupMemberDbList.stream().filter(s -> memberIdList.contains(s.getMemberId())).count();
                 if (count != sysRoleGroupMemberDbList.size() || memberIdList.size() != sysRoleGroupMemberDbList.size()) {
                     //全量删除
                     this.removeByIds(sysRoleGroupMemberDbList.stream().map(s -> s.getId()).collect(Collectors.toList()));
@@ -93,8 +99,25 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
      * @return
      */
     @Override
-    public List<SysRoleGroupMember> findByRoleId(Long roleId) {
-        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().eq(SysRoleGroupMember::getRoleId, roleId));
+    public List<SysRoleGroupMemberResult> findByRoleId(Long roleId) {
+        List<SysRoleGroupMemberResult> sysRoleGroupMemberResultList = null;
+        List<SysUserRole> sysUserRoles = sysUserRoleService.listByRoleId(roleId);
+        if (Objects.nonNull(sysUserRoles) && sysUserRoles.size() > 0) {
+            sysRoleGroupMemberResultList = new ArrayList<>();
+            for (SysUserRole s : sysUserRoles) {
+                List<ApproveUserResult> approveUserResult = sysUserService.findById(s.getUserId());
+                if (Objects.nonNull(approveUserResult) && approveUserResult.size() == 1) {
+                    List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByRoleIdAndUserId(s.getRoleId(), s.getUserId());
+                    if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
+                        List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(sysRoleGroupMemberList.stream().map(x -> x.getMemberId()).collect(Collectors.toList()));
+                        sysRoleGroupMemberResultList.add(new SysRoleGroupMemberResult(approveUserResult.get(0), approveUserResultList));
+                    } else {
+                        sysRoleGroupMemberResultList.add(new SysRoleGroupMemberResult(approveUserResult.get(0)));
+                    }
+                }
+            }
+        }
+        return sysRoleGroupMemberResultList;
     }
 
     /**
@@ -110,16 +133,15 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
     }
 
     /**
-     * 根据memberId查找数据
+     * 根据roleIds和memberId查找数据
      *
+     * @param roleIds
      * @param memberId
      * @return
      */
     @Override
-    public List<SysRoleGroupMember> findByMemberId(Long memberId) {
-        QueryWrapper<SysRoleGroupMember> sysRoleGroupMemberQueryWrapper = new QueryWrapper<>();
-        sysRoleGroupMemberQueryWrapper.lambda().eq(SysRoleGroupMember::getMemberId, memberId);
-        return this.list(sysRoleGroupMemberQueryWrapper);
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberId(List<Long> roleIds, Long memberId) {
+        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().in(SysRoleGroupMember::getRoleId, roleIds).eq(SysRoleGroupMember::getMemberId, memberId));
     }
 
     /**
@@ -133,20 +155,16 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
         Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = null;
         Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
         for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
-            List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByMemberId(entry.getValue().getUserId());
-//            List<SysRoleGroupMember> sysRoleGroupMemberFilter = sysRoleGroupMemberList.stream().filter(s -> v.getRoleIdList().contains(s.getRoleId())).collect(Collectors.toList());
-//            boolean manual = false;
-//            if (Objects.nonNull(sysRoleGroupMemberFilter) && sysRoleGroupMemberFilter.size() == 1) {//直接返回
-//                manual = false;
-//            } else if (Objects.nonNull(sysRoleGroupMemberFilter) && sysRoleGroupMemberFilter.size() > 1) {//前端选择
-//                manual = true;
-//            }
-//            List<SysRoleGroupMember> sysRoleGroupMembers = this.findByRoleIds(sysRoleGroupMemberFilter.stream().map(s -> s.getRoleId()).collect(Collectors.toList()), v.getUserId());
-            if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
-                approveUserResultMap = Objects.isNull(approveUserResultMap) ? new LinkedHashMap<>() : approveUserResultMap;
-                List<ApproveUserResult> approveUserResultList = sysUserService.findByRoleIdsForResult(sysRoleGroupMemberList.stream().map(s -> s.getRoleId()).collect(Collectors.toList()));
-                approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(approveUserResultList));
+            List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByRoleIdsAndMemberId(entry.getValue().getRoleIdList(), entry.getValue().getUserId());
+            boolean manual = false;
+            if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() == 1) {//直接返回
+                manual = false;
+            } else if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 1) {//前端选择
+                manual = true;
             }
+            approveUserResultMap = Objects.isNull(approveUserResultMap) ? new LinkedHashMap<>() : approveUserResultMap;
+            List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(sysRoleGroupMemberList.stream().map(s -> s.getUserId()).collect(Collectors.toList()));
+            approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(manual, approveUserResultList));
         }
         return approveUserResultMap;
     }