| 
					
				 | 
			
			
				@@ -9,10 +9,12 @@ import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.SubjectService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.common.enums.ESettlementFrom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RedissonClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,30 +38,11 @@ import com.yonge.cooleshow.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.TeacherDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.Student; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.StudentStar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.Subject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.Teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.TeacherAuthMusicianRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.TeacherTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.UserAccount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.ClientEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.service.StudentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.StudentStarService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.SysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.SysMessageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.TeacherAuthEntryRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.TeacherAuthMusicianRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.TeacherService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.TeacherTotalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.UserAccountService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.UserFirstTimeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.HotTeacherVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.MyFens; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,6 +103,18 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SysMessageService sysMessageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private TenantInfoService tenantInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ImGroupService imGroupService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ImGroupMemberService imGroupMemberService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ImUserFriendService imUserFriendService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TeacherVo detail(Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         TeacherVo detail = baseMapper.detail(userId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -167,6 +162,19 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             teacherVo.setSubjectName(subjectNames); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置机构名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> tenantIdList = teacherVos.stream().map(TeacherVo::getTenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .filter(next -> next != null && !next.equals(-1L)).distinct() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!tenantIdList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Long, String> tenantIdNameMap = tenantInfoService.lambdaQuery().in(TenantInfo::getId, tenantIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .list().stream().collect(Collectors.toMap(TenantInfo::getId, TenantInfo::getName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tenantIdNameMap.put(-1L, "平台老师"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (TeacherVo next : teacherVos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                next.setTenantName(tenantIdNameMap.getOrDefault(next.getTenantId(), "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return page.setRecords(teacherVos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -384,6 +392,26 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .eq(Teacher::getUserId, teacher.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 机构发生变化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!teacher.getTenantId().equals(teacherSubmitReq.getTenantId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 老师建立的班级群解散,并解除好友关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(ImGroupMember::getIsAdmin,true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(ImGroupMember::getUserId, teacher.getUserId()).list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!groupMembers.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId).distinct() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    groupIdList.forEach(next -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            imGroupService.dismiss(next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            log.error("解散群聊失败,", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    imUserFriendService.delFriendByTenantId(teacher.getTenantId(), teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return teacher; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -446,6 +474,12 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         teacher.setMusicianDate(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         teacher.setIsSettlement(teacherSubmitReq.getIsSettlement()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         teacher.setIsTestUser(teacherSubmitReq.getIsTestUser()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        teacher.setTenantId(teacherSubmitReq.getTenantId() == null ? -1L : teacherSubmitReq.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (teacher.getTenantId() == -1L) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            teacher.setSettlementFrom(ESettlementFrom.TEACHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            teacher.setSettlementFrom(teacherSubmitReq.getSettlementFrom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtil.isEmpty(teacherSubmitReq.getTeacherType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -647,6 +681,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<MyFens> queryMyFans(IPage<MyFens> page, Long teacherId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MyFens> teacherVos = baseMapper.queryMyFans(page, TeacherQueryInfo.FansQuery.builder().teacherId(teacherId).build()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return page.setRecords(teacherVos); 
			 |