fix:修复分页查询课程学习记录的时间查询参数空值校验

This commit is contained in:
miaowenbo
2025-11-28 16:43:46 +08:00
parent 4ec928c451
commit d54937c416

View File

@@ -147,7 +147,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
query.addFilter(FieldFilters.eq("aid", sc.getAid()));
}
// 25.11.25新增:添加基于时间的查询条件
if (sc.getQueryStartTime() != null && sc.getQueryFinishTime() != null) {
if (StringUtils.isNotBlank(sc.getQueryStartTime()) && StringUtils.isNotBlank(sc.getQueryFinishTime())) {
// 开始结束时间均传入的情况,实现筛选逻辑
// (startTime >= 查询开始时间 AND startTime <= 查询结束时间) OR (finishTime >= 查询开始时间 AND finishTime <= 查询结束时间)
// 这样兼容查询结束时间为空值的情况,因为学员课程未结束时没有结束时间
@@ -164,13 +164,13 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
} else {
// 只输出单个参数情况
// 筛选开始时间
if (sc.getQueryStartTime() != null) {
if (StringUtils.isNotBlank(sc.getQueryStartTime())) {
LocalDate startDate = LocalDate.parse(sc.getQueryStartTime());
LocalDateTime startDateTime = startDate.atStartOfDay();
query.addFilter(FieldFilters.ge("startTime", startDateTime));
}
// 筛选结束时间
if (sc.getQueryFinishTime() != null) {
if (StringUtils.isNotBlank(sc.getQueryFinishTime())) {
LocalDate finishDate = LocalDate.parse(sc.getQueryFinishTime());
LocalDateTime finishDateTime = finishDate.atTime(LocalTime.MAX);
query.addFilter(FieldFilters.le("finishTime", finishDateTime));