组员重复 登录失败bug修复

master
yqy 11 months ago
parent 155a6ac3f7
commit 0562c508b4

@ -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;

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

@ -74,9 +74,11 @@ public class OrganizeServiceImpl implements OrganizeService {
@Transactional(rollbackFor = Exception.class)
public Long saveOrganize(List<Organize> organizeList) {
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) {
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> organizeUser) {
// 组长添加组员,查询组长的组信息
Long currentUserId = SecurityUtils.getCurrentUserId();
Set<Long> 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<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
Set<Long> 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<Long> 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<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();
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
// 查询所有的组员
List<OrganizeUser> userRepositoryAll = organizeUserRepository.findAll();
List<Long> organizeUserIds = Lists.newArrayList();
userRepositoryAll.forEach(c -> organizeUserIds.add(c.getUserId()));
List<OrganizeUser> userRepositoryAll = organizeUserRepository.findByOrganizeId(organizeId);
List<Long> allUserIdList = userRepositoryAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toList());
// 新增小组成员-分机号
List<OrganizeUser> 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<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.setOrganizeId(organizeId);
@ -890,17 +897,6 @@ public class OrganizeServiceImpl implements OrganizeService {
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