Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
5e37744307

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentServeDto.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 
 import java.util.Date;
 
@@ -10,8 +12,28 @@ import java.util.Date;
  */
 public class StudentServeDto extends Student {
 
+    private GroupType groupType;
+
+    private TeachModeEnum teachMode;
+
     private Date courseStartTime;
 
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
     public Date getCourseStartTime() {
         return courseStartTime;
     }

+ 20 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -10,6 +10,8 @@ import com.ym.mec.biz.dal.dto.StudentServiceHomeworkDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.util.date.DateUtil;
@@ -63,21 +65,33 @@ public class StudentServeServiceImpl implements StudentServeService {
             return;
         }
 
+        Map<Integer, List<StudentServeDto>> studentCoursesMap = serviceStudents.stream().collect(Collectors.groupingBy(StudentServeDto::getUserId));
+
         //本周不服务学员列表
         Set<Integer> dontServeInCurrentWeekStudentIds=new HashSet<>();
         //本周有课学员编号集合
         Set<Integer> haveClassStudentIds=new HashSet<>();
         //本周无课学员编号集合
         Set<Integer> noClassStudentIds=new HashSet<>();
-        for (StudentServeDto serviceStudent : serviceStudents) {
-            if(Objects.nonNull(serviceStudent.getCourseStartTime())&&serviceStudent.getCourseStartTime().after(nextMonday)){
-                dontServeInCurrentWeekStudentIds.add(serviceStudent.getUserId());
+        for (Map.Entry<Integer, List<StudentServeDto>> studentCoursesEntry : studentCoursesMap.entrySet()) {
+            if(CollectionUtils.isEmpty(studentCoursesEntry.getValue())){
+                noClassStudentIds.add(studentCoursesEntry.getKey());
+                continue;
+            }
+            StudentServeDto studentServeDto = studentCoursesEntry.getValue().stream().min(Comparator.comparing(StudentServeDto::getCourseStartTime)).get();
+            if(Objects.isNull(studentServeDto.getCourseStartTime())){
+                noClassStudentIds.add(studentCoursesEntry.getKey());
+                continue;
+            }
+            if(studentServeDto.getCourseStartTime().after(nextMonday)){
+                dontServeInCurrentWeekStudentIds.add(studentCoursesEntry.getKey());
                 continue;
             }
-            if(Objects.nonNull(serviceStudent.getCourseStartTime())){
-                haveClassStudentIds.add(serviceStudent.getUserId());
+            if(GroupType.PRACTICE.equals(studentServeDto.getGroupType())||
+                    (GroupType.MUSIC.equals(studentServeDto.getGroupType())&&TeachModeEnum.OFFLINE.equals(studentServeDto.getTeachMode()))){
+                haveClassStudentIds.add(studentCoursesEntry.getKey());
             }else{
-                noClassStudentIds.add(serviceStudent.getUserId());
+                noClassStudentIds.add(studentCoursesEntry.getKey());
             }
         }
 

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

@@ -972,6 +972,7 @@
         <result column="total_class_times_" property="totalClassTimes"/>
         <result column="img_" property="img"/>
         <result column="current_class_times_" property="currentClassTimes"/>
+        <result column="memo_" property="memo"/>
     </resultMap>
     <select id="findClassGroupByMusicGroupIdAndSubjectId" resultMap="HighClassGroup">
         SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId}

+ 8 - 7
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -354,22 +354,23 @@
     </select>
 
     <resultMap id="StudentServeDto" type="com.ym.mec.biz.dal.dto.StudentServeDto" extends="Student">
-            <result property="courseStartTime" column="course_start_time_"/>
+        <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="teachMode" property="teach_mode_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseStartTime" column="course_start_time_"/>
     </resultMap>
     <select id="getBeServiceStudents" resultMap="StudentServeDto">
         SELECT
             s.user_id_,
-	        s.teacher_id_,
-            MIN( CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) ) course_start_time_
+            s.teacher_id_,
+            cs.group_type_,
+            cs.teach_mode_,
+            CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) course_start_time_
         FROM
             student s
             LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_
             LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-            AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &gt; #{monday}
-            AND (cs.group_type_ = 'PRACTICE' OR (cs.group_type_='MUSIC' AND cs.teach_mode_='OFFLINE')  )
+            AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
         WHERE
             s.service_tag_ = 1
-        GROUP BY
-            s.user_id_,s.teacher_id_
     </select>
 </mapper>