|
@@ -299,10 +299,23 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
|
|
|
User loginUser = userService.getByUserName(loginUserName);
|
|
|
if(numList.size() >1){
|
|
|
HashMap<String, List<User>> byNumList = this.getByNumList(numList, param.getSceneType());
|
|
|
+ Boolean flag = true;
|
|
|
for (String num : byNumList.keySet()) {
|
|
|
if(byNumList.get(num).size() + param.getUserNameList().size() >5){
|
|
|
throw new BusinessException(ResultCode.COO_LIMIT_ERROR);
|
|
|
}
|
|
|
+ List<User> users = byNumList.get(num);
|
|
|
+ List<String> collect = users.stream().map(User::getUserName).collect(Collectors.toList());
|
|
|
+ Boolean inFlag = true;
|
|
|
+ for (String userName : param.getUserNameList()) {
|
|
|
+ if(!collect.contains(userName)){
|
|
|
+ inFlag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ flag = !inFlag;
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+ throw new BusinessException(ResultCode.COO_LIMIT_ERROR2);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -433,15 +446,25 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
|
|
|
Integer freeCount = freeMap.get(num) == null ? 1 :freeMap.get(num);
|
|
|
|
|
|
List<User> dbUserList = map.get(num);
|
|
|
+
|
|
|
if(dbUserList != null && !dbUserList.isEmpty()){
|
|
|
+ List<Long> dbUserIds = dbUserList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ HashMap<Long,User> userHashMap = new HashMap<>();
|
|
|
+ for (User user : users) {
|
|
|
+ if(dbUserIds.contains(user.getId())){
|
|
|
+ userHashMap.put(user.getId(),user);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer totalSize = dbUserList.size() - userHashMap.size();
|
|
|
+
|
|
|
if(numList.size() >1){
|
|
|
- freeCount = (dbUserList.size() > freeCount ? dbUserList.size() : (freeCount - dbUserList.size()));
|
|
|
+ freeCount = (totalSize > freeCount ? totalSize : (freeCount - totalSize));
|
|
|
}else {
|
|
|
- freeCount = (dbUserList.size() > freeCount ? dbUserList.size() : freeCount) ;
|
|
|
+ freeCount = (totalSize > freeCount ? totalSize : freeCount) ;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- for (int i = 0 ; i< users.size() -freeCount;i++){
|
|
|
+ for (int i = 0 ; i< users.size() - freeCount;i++){
|
|
|
needNumList.put(users.get(i).getId()+","+num,num);
|
|
|
}
|
|
|
|