组员重复 登录失败bug修复

master
yqy 11 months ago
parent 155a6ac3f7
commit 0562c508b4

@ -1,6 +1,5 @@
package com.baiye.modules.platform.domain; package com.baiye.modules.platform.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;

@ -87,7 +87,7 @@ public interface OrganizeService {
Map<String, Object> queryLeaderTaskList(TaskOrganizeQueryCriteria taskOrganizeQueryCriteria, Pageable pageable); Map<String, Object> queryLeaderTaskList(TaskOrganizeQueryCriteria taskOrganizeQueryCriteria, Pageable pageable);
/** /**
* * -
*/ */
ResponseEntity<Object> saveMemberDistribution(OrganizeMemberDistributionDTO organizeMemberDistributionDTO); ResponseEntity<Object> saveMemberDistribution(OrganizeMemberDistributionDTO organizeMemberDistributionDTO);

@ -74,9 +74,11 @@ public class OrganizeServiceImpl implements OrganizeService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long saveOrganize(List<Organize> organizeList) { public Long saveOrganize(List<Organize> organizeList) {
Long saveUserId = null; Long saveUserId = null;
Set<Long> organizeUserIds = findOrganizeUserIds(); List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
Set<Long> allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet());
for (Organize organize : organizeList) { for (Organize organize : organizeList) {
if (organizeUserIds.contains(organize.getUserId())) { if (allUserIdList.contains(organize.getUserId())) {
CommonLog.error("用户已经分配到组"); CommonLog.error("用户已经分配到组");
throw new BadRequestException("用户已经分配到组"); throw new BadRequestException("用户已经分配到组");
} }
@ -184,29 +186,33 @@ public class OrganizeServiceImpl implements OrganizeService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void addMember(ValidList<OrganizeUser> organizeUser) { public void addMember(ValidList<OrganizeUser> organizeUser) {
// 组长添加组员,查询组长的组信息 if (CollUtil.isNotEmpty(organizeUser)) {
Long currentUserId = SecurityUtils.getCurrentUserId(); List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
Set<Long> organizeUserIds = findOrganizeUserIds(); Set<Long> allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet());
OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(currentUserId);
if (organizeUserByUserId == null) { OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(SecurityUtils.getCurrentUserId());
CommonLog.error("用户还未分配到组内"); if (organizeUserByUserId == null) {
throw new BadRequestException("用户未分配到组,请创建小组"); 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("用户已经分配到组");
} }
addOrganizeUser.setOrganizeId(organizeId); Long organizeId = organizeUserByUserId.getOrganizeId();
addOrganizeUser.setIsLeader(false); Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
addOrganizeUser.setCreateBy(currentUserId); // 添加组员信息
OrganizeUser saveOrganizeUser = organizeUserRepository.save(addOrganizeUser); List<Long> userIdList = new ArrayList<>();
//添加分机号 for (OrganizeUser addOrganizeUser : organizeUser) {
if (organize.getCallMode() == 1) { if (allUserIdList.contains(addOrganizeUser.getUserId())) throw new BadRequestException("用户已经分配到组!");
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId()); 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<OrganizeUser> 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(); Long taskId = organizeMemberDistributionDTO.getTaskId();
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new); Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
// 查询所有的组员 // 查询所有的组员
List<OrganizeUser> userRepositoryAll = organizeUserRepository.findAll(); List<OrganizeUser> userRepositoryAll = organizeUserRepository.findByOrganizeId(organizeId);
List<Long> organizeUserIds = Lists.newArrayList(); List<Long> allUserIdList = userRepositoryAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toList());
userRepositoryAll.forEach(c -> organizeUserIds.add(c.getUserId()));
// 新增小组成员-分机号
List<OrganizeUser> addOrganizeUserList = new ArrayList<>();
for (Long userId : userIds) { for (Long userId : userIds) {
// 新增小组成员,已添加过的小组-用户关联的不在添加 if (!allUserIdList.contains(userId)) {
if (!organizeUserIds.contains(userId)) { OrganizeUser organizeUser = new OrganizeUser(organizeId, userId, false, SecurityUtils.getCurrentUserId());
OrganizeUser organizeUser = new OrganizeUser(); addOrganizeUserList.add(organizeUser);
organizeUser.setUserId(userId);
organizeUser.setOrganizeId(organizeId);
organizeUser.setIsLeader(false);
organizeUser.setCreateBy(SecurityUtils.getCurrentUserId());
OrganizeUser saveOrganizeUser = organizeUserRepository.save(organizeUser);
//添加分机号 //添加分机号
if (organize.getCallMode() == 1) { if (organize.getCallMode() == 1) extensionNumberService.assignExtensionNum(organizeId, userId);
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId());
}
} }
} }
if (CollUtil.isNotEmpty(addOrganizeUserList)){
List<OrganizeUser> organizeUsers = organizeUserRepository.saveAll(addOrganizeUserList);
List<Long> userIdList = organizeUsers.stream().map(OrganizeUser::getUserId).collect(Collectors.toList());
List<OrganizeUser> list = organizeUserRepository.findByUserIdIn(userIdList);
if (CollUtil.isEmpty(list) || list.size() != userIdList.size()) throw new BadRequestException("已有用户分配到组,请重新选择!");
}
//分配组员资源 //分配组员资源
ClueQueryCriteria clueQueryCriteria = new ClueQueryCriteria(); ClueQueryCriteria clueQueryCriteria = new ClueQueryCriteria();
clueQueryCriteria.setOrganizeId(organizeId); clueQueryCriteria.setOrganizeId(organizeId);
@ -890,17 +897,6 @@ public class OrganizeServiceImpl implements OrganizeService {
return list; return list;
} }
/**
*
*/
public Set<Long> findOrganizeUserIds() {
Set<Long> hashSet = new HashSet<>();
List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
organizeUserAll.forEach(ou -> hashSet.add(ou.getUserId()));
return hashSet;
}
/** /**
* *
*/ */

Loading…
Cancel
Save