| 
					
				 | 
			
			
				@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.microsvc.toolkit.middleware.rtc.enums.EDeviceMessageType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.api.entity.SysUser; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,6 +27,7 @@ import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.TeacherTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.ImGroupService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.StudentService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -203,6 +205,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TenantGroupMapper tenantGroupMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private UserTenantBindRecordMapper userTenantBindRecordMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TeacherDao getDao() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -500,6 +505,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .map(Student::getUserId).collect(Collectors.toSet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             imUserFriendService.saveUserFriend(teacher.getUserId(), collect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 机构老师添加机构绑定记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addBindUnBindRecord(teacher.getUserId(),teacher.getTenantId(),true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sendBindUnBindSMS(teacher.getUserId(), teacherSubmitReq.getPhone(), MessageTypeEnum.TEACHER_BIND_TENANT, teacher.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //  与客服建立好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String customerService = customerServiceConfig.getCustomerService(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1095,21 +1104,23 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 删除好友关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imUserFriendService.delStudentFriendByTenantId(teacher.getTenantId(), teacher.getUserId(),ClientEnum.TEACHER.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imUserFriendService.delStudentFriendByTenantId(teacher.getTenantId(), teacher.getUserId(), ClientEnum.TEACHER.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addBindUnBindRecord(teacher.getUserId(), teacher.getTenantId(), false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser sysUser = sysUserMapper.getByUserId(teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sendBindUnBindSMS(teacher.getUserId(), sysUser.getPhone(), MessageTypeEnum.TEACHER_UNBIND_TENANT, teacher.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (updateTenant.getTenantId().equals(-1L)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long tenantId = Optional.ofNullable(updateTenant.getTenantId()).orElse(-1L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (tenantId == -1L) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 平台老师处理流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (ESettlementFrom.TENANT.equals(teacher.getSettlementFrom())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 解绑后,结算方式如果是机构,默认调整为老师 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 teacher.setSettlementFrom(ESettlementFrom.TEACHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 teacher.setIsSettlement(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 机构老师与学生互加好友关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (Optional.ofNullable(updateTenant.getTenantId()).orElse(-1L) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 机构老师与学生互加好友关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 自动与机构学生成为好友 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Set<Long> collect = studentService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .eq(Student::getTenantId, updateTenant.getTenantId()).list().stream() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1119,6 +1130,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!collect.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 imUserFriendService.saveUserFriend(teacher.getUserId(), collect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addBindUnBindRecord(teacher.getUserId(),updateTenant.getTenantId(),true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser sysUser = sysUserMapper.getByUserId(teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sendBindUnBindSMS(teacher.getUserId(), sysUser.getPhone(), MessageTypeEnum.TEACHER_BIND_TENANT, updateTenant.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         teacher.setTenantId(updateTenant.getTenantId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1199,4 +1213,22 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return teachers.stream().collect(Collectors.toMap(Teacher::getUserId, o -> o, (o, n) -> n)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void addBindUnBindRecord(Long teacherId, Long tenantId, Boolean bind) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UserTenantBindRecord bindRecord = new UserTenantBindRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bindRecord.setUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bindRecord.setUserType("TEACHER"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bindRecord.setTenantId(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bindRecord.setBindStatus(bind); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bindRecord.setBindTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userTenantBindRecordMapper.add(bindRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void sendBindUnBindSMS(Long userId, String phone, MessageTypeEnum messageType, Long tenantId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TenantInfo tenantInfo = tenantInfoService.getById(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, String> receivers = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        receivers.put(userId, phone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, messageType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                receivers, null, 0, null, ClientEnum.SYSTEM.getCode(), tenantInfo.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |