|
@@ -7,11 +7,14 @@ import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Objects;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
|
|
import org.redisson.api.RMap;
|
|
import org.redisson.api.RMap;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -205,6 +208,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
teacherHomeVo.setMusicAlbumNum(null == total.getMusicAlbumNum() ? 0 : total.getMusicAlbumNum());
|
|
teacherHomeVo.setMusicAlbumNum(null == total.getMusicAlbumNum() ? 0 : total.getMusicAlbumNum());
|
|
teacherHomeVo.setMusicSheetNum(null == total.getMusicSheetNum() ? 0 : total.getMusicSheetNum());
|
|
teacherHomeVo.setMusicSheetNum(null == total.getMusicSheetNum() ? 0 : total.getMusicSheetNum());
|
|
|
|
|
|
|
|
+ // 老师学生人数统计
|
|
|
|
+ List<Long> teacherIds = Lists.newArrayList(userId);
|
|
|
|
+ Map<Long, Integer> studentNumsMap = getBaseMapper().selectTeacherStudentNumberStatInfo(teacherIds).stream()
|
|
|
|
+ .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal, (o, n) -> n));
|
|
|
|
+
|
|
|
|
+ teacherHomeVo.setStudentNums(studentNumsMap.getOrDefault(userId, 0));
|
|
|
|
+
|
|
//取直播缓存
|
|
//取直播缓存
|
|
RMap<Long, String> liveMap = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
|
|
RMap<Long, String> liveMap = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
|
|
String roomUid = liveMap.get(userId);
|
|
String roomUid = liveMap.get(userId);
|
|
@@ -651,7 +661,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
return hotTeacherList;
|
|
return hotTeacherList;
|
|
}
|
|
}
|
|
|
|
|
|
- private void setTagTime(TeacherTagEnum teacherTagEnum, TeacherVo teacherVo) {
|
|
|
|
|
|
+ private void setTagTime(TeacherTagEnum teacherTagEnum, TeacherVo teacherVo) {
|
|
if (teacherTagEnum.equals(TeacherTagEnum.LIVE)) {
|
|
if (teacherTagEnum.equals(TeacherTagEnum.LIVE)) {
|
|
teacherVo.setLiveDate(new Date());
|
|
teacherVo.setLiveDate(new Date());
|
|
} else if (teacherTagEnum.equals(TeacherTagEnum.MUSIC)) {
|
|
} else if (teacherTagEnum.equals(TeacherTagEnum.MUSIC)) {
|
|
@@ -663,4 +673,53 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 老师详情信息
|
|
|
|
+ *
|
|
|
|
+ * @param teacherId 用户ID
|
|
|
|
+ * @return TeacherVo
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public TeacherVo findTeacherDetailInfo(Long teacherId) {
|
|
|
|
+
|
|
|
|
+ // 用户详情基本信息
|
|
|
|
+ TeacherVo teacherInfo = detail(teacherId);
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(teacherInfo)) {
|
|
|
|
+
|
|
|
|
+ // 设置默认数据
|
|
|
|
+ teacherInfo
|
|
|
|
+ .starGrade(0)
|
|
|
|
+ .fansNum(0)
|
|
|
|
+ .expTime(0)
|
|
|
|
+ .unExpTime(0)
|
|
|
|
+ .musicSheetNum(0)
|
|
|
|
+ .musicAlbumNum(0)
|
|
|
|
+ .studentNums(0);
|
|
|
|
+
|
|
|
|
+ // 老师相关统计信息
|
|
|
|
+ TeacherTotal total = totalService.getTotalById(teacherId);
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(total)) {
|
|
|
|
+
|
|
|
|
+ teacherInfo
|
|
|
|
+ .starGrade(total.getStarGrade().intValue())
|
|
|
|
+ .fansNum(total.getFansNum())
|
|
|
|
+ .expTime(total.getExpTime())
|
|
|
|
+ .unExpTime(total.getUnExpTime())
|
|
|
|
+ .musicAlbumNum(total.getMusicAlbumNum())
|
|
|
|
+ .musicSheetNum(total.getMusicSheetNum());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 老师学生人数统计
|
|
|
|
+ Map<Long, Integer> studentNumsMap = getBaseMapper().selectTeacherStudentNumberStatInfo(Lists.newArrayList(teacherId)).stream()
|
|
|
|
+ .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal, (o, n) -> n));
|
|
|
|
+
|
|
|
|
+ teacherInfo.setStudentNums(studentNumsMap.getOrDefault(teacherId, 0));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return teacherInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|