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