观看记录 排序

This commit is contained in:
wangw 2025-01-14 11:27:18 +08:00
parent 36d651da85
commit d12cba6b8a
3 changed files with 19 additions and 17 deletions

View File

@ -20,6 +20,6 @@ public interface CourseCollectDao extends BaseMapper<CourseCollect> {
List<Course> selectClassify1In3(@Param("userId") Long userId);
List<Course> selectClassify1In2(@Param("userId") Long userId);
List<Course> selectClassify1ByUserId(@Param("userId") Long userId);
List<Course> selectClassify2(@Param("userId") Long userId);
List<Course> selectClassify3ByUserId(@Param("userId") Long userId);
}

View File

@ -140,28 +140,30 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
public Result selectByUserId(Integer page, Integer limit, Long userId, Integer classify) {
PageHelper.startPage(page, limit);
List<Course> courses = new ArrayList<>();
//收藏
if (classify.equals(1)) {
// 收藏记录
//收藏记录
courses = baseMapper.selectClassify1In3(userId);
}else if (classify.equals(2)){
courses = baseMapper.selectClassify1In2(userId);
//点赞
courses = baseMapper.selectClassify2(userId);
} else {
courses = baseMapper.selectClassify1ByUserId(userId);
}
if (CollectionUtil.isEmpty(courses)) {
return Result.success().put("data", PageUtils.page(new PageInfo<>(courses), true));
//观看历史
courses = baseMapper.selectClassify3ByUserId(userId);
}
//剧id
Set<Long> courseIdList = new HashSet<>();
//详情id
Set<Long> courseDetailIds = new HashSet<>();
//剧集-观看记录时间
Map<Long,String> upTime = new HashMap<>();
courses.forEach(s -> {
if (s == null) {
return;
}
courseIdList.add(s.getCourseId());
courseDetailIds.add(s.getCourseDetailsId());
upTime.put(s.getCourseId(),s.getUpdateTime());
});
List<Course> courseList = courseIdList.isEmpty() ? new ArrayList<>() :
courseDao.selectList(new LambdaQueryWrapper<Course>().in(Course::getCourseId, courseIdList));
@ -170,20 +172,20 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
courseDetailsService.list(new LambdaQueryWrapper<CourseDetails>().in(CourseDetails::getCourseDetailsId, courseDetailIds));
Map<Long, CourseDetails> courseDetailsMap = courseDetails1.stream()
.collect(Collectors.toMap(CourseDetails::getCourseId, item -> item, (key1, key2) -> key1));
// List<CourseDetails> courseDetails2 = courseIdList.isEmpty() ? new ArrayList<>() : courseDetailsDao.countByCourseId(courseIdList);
// Map<Long, Integer> countMap = courseDetails2.stream()
// .collect(Collectors.toMap(CourseDetails::getCourseId, CourseDetails::getCourseDetailsCount));
if (CollectionUtil.isNotEmpty(courseList)) {
for (Course course : courseList) {
// course.setCourseClassification(courseClassificationDao.selectById(course.getClassifyId()));
CourseDetails courseDetails = courseDetailsMap.getOrDefault(course.getCourseId(), null);
course.setCourseDetailsCount(courseDetailsDao.countCourseByCourseId(course.getCourseId()));
if (courseDetails != null) {
course.setCourseDetailsName(courseDetails.getCourseDetailsName());
course.setCourseDetailsId(courseDetails.getCourseDetailsId());
}
if (upTime.containsKey(course.getCourseId())) {
course.setUpdateTime(upTime.get(course.getCourseId()));
}
}
courseList.sort(Comparator.comparing(Course::getUpdateTime).reversed());
}
PageInfo<Course> pageInfo = new PageInfo<>(courseList);
return Result.success().put("data", PageUtils.page(pageInfo, true));

View File

@ -43,7 +43,7 @@
order by c1.update_time desc
</select>
<select id="selectClassify1In2" resultType="com.sqx.modules.course.entity.Course">
<select id="selectClassify2" resultType="com.sqx.modules.course.entity.Course">
SELECT
c1.course_id as courseId,
c1.course_details_id as courseDetailsId
@ -55,12 +55,12 @@
order by c1.update_time desc
</select>
<select id="selectClassify1ByUserId" resultType="com.sqx.modules.course.entity.Course">
<select id="selectClassify3ByUserId" resultType="com.sqx.modules.course.entity.Course">
SELECT c1.course_id as courseId,
c1.course_details_id as courseDetailsId
c1.course_details_id as courseDetailsId,
c1.update_time as updateTime
FROM `course_collect` c1
WHERE c1.classify = 3
AND c1.user_id = #{userId}
order by c1.update_time desc
</select>
</mapper>