Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
b5f183485d

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -224,6 +224,15 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<TeacherClassGroupDto> findTeacherMusicClassGroup(@Param("teacherId") Long teacherId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassGroupDto>
+     * @Author: Joburgess
+     * @Date: 2019/10/17
+     * @params [teacherId]
+     * @describe 获取老师陪练课班级
+     */
+    List<TeacherClassGroupDto> findTeacherPracticeClassGroup(@Param("teacherId") Long teacherId);
+
+    /**
      * 根据老师编号列表获取小课数量
      *
      * @param teacherIds
@@ -371,6 +380,14 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<CourseListDto> queryStudentMusicGroupCourses(@Param("musicGroupIds") String musicGroupIds, @Param("userId") Integer userId);
 
     /**
+     * 获取学生端,学员陪练课列表详情
+     *
+     * @param musicGroupIds
+     * @return
+     */
+    List<CourseListDto> queryStudentPracticeCourses(@Param("musicGroupIds") String musicGroupIds);
+
+    /**
      * 查询对应类型所有班级列表
      *
      * @param musicGroupId

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseListDto.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +19,9 @@ public class CourseListDto {
     @ApiModelProperty(value = "vip课编号",required = true)
     private String vipId;
 
+    @ApiModelProperty(value = "陪练课编号",required = true)
+    private String practiceId;
+
     @ApiModelProperty(value = "班级编号",required = true)
     private Integer classGroupId;
 
@@ -68,6 +72,14 @@ public class CourseListDto {
 
     private Integer isApply;
 
+    public String getPracticeId() {
+        return practiceId;
+    }
+
+    public void setPracticeId(String practiceId) {
+        this.practiceId = practiceId;
+    }
+
     public Integer getSurplusClassTimes() {
         return surplusClassTimes;
     }

+ 20 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -577,8 +577,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<String, String> vipStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ",")));
         //获取学员的乐团列表详情
         List<CourseListDto> musicCourse = classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId);
+        //获取学员购买的陪练课列表
+        List<CourseListDto> practiceCourse = classGroupDao.queryStudentPracticeCourses(StringUtils.join(musicGroupIds, ","));
+
         Set<String> musicGroupId = musicCourse.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
         Set<String> vipGroupId = vipCourses.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+        Set<String> practiceGroupId = practiceCourse.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+
         Map<String,Long> musicCourseNumMap = new HashMap<>();
         if(musicGroupId != null && musicGroupId.size() > 0){
             musicCourseNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.findStudentCourseNum(musicGroupId,userId,"MUSIC"));
@@ -587,8 +592,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if(vipGroupId != null && vipGroupId.size() > 0){
             vipCourseNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.findStudentCourseNum(vipGroupId,userId,"VIP"));
         }
+        Map<String,Long> practiceCourseNumMap = new HashMap<>();
+        if(vipGroupId != null && vipGroupId.size() > 0){
+            practiceCourseNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.findStudentCourseNum(practiceGroupId,userId,"PRACTICE"));
+        }
         courseListDtos.addAll(musicCourse);
         courseListDtos.addAll(vipCourses);
+        courseListDtos.addAll(practiceCourse);
         //检测对应乐团是否已申请退费
         List<Map<String, Integer>> isApplyMaps;
         if (musicGroupIds != null && musicGroupIds.size() > 0) {
@@ -603,13 +613,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         Long classTimes = null;
         for (CourseListDto e:courseListDtos) {
-            if(StringUtils.isEmpty(e.getMusicId())){
-                classTimes = vipCourseNumMap.get(e.getVipId());
-                e.setSurplusClassTimes(classTimes == null?0:classTimes.intValue());
-            }else {
+            if(StringUtils.isNotEmpty(e.getMusicId())){
                 classTimes = musicCourseNumMap.get(e.getMusicId());
-                e.setSurplusClassTimes(classTimes == null?0:classTimes.intValue());
+            }else if(StringUtils.isNotEmpty(e.getVipId())){
+                classTimes = vipCourseNumMap.get(e.getVipId());
+            }else if(StringUtils.isNotEmpty(e.getPracticeId())){
+                classTimes = practiceCourseNumMap.get(e.getPracticeId());
             }
+            e.setSurplusClassTimes(classTimes == null?0:classTimes.intValue());
+
             e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
             e.setIsApply(isApplyMap.get(e.getMusicGroupId()));
             if (ClassGroupTypeEnum.VIP == e.getType()) {
@@ -860,6 +872,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             case "MUSIC_GROUP":
                 teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue());
                 break;
+            case "PRACTICE":
+                teacherMusicClassGroup = classGroupDao.findTeacherPracticeClassGroup(user.getId().longValue());
+                break;
             default:
                 throw new BizException("课程类型错误");
         }

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

@@ -405,6 +405,7 @@
         <result property="classGroupId" column="class_group_id_"/>
         <result property="classGroupName" column="class_group_name_"/>
         <result property="studentNum" column="student_num_"/>
+        <result property="studentNames" column="student_names_"/>
         <result property="currentClassTimes" column="current_class_times_"/>
         <result property="totalClassTimes" column="total_class_times_"/>
         <result property="musicGroupId" column="music_group_id_"/>
@@ -420,6 +421,7 @@
         <result column="offline_classes_num_" property="offLineClassesNum"/>
         <result property="type" column="type_"/>
         <result property="courseStartDate" column="courses_start_date"/>
+        <result property="classMode" column="class_mode_"/>
     </resultMap>
 
     <select id="findTeacherMusicClassGroup" resultMap="TeacherClassGroupDto">
@@ -450,6 +452,16 @@
             AND mg.status_ = 'PROGRESS'
         GROUP BY cg.id_
     </select>
+    <select id="findTeacherPracticeClassGroup" resultMap="TeacherClassGroupDto">
+        SELECT
+        MIN(pg.name_) music_group_name_,COUNT(csts.id_) online_classes_num_,0 offline_classes_num_,
+        pg.id_ music_group_id_,MAX(pg.single_class_minutes_) single_class_minutes_,MIN(csts.class_group_id_) class_group_id_,'PRACTICE' type_,1 class_mode_,MAX(su.username_) student_names_
+        FROM practice_group pg
+        LEFT JOIN course_schedule_teacher_salary csts ON pg.id_ = csts.music_group_id_ AND csts.group_type_ = 'PRACTICE'
+        LEFT JOIN sys_user su ON  su.id_ = csts.user_id_
+        WHERE csts.user_id_ = #{teacherId}
+        GROUP BY pg.id_
+    </select>
     <select id="findTeacherVipClassGroup" resultMap="TeacherClassGroupDto">
         SELECT
             cg.id_ class_group_id_,
@@ -676,6 +688,7 @@
         <!--<result column="music_group_id_" property="musicGroupId"/>-->
         <result column="music_id_" property="musicId"/>
         <result column="vip_id_" property="vipId"/>
+        <result column="practice_id_" property="vipId"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="total_class_times_" property="totalClassTimes"/>
         <!--<result column="teach_mode_" property="teachMode"/>-->
@@ -685,6 +698,7 @@
         <result column="online_classes_num_" property="onlineClassesNum"/>
         <result column="offline_classes_num_" property="offLineClassesNum"/>
         <result column="teacher_school_id_" property="teacherSchoolId"/>
+        <result column="class_mode_" property="classMode"/>
         <result column="payment_status_" property="paymentStatus"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -712,6 +726,16 @@
         GROUP BY mg.id_,mgsf.payment_status_
     </select>
 
+    <select id="queryStudentPracticeCourses" resultMap="CourseListDto">
+        SELECT cg.id_ class_group_id_,pg.name_ music_group_name_,su.real_name_,
+        cg.current_class_times_,cg.total_class_times_,pg.single_class_minutes_,
+        pg.id_ practice_id_,cg.type_,1 class_mode_
+        FROM practice_group pg
+        LEFT JOIN class_group cg ON cg.music_group_id_ = pg.id_
+        LEFT JOIN sys_user su ON pg.user_id_ = su.id_
+        WHERE cg.group_type_ = 'PRACTICE' AND FIND_IN_SET(pg.id_,#{musicGroupIds})
+    </select>
+
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
         UPDATE class_group SET student_num_ = student_num_+1,update_time_ = NOW()

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

@@ -1317,7 +1317,9 @@
         SELECT 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'
-        WHERE cgsm.user_id_ = #{userId} AND cgsm.status_ != 'QUIT' AND (mg.status_ = 'PROGRESS' OR vg.group_status_  = 2 OR vg.group_status_ =5 OR vg.group_status_ =1)
+        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)
         ORDER BY cgsm.music_group_id_
         <include refid="global.limit"/>
     </select>

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java

@@ -25,7 +25,7 @@ public class ClassGroupController extends BaseController {
 
     @ApiOperation(value = "教师关联班级获取")
     @GetMapping("/findTeacherClassGroups")
-    public Object findTeacherClassGroups(@ApiParam(value = "课程类型:MUSIC_GROUP,VIP", required = true)String type){
+    public Object findTeacherClassGroups(@ApiParam(value = "课程类型:MUSIC_GROUP,VIP,PRACTICE", required = true)String type){
         return succeed(classGroupService.findTeacherClassGroups(type));
     }