| 
					
				 | 
			
			
				@@ -1,5 +1,18 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.enums.YesOrNoEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,7 +23,6 @@ import com.ym.mec.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.EmployeeDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.EmployeeLevelDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.SimpleUserDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.ClassGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.Employee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.SysUserCashAccount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -29,15 +41,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.im.ImFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.collection.MapUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  implements EmployeeService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -224,7 +227,9 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public void level(List<EmployeeLevelDto> employeeLevelDtos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<ImGroupModel> imGroupModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<ImGroupModel> educationGroupModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<ImGroupModel> teamGroupModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<ImGroupModel> directorGroupModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//获取用户需要加入的群组列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Map<String, List<EmployeeLevelDto>> collect = employeeLevelDtos.stream().collect(Collectors.groupingBy(e -> e.getRoleName())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Set<String> roleNames = collect.keySet(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,28 +246,52 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					switch (roleName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "education": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							//教务老师所需加入的群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							imGroupModels.addAll(classGroupDao.queryEducationGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							educationGroupModels.addAll(classGroupDao.queryEducationGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "teamTeacher": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							//运营主管所需加入的群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							imGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teamGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						case "director": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							//乐队指导所需加入的群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							imGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							directorGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(imGroupModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(educationGroupModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//❤️用户加群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (ImGroupModel imGroupModel : educationGroupModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Map<Integer,String> userRoleMap = new HashMap<Integer, String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<ImGroupMember> memberList = imGroupModel.getMemberList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for(ImGroupMember member : memberList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					userRoleMap.put(Integer.parseInt(member.getId()), "乐团主管"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(teamGroupModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//❤️用户加群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (ImGroupModel imGroupModel : teamGroupModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Map<Integer,String> userRoleMap = new HashMap<Integer, String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<ImGroupMember> memberList = imGroupModel.getMemberList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for(ImGroupMember member : memberList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					userRoleMap.put(Integer.parseInt(member.getId()), "运营主管"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(directorGroupModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			//❤️用户加群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for (ImGroupModel imGroupModel : imGroupModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (ImGroupModel imGroupModel : directorGroupModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Map<Integer,String> userRoleMap = new HashMap<Integer, String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<ImGroupMember> memberList = imGroupModel.getMemberList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for(ImGroupMember member : memberList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					userRoleMap.put(Integer.parseInt(member.getId()), ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					userRoleMap.put(Integer.parseInt(member.getId()), "乐队指导"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 |