fix: 【FCJDFDXTXS-82】修正置顶及置顶排序的逻辑

This commit is contained in:
liu.zixi
2025-12-12 11:34:26 +08:00
parent 21aa360d2a
commit 4d79c8c51d
2 changed files with 16 additions and 3 deletions

View File

@@ -149,7 +149,8 @@ public class CoursePageServiceImpl implements ICoursePageService {
} }
return courseList.stream() return courseList.stream()
.map(c -> convertToVo(c, courseTeacherList)) .map(c -> convertToVo(c, courseTeacherList))
.sorted(Comparator.comparing(CoursePageVo::getSortWeight, Comparator.nullsLast(Comparator.naturalOrder()))) .sorted(Comparator.comparing(CoursePageVo::getSortWeight, Comparator.nullsLast(Comparator.naturalOrder()))
.thenComparing(CoursePageVo::getTopTime, Comparator.nullsLast(Comparator.reverseOrder())))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@@ -173,7 +174,8 @@ public class CoursePageServiceImpl implements ICoursePageService {
// 2.3 设置置顶 // 2.3 设置置顶
courseDao.updateMultiFieldById(courseId, courseDao.updateMultiFieldById(courseId,
UpdateBuilder.create("isTop", top), UpdateBuilder.create("isTop", top),
UpdateBuilder.create("topTime", LocalDateTime.now())); UpdateBuilder.create("topTime", LocalDateTime.now()),
UpdateBuilder.create("sortWeight", 0));
} else { } else {
// 3. 取消置顶 // 3. 取消置顶
// 3.1 课程是否已置顶 // 3.1 课程是否已置顶
@@ -380,17 +382,21 @@ public class CoursePageServiceImpl implements ICoursePageService {
vo.setSysCreateBy(course.getSysCreateBy()); vo.setSysCreateBy(course.getSysCreateBy());
vo.setCreateFrom(course.getCreateFrom()); vo.setCreateFrom(course.getCreateFrom());
vo.setSysCreateTime(course.getSysCreateTime()); vo.setSysCreateTime(course.getSysCreateTime());
vo.setSysUpdateTime(course.getSysUpdateTime());
vo.setForUsers(course.getForUsers()); vo.setForUsers(course.getForUsers());
vo.setStatus(course.getStatus()); vo.setStatus(course.getStatus());
// auditType 需要从其他地方获取,这里暂时设置为默认值 // auditType 需要从其他地方获取,这里暂时设置为默认值
vo.setAuditType(1); vo.setAuditType(1);
vo.setPublished(course.getPublished()); vo.setPublished(course.getPublished());
vo.setPublishTime(course.getPublishTime());
vo.setStudys(course.getStudys()); vo.setStudys(course.getStudys());
vo.setScore(course.getScore()); vo.setScore(course.getScore());
// courseDuration 需要计算,这里暂时设置为默认值 // courseDuration 需要计算,这里暂时设置为默认值
vo.setCourseDuration(course.getCourseDuration()); vo.setCourseDuration(course.getCourseDuration());
vo.setEnabled(course.getEnabled()); vo.setEnabled(course.getEnabled());
vo.setSortWeight(course.getSortWeight()); vo.setSortWeight(course.getSortWeight());
vo.setTopTime(course.getTopTime());
vo.setIsTop(course.getIsTop());
// 获取教师名称 // 获取教师名称
List<String> teacherNames = courseTeacherList.stream() List<String> teacherNames = courseTeacherList.stream()

View File

@@ -173,6 +173,13 @@ public class CoursePageVo {
*/ */
private Boolean isTop; private Boolean isTop;
/**
* 置顶时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime topTime;
/** /**
* 排序权重 * 排序权重
*/ */