Browse Source

Merge remote-tracking branch 'origin/test' into test

zouxuan 4 years ago
parent
commit
cf586cde3f

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1539,6 +1539,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseSchedule> findCourseByGroupId(@Param("groupType") String groupType, @Param("groupId") String groupId);
 
+    List<CourseSchedule> findCourseByGroupIds(@Param("groupIds") List<String> groupIds,
+                                              @Param("groupType") GroupType groupType);
+
     /**
      * 获取老师正常签退的课程
      *

+ 31 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -813,6 +813,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取学员的乐团列表详情
         List<CourseListDto> musicCourse = classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId);
 
+        List<CourseSchedule> musicGroupCourses = new ArrayList<>();
+        if(!CollectionUtils.isEmpty(musicGroupIds)){
+            musicGroupCourses = courseScheduleDao.findCourseByGroupIds(musicGroupIds, MUSIC);
+        }
+        Map<String, Map<TeachModeEnum, Long>> musicGroupTeachModeNumMap = new HashMap<>();
+        if(!CollectionUtils.isEmpty(musicGroupCourses)){
+            musicGroupTeachModeNumMap = musicGroupCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getMusicGroupId, Collectors.groupingBy(CourseSchedule::getTeachMode, Collectors.counting())));
+        }
+
         if (!CollectionUtils.isEmpty(typeGroupMap.get(PRACTICE))) {
             musicGroupIds = typeGroupMap.get(PRACTICE).stream().map(Group::getId).collect(Collectors.toList());
         } else {
@@ -911,8 +920,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     else if(PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
                         e.setPracticeType(3);
                 }
-            }
-            if (ClassGroupTypeEnum.VIP == e.getType()) {
+            }else if (ClassGroupTypeEnum.VIP == e.getType()) {
                 e.setStudentNames(vipStuNames.get(e.getVipId()));
                 //1:线上;2:线下;3:线上+线下
                 if (e.getOnlineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
@@ -924,6 +932,27 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 } else {
                     e.setClassMode(0);
                 }
+            }else{
+                Long onlineCourseNum = 0L;
+                Long offlineCourseNum = 0L;
+                if(musicGroupTeachModeNumMap.containsKey(e.getMusicId())){
+                    Map<TeachModeEnum, Long> teachModeCourseNumMap = musicGroupTeachModeNumMap.get(e.getMusicId());
+                    if(teachModeCourseNumMap.containsKey(TeachModeEnum.ONLINE)){
+                        onlineCourseNum = teachModeCourseNumMap.get(TeachModeEnum.ONLINE);
+                    }
+                    if(teachModeCourseNumMap.containsKey(TeachModeEnum.OFFLINE)){
+                        offlineCourseNum = teachModeCourseNumMap.get(TeachModeEnum.OFFLINE);
+                    }
+                }
+                if (onlineCourseNum > 0 && offlineCourseNum <= 0) {
+                    e.setClassMode(1);
+                } else if (onlineCourseNum > 0 && offlineCourseNum > 0) {
+                    e.setClassMode(3);
+                } else if (onlineCourseNum <= 0 && offlineCourseNum > 0) {
+                    e.setClassMode(2);
+                } else {
+                    e.setClassMode(0);
+                }
             }
         }
         pageInfo.setRows(courseListDtos);

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

@@ -3153,6 +3153,20 @@
           AND cs.group_type_ = #{groupType}
           AND cs.del_flag_ = 0
     </select>
+    <select id="findCourseByGroupIds" resultMap="CourseSchedule">
+        SELECT
+        <include refid="resultSql"></include>
+        FROM course_schedule cs
+        WHERE cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND cs.del_flag_ = 0
+        AND (new_course_id_ is null or new_course_id_ = 0)
+        <if test="groupIds!=null and groupIds.size()>0">
+            AND cs.music_group_id_ IN
+            <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+                #{groupId}
+            </foreach>
+        </if>
+    </select>
     <select id="queryScheduleByAttendance" resultMap="CourseSchedule">
         SELECT cs.*
         FROM teacher_attendance ta