소스 검색

Merge remote-tracking branch 'origin/master'

Joburgess 5 년 전
부모
커밋
92bbca74ee

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -444,4 +444,11 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     Set<Integer> queryCourseClassTeacherIds(Integer teacherId);
+
+    /**
+     * 获取老师关联的乐团的管理人员
+     * @param teacherId
+     * @return
+     */
+    List<String> queryMusicLeaderIds(Integer teacherId);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -156,6 +156,18 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		Set<Integer> studentIds = teacherDao.queryCourseClassStudentIds(teacherId);
 		//获取关联的老师列表
 		studentIds.addAll(teacherDao.queryCourseClassTeacherIds(teacherId));
+		//获取关联的乐团的管理老师
+		List<String> musicLeaderIds = teacherDao.queryMusicLeaderIds(teacherId);
+		musicLeaderIds.removeAll(Collections.singleton(null));
+		if(musicLeaderIds.size() > 0){
+			Set<String> leaderIds = new HashSet<>();
+			musicLeaderIds.forEach(e->{
+				leaderIds.addAll(Arrays.asList(e.split(",")));
+			});
+			leaderIds.forEach(e->{
+				studentIds.add(Integer.valueOf(e));
+			});
+		}
 		studentIds.removeAll(Collections.singleton(null));
 		List<ImGroupModel> musicGroups =  musicGroupDao.queryTeacherGroups(teacherId,search);
 		List<BasicUserDto> teachers = new ArrayList<>();

+ 21 - 20
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -801,7 +801,7 @@
     </select>
     <select id="queryTeacherBaseInfo"  resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
         SELECT
-        su.real_name_ username_,
+        CASE WHEN su.user_type_ LIKE '%TEACHER%' OR su.user_type_ LIKE '%SYSTEM%' THEN su.real_name_ ELSE su.username_ END username_,
         su.id_ user_id_,
         su.avatar_ head_url_,
         gender_,
@@ -942,24 +942,24 @@
         WHERE cgsm.group_type_ = 'COMM' AND cgsm.user_id_ = #{userId}
     </select>
     <select id="queryCourseClassStudentIds" resultType="java.lang.Integer">
-        SELECT cssp.user_id_ FROM course_schedule_teacher_salary csts
-        LEFT JOIN course_schedule_student_payment cssp ON csts.course_schedule_id_ = cssp.course_schedule_id_
+        SELECT cgsm.user_id_ FROM course_schedule_teacher_salary csts
+        LEFT JOIN class_group_student_mapper cgsm ON csts.class_group_id_ = cgsm.class_group_id_
         WHERE csts.user_id_ = #{teacherId}
-        GROUP BY cssp.user_id_
+        GROUP BY cgsm.user_id_
         UNION ALL
-        SELECT cssp.user_id_ FROM class_group_teacher_mapper cgtm
-        LEFT JOIN course_schedule_student_payment cssp ON cgtm.class_group_id_ = cssp.class_group_id_
+        SELECT cgsm.user_id_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN class_group_student_mapper cgsm ON cgtm.class_group_id_ = cgsm.class_group_id_
         WHERE cgtm.user_id_ = #{teacherId}
-        GROUP BY cssp.user_id_
+        GROUP BY cgsm.user_id_
         UNION ALL
         SELECT cssp.user_id_ FROM music_group mg
         LEFT JOIN course_schedule_student_payment cssp ON mg.id_ = cssp.music_group_id_
         WHERE (mg.educational_teacher_id_ = #{teacherId} OR mg.director_user_id_ = #{teacherId} OR mg.team_teacher_id_ = #{teacherId})
         AND cssp.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
         UNION ALL
-        SELECT cssp.user_id_ FROM vip_group vg
-        LEFT JOIN course_schedule_student_payment cssp ON vg.id_ = cssp.music_group_id_
-        WHERE vg.educational_teacher_id_ = #{teacherId} AND cssp.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
+        SELECT cgsm.user_id_ FROM vip_group vg
+        LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
+        WHERE vg.educational_teacher_id_ = #{teacherId} AND cgsm.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
         UNION ALL
         SELECT cssp.user_id_ FROM courses_group cg
         LEFT JOIN course_schedule_student_payment cssp ON cg.id_ = cssp.music_group_id_
@@ -1011,11 +1011,6 @@
         WHERE pg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'PRACTICE'
         GROUP BY cgtm.user_id_
         UNION ALL
-        SELECT DISTINCT CONCAT(mg.educational_teacher_id_,mg.director_user_id_,mg.team_teacher_id_) FROM class_group_teacher_mapper cgtm
-        LEFT JOIN music_group mg ON mg.id_ = cgtm.music_group_id_
-        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
-        GROUP BY mg.id_
-        UNION ALL
         SELECT vg.educational_teacher_id_ FROM class_group_teacher_mapper cgtm
         LEFT JOIN vip_group vg ON vg.id_ = cgtm.music_group_id_
         WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
@@ -1031,11 +1026,6 @@
         WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'PRACTICE'
         GROUP BY pg.educational_teacher_id_
         UNION ALL
-        SELECT DISTINCT CONCAT(mg.educational_teacher_id_,mg.director_user_id_,mg.team_teacher_id_) FROM course_schedule_teacher_salary csts
-        LEFT JOIN music_group mg ON mg.id_ = csts.music_group_id_
-        WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
-        GROUP BY mg.id_
-        UNION ALL
         SELECT vg.educational_teacher_id_ FROM course_schedule_teacher_salary csts
         LEFT JOIN vip_group vg ON vg.id_ = csts.music_group_id_
         WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
@@ -1051,4 +1041,15 @@
         WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'PRACTICE'
         GROUP BY pg.educational_teacher_id_
     </select>
+    <select id="queryMusicLeaderIds" resultType="java.lang.String">
+        SELECT DISTINCT CONCAT(mg.educational_teacher_id_,',',mg.director_user_id_,',',mg.team_teacher_id_) FROM course_schedule_teacher_salary csts
+        LEFT JOIN music_group mg ON mg.id_ = csts.music_group_id_
+        WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
+        GROUP BY mg.id_
+        UNION ALL
+        SELECT DISTINCT CONCAT(mg.educational_teacher_id_,',',mg.director_user_id_,',',mg.team_teacher_id_) FROM class_group_teacher_mapper cgtm
+        LEFT JOIN music_group mg ON mg.id_ = cgtm.music_group_id_
+        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
+        GROUP BY mg.id_
+    </select>
 </mapper>