| 
					
				 | 
			
			
				@@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.StudentStarDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.LiveRoom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.Teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.service.LiveRoomService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RedissonClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,14 +40,16 @@ public class TeacherTotalServiceImpl extends ServiceImpl<TeacherTotalDao, Teache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CourseScheduleDao courseScheduleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private RedissonClient redissonClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private LiveRoomService liveRoomService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TeacherTotalVo detail(Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return baseMapper.detail(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public IPage<TeacherTotalVo> selectPage(IPage<TeacherTotalVo> page, TeacherTotalSearch query){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public IPage<TeacherTotalVo> selectPage(IPage<TeacherTotalVo> page, TeacherTotalSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return page.setRecords(baseMapper.selectPage(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -65,21 +69,36 @@ public class TeacherTotalServiceImpl extends ServiceImpl<TeacherTotalDao, Teache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!CollectionUtils.isEmpty(teacherCourseTotal)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             teacherCourseMap = teacherCourseTotal.stream().collect(Collectors.toMap(TeacherTotalVo::getUserId, o -> o)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //查询老师正在直播的直播间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LiveRoom> templist = liveRoomService.list(Wrappers.<LiveRoom>lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(LiveRoom::getLiveState, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(LiveRoom::getRoomState, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(LiveRoom::getType, "TEMP")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, Boolean> liveMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (LiveRoom liveRoom : templist) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            liveMap.put(liveRoom.getSpeakerId(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TeacherTotal> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (Teacher teacher : teachers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TeacherTotal teacherTotal = new TeacherTotal(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             teacherTotal.setUserId(teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //粉丝数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TeacherTotalVo fansTotal = teacherStarMap.get(teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (null != fansTotal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (null != fansTotal && null != fansTotal.getFansNum()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 teacherTotal.setFansNum(fansTotal.getFansNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TeacherTotalVo courseTotal = teacherCourseMap.get(teacher.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (null != courseTotal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //课时数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherTotal.setExpTime(courseTotal.getExpTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherTotal.setUnExpTime(courseTotal.getUnExpTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (null != courseTotal.getExpTime()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    teacherTotal.setExpTime(courseTotal.getExpTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (null != courseTotal.getUnExpTime()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    teacherTotal.setUnExpTime(courseTotal.getUnExpTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //星级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Double starGrade = courseTotal.getStarGrade(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (null != starGrade) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -87,6 +106,9 @@ public class TeacherTotalServiceImpl extends ServiceImpl<TeacherTotalDao, Teache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     teacherTotal.setStarGrade(round.doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //是否正在直播 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            teacherTotal.setLiveFlag(null == liveMap.get(teacher.getUserId()) ? false : true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultList.add(teacherTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(teacherTotal.getUserId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .set(teacherTotal); 
			 |