From 0562c508b41c4af6ad5a01958a185d21f18f768d Mon Sep 17 00:00:00 2001 From: yqy Date: Thu, 12 Oct 2023 16:47:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E5=91=98=E9=87=8D=E5=A4=8D=20?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=A4=B1=E8=B4=A5bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/platform/domain/OrganizeUser.java | 1 - .../platform/service/OrganizeService.java | 2 +- .../service/impl/OrganizeServiceImpl.java | 92 +++++++++---------- 3 files changed, 45 insertions(+), 50 deletions(-) diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/OrganizeUser.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/OrganizeUser.java index 200f2c6f..d27e8c82 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/OrganizeUser.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/OrganizeUser.java @@ -1,6 +1,5 @@ package com.baiye.modules.platform.domain; -import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import javax.persistence.*; import javax.validation.constraints.NotNull; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/OrganizeService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/OrganizeService.java index a3d8f10b..6dd0ec19 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/OrganizeService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/OrganizeService.java @@ -87,7 +87,7 @@ public interface OrganizeService { Map queryLeaderTaskList(TaskOrganizeQueryCriteria taskOrganizeQueryCriteria, Pageable pageable); /** - * 指定组员并分配任务 + * 指定组员并分配任务-添加组员 */ ResponseEntity saveMemberDistribution(OrganizeMemberDistributionDTO organizeMemberDistributionDTO); diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java index e8625915..087a62c2 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java @@ -74,9 +74,11 @@ public class OrganizeServiceImpl implements OrganizeService { @Transactional(rollbackFor = Exception.class) public Long saveOrganize(List organizeList) { Long saveUserId = null; - Set organizeUserIds = findOrganizeUserIds(); + List organizeUserAll = organizeUserRepository.findAll(); + Set allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet()); + for (Organize organize : organizeList) { - if (organizeUserIds.contains(organize.getUserId())) { + if (allUserIdList.contains(organize.getUserId())) { CommonLog.error("用户已经分配到组"); throw new BadRequestException("用户已经分配到组"); } @@ -184,29 +186,33 @@ public class OrganizeServiceImpl implements OrganizeService { @Override @Transactional(rollbackFor = Exception.class) public void addMember(ValidList organizeUser) { - // 组长添加组员,查询组长的组信息 - Long currentUserId = SecurityUtils.getCurrentUserId(); - Set organizeUserIds = findOrganizeUserIds(); - OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(currentUserId); - if (organizeUserByUserId == null) { - CommonLog.error("用户还未分配到组内"); - throw new BadRequestException("用户未分配到组,请创建小组"); - } - Long organizeId = organizeUserByUserId.getOrganizeId(); - Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new); - // 添加组长下的组员信息 - for (OrganizeUser addOrganizeUser : organizeUser) { - if (organizeUserIds.contains(addOrganizeUser.getUserId())) { - throw new BadRequestException("用户已经分配到组"); + if (CollUtil.isNotEmpty(organizeUser)) { + List organizeUserAll = organizeUserRepository.findAll(); + Set allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet()); + + OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(SecurityUtils.getCurrentUserId()); + if (organizeUserByUserId == null) { + CommonLog.error("用户还未分配到组内"); + throw new BadRequestException("用户未分配到组,请创建小组"); } - addOrganizeUser.setOrganizeId(organizeId); - addOrganizeUser.setIsLeader(false); - addOrganizeUser.setCreateBy(currentUserId); - OrganizeUser saveOrganizeUser = organizeUserRepository.save(addOrganizeUser); - //添加分机号 - if (organize.getCallMode() == 1) { - extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId()); + Long organizeId = organizeUserByUserId.getOrganizeId(); + Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new); + // 添加组员信息 + List userIdList = new ArrayList<>(); + for (OrganizeUser addOrganizeUser : organizeUser) { + if (allUserIdList.contains(addOrganizeUser.getUserId())) throw new BadRequestException("用户已经分配到组!"); + addOrganizeUser.setOrganizeId(organizeId); + addOrganizeUser.setIsLeader(false); + addOrganizeUser.setCreateBy(SecurityUtils.getCurrentUserId()); + //添加分机号 + if (organize.getCallMode() == 1) { + extensionNumberService.assignExtensionNum(organizeId, addOrganizeUser.getUserId()); + } + userIdList.add(addOrganizeUser.getUserId()); } + organizeUserRepository.saveAll(organizeUser); + List list = organizeUserRepository.findByUserIdIn(userIdList); + if (CollUtil.isEmpty(list) || list.size() != userIdList.size()) throw new BadRequestException("已有用户分配到组,请重新选择!"); } } @@ -491,24 +497,25 @@ public class OrganizeServiceImpl implements OrganizeService { Long taskId = organizeMemberDistributionDTO.getTaskId(); Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new); // 查询所有的组员 - List userRepositoryAll = organizeUserRepository.findAll(); - List organizeUserIds = Lists.newArrayList(); - userRepositoryAll.forEach(c -> organizeUserIds.add(c.getUserId())); + List userRepositoryAll = organizeUserRepository.findByOrganizeId(organizeId); + List allUserIdList = userRepositoryAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toList()); + + // 新增小组成员-分机号 + List addOrganizeUserList = new ArrayList<>(); for (Long userId : userIds) { - // 新增小组成员,已添加过的小组-用户关联的不在添加 - if (!organizeUserIds.contains(userId)) { - OrganizeUser organizeUser = new OrganizeUser(); - organizeUser.setUserId(userId); - organizeUser.setOrganizeId(organizeId); - organizeUser.setIsLeader(false); - organizeUser.setCreateBy(SecurityUtils.getCurrentUserId()); - OrganizeUser saveOrganizeUser = organizeUserRepository.save(organizeUser); + if (!allUserIdList.contains(userId)) { + OrganizeUser organizeUser = new OrganizeUser(organizeId, userId, false, SecurityUtils.getCurrentUserId()); + addOrganizeUserList.add(organizeUser); //添加分机号 - if (organize.getCallMode() == 1) { - extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId()); - } + if (organize.getCallMode() == 1) extensionNumberService.assignExtensionNum(organizeId, userId); } } + if (CollUtil.isNotEmpty(addOrganizeUserList)){ + List organizeUsers = organizeUserRepository.saveAll(addOrganizeUserList); + List userIdList = organizeUsers.stream().map(OrganizeUser::getUserId).collect(Collectors.toList()); + List list = organizeUserRepository.findByUserIdIn(userIdList); + if (CollUtil.isEmpty(list) || list.size() != userIdList.size()) throw new BadRequestException("已有用户分配到组,请重新选择!"); + } //分配组员资源 ClueQueryCriteria clueQueryCriteria = new ClueQueryCriteria(); clueQueryCriteria.setOrganizeId(organizeId); @@ -890,17 +897,6 @@ public class OrganizeServiceImpl implements OrganizeService { return list; } - - /** - * 查询所有分配到组的用户 - */ - public Set findOrganizeUserIds() { - Set hashSet = new HashSet<>(); - List organizeUserAll = organizeUserRepository.findAll(); - organizeUserAll.forEach(ou -> hashSet.add(ou.getUserId())); - return hashSet; - } - /** * 查询组成员列表用户信息 */