|
@@ -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.SysRoleGroupMemberMatchParams;
|
|
import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
|
|
import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
|
|
import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
|
|
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.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
|
|
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.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
|
|
import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
|
|
import com.qmth.teachcloud.common.mapper.SysRoleGroupMemberMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysRoleGroupMemberMapper;
|
|
import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
|
|
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.service.SysUserService;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
@@ -38,6 +41,9 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
@Resource
|
|
@Resource
|
|
SysUserService sysUserService;
|
|
SysUserService sysUserService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* boolean
|
|
* boolean
|
|
*
|
|
*
|
|
@@ -53,7 +59,7 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
List<SysRoleGroupMember> sysRoleGroupMemberList = null;
|
|
List<SysRoleGroupMember> sysRoleGroupMemberList = null;
|
|
List<Long> memberIdList = roleGroupMemberParams.getMemberIdList();
|
|
List<Long> memberIdList = roleGroupMemberParams.getMemberIdList();
|
|
if (Objects.nonNull(sysRoleGroupMemberDbList) && sysRoleGroupMemberDbList.size() > 0) {//编辑
|
|
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()) {
|
|
if (count != sysRoleGroupMemberDbList.size() || memberIdList.size() != sysRoleGroupMemberDbList.size()) {
|
|
//全量删除
|
|
//全量删除
|
|
this.removeByIds(sysRoleGroupMemberDbList.stream().map(s -> s.getId()).collect(Collectors.toList()));
|
|
this.removeByIds(sysRoleGroupMemberDbList.stream().map(s -> s.getId()).collect(Collectors.toList()));
|
|
@@ -93,8 +99,25 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@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,27 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 根据memberId查找数据
|
|
|
|
|
|
+ * 根据roleIds和memberId查找数据
|
|
*
|
|
*
|
|
|
|
+ * @param roleIds
|
|
* @param memberId
|
|
* @param memberId
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@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));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据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));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -130,22 +164,29 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
|
|
public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
|
|
- Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = null;
|
|
|
|
|
|
+ Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = new LinkedHashMap<>();
|
|
Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
|
|
Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
|
|
|
|
+ List<Long> nextApproveUserList = null;
|
|
for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
|
|
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());
|
|
|
|
|
|
+ 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) {
|
|
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));
|
|
|
|
|
|
+ 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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return approveUserResultMap;
|
|
return approveUserResultMap;
|