Przeglądaj źródła

1、陪练课调整

Joburgess 5 lat temu
rodzic
commit
44748ea596

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

@@ -1,11 +1,8 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
@@ -13,7 +10,10 @@ import com.ym.mec.common.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
@@ -556,7 +556,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param params
      * @return
      */
-    List<String> queryMusicGroupIds(Map<String, Object> params);
+    List<Group> queryMusicGroupIds(Map<String, Object> params);
 
     /**
      * count学员购买的所有乐团和vip编号分页列表
@@ -573,7 +573,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param params: 参数
      * @return java.util.List<java.lang.String>
      */
-    List<String> queryMusicGroupIdsWithoutOverGroup(Map<String, Object> params);
+    List<Group> queryMusicGroupIdsWithoutOverGroup(Map<String, Object> params);
 
     /**
      * @describe count学员购买的所有乐团和vip编号分页列表,排除已结束的乐团

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

@@ -562,21 +562,41 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
         List<String> musicGroupIds = null;
+        List<Group> groups=new ArrayList<>();
         if (queryInfo.isHideOverGroup()) {
-            musicGroupIds = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
+            groups = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
             pageInfo.setTotal(courseScheduleDao.countMusicGroupIdsWithoutOverGroup(params));
         }else {
-            musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
+            groups = courseScheduleDao.queryMusicGroupIds(params);
             pageInfo.setTotal(courseScheduleDao.countMusicGroupIds(params));
         }
+        Map<GroupType, List<Group>> typeGroupMap=new HashMap<>();
+        if(!CollectionUtils.isEmpty(groups)){
+            typeGroupMap = groups.stream().collect(Collectors.groupingBy(Group::getGroupType));
+        }
         courseListDtos = new ArrayList<>();
+        if(!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.VIP))){
+            musicGroupIds=typeGroupMap.get(GroupType.VIP).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"));
+
+        if(!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))){
+            musicGroupIds=typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
+        }else{
+            musicGroupIds=null;
+        }
         //获取学员的乐团列表详情
         List<CourseListDto> musicCourse = classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId);
+
+        if(!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.PRACTICE))){
+            musicGroupIds=typeGroupMap.get(GroupType.PRACTICE).stream().map(Group::getId).collect(Collectors.toList());
+        }else{
+            musicGroupIds=null;
+        }
         //获取学员购买的陪练课列表
         List<CourseListDto> practiceCourse = classGroupDao.queryStudentPracticeCourses(StringUtils.join(musicGroupIds, ","));
         Set<String> practiceGroupId = practiceCourse.stream().map(e -> e.getPracticeId()).collect(Collectors.toSet());
@@ -603,6 +623,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         courseListDtos.addAll(practiceCourse);
         //检测对应乐团是否已申请退费
         List<Map<String, Integer>> isApplyMaps;
+        if(!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))){
+            musicGroupIds=typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
+        }else{
+            musicGroupIds=null;
+        }
         if (musicGroupIds != null && musicGroupIds.size() > 0) {
             isApplyMaps = studentApplyRefundsDao.checkIsApplyRefund(musicGroupIds, userId);
         } else {

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

@@ -834,7 +834,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         int practiceCourseNum = 0;
         for (int i = 0; i < allTeacherCourses.size(); i++) {
             CourseSchedule teacherCourse = allTeacherCourses.get(i);
-            if ((!teacherCourse.getClassDate().before(applyEndDate))
+            if ((!teacherCourse.getClassDate().before(applyStartDate))
                     && (teacherCourse.getClassDate().before(applyEndDate) || DateUtil.isSameDay(teacherCourse.getClassDate(), applyEndDate))) {
                 applyDateRangeCourses.add(teacherCourse);
             }
@@ -1796,7 +1796,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             throw new BizException("老师不存在");
         }
 
-        List<SimpleUserDto> enableApplyTeachers = getEnableApplyTeachers(practiceGroup.getUserId(), practiceGroup.getSubjectId());
+        List<SimpleUserDto> enableApplyTeachers = getEnableApplyTeachers(practiceGroup.getStudentId(), practiceGroup.getSubjectId());
         Set<Integer> enableApplyTeacherIds = enableApplyTeachers.stream().map(SimpleUserDto::getUserId).collect(Collectors.toSet());
         if(!enableApplyTeacherIds.contains(practiceGroup.getUserId())){
             throw new BizException("预约失败,老师选择错误,请重试。");

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

@@ -1313,8 +1313,8 @@
             LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cs.id_=#{courseScheduleId}
     </select>
-    <select id="queryMusicGroupIds" resultType="java.lang.String">
-        SELECT DISTINCT cgsm.music_group_id_ FROM class_group_student_mapper cgsm
+    <select id="queryMusicGroupIds" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
+        SELECT DISTINCT cgsm.music_group_id_ 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'
         LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'PRACTICE'
@@ -1331,8 +1331,8 @@
         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)
     </select>
-    <select id="queryMusicGroupIdsWithoutOverGroup" resultType="java.lang.String">
-        SELECT DISTINCT spo.music_group_id_ FROM student_payment_order spo
+    <select id="queryMusicGroupIdsWithoutOverGroup" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
+        SELECT DISTINCT spo.music_group_id_ 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'
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_