فهرست منبع

Merge remote-tracking branch 'origin/master'

Joburgess 5 سال پیش
والد
کامیت
c631d66d96
21فایلهای تغییر یافته به همراه230 افزوده شده و 39 حذف شده
  1. 1 1
      cms/src/main/resources/config/mybatis/HelpCenterContentMapper.xml
  2. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/PracticeGroupQueryInfo.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupQueryInfo.java
  5. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseReviewService.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  7. 1 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  8. 7 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  9. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  10. 23 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  11. 3 3
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  12. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  13. 2 2
      mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml
  14. 6 0
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  15. 98 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  16. 6 0
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  17. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  18. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  19. 19 0
      mec-task/src/main/java/com/ym/mec/task/jobs/PushNeedReview2TeacherTask.java
  20. 4 4
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  21. 9 0
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

+ 1 - 1
cms/src/main/resources/config/mybatis/HelpCenterContentMapper.xml

@@ -71,7 +71,7 @@
 		<include refid="global.limit" />
 	</select>
 
-	<select id="findCount" parameterType="map" resultType="int">
+	<select id="queryCount" parameterType="map" resultType="int">
 		select count(*) from help_center_content content left join help_center_catalog catalog on
 		content.catalog_id_=catalog.id_
 		<include refid="queryConditionUnion" />

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

@@ -430,4 +430,18 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     Set<Integer> findCommEducationalTeacherId(Integer studentId);
+
+    /**
+     * 获取教师关联的学员列表
+     * @param teacherId
+     * @return
+     */
+    Set<Integer> queryCourseClassStudentIds(Integer teacherId);
+
+    /**
+     * 获取教师关联的老师列表
+     * @param teacherId
+     * @return
+     */
+    Set<Integer> queryCourseClassTeacherIds(Integer teacherId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/PracticeGroupQueryInfo.java

@@ -24,8 +24,18 @@ public class PracticeGroupQueryInfo extends QueryInfo {
 
     private Integer educationalTeacherId;
 
+    private Boolean hasEducationalTeacherId;
+
     private boolean isExport = false;
 
+    public Boolean getHasEducationalTeacherId() {
+        return hasEducationalTeacherId;
+    }
+
+    public void setHasEducationalTeacherId(Boolean hasEducationalTeacherId) {
+        this.hasEducationalTeacherId = hasEducationalTeacherId;
+    }
+
     public Integer getEducationalTeacherId() {
         return educationalTeacherId;
     }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupQueryInfo.java

@@ -22,6 +22,16 @@ public class VipGroupQueryInfo extends QueryInfo {
 
     private Integer educationalTeacherId;
 
+    private Boolean hasEducationalTeacherId;
+
+    public Boolean getHasEducationalTeacherId() {
+        return hasEducationalTeacherId;
+    }
+
+    public void setHasEducationalTeacherId(Boolean hasEducationalTeacherId) {
+        this.hasEducationalTeacherId = hasEducationalTeacherId;
+    }
+
     public Integer getEducationalTeacherId() {
         return educationalTeacherId;
     }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseReviewService.java

@@ -55,6 +55,9 @@ public interface CourseReviewService extends BaseService<Integer, CourseSchedule
 	 */
 	CourseScheduleReview updateReview(CourseScheduleReview courseScheduleReview);
 
+	/**
+	 * 推送待填写评价给老师
+	 */
 	void pushNeedReview2Teacher();
 
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -63,7 +63,7 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     List<ImGroupModel> queryTeacherGroups(Integer userId,String search);
 
     /**
-     * 获取和当前教师相关的学员列表
+     * 获取教师通讯录
      * @param id
      * @param search
      * @return

+ 1 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -713,12 +713,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<ImGroupModel> imGroupModels = classGroupDao.queryUserMusicGroups(userId, search);
         imGroupModels.addAll(classGroupDao.queryUserVipGroups(userId, search));
         imGroupModels.addAll(classGroupDao.queryUserCommGroups(userId, search));
+
         if (imGroupModels != null && imGroupModels.size() > 0) {
-//            Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
-            //获取班级老师总数map
-//            Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ",")))), HashMap.class);
             imGroupModels.forEach(e -> {
-//                Integer num = numsMap.get(Integer.parseInt(e.getId()));
                 e.setCount(classGroupService.findGroupUsers(Integer.parseInt(e.getId())).size());
             });
         }

+ 7 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -4056,6 +4056,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		int count = coursesGroupDao.countTeacherCourseGroups(params);
 		if(count > 0){
 			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
 			List<CoursesGroup> courseGroups = coursesGroupDao.queryTeacherCourseGroups(params);
 			List<Long> collect = courseGroups.stream().map(e -> e.getId()).collect(Collectors.toList());
 			//获取冻结课时
@@ -4101,10 +4102,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//获取最近一次已结束的课程
 		CourseSchedule courseSchedule = courseScheduleDao.getLastEndCourse(schedule.getMusicGroupId(),schedule.getGroupType().getCode());
 		//标记当前课程的上一节课
-		for (CourseScheduleRateDto e:courseScheduleRateDtos) {
-			if(e.getCourseScheduleId().equals(courseSchedule.getId())){
-				e.setIsDefault(true);
-				break;
+		if(courseSchedule != null){
+			for (CourseScheduleRateDto e:courseScheduleRateDtos) {
+				if(e.getCourseScheduleId().equals(courseSchedule.getId())){
+					e.setIsDefault(true);
+					break;
+				}
 			}
 		}
 		return courseScheduleRateDtos;

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -2095,6 +2095,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 //声部名称列表
                 Map<Long, String> subjectNames = MapUtil.convertMybatisMap(subjectDao.findBySubjecIds(StringUtils.join(subjectIds, ",")));
                 Map<Integer, String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
+//                List<Integer> collect = dataList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toList());
+//                Map<Integer, String> educationNames = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(StringUtils.join(collect,",")));
 
                 Map<Integer, String> idNameMap=new HashMap<>();
                 if(!CollectionUtils.isEmpty(educationalTeacherIds)){

+ 23 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -143,12 +143,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		//获取教师所在班级列表
 		List<ImGroupModel> imGroupModels =  classGroupDao.queryTeacherGroups(userId,search);
 		if(imGroupModels != null && imGroupModels.size() > 0){
-//			Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
-			//获取班级老师总数map
-//			Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ",")))),HashMap.class);
-
 			imGroupModels.forEach(e -> {
-//				Integer num = numsMap.get(Integer.parseInt(e.getId()));
 				e.setCount(classGroupService.findGroupUsers(Integer.parseInt(e.getId())).size());
 			});
 		}
@@ -157,23 +152,28 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	public List<BasicUserDto> queryGroupStudents(Integer teacherId, String search) {
+		//获取关联的学员列表
+		Set<Integer> studentIds = teacherDao.queryCourseClassStudentIds(teacherId);
+		//获取关联的老师列表
+		studentIds.addAll(teacherDao.queryCourseClassTeacherIds(teacherId));
+
 		List<ImGroupModel> musicGroups =  musicGroupDao.queryTeacherGroups(teacherId,search);
 		List<BasicUserDto> teachers = new ArrayList<>();
 		if(musicGroups != null && musicGroups.size() > 0){
 			Set<String> musicGroupId = musicGroups.stream().map(ImGroupModel::getId).collect(Collectors.toSet());
 			List<MusicGroup> musicGroupList = musicGroupDao.queryListByIds(StringUtils.join(musicGroupId, ","));
-			Set<Integer> teacherIds = new HashSet<>();
+			Set<Integer> teacherIdSet = new HashSet<>();
 			if(musicGroupList != null && musicGroupList.size() > 0){
 				musicGroupList.forEach(e->{
-					teacherIds.add(e.getTeamTeacherId());
-					teacherIds.add(e.getEducationalTeacherId());
-					teacherIds.add(e.getDirectorUserId());
+					teacherIdSet.add(e.getTeamTeacherId());
+					teacherIdSet.add(e.getEducationalTeacherId());
+					teacherIdSet.add(e.getDirectorUserId());
 				});
 			}
-			teacherIds.remove(teacherId);
-			teacherIds.removeAll(Collections.singleton(null));
-			if(teacherIds.size() > 0){
-				teachers = teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIds,","), search);
+			teacherIdSet.remove(teacherId);
+			teacherIdSet.removeAll(Collections.singleton(null));
+			if(teacherIdSet.size() > 0){
+				teachers = teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIdSet,","), search);
 			}
 		}
 		List<BasicUserDto> userDtos = teacherDao.queryGroupStudents(teacherId, search);
@@ -187,14 +187,18 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				});
 			}
 		}
+		studentIds.removeAll(userDtos.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
+		studentIds.remove(teacherId);
 		//获取课程关联的学生列表
-		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
+//		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
 		//获取相关vip陪练教务的学员编号
-		teachers.addAll(teacherDao.findVipEducationalStudentId(teacherId,search));
-		teachers.addAll(teacherDao.findCommEducationalStudentId(teacherId,search));
-		teachers.addAll(teacherDao.findPracticeEducationalStudentId(teacherId,search));
-
-		return teachers.stream().distinct().collect(Collectors.toList());
+//		teachers.addAll(teacherDao.findVipEducationalStudentId(teacherId,search));
+//		teachers.addAll(teacherDao.findCommEducationalStudentId(teacherId,search));
+//		teachers.addAll(teacherDao.findPracticeEducationalStudentId(teacherId,search));
+		if(studentIds.size() > 0){
+			teachers.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
+		}
+		return teachers;
 	}
 
     @Override

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -290,7 +290,7 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON vg.id_ = cg.music_group_id_
         <where>
-            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND vg.group_status_ = 4 AND cgsm.group_type_ = 'VIP'
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND vg.group_status_ = 2 AND cgsm.group_type_ = 'VIP'
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>
@@ -401,9 +401,9 @@
         LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_ AND cg.group_type_ = 'MUSIC'
         LEFT JOIN vip_group vg ON vg.id_ = cg.music_group_id_ AND cg.group_type_ = 'VIP'
         LEFT JOIN courses_group csg ON csg.id_ = cg.music_group_id_ AND cg.group_type_ = 'COMM'
-        WHERE (cgtm.user_id_ = #{userId} OR mg.team_teacher_id_ = #{userId} OR mg.educational_teacher_id_ = #{userId} OR
-        mg.director_user_id_ = #{userId} OR csg.educational_teacher_id_ = #{userId} OR vg.educational_teacher_id_ = #{userId})
+        WHERE (cgtm.user_id_ = #{userId} OR mg.team_teacher_id_ = #{userId} OR mg.educational_teacher_id_ = #{userId} OR mg.director_user_id_ = #{userId})
         AND cg.del_flag_ = 0 AND (mg.status_ = 'PROGRESS' OR vg.group_status_ = 2 OR csg.status_ = 'NORMAL')
+        OR (vg.group_status_ = 2 AND vg.educational_teacher_id_ =  #{userId}) OR (csg.status_ = 'NORMAL' AND csg.educational_teacher_id_ =  #{userId})
         <if test="search != null">
             AND cg.name_ LIKE CONCAT('%',#{search},'%')
         </if>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2749,7 +2749,7 @@
         LEFT JOIN course_schedule_evaluate cse ON cs.id_ = cse.course_schedule_id_
         WHERE cs.music_group_id_ = #{groupId} AND cs.group_type_ = #{groupType}
         GROUP BY cs.id_
-        ORDER BY cs.class_date_,cs.start_class_time_ DESC
+        ORDER BY cs.class_date_,cs.start_class_time_ ASC
     </select>
     <select id="getLastEndCourse" resultMap="CourseSchedule">
         SELECT cs.id_ FROM course_schedule cs

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml

@@ -136,13 +136,13 @@
 
     <select id="queryTeacherCourseGroups" resultMap="CoursesGroup">
 		SELECT * FROM courses_group
-		WHERE teacher_id_=#{userId} AND status_ IN ('APPLYING', 'NORMAL')
+		WHERE teacher_id_=#{userId} AND status_ IN ('NOT_START', 'NORMAL', 'FINISH')
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
     </select>
     <select id="countTeacherCourseGroups" resultType="int">
 		SELECT COUNT(0) FROM courses_group
-		WHERE teacher_id_ = #{userId} AND status_ IN ('APPLYING', 'NORMAL')
+		WHERE teacher_id_ = #{userId} AND status_ IN ('NOT_START', 'NORMAL', 'FINISH')
     </select>
     <select id="findFreezeMinutes" resultType="java.util.Map">
 		SELECT COUNT(DISTINCT cs.id_) * cg.single_class_minutes_ 'value',cg.id_ 'key' FROM courses_group cg

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -227,6 +227,12 @@
     <sql id="practiceGroupQueryCondition">
         <where>
             pg.group_status_='NORMAL'
+            <if test="hasEducationalTeacherId != null and hasEducationalTeacherId == true">
+                AND pg.educational_teacher_id_ IS NOT NULL
+            </if>
+            <if test="hasEducationalTeacherId != null and hasEducationalTeacherId == false">
+                AND pg.educational_teacher_id_ IS NULL
+            </if>
             <if test="search!=null and search!=''">
                 AND (pg.name_ LIKE CONCAT('%',#{search},'%') OR pg.id_= #{search})
             </if>

+ 98 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -941,4 +941,102 @@
         LEFT JOIN courses_group vg ON vg.id_ = cgsm.music_group_id_
         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_
+        WHERE csts.user_id_ = #{teacherId}
+        GROUP BY cssp.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_
+        WHERE cgtm.user_id_ = #{teacherId}
+        GROUP BY cssp.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'
+        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'
+        UNION ALL
+        SELECT cssp.user_id_ FROM courses_group cg
+        LEFT JOIN course_schedule_student_payment cssp ON cg.id_ = cssp.music_group_id_
+        WHERE cg.educational_teacher_id_ = #{teacherId} AND cssp.group_type_ = 'COMM'
+        UNION ALL
+        SELECT cssp.user_id_ FROM practice_group pg
+        LEFT JOIN course_schedule_student_payment cssp ON pg.id_ = cssp.music_group_id_
+        WHERE pg.educational_teacher_id_ = #{teacherId} AND cssp.group_type_ = 'PRACTICE'
+    </select>
+    <select id="queryCourseClassTeacherIds" resultType="java.lang.Integer">
+        SELECT csts.user_id_ FROM music_group mg
+        LEFT JOIN course_schedule_teacher_salary csts ON mg.id_ = csts.music_group_id_
+        WHERE csts.group_type_ = 'MUSIC' AND (mg.educational_teacher_id_ = #{teacherId} OR mg.director_user_id_ = #{teacherId} OR mg.team_teacher_id_ = #{teacherId})
+        GROUP BY csts.user_id_
+        UNION ALL
+        SELECT csts.user_id_ FROM vip_group vg 
+        LEFT JOIN course_schedule_teacher_salary csts ON vg.id_ = csts.music_group_id_
+        WHERE vg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'VIP'
+        GROUP BY csts.user_id_
+        UNION ALL
+        SELECT csts.user_id_ FROM courses_group cg 
+        LEFT JOIN course_schedule_teacher_salary csts ON cg.id_ = csts.music_group_id_
+        WHERE cg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'COMM'
+        GROUP BY csts.user_id_
+        UNION ALL
+        SELECT csts.user_id_ FROM practice_group pg 
+        LEFT JOIN course_schedule_teacher_salary csts ON pg.id_ = csts.music_group_id_
+        WHERE pg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'PRACTICE'
+        GROUP BY csts.user_id_
+        UNION ALL
+        SELECT cgtm.user_id_ FROM music_group mg
+        LEFT JOIN class_group_teacher_mapper cgtm ON mg.id_ = cgtm.music_group_id_
+        WHERE cgtm.group_type_ = 'MUSIC' AND (mg.educational_teacher_id_ = #{teacherId} OR mg.director_user_id_ = #{teacherId} OR mg.team_teacher_id_ = #{teacherId})
+        GROUP BY cgtm.user_id_
+        UNION ALL
+        SELECT cgtm.user_id_ FROM vip_group vg 
+        LEFT JOIN class_group_teacher_mapper cgtm ON vg.id_ = cgtm.music_group_id_
+        WHERE vg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'VIP'
+        GROUP BY cgtm.user_id_
+        UNION ALL
+        SELECT cgtm.user_id_ FROM courses_group cg 
+        LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.music_group_id_
+        WHERE cg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'COMM'
+        GROUP BY cgtm.user_id_
+        UNION ALL
+        SELECT cgtm.user_id_ FROM practice_group pg 
+        LEFT JOIN class_group_teacher_mapper cgtm ON pg.id_ = cgtm.music_group_id_
+        WHERE pg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'PRACTICE'
+        GROUP BY cgtm.user_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'
+        GROUP BY vg.educational_teacher_id_
+        UNION ALL
+        SELECT cg.educational_teacher_id_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN courses_group cg ON cg.id_ = cgtm.music_group_id_
+        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'COMM'
+        GROUP BY cg.educational_teacher_id_
+        UNION ALL
+        SELECT pg.educational_teacher_id_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN practice_group pg ON pg.id_ = cgtm.music_group_id_
+        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'PRACTICE'
+        GROUP BY pg.educational_teacher_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'
+        GROUP BY vg.educational_teacher_id_
+        UNION ALL
+        SELECT cg.educational_teacher_id_ FROM course_schedule_teacher_salary csts
+        LEFT JOIN courses_group cg ON cg.id_ = csts.music_group_id_
+        WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'COMM'
+        GROUP BY cg.educational_teacher_id_
+        UNION ALL
+        SELECT pg.educational_teacher_id_ FROM course_schedule_teacher_salary csts
+        LEFT JOIN practice_group pg ON pg.id_ = csts.music_group_id_
+        WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'PRACTICE'
+        GROUP BY pg.educational_teacher_id_
+    </select>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -168,6 +168,12 @@
             <if test="search!=null and search!=''">
                 AND (vg.name_ LIKE CONCAT('%',#{search},'%') OR vg.id_= #{search})
             </if>
+            <if test="hasEducationalTeacherId != null and hasEducationalTeacherId == true">
+                AND vg.educational_teacher_id_ IS NOT NULL
+            </if>
+            <if test="hasEducationalTeacherId != null and hasEducationalTeacherId == false">
+                AND vg.educational_teacher_id_ IS NULL
+            </if>
             <if test="teacherId!=null">
                 AND vg.user_id_=#{teacherId}
             </if>

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -91,4 +91,9 @@ public interface TaskRemoteService {
 	//预生成待提交月报
 	@GetMapping("task/createEvaluate")
 	void createEvaluate();
+
+	//新增待填写评论定时推送(推送老师)
+	@GetMapping("task/pushNeedReview2Teacher")
+	void pushNeedReview2Teacher();
+
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -115,4 +115,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void createEvaluate() {
 		logger.info("预生成待提交月报失败");
 	}
+
+	@Override
+	public void pushNeedReview2Teacher() {
+		logger.info("新增待填写评论推送失败");
+	}
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/PushNeedReview2TeacherTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PushNeedReview2TeacherTask extends BaseTask {
+
+    @Autowired
+    private TaskRemoteService taskRemoteService;
+
+    @Override
+    public void execute() throws TaskException {
+        taskRemoteService.pushNeedReview2Teacher();
+    }
+}

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -173,9 +173,9 @@ public class ExportController extends BaseController {
             });
         }
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部","网管课编号", "课程名称", "指导老师", "班级人数", "先上课单价", "线下课单价",
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部","网管课编号", "课程名称", "指导老师", "教务老师", "班级人数", "先上课单价", "线下课单价",
                     "当前课次", "总课次", "剩余课次","开课时间", "结束时间"}, new String[]{
-                    "organName","id", "name", "teacherName", "studentNum", "onlineClassesUnitPrice",
+                    "organName","id", "name", "teacherName", "educationalTeacherName", "studentNum", "onlineClassesUnitPrice",
                     "offlineClassesUnitPrice", "currentClassTimes", "totalClassTimes", "subClassTimes","coursesStartDate", "coursesExpireDate"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
@@ -217,9 +217,9 @@ public class ExportController extends BaseController {
             });
         }
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"VIP编号", "课程名称", "课程状态", "指导老师", "班级人数", "先上课单价", "线下课单价",
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"VIP编号", "课程名称", "课程状态", "指导老师", "指导老师", "班级人数", "先上课单价", "线下课单价",
                     "活动方案", "当前课次", "总课次", "剩余课次", "月消耗", "开课时间", "结束时间", "申请时间"}, new String[]{
-                    "id", "name", "status.msg", "userName", "studentNum", "onlineClassesUnitPrice",
+                    "id", "name", "status.msg", "userName", "educationalTeacherName", "studentNum", "onlineClassesUnitPrice",
                     "offlineClassesUnitPrice", "vipGroupActivityName", "currentClassTimes", "totalClassTimes", "subClassTimes", "monthConsumeRate",
                     "courseStartDate", "coursesExpireDate", "registrationStartTime"}, rows);
             response.setContentType("application/octet-stream");

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -47,6 +47,9 @@ public class TaskController extends BaseController {
 	@Autowired
 	private CourseScheduleEvaluateService courseScheduleEvaluateService;
 
+	@Autowired
+	private CourseReviewService courseReviewService;
+
 	@GetMapping("/refreshPaymentFeeStatus")
 	// 刷新付费状态
 	public void refreshPaymentFeeStatus() {
@@ -173,4 +176,10 @@ public class TaskController extends BaseController {
 		courseScheduleEvaluateService.createEvaluate(new Date());
 	}
 
+	//新增待填写评论定时推送(推送老师)
+	@GetMapping("/pushNeedReview2Teacher")
+	public void pushNeedReview2Teacher(){
+		courseReviewService.pushNeedReview2Teacher();
+	}
+
 }