| 
					
				 | 
			
			
				@@ -18,6 +18,7 @@ import com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.wrapper.StatGroupWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.exception.BizException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.common.tenant.TenantContextHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.message.MessageSenderPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.user.realname.RealnameAuthenticationPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.user.realname.provider.LinkfaceRealnameAuthenticationPlugin; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,8 +37,6 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.MessageFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.CompletableFuture; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.concurrent.ExecutorService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.concurrent.Executors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,7 +140,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .map(Integer::parseInt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .map(organizationMap::get) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .filter(Objects::nonNull) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .map(o -> o.getName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .map(Organization::getName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             schoolStaff.setOrganName(collect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -166,18 +165,20 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 验证码合法性校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (schoolStaff.getCheckSmsCode() == null || schoolStaff.getCheckSmsCode()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(smsCodeService.verifyValidCode(schoolStaff.getMobile(), schoolStaff.getSmsCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    && !debugMode ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Optional.ofNullable(schoolStaff.getCheckSmsCode()).orElse(true)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new BizException("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Optional.of(debugMode).orElse(false)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 调试模式,验证码不匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!Objects.equals(schoolStaff.getSmsCode(), SmsCodeService.DEFAULT_SMS_CODE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new BizException("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 非调试模式,验证码合法性校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!smsCodeService.verifyValidCode(schoolStaff.getMobile(), schoolStaff.getSmsCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new BizException("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(smsCodeService.verifyValidCode(schoolStaff.getMobile(), schoolStaff.getSmsCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && !debugMode ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new BizException("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 合作单位编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CooperationOrgan cooperation = cooperationOrganService.get(schoolStaff.getSchoolId().intValue()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,16 +243,21 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 自动创建学校管理IM群 自动添加员工到学校乐团群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 重置当前合作单位机构ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TenantContextHolder.setTenantId(cooperation.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建学校im群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             imGroupService.addSchoolStaffGroup(schoolStaff.getSchoolId(), user.getId(),user.getUsername(),user.getAvatar(),schoolStaff.getUserType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.error("加入群组失败 ",e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("加入群组失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         CompletableFuture.runAsync( () -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 创建学校员工IM好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        imUserFriendService.refreshSchoolStaffFriend(schoolStaff.getSchoolId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             // 创建学校im好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             imUserFriendService.refreshSchoolStaffFriend(schoolStaff.getSchoolId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 异步添加乐团领队到其他乐团群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         CompletableFuture.runAsync(() -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              if (schoolStaff.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  addMusicGroup(schoolStaff, user); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -262,9 +268,6 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         redissonClient.getBucket(submitLockKey).delete(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 消息推送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 推送给自己 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, String> userMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userMap.put(user.getId(), user.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_SCHOOL_ACCOUNT_REGISTER_NOTICE, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -299,6 +302,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_SCHOOL_ACCOUNT_REGISTER, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 selfMap, null, 0, null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "SCHOOL",cooperation.getName(),schoolStaff.getUserType().getDescribe(),url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -552,7 +556,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return SchoolStaffWrapper.SchoolStaffStat.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .schoolmasterNums(collect.getOrDefault(ESchoolStaffType.SCHOOLMASTER.getCode(), 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .schoolLeaderNums(collect.getOrDefault(ESchoolStaffType.SCHOOL_LEADER.getCode(), 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .orchestraNums(collect.getOrDefault(ESchoolStaffType.ORCHESTRA_LEADER.getCode(), 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .orchestraLeaderNums(collect.getOrDefault(ESchoolStaffType.ORCHESTRA_LEADER.getCode(), 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .teacherNums(collect.getOrDefault(ESchoolStaffType.TEACHER.getCode(), 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .orchestraNums(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .studentNums(0) 
			 |