shangke 2 years ago
parent
commit
6c677d135d

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -349,7 +349,8 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<TeacherClassGroupDto> findTeacherVipClassGroup(@Param("teacherId") Long teacherId,
                                                         @Param("status") String status,
-                                                        @Param("groupName") String groupName);
+                                                        @Param("groupName") String groupName,
+                                                        @Param("groupType") String groupType);
 
     /**
      * 根据合奏班编号列表,获取单技班名称列表

+ 41 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -789,7 +791,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<CourseListDto> courseListDtos = null;
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
-        List<String> musicGroupIds = null;
+        List<String> musicGroupIds = Lists.newArrayList();
         List<Group> groups;
         if (queryInfo.isHideOverGroup()) {
             groups = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
@@ -803,14 +805,32 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             typeGroupMap = groups.stream().collect(Collectors.groupingBy(Group::getGroupType));
         }
         courseListDtos = new ArrayList<>();
+
+        // VIP课
         if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.VIP))) {
-            musicGroupIds = typeGroupMap.get(GroupType.VIP).stream().map(Group::getId).collect(Collectors.toList());
+            musicGroupIds.addAll(typeGroupMap.get(GroupType.VIP).stream().map(Group::getId).collect(Collectors.toList()));
+        }
+        // 直播课
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(typeGroupMap.get(GroupType.LIVE))) {
+            musicGroupIds.addAll(typeGroupMap.get(GroupType.LIVE).stream().map(Group::getId).collect(Collectors.toList()));
         }
         //获取学员所购买的vip课列表详情
         List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","), userId);
         //获取vip课的学生列表
         Set<String> vipIds = vipCourses.stream().map(CourseListDto::getVipId).collect(Collectors.toSet());
-        Map<String, String> vipStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
+
+        Map<String, String> vipStuNamesMap = Maps.newHashMap();
+        // VIP课
+        List<Map<String, String>> vipStuNames = classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP");
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(vipStuNames)) {
+            vipStuNamesMap.putAll(MapUtil.convertIntegerMap(vipStuNames));
+        }
+        // 直播课
+        List<Map<String, String>> liveStuNames = classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "LIVE");
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(liveStuNames)) {
+            vipStuNamesMap.putAll(MapUtil.convertIntegerMap(liveStuNames));
+        }
+        //Map<String, String> vipStuNamesMap = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
 
         if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
             musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
@@ -867,6 +887,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<String, Long> vipCourseNumMap = new HashMap<>();
         if (vipIds != null && vipIds.size() > 0) {
             vipCourseNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.findStudentCourseNum(vipIds, userId, "VIP"));
+
+            // 直播课
+            List<Map<String, Integer>> studentCourseNum = courseScheduleStudentPaymentDao.findStudentCourseNum(vipIds, userId, "LIVE");
+            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(studentCourseNum)) {
+                vipCourseNumMap.putAll(MapUtil.convertIntegerMap(studentCourseNum));
+            }
         }
         Map<String, Long> practiceCourseNumMap = new HashMap<>();
         if (practiceGroupId != null && practiceGroupId.size() > 0) {
@@ -890,7 +916,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<String, Integer> isApplyMap = MapUtil.convertIntegerMap(isApplyMaps);
         //获取所有教学点名称列表
         Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
-        Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
+
+        Map<Integer, String> schoolNames = Maps.newHashMap();
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(schoolIds)) {
+            schoolNames.putAll(MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ","))));
+        }
 
         SysConfig practiceRenewUrlConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_RENEW_URL);
 
@@ -927,8 +957,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     else if (PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
                         e.setPracticeType(3);
                 }
-            } else if (ClassGroupTypeEnum.VIP == e.getType()) {
-                e.setStudentNames(vipStuNames.get(e.getVipId()));
+            } else if (ClassGroupTypeEnum.VIP == e.getType() || ClassGroupTypeEnum.LIVE == e.getType()) {
+                e.setStudentNames(vipStuNamesMap.get(e.getVipId()));
                 //1:线上;2:线下;3:线上+线下
                 if (e.getOnlineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
                     e.setClassMode(1);
@@ -1522,8 +1552,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<TeacherClassGroupDto> teacherMusicClassGroup;
         switch (type) {
-            case "VIP":
-                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(), status, groupName);
+            case "VIP": // VIP课
+            case "LIVE": // 直播课
+                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(), status, groupName, type);
                 break;
             case "MUSIC_GROUP":
                 teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue(), groupName);
@@ -1731,10 +1762,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 //            teacherClassHeadInfo.setTeachingTeacher(teachingTeacher.getUserName());
 //        }
 
-        if (classGroup.getType() == ClassGroupTypeEnum.VIP) {
+        if (classGroup.getType() == ClassGroupTypeEnum.VIP || classGroup.getType() == ClassGroupTypeEnum.LIVE) {
             String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(classGroupId);
             teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
         }
+
         if (classGroup.getType() == ClassGroupTypeEnum.PRACTICE) {
             String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(classGroupId);
             teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1094,7 +1094,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 //		List<Integer> quitClassGroupIds=classGroupStudentMapperDao.findClassGroupIdByUserAndCourseDateAndStatus(user.getId(),classDate, ClassGroupStudentStatusEnum.QUIT.getCode());
         List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue(), null);
         List<Long> courseScheduleIds = studentCourseSchedulesWithDate.stream()
-                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) || cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) || cs.getType().equals(CourseScheduleType.PRACTICE) || cs.getType().equals(CourseScheduleType.COMM))
+                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP)
+						|| cs.getType().equals(CourseSchedule.CourseScheduleType.LIVE)
+						|| cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO)
+						|| cs.getType().equals(CourseScheduleType.PRACTICE)
+						|| cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
 		Map<Integer, String> subjectNameCourseMap = new HashMap<>();
@@ -1223,6 +1227,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<Long> allCourseScheduleIds = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
         List<Long> courseScheduleIds = teacherCourseSchedulesWithDate.stream()
                 .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) ||
+						cs.getType().equals(CourseSchedule.CourseScheduleType.LIVE) ||
                         cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) ||
                         cs.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE) ||
 						cs.getType().equals(CourseScheduleType.COMM))

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

@@ -760,7 +760,7 @@
             s.name_ school_name_
         FROM
             vip_group vg
-            LEFT JOIN class_group cg ON vg.id_=cg.music_group_id_ AND cg.group_type_='VIP'
+            LEFT JOIN class_group cg ON vg.id_=cg.music_group_id_ AND cg.group_type_= #{groupType}
             LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
             LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
@@ -777,6 +777,9 @@
             <if test="groupName!=null and groupName!=''">
                 AND vg.name_ LIKE CONCAT('%', #{groupName}, '%')
             </if>
+            <if test="">
+                AND vg.group_type_ = #{groupType}
+            </if>
         GROUP BY
         vg.id_,cg.id_
     </select>
@@ -1067,7 +1070,7 @@
         FROM vip_group vg
         LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
         LEFT JOIN sys_user su ON vg.user_id_ = su.id_
-        WHERE cg.group_type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds})
+        WHERE cg.group_type_ IN ('VIP', 'LIVE') AND FIND_IN_SET(vg.id_,#{musicGroupIds})
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
         SELECT mg.id_ music_id_,mg.name_ music_group_name_,

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

@@ -1749,7 +1749,7 @@
     <select id="queryMusicGroupIds" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
         SELECT DISTINCT cgsm.music_group_id_ group_id_,cgsm.group_type_ FROM class_group_student_mapper cgsm
         LEFT JOIN music_group mg ON mg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'MUSIC'
-        LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'VIP' AND vg.group_status_!=7
+        LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
         LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'PRACTICE'
         WHERE cgsm.user_id_ = #{userId} AND cgsm.status_ != 'QUIT'
         AND (mg.status_ = 'PROGRESS' OR vg.group_status_ = 2 OR vg.group_status_ = 4 OR (pg.id_ IS NOT NULL AND
@@ -1761,7 +1761,7 @@
         SELECT COUNT(DISTINCT cgsm.music_group_id_)
         FROM class_group_student_mapper cgsm
                  LEFT JOIN music_group mg ON mg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'MUSIC'
-                 LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'VIP' AND vg.group_status_!=7
+                 LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
                  LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'PRACTICE'
         WHERE cgsm.user_id_ = #{userId}
           AND cgsm.status_ != 'QUIT'
@@ -1770,7 +1770,7 @@
     <select id="queryMusicGroupIdsWithoutOverGroup" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
         SELECT DISTINCT spo.music_group_id_ group_id_,cgsm.group_type_ FROM student_payment_order spo
         LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_ = cgsm.music_group_id_
-        LEFT JOIN vip_group vg ON vg.id_=spo.music_group_id_ AND spo.group_type_='VIP' AND vg.group_status_!=7
+        LEFT JOIN vip_group vg ON vg.id_=spo.music_group_id_ AND spo.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL
         AND spo.user_id_ = #{userId} AND spo.status_='SUCCESS' AND cgsm.status_ != 'QUIT'
@@ -1782,7 +1782,7 @@
         SELECT COUNT(DISTINCT spo.music_group_id_)
         FROM student_payment_order spo
                  LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_ = cgsm.music_group_id_
-                 LEFT JOIN vip_group vg ON vg.id_ = spo.music_group_id_ AND spo.group_type_ = 'VIP' AND vg.group_status_!=7
+                 LEFT JOIN vip_group vg ON vg.id_ = spo.music_group_id_ AND spo.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
                  LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         WHERE spo.type_ != 'OTHER'
           AND spo.music_group_id_ IS NOT NULL