fix: 课程列表dao层报错继续修正

This commit is contained in:
liu.zixi
2025-11-24 11:22:48 +08:00
parent 94b237cb4e
commit ea4c1248a3

View File

@@ -196,21 +196,21 @@ public class CourseDao extends BaseDao<Course> {
builder.append("LEFT JOIN (SELECT course_id, GROUP_CONCAT(teacher_name ORDER BY id SEPARATOR ',') AS teacher_names FROM boe_course_teacher GROUP BY course_id) tch ON c.id = tch.course_id"); builder.append("LEFT JOIN (SELECT course_id, GROUP_CONCAT(teacher_name ORDER BY id SEPARATOR ',') AS teacher_names FROM boe_course_teacher GROUP BY course_id) tch ON c.id = tch.course_id");
// 学习人数聚合(满足时间条件的学习记录,且学习记录有效) // 学习人数聚合(满足时间条件的学习记录,且学习记录有效)
builder.append(System.lineSeparator()); builder.append(System.lineSeparator());
builder.append("LEFT JOIN (SELECT course_id, COUNT(*) AS studys FROM boe_base.boe_study_course"); builder.append("LEFT JOIN (SELECT course_id, COUNT(*) AS studys FROM boe_study_course");
if (filterLearningTime) { if (filterLearningTime) {
builder.append(" WHERE (add_time >= :learningTimeStart AND add_time <= :learningTimeEnd) OR (finish_time >= :learningTimeStart AND finish_time <= :learningTimeEnd)"); builder.append(" WHERE (add_time >= :learningTimeStart AND add_time <= :learningTimeEnd) OR (finish_time >= :learningTimeStart AND finish_time <= :learningTimeEnd)");
} }
builder.append(" GROUP BY course_id) stu ON c.id = stu.course_id"); builder.append(" GROUP BY course_id) stu ON c.id = stu.course_id");
// 评分聚合(在时间区间内的有效打分) // 评分聚合(在时间区间内的有效打分)
builder.append(System.lineSeparator()); builder.append(System.lineSeparator());
builder.append("LEFT JOIN (SELECT course_id, AVG(scores) AS score FROM boe_base.boe_grade"); builder.append("LEFT JOIN (SELECT course_id, AVG(scores) AS score FROM boe_grade");
if (filterLearningTime) { if (filterLearningTime) {
builder.append(" WHERE sys_create_time >= :learningTimeStart AND sys_create_time <= :learningTimeEnd"); builder.append(" WHERE sys_create_time >= :learningTimeStart AND sys_create_time <= :learningTimeEnd");
} }
builder.append(" GROUP BY course_id) grd ON c.id = grd.course_id"); builder.append(" GROUP BY course_id) grd ON c.id = grd.course_id");
// 课件聚合 // 课件聚合
builder.append(System.lineSeparator()); builder.append(System.lineSeparator());
builder.append("LEFT JOIN (SELECT course_id, SUM(duration) AS duration_sum FROM boe_base.boe_course_content WHERE deleted = 0 GROUP BY course_id) cc ON c.id = cc.course_id"); builder.append("LEFT JOIN (SELECT course_id, SUM(duration) AS duration_sum FROM boe_course_content WHERE deleted = 0 GROUP BY course_id) cc ON c.id = cc.course_id");
// where条件 // where条件
// 第一个条件deleted = 0 // 第一个条件deleted = 0
builder.append(System.lineSeparator()); builder.append(System.lineSeparator());
@@ -256,7 +256,7 @@ public class CourseDao extends BaseDao<Course> {
// 时间筛选逻辑:只有当两个时间参数都提供时才启用学习记录存在性校验 // 时间筛选逻辑:只有当两个时间参数都提供时才启用学习记录存在性校验
if (filterLearningTime) { if (filterLearningTime) {
builder.append(System.lineSeparator()); builder.append(System.lineSeparator());
builder.append("AND (:learningTimeStart IS NULL OR :learningTimeEnd IS NULL OR EXISTS (SELECT 1 FROM boe_base.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))"); 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))");
} }
// 授课教师 // 授课教师
if (StringUtils.isNotBlank(queryDTO.getTeacherName())) { if (StringUtils.isNotBlank(queryDTO.getTeacherName())) {