|
@@ -36,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -300,7 +301,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void level(List<EmployeeLevelDto> employeeLevelDtos) {
|
|
|
+ public void level(List<EmployeeLevelDto> employeeLevelDtos){
|
|
|
Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
|
|
|
List<ImGroupModel> educationGroupModels = new ArrayList<>();
|
|
|
//获取用户需要加入的群组列表
|
|
@@ -389,31 +390,45 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
|
employeeDao.updateUserDemissionDate(levelUserId);
|
|
|
//冻结用户
|
|
|
employeeDao.updateUserLock(levelUserId,1);
|
|
|
- //获取用户担任教务老师、维修技师的所有乐团列表
|
|
|
- List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
|
- //获取用户担任教务老师的所有网管课列表
|
|
|
- List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
|
|
|
- //获取用户担任教务老师的所有VIP课列表
|
|
|
- List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
|
|
|
- if(musicGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : musicGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
|
|
|
+ ExecutorService executor = Executors.newFixedThreadPool(20);
|
|
|
+ CompletableFuture<Boolean> refreshUserFriend = CompletableFuture.supplyAsync(()->{
|
|
|
+ //获取用户担任教务老师、维修技师的所有乐团列表
|
|
|
+ List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
|
+ //获取用户担任教务老师的所有网管课列表
|
|
|
+ List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
|
|
|
+ //获取用户担任教务老师的所有VIP课列表
|
|
|
+ List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
|
|
|
+ Boolean refreshFlag = false;
|
|
|
+ if(musicGroupIds.size() > 0){
|
|
|
+ for (String musicGroupId : musicGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
}
|
|
|
- }
|
|
|
- if(practiceGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : practiceGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
|
|
|
+ if(practiceGroupIds.size() > 0){
|
|
|
+ for (String musicGroupId : practiceGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
}
|
|
|
- }
|
|
|
- if(vipGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : vipGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
|
+ if(vipGroupIds.size() > 0){
|
|
|
+ for (String musicGroupId : vipGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
}
|
|
|
+ return refreshFlag;
|
|
|
+ },executor);
|
|
|
+ Boolean join = refreshUserFriend.join();
|
|
|
+ if(join){
|
|
|
+ refreshUserFriend.thenRunAsync(()->{
|
|
|
+ //更新群成员数量
|
|
|
+ imGroupDao.updateMemberNum();
|
|
|
+ //删除重复的群成员
|
|
|
+ imGroupMemberService.delRepeat();
|
|
|
+ });
|
|
|
}
|
|
|
- //更新群成员数量
|
|
|
- imGroupDao.updateMemberNum();
|
|
|
- //删除重复的群成员
|
|
|
- imGroupMemberService.delRepeat();
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
|
|
|
@Override
|