Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 năm trước cách đây
mục cha
commit
3f727ccab4

+ 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 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkStudentDetailDto.java

@@ -1,11 +1,10 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
 
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-
 /**
  * @Author Joburgess
  * @Date 2019/9/18
@@ -21,6 +20,9 @@ public class CourseHomeworkStudentDetailDto {
     @ApiModelProperty(value = "作业ID",required = false)
     private Long courseHomeworkId;
 
+    @ApiModelProperty(value = "学生作业编号",required = false)
+    private Long studentCourseHomeworkId;
+
     @ApiModelProperty(value = "作业内容",required = false)
     private String content;
 
@@ -45,6 +47,14 @@ public class CourseHomeworkStudentDetailDto {
     @ApiModelProperty(value = "是否已经回复",required = false)
     private YesOrNoEnum isReplied;
 
+    public Long getStudentCourseHomeworkId() {
+        return studentCourseHomeworkId;
+    }
+
+    public void setStudentCourseHomeworkId(Long studentCourseHomeworkId) {
+        this.studentCourseHomeworkId = studentCourseHomeworkId;
+    }
+
     public YesOrNoEnum getStatus() {
         return status;
     }

+ 10 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -206,7 +206,8 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
 
                 if (!CollectionUtils.isEmpty(courseScheduleStudentPayments)) {
                     List<StudentCourseHomework> studentCourseHomeworks = new ArrayList<>();
-                    Map<Integer, String> userMap = new HashMap<>();
+                    Teacher teacher = teacherDao.get(courseScheduleReview.getTeacherId());
+                    String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 1), "MM月dd日");
                     for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
                         StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
                         studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
@@ -217,15 +218,16 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                         studentCourseHomework.setStatus(YesOrNoEnum.NO);
                         studentCourseHomework.setIsView(YesOrNoEnum.NO);
                         studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
-                        studentCourseHomeworks.add(studentCourseHomework);
+//                        studentCourseHomeworks.add(studentCourseHomework);
+                        studentCourseHomeworkDao.insert(studentCourseHomework);
+
+                        Map<Integer, String> userMap = new HashMap<>();
                         userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
+                        String notifyUrl = "3?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId();
+                        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
+                                userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
                     }
-                    studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
-                    Teacher teacher = teacherDao.get(courseScheduleReview.getTeacherId());
-                    String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 1), "MM月dd日");
-                    String notifyUrl = "3?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + courseHomework.getId();
-                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
-                            userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
+//                    studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
                 }
             }
 

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -156,7 +156,19 @@ 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<>();
 		if(musicGroups != null && musicGroups.size() > 0){

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

@@ -28,6 +28,7 @@
         <result column="musicGroupName" property="musicGroupName"/>
         <result column="classGroupName" property="classGroupName"/>
         <result column="courseHomeworkId" property="courseHomeworkId"/>
+        <result column="studentCourseHomeworkId" property="studentCourseHomeworkId"/>
         <result column="content_" property="content"/>
         <result column="expiry_date_" property="expiryDate"/>
         <result column="completed_num_" property="completedNum"/>
@@ -63,8 +64,8 @@
         </selectKey>
         -->
         INSERT INTO student_course_homework
-        (id_,user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_)
-        VALUES(#{id},#{userId},#{courseScheduleId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_)
+        VALUES(#{userId},#{courseScheduleId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <insert id="batchInsertStudentCourseHomeworkRecord" parameterType="java.util.List" useGeneratedKeys="true"
@@ -208,6 +209,7 @@
 			ch.completed_num_,
 			ch.expect_num_,
 			ch.expiry_date_,
+			sch.id_ studentCourseHomeworkId,
 			sch.attachments_,
 			sch.score_,
 			sch.status_,

+ 30 - 17
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_,
@@ -836,7 +836,7 @@
         SELECT DISTINCT cgtm.user_id_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group_teacher_mapper cgtm ON cgsm.class_group_id_ = cgtm.class_group_id_
         LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_
-        WHERE vg.group_status_ IN (2,4) AND cgsm.user_id_ = #{studentId}
+        WHERE vg.group_status_ IN (2,3,4) AND cgsm.user_id_ = #{studentId}
     </select>
     <select id="findPracticeTeacherIds" resultType="java.lang.Integer">
         SELECT DISTINCT cgtm.user_id_ FROM class_group_student_mapper cgsm
@@ -942,23 +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'
+        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'
+        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_
@@ -976,7 +977,7 @@
         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'
+        WHERE vg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
         GROUP BY csts.user_id_
         UNION ALL
         SELECT csts.user_id_ FROM courses_group cg 
@@ -991,12 +992,13 @@
         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})
+        WHERE cgtm.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
+        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'
+        WHERE vg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
         GROUP BY cgtm.user_id_
         UNION ALL
         SELECT cgtm.user_id_ FROM courses_group cg 
@@ -1011,7 +1013,7 @@
         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'
+        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
         GROUP BY vg.educational_teacher_id_
         UNION ALL
         SELECT cg.educational_teacher_id_ FROM class_group_teacher_mapper cgtm
@@ -1026,7 +1028,7 @@
         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'
+        WHERE csts.user_id_ = #{teacherId} AND csts.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
         GROUP BY vg.educational_teacher_id_
         UNION ALL
         SELECT cg.educational_teacher_id_ FROM course_schedule_teacher_salary csts
@@ -1039,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>