Jelajahi Sumber

学员剩余可排课时长,教务端学员列表

zouxuan 4 tahun lalu
induk
melakukan
d1198dc086

+ 1 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUserRole.java

@@ -13,7 +13,7 @@ public class SysUserRole {
 	public static Integer EDUCATIONAL_TEACHER = 4;
 	public static Integer EDUCATIONAL_TEACHER = 4;
 	//运营主管
 	//运营主管
 	public static Integer OPERATION_EXECUTIVE = 5;
 	public static Integer OPERATION_EXECUTIVE = 5;
-	//招生主管
+	//招生主管(意见反馈)
 	public static Integer ADMISSIONS_DIRECTOR = 6;
 	public static Integer ADMISSIONS_DIRECTOR = 6;
 	//教学主任、乐队指导
 	//教学主任、乐队指导
 	public static Integer DEAN_OF_STUDIES = 7;
 	public static Integer DEAN_OF_STUDIES = 7;

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

@@ -92,26 +92,26 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
 
 
     List<CourseSchedule> findMusicGroupAllCourseSchedules(@Param("musicGroupId") String musicGroupId,
     List<CourseSchedule> findMusicGroupAllCourseSchedules(@Param("musicGroupId") String musicGroupId,
-                                                       @Param("groupType") String groupType);
+                                                          @Param("groupType") String groupType);
 
 
     /**
     /**
-     * @describe 获取教师在指定时间的前一节课程
-     * @author Joburgess
-     * @date 2020.10.21
      * @param startClassTime:
      * @param startClassTime:
      * @param teacherId:
      * @param teacherId:
      * @return com.ym.mec.biz.dal.entity.CourseSchedule
      * @return com.ym.mec.biz.dal.entity.CourseSchedule
+     * @describe 获取教师在指定时间的前一节课程
+     * @author Joburgess
+     * @date 2020.10.21
      */
      */
     CourseSchedule getTeacherPrevCourseWithStartTime(@Param("startClassTime") Date startClassTime,
     CourseSchedule getTeacherPrevCourseWithStartTime(@Param("startClassTime") Date startClassTime,
                                                      @Param("teacherId") Integer teacherId);
                                                      @Param("teacherId") Integer teacherId);
 
 
     /**
     /**
-     * @describe 获取教师在指定时间前有签到的课程
-     * @author Joburgess
-     * @date 2020.10.21
      * @param startClassTime:
      * @param startClassTime:
      * @param teacherId:
      * @param teacherId:
      * @return com.ym.mec.biz.dal.entity.CourseSchedule
      * @return com.ym.mec.biz.dal.entity.CourseSchedule
+     * @describe 获取教师在指定时间前有签到的课程
+     * @author Joburgess
+     * @date 2020.10.21
      */
      */
     CourseSchedule getTeacherAttendanceCourseBeforeStartTime(@Param("startClassTime") Date startClassTime,
     CourseSchedule getTeacherAttendanceCourseBeforeStartTime(@Param("startClassTime") Date startClassTime,
                                                              @Param("teacherId") Integer teacherId);
                                                              @Param("teacherId") Integer teacherId);
@@ -146,29 +146,29 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                     @Param("userIds") List<Integer> userIds);
                                                     @Param("userIds") List<Integer> userIds);
 
 
     /**
     /**
+     * @param classGroupId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取班级上未开始的课程
      * @describe 获取班级上未开始的课程
      * @author Joburgess
      * @author Joburgess
      * @date 2020.11.05
      * @date 2020.11.05
-     * @param classGroupId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
      */
     List<CourseSchedule> getClassGroupNotStartCourse(@Param("classGroupId") Long classGroupId);
     List<CourseSchedule> getClassGroupNotStartCourse(@Param("classGroupId") Long classGroupId);
 
 
     /**
     /**
+     * @param classGroupId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取班级上的课程
      * @describe 获取班级上的课程
      * @author qnc99
      * @author qnc99
      * @date 2020/12/8 0008
      * @date 2020/12/8 0008
-     * @param classGroupId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
      */
     List<CourseSchedule> getClassGroupCourses(@Param("classGroupId") Long classGroupId);
     List<CourseSchedule> getClassGroupCourses(@Param("classGroupId") Long classGroupId);
 
 
     /**
     /**
+     * @param courseIds:
+     * @return java.util.List<java.lang.Long>
      * @describe 统计课程上被合课程的数量
      * @describe 统计课程上被合课程的数量
      * @author qnc99
      * @author qnc99
      * @date 2020/12/8 0008
      * @date 2020/12/8 0008
-     * @param courseIds:
-     * @return java.util.List<java.lang.Long>
      */
      */
     List<Map<Long, Long>> countCourseMergeCourseNum(@Param("courseIds") List<Long> courseIds);
     List<Map<Long, Long>> countCourseMergeCourseNum(@Param("courseIds") List<Long> courseIds);
 
 
@@ -699,7 +699,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param status
      * @param status
      * @return
      * @return
      */
      */
-    List<CourseSchedule> findCoursesByClassGroupId(@Param("classGroupId") Integer classGroupId,@Param("status") CourseStatusEnum status);
+    List<CourseSchedule> findCoursesByClassGroupId(@Param("classGroupId") Integer classGroupId, @Param("status") CourseStatusEnum status);
 
 
     /**
     /**
      * @param courseScheduleId: 课程编号
      * @param courseScheduleId: 课程编号
@@ -1071,7 +1071,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Map<String, Long>> countTotalCourseScheduleNum(@Param("vipGroupIds") List<String> vipGroupIds, @Param("groupType") String groupType);
     List<Map<String, Long>> countTotalCourseScheduleNum(@Param("vipGroupIds") List<String> vipGroupIds, @Param("groupType") String groupType);
 
 
     int countTotalCourseScheduleNumWithGroup(@Param("groupId") String groupId,
     int countTotalCourseScheduleNumWithGroup(@Param("groupId") String groupId,
-                                                        @Param("groupType") String groupType);
+                                             @Param("groupType") String groupType);
 
 
     /**
     /**
      * 获取当前课时(已上)
      * 获取当前课时(已上)
@@ -1297,7 +1297,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      * @return
      */
      */
     CourseSchedule queryStudentContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
     CourseSchedule queryStudentContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
-                                       @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
+                                              @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
 
 
     /**
     /**
      * 获取当前课程,下一次连堂课
      * 获取当前课程,下一次连堂课
@@ -1307,7 +1307,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      * @return
      */
      */
     CourseSchedule queryTeacherContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
     CourseSchedule queryTeacherContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
-                                       @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
+                                              @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
 
 
     /**
     /**
      * 获取单节课时长
      * 获取单节课时长
@@ -1372,13 +1372,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Map<Long, String>> queryTeacherName(@Param("courseScheduleIds") List<Long> courseScheduleIds);
     List<Map<Long, String>> queryTeacherName(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
 
     /**
     /**
-     * @describe 统计学生在指定周期内的vip课数量
-     * @author Joburgess
-     * @date 2020.04.28
      * @param studentIds:
      * @param studentIds:
      * @param startTime:
      * @param startTime:
      * @param endTime:
      * @param endTime:
-     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     * @return java.util.List<java.util.Map < java.lang.Integer, java.lang.Integer>>
+     * @describe 统计学生在指定周期内的vip课数量
+     * @author Joburgess
+     * @date 2020.04.28
      */
      */
     List<Map<Integer, Long>> countStudentVipCoursesWithDate(@Param("studentIds") List<Integer> studentIds,
     List<Map<Integer, Long>> countStudentVipCoursesWithDate(@Param("studentIds") List<Integer> studentIds,
                                                             @Param("startTime") Date startTime,
                                                             @Param("startTime") Date startTime,
@@ -1387,24 +1387,24 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
 
 
     /**
     /**
-     * @describe 统计学生在指定周期内的付费网管课数量
-     * @author Joburgess
-     * @date 2020.05.06
      * @param studentIds:
      * @param studentIds:
      * @param startTime:
      * @param startTime:
      * @param endTime:
      * @param endTime:
-     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Long>>
+     * @return java.util.List<java.util.Map < java.lang.Integer, java.lang.Long>>
+     * @describe 统计学生在指定周期内的付费网管课数量
+     * @author Joburgess
+     * @date 2020.05.06
      */
      */
     List<Map<Integer, Long>> countStudentPayPracticeCoursesWithDate(@Param("studentIds") List<Integer> studentIds,
     List<Map<Integer, Long>> countStudentPayPracticeCoursesWithDate(@Param("studentIds") List<Integer> studentIds,
                                                                     @Param("startTime") Date startTime,
                                                                     @Param("startTime") Date startTime,
                                                                     @Param("endTime") Date endTime);
                                                                     @Param("endTime") Date endTime);
 
 
     /**
     /**
+     * @param studentIds:
+     * @return java.util.List<java.util.Map < java.lang.Integer, java.lang.Integer>>
      * @describe 统计学生在未来的vip课数量
      * @describe 统计学生在未来的vip课数量
      * @author Joburgess
      * @author Joburgess
      * @date 2020.04.28
      * @date 2020.04.28
-     * @param studentIds:
-     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
      */
     List<Map<Integer, Long>> countStudentVipCoursesInFuture(@Param("studentIds") List<Integer> studentIds);
     List<Map<Integer, Long>> countStudentVipCoursesInFuture(@Param("studentIds") List<Integer> studentIds);
 
 
@@ -1423,13 +1423,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * @param courseId:
      * @param courseId:
-     * @param isLock:    冻结状态:1、冻结,0、正常
+     * @param isLock:   冻结状态:1、冻结,0、正常
      * @return int
      * @return int
      * @describe 通过班级编号更改课程的冻结状态
      * @describe 通过班级编号更改课程的冻结状态
      * @author zouxuan
      * @author zouxuan
      */
      */
     int batchUpdateLockByCourseIds(@Param("courseId") List<Long> courseId,
     int batchUpdateLockByCourseIds(@Param("courseId") List<Long> courseId,
-                              @Param("isLock") Integer isLock);
+                                   @Param("isLock") Integer isLock);
 
 
 
 
     /**
     /**
@@ -1547,6 +1547,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取用户课程信息
      * 获取用户课程信息
+     *
      * @param studentIds
      * @param studentIds
      * @param groupType
      * @param groupType
      * @return
      * @return
@@ -1557,6 +1558,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取上一次连堂课
      * 获取上一次连堂课
+     *
      * @param classGroupId
      * @param classGroupId
      * @param startTime
      * @param startTime
      * @param teacherId
      * @param teacherId
@@ -1569,6 +1571,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取课程组已结束最后一节课时间
      * 获取课程组已结束最后一节课时间
+     *
      * @param vipGroupIds
      * @param vipGroupIds
      * @return
      * @return
      */
      */
@@ -1576,6 +1579,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取课程状态列表
      * 获取课程状态列表
+     *
      * @param courseScheduleIds
      * @param courseScheduleIds
      * @return
      * @return
      */
      */
@@ -1583,6 +1587,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取第一节课时间
      * 获取第一节课时间
+     *
      * @param practiceGroupId
      * @param practiceGroupId
      * @param groupType
      * @param groupType
      * @return
      * @return
@@ -1591,6 +1596,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 获取最后一节课时间
      * 获取最后一节课时间
+     *
      * @param practiceGroupId
      * @param practiceGroupId
      * @param groupType
      * @param groupType
      * @return
      * @return
@@ -1599,12 +1605,14 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 重置上课学生人数
      * 重置上课学生人数
+     *
      * @param courseScheduleId
      * @param courseScheduleId
      */
      */
     void resetStudentNum(@Param("courseScheduleId") List<Long> courseScheduleId);
     void resetStudentNum(@Param("courseScheduleId") List<Long> courseScheduleId);
 
 
     /**
     /**
      * 获取当前班级列表的所有未开始的课程
      * 获取当前班级列表的所有未开始的课程
+     *
      * @param classGroupIds
      * @param classGroupIds
      * @param teacherId
      * @param teacherId
      * @param teacherRole
      * @param teacherRole
@@ -1614,6 +1622,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 当前班级是否有未开始的课程
      * 当前班级是否有未开始的课程
+     *
      * @param classGroupIds
      * @param classGroupIds
      * @param teacherId
      * @param teacherId
      * @return
      * @return
@@ -1623,6 +1632,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 查询班级未上的课程类型对应的时长
      * 查询班级未上的课程类型对应的时长
+     *
      * @param classGroupIdList
      * @param classGroupIdList
      * @return
      * @return
      */
      */
@@ -1630,34 +1640,36 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
 
 
     /**
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseRepeatCheckDto>
      * @describe 获取检测课程冲突需要的数据
      * @describe 获取检测课程冲突需要的数据
      * @author qnc99
      * @author qnc99
      * @date 2020/11/25 0025
      * @date 2020/11/25 0025
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseRepeatCheckDto>
      */
      */
     List<CourseRepeatCheckDto> getCourseRepeatCheckInfos();
     List<CourseRepeatCheckDto> getCourseRepeatCheckInfos();
 
 
-    CourseSchedule getLock (long courseId);
+    CourseSchedule getLock(long courseId);
 
 
     /**
     /**
+     * @param courseId:
+     * @return int
      * @describe 统计指定课程合并的课程数量
      * @describe 统计指定课程合并的课程数量
      * @author qnc99
      * @author qnc99
      * @date 2020/11/27 0027
      * @date 2020/11/27 0027
-     * @param courseId:
-     * @return int
      */
      */
     int countCourseMergeTime(@Param("courseId") Long courseId);
     int countCourseMergeTime(@Param("courseId") Long courseId);
 
 
     /**
     /**
      * 获取班级剩余的课程类型和课程数量
      * 获取班级剩余的课程类型和课程数量
-     * @author zouxuan
+     *
      * @param classGroupId
      * @param classGroupId
      * @return
      * @return
+     * @author zouxuan
      */
      */
     List<Map<String, Integer>> querySubCourseNumMap(@Param("classGroupId") Integer classGroupId);
     List<Map<String, Integer>> querySubCourseNumMap(@Param("classGroupId") Integer classGroupId);
 
 
     /**
     /**
      * 获取所选班级最大剩余课时
      * 获取所选班级最大剩余课时
+     *
      * @param classGroupIds
      * @param classGroupIds
      * @return
      * @return
      */
      */
@@ -1665,28 +1677,48 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
     /**
      * 根据学员和班级列表获取未开始的课程列表
      * 根据学员和班级列表获取未开始的课程列表
-     * @author zouxuan
+     *
      * @param classGroupIds
      * @param classGroupIds
      * @param studentIds
      * @param studentIds
      * @return
      * @return
+     * @author zouxuan
      */
      */
     List<Long> queryStudentNotStartByClassIdsAndStudentIds(@Param("classGroupIds") List<Integer> classGroupIds,
     List<Long> queryStudentNotStartByClassIdsAndStudentIds(@Param("classGroupIds") List<Integer> classGroupIds,
                                                            @Param("studentIds") List<Integer> studentIds);
                                                            @Param("studentIds") List<Integer> studentIds);
 
 
     /**
     /**
      * 获取没有学员的课程
      * 获取没有学员的课程
-     * @author zouxuan
+     *
      * @param courseIds
      * @param courseIds
      * @return
      * @return
+     * @author zouxuan
      */
      */
     List<Long> findNoStudentCourseIds(@Param("courseIds") List<Long> courseIds);
     List<Long> findNoStudentCourseIds(@Param("courseIds") List<Long> courseIds);
 
 
     /**
     /**
-     *
      * 根据班级编号获取未开始的主课
      * 根据班级编号获取未开始的主课
-     * @author zouxuan
+     *
      * @param classGroupIds
      * @param classGroupIds
      * @return
      * @return
+     * @author zouxuan
      */
      */
     int findNoStartMasterCourseNum(@Param("classGroupIds") List<Integer> classGroupIds);
     int findNoStartMasterCourseNum(@Param("classGroupIds") List<Integer> classGroupIds);
+
+    /**
+     * 获取当前教务老师关联的课程组上该学员的所有剩余课程
+     *
+     * @param params
+     * @return
+     * @author zouxuan
+     */
+    List<StudentNoStartCoursesDto> queryStudentNoStartCourse(Map<String, Object> params);
+
+    /**
+     * 获取当前教务老师关联的课程组上该学员的所有剩余课程
+     *
+     * @param params
+     * @return
+     * @author zouxuan
+     */
+    int countStudentNoStartCourse(Map<String, Object> params);
 }
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
@@ -98,7 +99,7 @@ public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, M
      * @param studentIds
      * @param studentIds
      * @return
      * @return
      */
      */
-    List<Map<Integer, Integer>> queryStudentSubTotalCourseTime(@Param("studentIds") Set<Integer> studentIds, @Param("musicGroupId") String musicGroupId);
+    List<Map<Integer, BigDecimal>> queryStudentSubTotalCourseTime(@Param("studentIds") Set<Integer> studentIds, @Param("musicGroupId") String musicGroupId);
 
 
     /**
     /**
      * 获取学员关联的每种课程类型的剩余可排课时长
      * 获取学员关联的每种课程类型的剩余可排课时长

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentsDto.java

@@ -63,14 +63,15 @@ public class MusicGroupStudentsDto{
     private String isNewStudentStr;
     private String isNewStudentStr;
 
 
     private String nextPaymentDateStr;
     private String nextPaymentDateStr;
+
     @ApiModelProperty(value = "剩余可排课时长",required = false)
     @ApiModelProperty(value = "剩余可排课时长",required = false)
-    private Integer subTotalCourseTime;
+    private BigDecimal subTotalCourseTime;
 
 
-    public Integer getSubTotalCourseTime() {
+    public BigDecimal getSubTotalCourseTime() {
         return subTotalCourseTime;
         return subTotalCourseTime;
     }
     }
 
 
-    public void setSubTotalCourseTime(Integer subTotalCourseTime) {
+    public void setSubTotalCourseTime(BigDecimal subTotalCourseTime) {
         this.subTotalCourseTime = subTotalCourseTime;
         this.subTotalCourseTime = subTotalCourseTime;
     }
     }
 
 

+ 61 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentNoStartCoursesDto.java

@@ -0,0 +1,61 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class StudentNoStartCoursesDto{
+
+    @ApiModelProperty(value = "教师名称",required = false)
+    private String teacherName;
+
+    @ApiModelProperty(value = "课程名称",required = false)
+    private String name;
+
+    @ApiModelProperty(value = "课程日期",required = false)
+    private String classDate;
+
+    @ApiModelProperty(value = "课程开始时间",required = false)
+    private String startClassTime;
+
+    @ApiModelProperty(value = "课程结束时间",required = false)
+    private String endClassTime;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public String getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(String endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+}

+ 15 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentQueryInfo.java

@@ -12,7 +12,9 @@ public class StudentQueryInfo extends QueryInfo {
 
 
     private String groupType;
     private String groupType;
 
 
-    private Integer userId;
+    private Integer teacherId;
+
+    private Integer studentId;
 
 
     private List<String> organIdList;
     private List<String> organIdList;
 
 
@@ -24,12 +26,20 @@ public class StudentQueryInfo extends QueryInfo {
         this.groupType = groupType;
         this.groupType = groupType;
     }
     }
 
 
-    public Integer getUserId() {
-        return userId;
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
     }
     }
 
 
-    public void setUserId(Integer userId) {
-        this.userId = userId;
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
     }
     }
 
 
     public List<String> getOrganIdList() {
     public List<String> getOrganIdList() {

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -191,10 +191,17 @@ public interface StudentManageService {
 
 
     /**
     /**
      * 获取教务老师关联的学员列表
      * 获取教务老师关联的学员列表
-     * @param groupType
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<BasicUserDto> queryGroupStudents(StudentQueryInfo queryInfo);
+
+    /**
+     * 获取当前教务老师关联的课程组上该学员的所有剩余课程
+     * @param queryInfo
      * @return
      * @return
      */
      */
-    PageInfo<BasicUserDto> queryGroupStudents(StudentQueryInfo groupType);
+    PageInfo<StudentNoStartCoursesDto> queryStudentNoStartCourse(StudentQueryInfo queryInfo);
 
 
     /**
     /**
      * 乐团管理--乐团详情--学员列表--获取学员可排课时长
      * 乐团管理--乐团详情--学员列表--获取学员可排课时长

+ 27 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -423,11 +424,13 @@ public class StudentManageServiceImpl implements StudentManageService {
             //退团的学生
             //退团的学生
             List<Integer> quitUserIds = dataList.stream().filter(e -> e.getStudentStatus().equals("QUIT")).map(MusicGroupStudentsDto::getUserId).collect(Collectors.toList());
             List<Integer> quitUserIds = dataList.stream().filter(e -> e.getStudentStatus().equals("QUIT")).map(MusicGroupStudentsDto::getUserId).collect(Collectors.toList());
             Set<Integer> studentIds = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
             Set<Integer> studentIds = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-            Map<Integer,Integer> subTotalCourseTimeMap = MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTime(studentIds,musicGroupId));
+            Map<Integer, BigDecimal> subTotalCourseTimeMap = MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTime(studentIds,musicGroupId));
+            for (MusicGroupStudentsDto musicGroupStudentsDto : dataList) {
+                musicGroupStudentsDto.setSubTotalCourseTime(subTotalCourseTimeMap.get(musicGroupStudentsDto.getUserId()));
+            }
             if (quitUserIds.size() > 0) {
             if (quitUserIds.size() > 0) {
                 List<MusicGroupQuit> quits = musicGroupQuitDao.getQuits(queryInfo.getMusicGroupId(), quitUserIds);
                 List<MusicGroupQuit> quits = musicGroupQuitDao.getQuits(queryInfo.getMusicGroupId(), quitUserIds);
                 for (MusicGroupStudentsDto musicGroupStudentsDto : dataList) {
                 for (MusicGroupStudentsDto musicGroupStudentsDto : dataList) {
-                    musicGroupStudentsDto.setSubTotalCourseTime(subTotalCourseTimeMap.get(musicGroupStudentsDto.getUserId()));
                     for (MusicGroupQuit quit : quits) {
                     for (MusicGroupQuit quit : quits) {
                         if (!quit.getUserId().equals(musicGroupStudentsDto.getUserId())) continue;
                         if (!quit.getUserId().equals(musicGroupStudentsDto.getUserId())) continue;
                         musicGroupStudentsDto.setQuitReason(quit.getReason());
                         musicGroupStudentsDto.setQuitReason(quit.getReason());
@@ -673,7 +676,7 @@ public class StudentManageServiceImpl implements StudentManageService {
         }
         }
         PageInfo<BasicUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         PageInfo<BasicUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         Map<String, Object> params = new HashMap<>();
-        queryInfo.setUserId(sysUser.getId());
+        queryInfo.setTeacherId(sysUser.getId());
         MapUtil.populateMap(params, queryInfo);
         MapUtil.populateMap(params, queryInfo);
         params.put("offset", pageInfo.getOffset());
         params.put("offset", pageInfo.getOffset());
         Integer count = 0;
         Integer count = 0;
@@ -696,6 +699,27 @@ public class StudentManageServiceImpl implements StudentManageService {
     }
     }
 
 
     @Override
     @Override
+    public PageInfo<StudentNoStartCoursesDto> queryStudentNoStartCourse(StudentQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null || sysUser.getId() == null){
+            throw new BizException("用户信息获取失败");
+        }
+        PageInfo<StudentNoStartCoursesDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        queryInfo.setTeacherId(sysUser.getId());
+        MapUtil.populateMap(params, queryInfo);
+        params.put("offset", pageInfo.getOffset());
+        Integer count = courseScheduleDao.countStudentNoStartCourse(params);
+        List<StudentNoStartCoursesDto> dataList = new ArrayList<>();
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            dataList = courseScheduleDao.queryStudentNoStartCourse(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
     public Map<Integer, Integer> queryStudentSubTotalCourseTimes(Integer userId,String musicGroupId) {
     public Map<Integer, Integer> queryStudentSubTotalCourseTimes(Integer userId,String musicGroupId) {
         return MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTimes(userId,musicGroupId));
         return MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTimes(userId,musicGroupId));
     }
     }

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

@@ -458,36 +458,6 @@
         ORDER BY cs.id_
         ORDER BY cs.id_
     </select>
     </select>
 
 
-
-
-    <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">
-        <result property="classGroupId" column="class_group_id_"/>
-        <result property="studentId" column="student_id_"/>
-        <result property="userName" column="username_"/>
-        <result property="musicGroupId" column="music_group_id_"/>
-        <result property="subjectId" column="subject_id_"/>
-        <result property="subjectName" column="subject_name_"/>
-        <result property="status" column="status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-    </resultMap>
-
-    <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
-        SELECT cgsm.class_group_id_,
-               su.id_  student_id_,
-               su.username_,
-               mg.id_  music_group_id_,
-               s.id_   subject_id_,
-               s.name_ subject_name_,
-               cgsm.status_
-        FROM class_group cg
-                 LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
-                 LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-                 LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
-                 LEFT JOIN `subject` s ON cg.subject_id_ = s.id_
-        WHERE cgsm.class_group_id_ = #{classID}
-          AND cgsm.status_ != 'QUIT'
-          AND cg.group_type_ = 'MUSIC'
-    </select>
-
     <select id="countStudentInClass" resultType="java.lang.Integer">
     <select id="countStudentInClass" resultType="java.lang.Integer">
         SELECT
         SELECT
         COUNT(class_group_id_)
         COUNT(class_group_id_)
@@ -3477,4 +3447,37 @@
             new_course_id_
             new_course_id_
     </select>
     </select>
 
 
+    <resultMap id="StudentNoStartCoursesDto" type="com.ym.mec.biz.dal.dto.StudentNoStartCoursesDto">
+        <result property="classDate" column="class_date_"/>
+        <result property="endClassTime" column="end_class_time_"/>
+        <result property="startClassTime" column="start_class_time_"/>
+        <result property="name" column="name_"/>
+        <result property="teacherName" column="real_name_"/>
+    </resultMap>
+    <select id="queryStudentNoStartCourse" resultMap="StudentNoStartCoursesDto">
+        SELECT cs.name_,cs.class_date_,cs.start_class_time_,cs.end_class_time_,su.real_name_ FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
+        <if test="groupType == 'VIP'">
+            LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
+        </if>
+        <if test="groupType == 'PRACTICE'">
+            LEFT JOIN practice_group vg ON vg.id_ = cs.music_group_id_
+        </if>
+        WHERE cssp.user_id_ = #{studentId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
+        AND vg.educational_teacher_id_ = #{teacherId}
+        <include refid="global.limit"/>
+    </select>
+    <select id="countStudentNoStartCourse" resultType="int">
+        SELECT COUNT(cssp.course_schedule_id_) FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        <if test="groupType == 'VIP'">
+            LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
+        </if>
+        <if test="groupType == 'PRACTICE'">
+            LEFT JOIN practice_group vg ON vg.id_ = cs.music_group_id_
+        </if>
+        WHERE cssp.user_id_ = #{studentId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
+        AND vg.educational_teacher_id_ = #{teacherId}
+    </select>
 </mapper>
 </mapper>

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

@@ -227,9 +227,10 @@
     </delete>
     </delete>
 
 
     <select id="queryStudentSubTotalCourseTime" resultType="java.util.Map">
     <select id="queryStudentSubTotalCourseTime" resultType="java.util.Map">
-        SELECT mgpscd.user_id_ 'key',SUM(mgpscd.total_course_minutes_) 'value' FROM music_group_payment_student_course_detail mgpscd
+        SELECT mgpscd.user_id_ 'key',SUM(CASE WHEN mgpscd.used_course_minutes_ = 0 THEN mgpscd.total_course_minutes_ ELSE 0 END) 'value'
+        FROM music_group_payment_student_course_detail mgpscd
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
-        WHERE mgpscd.used_course_minutes_ = 0 AND mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ IN
+        WHERE mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ IN
         <foreach collection="studentIds" open="(" close=")" item="item" separator=",">
         <foreach collection="studentIds" open="(" close=")" item="item" separator=",">
             #{item}
             #{item}
         </foreach>
         </foreach>
@@ -237,9 +238,10 @@
     </select>
     </select>
 
 
     <select id="queryStudentSubTotalCourseTimes" resultType="java.util.Map">
     <select id="queryStudentSubTotalCourseTimes" resultType="java.util.Map">
-        SELECT mgpscd.course_type_ 'key',SUM(mgpscd.total_course_minutes_) 'value' FROM music_group_payment_student_course_detail mgpscd
+        SELECT mgpscd.course_type_ 'key',SUM(CASE WHEN mgpscd.used_course_minutes_ = 0 THEN mgpscd.total_course_minutes_ ELSE 0 END) 'value'
+        FROM music_group_payment_student_course_detail mgpscd
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
-        WHERE mgpscd.used_course_minutes_ = 0 AND mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ = #{userId}
+        WHERE mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ = #{userId}
         GROUP BY mgpscd.course_type_
         GROUP BY mgpscd.course_type_
     </select>
     </select>
 </mapper>
 </mapper>

+ 6 - 6
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -814,24 +814,24 @@
     </select>
     </select>
 
 
     <select id="queryVipGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
     <select id="queryVipGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
-        SELECT su.id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
+        SELECT su.id_ user_id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
         vip_group vg
         vip_group vg
         LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
         LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         WHERE cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
         WHERE cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
-        AND vg.educational_teacher_id_ = #{userId}
+        AND vg.educational_teacher_id_ = #{teacherId}
         AND vg.group_status_ IN (0,1,2,5)
         AND vg.group_status_ IN (0,1,2,5)
         GROUP BY cgsm.user_id_
         GROUP BY cgsm.user_id_
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>
 
 
     <select id="queryPracticeGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
     <select id="queryPracticeGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
-        SELECT su.id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
+        SELECT su.id_ user_id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
         practice_group pg
         practice_group pg
         LEFT JOIN class_group_student_mapper cgsm ON pg.id_ = cgsm.music_group_id_
         LEFT JOIN class_group_student_mapper cgsm ON pg.id_ = cgsm.music_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.status_ != 'QUIT'
         WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.status_ != 'QUIT'
-        AND pg.educational_teacher_id_ = #{userId}
+        AND pg.educational_teacher_id_ = #{teacherId}
         AND pg.group_status_ NOT IN ('FINISH','CANCEL')
         AND pg.group_status_ NOT IN ('FINISH','CANCEL')
         GROUP BY cgsm.user_id_
         GROUP BY cgsm.user_id_
         <include refid="global.limit"/>
         <include refid="global.limit"/>
@@ -842,7 +842,7 @@
         vip_group vg
         vip_group vg
         LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
         LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
         WHERE cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
         WHERE cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
-        AND vg.educational_teacher_id_ = #{userId}
+        AND vg.educational_teacher_id_ = #{teacherId}
         AND vg.group_status_ IN (0,1,2,5)
         AND vg.group_status_ IN (0,1,2,5)
     </select>
     </select>
 
 
@@ -851,7 +851,7 @@
         practice_group pg
         practice_group pg
         LEFT JOIN class_group_student_mapper cgsm ON pg.id_ = cgsm.music_group_id_
         LEFT JOIN class_group_student_mapper cgsm ON pg.id_ = cgsm.music_group_id_
         WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.status_ != 'QUIT'
         WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.status_ != 'QUIT'
-        AND pg.educational_teacher_id_ = #{userId}
+        AND pg.educational_teacher_id_ = #{teacherId}
         AND pg.group_status_ NOT IN ('FINISH','CANCEL')
         AND pg.group_status_ NOT IN ('FINISH','CANCEL')
     </select>
     </select>
 </mapper>
 </mapper>

+ 0 - 13
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -35,19 +35,6 @@ public class RoomController{
 
 
     @RequestMapping(value = "/statusImMsg", method = RequestMethod.POST)
     @RequestMapping(value = "/statusImMsg", method = RequestMethod.POST)
     public Object statusImMsg(ImMsg imMsg){
     public Object statusImMsg(ImMsg imMsg){
-//        log.info("statusImMsg body{}:",body);
-        String str = "timestamp=1608175805527" +
-                "&signTimestamp=1608175805527" +
-                "&nonce=1816421725" +
-                "&signature=fa06f0d300687919c8af009d4ad5f1923d753648&appKey=c9kqb3rdc451j" +
-                "&channelType=PERSON&fromUserId=325&toUserId=2109272" +
-                "&msgTimestamp=1608175805490" +
-                "&objectName=RC%3ATxtMsg" +
-                "&content=%7B%22content%22%3A%22%E5%A5%BD%22%7D" +
-                "&sensitiveType=0" +
-                "&source=iOS" +
-                "&msgUID=BMDQ-VM8C-J785-8785:";
-
         return new BaseResponse<>();
         return new BaseResponse<>();
     }
     }
 
 

+ 6 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduStudentStudentController.java

@@ -47,4 +47,10 @@ public class EduStudentStudentController extends BaseController {
         return succeed(studentManageService.queryGroupStudents(queryInfo));
         return succeed(studentManageService.queryGroupStudents(queryInfo));
     }
     }
 
 
+    @ApiOperation(value = "获取当前教务老师关联的课程组上该学员的所有剩余课程")
+    @GetMapping("studentManage/queryStudentNoStartCourse")
+    public Object queryStudentNoStartCourse(StudentQueryInfo queryInfo){
+        return succeed(studentManageService.queryStudentNoStartCourse(queryInfo));
+    }
+
 }
 }