mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-24 18:23:05 +08:00
fix: 【FCJDFDXTXS-84】修改查询语句,查询授课教师
This commit is contained in:
@@ -262,9 +262,14 @@ public class CourseDao extends BaseDao<Course> {
|
||||
builder.append(System.lineSeparator());
|
||||
builder.append("LEFT JOIN ").append(userCenterSchema)
|
||||
.append(".organization org ON c.org_id = org.organization_id AND org.deleted = 0");
|
||||
// 教师联查
|
||||
builder.append(System.lineSeparator());
|
||||
builder.append("LEFT JOIN boe_course_teacher ct ON c.id = ct.course_id");
|
||||
// 教师联查 - 移除原来的条件性JOIN,改用EXISTS子查询方式避免数据重复
|
||||
// 注意:由于上方已通过GROUP_CONCAT聚合教师姓名,此处不再需要JOIN教师表
|
||||
/*
|
||||
if (StringUtils.isNotBlank(queryDTO.getTeacherId())) {
|
||||
builder.append(System.lineSeparator());
|
||||
builder.append("LEFT JOIN boe_course_teacher ct ON c.id = ct.course_id");
|
||||
}
|
||||
*/
|
||||
// 排序字段是否为sysType
|
||||
if (StringUtils.equals(queryDTO.getOrderField(), "sysType")) {
|
||||
builder.append(System.lineSeparator()).append("LEFT JOIN boe_sys_type st1 ON c.sys_type1 = st1.id");
|
||||
@@ -319,14 +324,15 @@ public class CourseDao extends BaseDao<Course> {
|
||||
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())) {
|
||||
builder.append(System.lineSeparator());
|
||||
// 判断teacherId是一个还是多个
|
||||
if (queryDTO.getTeacherId().contains(",")) {
|
||||
builder.append("AND ct.teacher_id IN (:teacherIdList)");
|
||||
builder.append("AND EXISTS (SELECT 1 FROM boe_course_teacher ct WHERE ct.course_id = c.id AND ct.teacher_id IN (:teacherIdList))");
|
||||
} else {
|
||||
builder.append("AND ct.teacher_id = :teacherId");
|
||||
builder.append("AND EXISTS (SELECT 1 FROM boe_course_teacher ct WHERE ct.course_id = c.id AND ct.teacher_id = :teacherId)");
|
||||
}
|
||||
}
|
||||
// 展开后条件
|
||||
|
||||
Reference in New Issue
Block a user