浏览代码

新增角色成员组api

wangliang 3 年之前
父节点
当前提交
5dab431dcd

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysRoleGroupMemberService.java

@@ -54,6 +54,15 @@ public interface SysRoleGroupMemberService extends IService<SysRoleGroupMember>
      */
     public List<SysRoleGroupMember> findByRoleIdsAndMemberId(List<Long> roleIds, Long memberId);
 
+    /**
+     * 根据roleIds和memberIds查找数据
+     *
+     * @param roleIds
+     * @param memberIds
+     * @return
+     */
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberIds(List<Long> roleIds, List<Long> memberIds);
+
     /**
      * 流程数据组匹配查询
      *

+ 33 - 10
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleGroupMemberServiceImpl.java

@@ -144,6 +144,18 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
         return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().in(SysRoleGroupMember::getRoleId, roleIds).eq(SysRoleGroupMember::getMemberId, memberId));
     }
 
+    /**
+     * 根据roleIds和memberIds查找数据
+     *
+     * @param roleIds
+     * @param memberIds
+     * @return
+     */
+    @Override
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberIds(List<Long> roleIds, List<Long> memberIds) {
+        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().in(SysRoleGroupMember::getRoleId, roleIds).in(SysRoleGroupMember::getMemberId, memberIds));
+    }
+
     /**
      * 流程数据组匹配查询
      *
@@ -152,19 +164,30 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
      */
     @Override
     public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
-        Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = null;
+        Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = new LinkedHashMap<>();
         Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
+        List<Long> nextApproveUserList = null;
         for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
-            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;
+            List<SysRoleGroupMember> sysRoleGroupMemberList = null;
+            if (Objects.nonNull(entry.getValue().getUserId())) {
+                sysRoleGroupMemberList = this.findByRoleIdsAndMemberId(entry.getValue().getRoleIdList(), entry.getValue().getUserId());
+            } else if (Objects.nonNull(nextApproveUserList) && nextApproveUserList.size() > 0) {
+                sysRoleGroupMemberList = this.findByRoleIdsAndMemberIds(entry.getValue().getRoleIdList(), nextApproveUserList);
+            }
+
+            if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
+                boolean manual = false;
+                if (sysRoleGroupMemberList.size() == 1) {//直接返回
+                    manual = false;
+                } else if (sysRoleGroupMemberList.size() > 1) {//前端选择
+                    manual = true;
+                }
+                nextApproveUserList = sysRoleGroupMemberList.stream().map(s -> s.getUserId()).collect(Collectors.toList());
+                List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(nextApproveUserList);
+                approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(manual, approveUserResultList));
+            } else {
+                approveUserResultMap.put(entry.getKey(), null);
             }
-            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;
     }