From 21aa360d2a14522a3f67f19a11651e96130e52ef Mon Sep 17 00:00:00 2001 From: "liu.zixi" Date: Fri, 12 Dec 2025 11:12:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=90FCJDFDXTXS-86=E3=80=91=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E4=B8=80=E4=B8=AAwhere=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/module/course/dao/CourseDao.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/dao/CourseDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/dao/CourseDao.java index cfc47d3f..e695e327 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/dao/CourseDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/dao/CourseDao.java @@ -320,10 +320,11 @@ public class CourseDao extends BaseDao { builder.append("AND c.published = :publish"); } // 时间筛选逻辑:只有当两个时间参数都提供时才启用学习记录存在性校验 - if (filterLearningTime) { + // 注释掉原有的WHERE条件中的时间筛选逻辑,因为时间筛选应只影响聚合字段的计算,不应过滤课程记录 + /*if (filterLearningTime) { builder.append(System.lineSeparator()); builder.append("AND (:learningTimeStart IS NULL OR :learningTimeEnd IS NULL OR EXISTS (SELECT 1 FROM boe_study_course sc WHERE sc.course_id = c.id AND sc.finish_time IS NOT NULL AND sc.add_time >= :learningTimeStart AND sc.finish_time <= :learningTimeEnd))"); - } + }*/ // 授课教师筛选 - 使用EXISTS子查询替代JOIN以避免数据重复 // 注意:由于上方已通过GROUP_CONCAT聚合教师姓名,此处仅用于教师筛选条件 if (StringUtils.isNotBlank(queryDTO.getTeacherId())) {