소스 검색

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 년 전
부모
커밋
9e517e0d3d

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

@@ -35,9 +35,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @date 2019/10/18
      */
     List<TeacherAttendanceDto> getTeacherCourseByDateSpeed(@Param("startTime") Date startTime,
-                                                     @Param("endTime") Date endTime,
-                                                     @Param("teacherId") Long teacherId,
-                                                     @Param("schoolId") Integer schoolId);
+                                                           @Param("endTime") Date endTime,
+                                                           @Param("teacherId") Long teacherId,
+                                                           @Param("schoolId") Integer schoolId);
 
     int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
 
@@ -62,11 +62,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     int batchDeleteCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**
+     * @param courseScheduleIds: 课程计划编号
+     * @return java.util.List<java.lang.Long>
      * @describe 过滤掉已结束的课程编号
      * @author Joburgess
      * @date 2019/12/24
-     * @param courseScheduleIds: 课程计划编号
-     * @return java.util.List<java.lang.Long>
      */
     List<Long> filterNotStartCourseIdsWithIds(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
@@ -84,30 +84,30 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     /**
+     * @param musicGroupId: 乐团编号
+     * @param status:       状态
+     * @param userId:       用户编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取乐团下学生指定状态的课程
      * @author Joburgess
      * @date 2019/11/26
-     * @param musicGroupId: 乐团编号
-     * @param status: 状态
-     * @param userId: 用户编号
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findMusicGroupCourseSchedulesWithStudent(@Param("musicGroupId") String musicGroupId,
-                                                       @Param("groupType") String groupType,
-                                                       @Param("status") String status,
-                                                       @Param("userId") Integer userId);
+                                                                  @Param("groupType") String groupType,
+                                                                  @Param("status") String status,
+                                                                  @Param("userId") Integer userId);
 
 
     /**
+     * @param courseScheduleIds: 课程编号列表
+     * @param userId:            用户编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 删除指定乐团下学生的课程
      * @author Joburgess
      * @date 2019/11/26
-     * @param courseScheduleIds: 课程编号列表
-     * @param userId: 用户编号
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     int deleteMusicGroupCourseSchedulesWithStudent(@Param("courseScheduleIds") List<Long> courseScheduleIds,
-                                                                  @Param("userId") Integer userId);
+                                                   @Param("userId") Integer userId);
 
     /**
      * @param teacherId: 教师编号
@@ -186,12 +186,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId, @Param("type") String type);
 
     /**
-     * @describe
-     * @author Joburgess
-     * @date 2019/12/26
      * @param classDate:
      * @param teacherId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
+     * @describe
+     * @author Joburgess
+     * @date 2019/12/26
      */
     List<CourseScheduleDto> getTeacherHistoryCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId);
 
@@ -213,28 +213,30 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @author Joburgess
      * @date 2019/10/18
      */
-    int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupId")String musicGroupId, @Param("groupType")GroupType groupType);
+    int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupId") String musicGroupId, @Param("groupType") GroupType groupType);
 
     /**
-     * @describe 根据团体删除班级
-     * @author Joburgess
-     * @date 2020/2/17
      * @param groupId:
      * @param groupType:
      * @return int
+     * @describe 根据团体删除班级
+     * @author Joburgess
+     * @date 2020/2/17
      */
     int deleteByGroup(@Param("groupId") String groupId,
-                      @Param("groupType")GroupType groupType);
+                      @Param("groupType") GroupType groupType);
 
     /**
      * 逻辑删除乐团课程
+     *
      * @param musicGroupID
      * @return
      */
     int logicDeleteCourseSchedulesByMusicGroupID(@Param("musicGroupID") String musicGroupID);
-    
+
     /**
      * 恢复乐团课程
+     *
      * @param musicGroupID
      * @return
      */
@@ -272,12 +274,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month, @Param("type") String type);
 
     /**
+     * @param teacherId: 教师编号
+     * @param month:     月份
+     * @return java.util.List<java.util.Date>
      * @describe 获取教师历史有课日期
      * @author Joburgess
      * @date 2019/12/26
-     * @param teacherId: 教师编号
-     * @param month: 月份
-     * @return java.util.List<java.util.Date>
      */
     List<Date> getTeacherHistoryCourseScheduleDate(@Param("teacherId") Integer teacherId, @Param("month") Date month);
 
@@ -398,18 +400,18 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @params [vipGroupId]
      * @describe 获取vip课排课计划
      */
-    List<CourseSchedule> findGroupCourseSchedules(@Param("groupId") Long groupId,@Param("groupType")String groupType);
+    List<CourseSchedule> findGroupCourseSchedules(@Param("groupId") Long groupId, @Param("groupType") String groupType);
 
     /**
+     * @param groupId:   乐团编号
+     * @param groupType: 乐团类型
+     * @return java.util.List<java.lang.Integer>
      * @describe 获取对应乐团下未开始的排课计划编号列表
      * @author Joburgess
      * @date 2019/12/5
-     * @param groupId: 乐团编号
-     * @param groupType: 乐团类型
-     * @return java.util.List<java.lang.Integer>
      */
     List<Long> findVipGroupNotStartCourseScheduleIds(@Param("groupId") String groupId,
-                                                        @Param("groupType") String groupType);
+                                                     @Param("groupType") String groupType);
 
     /**
      * @return java.lang.String
@@ -509,11 +511,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("schoolId") Integer schoolId);
 
     /**
+     * @param courseScheduleId:
+     * @return int
      * @describe 统计课程上的学生人数
      * @author Joburgess
      * @date 2019/11/21
-     * @param courseScheduleId:
-     * @return int
      */
     @Select("SELECT COUNT(*) FROM course_schedule_student_payment sa WHERE sa.course_schedule_id_ = #{courseScheduleID}")
     int countCourseStudentNum(@Param("courseScheduleID") Long courseScheduleId);
@@ -577,20 +579,20 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     Integer countMusicGroupIds(Map<String, Object> params);
 
     /**
-     * @describe 获取学员购买的所有乐团和vip编号分页列表,排除已结束的乐团
-     * @author Joburgess
-     * @date 2019/12/2
      * @param params: 参数
      * @return java.util.List<java.lang.String>
+     * @describe 获取学员购买的所有乐团和vip编号分页列表, 排除已结束的乐团
+     * @author Joburgess
+     * @date 2019/12/2
      */
     List<Group> queryMusicGroupIdsWithoutOverGroup(Map<String, Object> params);
 
     /**
-     * @describe count学员购买的所有乐团和vip编号分页列表,排除已结束的乐团
-     * @author Joburgess
-     * @date 2019/12/2
      * @param params: 参数
      * @return java.util.List<java.lang.String>
+     * @describe count学员购买的所有乐团和vip编号分页列表, 排除已结束的乐团
+     * @author Joburgess
+     * @date 2019/12/2
      */
     Integer countMusicGroupIdsWithoutOverGroup(Map<String, Object> params);
 
@@ -614,7 +616,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @date 2019/10/31
      */
     List<CourseSchedule> findAllCourseByDateZone(@Param("startTime") Date startTime,
-                                        @Param("endTime") Date endTime);
+                                                 @Param("endTime") Date endTime);
 
     List<CourseSchedule> findByClassDate(@Param("classDates") List<String> classDates);
 
@@ -627,7 +629,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @date 2019/10/31
      */
     List<CourseSchedule> findAllCourseByDateZone2(@Param("startTime") Date startTime,
-                                                 @Param("endTime") Date endTime);
+                                                  @Param("endTime") Date endTime);
 
     /**
      * 查询学生明天的课程数
@@ -745,11 +747,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Map<Integer, Integer>> countClassGroupCourseTimes(@Param("classGroupIds") List<Integer> classGroupIds);
 
     /**
+     * @param classGroupId:
+     * @return int
      * @describe 统计班级上的课程数量
      * @author Joburgess
      * @date 2020/2/13
-     * @param classGroupId:
-     * @return int
      */
     int countClassGroupCourses(@Param("classGroupId") Integer classGroupId);
 
@@ -781,41 +783,42 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 修改未上课程教学点
+     *
      * @param groupType
      * @param musicGroupId
      * @param schoolId
      */
-    void updateCourseScheduleSchool(@Param("groupType") String groupType,@Param("musicGroupId") String musicGroupId,@Param("schoolId") Integer schoolId);
+    void updateCourseScheduleSchool(@Param("groupType") String groupType, @Param("musicGroupId") String musicGroupId, @Param("schoolId") Integer schoolId);
 
     int countCourseScheduleByMusicGroupId(@Param("musicGroupId") String musicGroupId);
 
     /**
+     * @param classGroupId: 班级编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取班级上未删除的课程
      * @author Joburgess
      * @date 2019/12/11
-     * @param classGroupId: 班级编号
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findClassGroupCourseSchedules(@Param("classGroupId") Integer classGroupId);
 
     /**
+     * @param classGroupIds: 班级编号,多个逗号分隔
+     * @param fromDate:      开始时间
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取指定班级上指定日期之后的课程
      * @author Joburgess
      * @date 2020/1/2
-     * @param classGroupIds: 班级编号,多个逗号分隔
-     * @param fromDate: 开始时间
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findClassGroupCourseSchedulesWithDate(@Param("classGroupIds") String classGroupIds,
                                                                @Param("fromDate") Date fromDate);
 
     /**
+     * @param groupId:   乐团编号
+     * @param groupType: 乐团类型
+     * @return int
      * @describe 批量修改乐团下所有课程上的教学点
      * @author Joburgess
      * @date 2019/12/11
-     * @param groupId: 乐团编号
-     * @param groupType: 乐团类型
-     * @return int
      */
     int updateCourseSchoolByGroup(@Param("groupId") String groupId,
                                   @Param("groupType") String groupType,
@@ -825,27 +828,27 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     int countVipGroupCourses(@Param("vipGroupId") Integer vipGroupId);
 
     /**
-     * @describe 获取学生剩余课程信息
-     * @author Joburgess
-     * @date 2019/12/19
      * @param groupType:
      * @param groupId:
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.StudentCourseInfoDto>
+     * @describe 获取学生剩余课程信息
+     * @author Joburgess
+     * @date 2019/12/19
      */
     List<StudentCourseInfoDto> findUserSurplusCourseInfoByGroup(@Param("groupType") GroupType groupType,
-                                                         @Param("groupId") String groupId,
-                                                         @Param("userId") Integer userId);
+                                                                @Param("groupId") String groupId,
+                                                                @Param("userId") Integer userId);
 
     /**
+     * @param groupType: 团体类型
+     * @param groupId:   团体编号
+     * @param userId:    用户编号
+     * @param type:      查询类型:不传查全部,'history'已消耗的,'surplus'剩余的
+     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentCourseInfoDto>
      * @describe 获取学生的课程信息
      * @author Joburgess
      * @date 2020/1/15
-     * @param groupType: 团体类型
-     * @param groupId: 团体编号
-     * @param userId: 用户编号
-     * @param type: 查询类型:不传查全部,'history'已消耗的,'surplus'剩余的
-     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentCourseInfoDto>
      */
     List<StudentCourseInfoDto> findUserCourseInfos(@Param("groupType") GroupType groupType,
                                                    @Param("groupId") String groupId,
@@ -853,29 +856,30 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                    @Param("type") String type);
 
     /**
-     * @describe 获取指定乐团下课程开始时间
-     * @author Joburgess
-     * @date 2019/12/19
      * @param groupType:
      * @param groupId:
      * @return java.util.Date
+     * @describe 获取指定乐团下课程开始时间
+     * @author Joburgess
+     * @date 2019/12/19
      */
     Date getMinCourseTime(@Param("groupType") GroupType groupType,
                           @Param("groupId") String groupId);
 
     /**
-     * @describe 获取指定乐团下课程结束时间
-     * @author Joburgess
-     * @date 2019/12/19
      * @param groupType:
      * @param groupId:
      * @return java.util.Date
+     * @describe 获取指定乐团下课程结束时间
+     * @author Joburgess
+     * @date 2019/12/19
      */
     Date getMaxCourseTime(@Param("groupType") GroupType groupType,
                           @Param("groupId") String groupId);
 
     /**
      * 获取vip未上课时数
+     *
      * @param vipGroupId
      * @return
      */
@@ -883,6 +887,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 已上课时数
+     *
      * @param vipGroupId
      * @return
      */
@@ -890,39 +895,43 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 统计vip课时数
+     *
      * @param vipGroupId
      * @param teachMode
      * @return
      */
-    Integer countCourseNum(@Param("vipGroupId") Long vipGroupId,@Param("teachMode") String teachMode);
+    Integer countCourseNum(@Param("vipGroupId") Long vipGroupId, @Param("teachMode") String teachMode);
 
     /**
+     * @param courseIds: 课程编号列表
+     * @return java.lang.String
      * @describe 根据课程编号获取课程类型
      * @author Joburgess
      * @date 2019/12/15
-     * @param courseIds: 课程编号列表
-     * @return java.lang.String
      */
     List<Map<Integer, String>> getTeachModeById(@Param("courseIds") List<Long> courseIds);
 
     /**
-     *  获取总课时
+     * 获取总课时
+     *
      * @param vipGroupIds
      * @param groupType
      * @return
      */
-    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);
 
     /**
      * 获取当前课时(已上)
+     *
      * @param vipGroupIds vip编号
      * @param groupType
      * @return
      */
-    List<Map<String, Long>> countCourseScheduleNum(@Param("vipGroupIds")List<String> vipGroupIds,@Param("groupType") String groupType);
+    List<Map<String, Long>> countCourseScheduleNum(@Param("vipGroupIds") List<String> vipGroupIds, @Param("groupType") String groupType);
 
     /**
      * 根据班级编号count总课时
+     *
      * @param classGroupIds
      * @return
      */
@@ -930,6 +939,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 根据班级编号count当前课时(已上总数)
+     *
      * @param classGroupIds
      * @return
      */
@@ -937,6 +947,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 根据班级编号count剩余课时(未上)
+     *
      * @param classGroupIds
      * @param teacherId
      * @return
@@ -944,95 +955,96 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Map<Integer, Long>> countCurrentNumByClassGroupId(@Param("classGroupIds") List<Integer> classGroupIds, @Param("teacherId") Integer teacherId);
 
     /**
-     * @describe 获取乐团下剩余课程计划
-     * @author Joburgess
-     * @date 2019/12/22
      * @param groupType:
      * @param groupId:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     * @describe 获取乐团下剩余课程计划
+     * @author Joburgess
+     * @date 2019/12/22
      */
     List<CourseSchedule> findSurplusCourseWithGroup(@Param("groupType") GroupType groupType,
                                                     @Param("groupId") String groupId);
 
     /**
-     * @describe 获取未开始的课程
      * @param courseScheduleId
+     * @describe 获取未开始的课程
      */
     CourseSchedule getSurplusCourseWithGroup(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
+     * @param classGroupId: 班级编号
+     * @return int
      * @describe 统计班级上已结束课时数
      * @author Joburgess
      * @date 2019/12/25
-     * @param classGroupId: 班级编号
-     * @return int
      */
     int countClassGroupOverCourseNum(@Param("classGroupId") Integer classGroupId);
 
     /**
+     * @param params:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>
      * @describe 终极课表获取
      * @author Joburgess
      * @date 2019/12/27
-     * @param params:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>
      */
     List<CourseScheduleEndDto> endFindCourseSchedules(Map<String, Object> params);
 
     int endCountCourseSchedules(Map<String, Object> params);
 
     /**
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
      * @describe 根据关键字查询学生相关的课程编号
      * @author Joburgess
      * @date 2019/12/31
-     * @param search: 搜索关键字
-     * @return java.util.List<java.lang.Integer>
      */
     Set<Integer> findCourseIdsByStudent(String search);
 
     /**
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
      * @describe 根据关键字查询教师相关的课程编号
      * @author Joburgess
      * @date 2019/12/31
-     * @param search: 搜索关键字
-     * @return java.util.List<java.lang.Integer>
      */
     Set<Integer> findCourseIdsByTeacher(String search);
 
     /**
-     * @describe 统计团体下的总课次
-     * @author Joburgess
-     * @date 2020/1/16
      * @param groupType:
      * @param groupId:
      * @return int
+     * @describe 统计团体下的总课次
+     * @author Joburgess
+     * @date 2020/1/16
      */
     int countGroupAllCourses(@Param("groupType") GroupType groupType,
                              @Param("groupId") String groupId);
 
     /**
-     * @describe 获取乐团开课时间
-     * @author Joburgess
-     * @date 2020/1/16
      * @param groupType:
      * @param groupId:
      * @return java.util.Date
+     * @describe 获取乐团开课时间
+     * @author Joburgess
+     * @date 2020/1/16
      */
     Date findGroupCourseStartTime(@Param("groupType") GroupType groupType,
                                   @Param("groupId") String groupId);
 
     /**
-     * @describe 获取乐团课程结束时间
-     * @author Joburgess
-     * @date 2020/1/16
      * @param groupType:
      * @param groupId:
      * @return java.util.Date
+     * @describe 获取乐团课程结束时间
+     * @author Joburgess
+     * @date 2020/1/16
      */
     Date findGroupCourseEndTime(@Param("groupType") GroupType groupType,
-                                  @Param("groupId") String groupId);
+                                @Param("groupId") String groupId);
 
     /**
      * 获取课程编号列表
+     *
      * @param params
      * @return
      */
@@ -1040,6 +1052,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取课程编号列表
+     *
      * @param params
      * @return
      */
@@ -1047,19 +1060,20 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取陪练课课程编号列表
+     *
      * @param params
      * @return
      */
     Set<Integer> queryPracticeCourseScheduleIds(Map<String, Object> params);
 
     /**
+     * @param userIds:   教师编号列表
+     * @param startTime: 开始时间
+     * @param endTime:   结束时间
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取教师在指定时间段内的课程
      * @author Joburgess
      * @date 2020/2/2
-     * @param userIds: 教师编号列表
-     * @param startTime: 开始时间
-     * @param endTime: 结束时间
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findTeachersCoursesWithDateRange(@Param("userIds") List<Integer> userIds,
                                                           @Param("startTime") Date startTime,
@@ -1067,52 +1081,52 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
     int countTeacherPracticeCourse(@Param("userId") Integer userId,
-                                                          @Param("startTime") Date startTime,
-                                                          @Param("endTime") Date endTime);
+                                   @Param("startTime") Date startTime,
+                                   @Param("endTime") Date endTime);
 
     /**
+     * @param userId:    教师编号列表
+     * @param startTime: 开始时间
+     * @param endTime:   结束时间
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取教师在指定时间段内的课程
      * @author Joburgess
      * @date 2020/2/2
-     * @param userId: 教师编号列表
-     * @param startTime: 开始时间
-     * @param endTime: 结束时间
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findTeacherCoursesWithDateRange(@Param("userId") Integer userId,
-                                                          @Param("startTime") Date startTime,
-                                                          @Param("endTime") Date endTime);
+                                                         @Param("startTime") Date startTime,
+                                                         @Param("endTime") Date endTime);
 
     /**
+     * @param userId: 用户编号
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @describe 获取指定学员的陪练课
      * @author Joburgess
      * @date 2020/2/3
-     * @param userId: 用户编号
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      */
     List<CourseScheduleDto> findStudentPracticeCourses(@Param("userId") Integer userId);
 
     /**
-     * @describe 获取教师课程中包含指定时间区间的课程
-     * @author Joburgess
-     * @date 2020/2/4
      * @param userId:
      * @param startTime:
      * @param endTime:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     * @describe 获取教师课程中包含指定时间区间的课程
+     * @author Joburgess
+     * @date 2020/2/4
      */
     List<CourseSchedule> findTeacherCoursesWithIncludeDateRange(@Param("userId") Integer userId,
                                                                 @Param("startTime") Date startTime,
                                                                 @Param("endTime") Date endTime);
 
     /**
-     * @describe 获取学生课程中包含指定时间区间的课程
-     * @author Joburgess
-     * @date 2020/2/4
      * @param userId:
      * @param startTime:
      * @param endTime:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     * @describe 获取学生课程中包含指定时间区间的课程
+     * @author Joburgess
+     * @date 2020/2/4
      */
     List<CourseSchedule> findStudentCoursesWithIncludeDateRange(@Param("userId") Integer userId,
                                                                 @Param("startTime") Date startTime,
@@ -1120,15 +1134,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取当前课程,下一次连堂课
+     *
      * @param continueCourseTime
      * @param courseSchedule
      * @return
      */
-    CourseSchedule queryContinueCourse(@Param("courseSchedule")CourseSchedule courseSchedule,
-                                @Param("continueCourseTime")String continueCourseTime,@Param("endDateTime")String endDateTime);
+    CourseSchedule queryContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
+                                       @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
 
     /**
      * 获取单节课时长
+     *
      * @param courseScheduleId
      * @return
      */
@@ -1141,53 +1157,54 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @author Joburgess
      * @date 2019/10/21
      */
-    List<Map<Long, Integer>> countGroupOverCourse(@Param("groupIds") List<String> groupIds,@Param("groupType")String groupType);
+    List<Map<Long, Integer>> countGroupOverCourse(@Param("groupIds") List<String> groupIds, @Param("groupType") String groupType);
 
     /**
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取学生相关的课程
      * @author Joburgess
      * @date 2020/2/10
-     * @param userId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findUserCourses(@Param("userId") Integer userId,
                                          @Param("teacherIds") List<Integer> teacherIds);
 
     /**
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取学生相关的课程
      * @author Joburgess
      * @date 2020/2/10
-     * @param userId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findUserCourses2(@Param("userId") Integer userId,
-                                         @Param("teacherIds") List<Integer> teacherIds);
+                                          @Param("teacherIds") List<Integer> teacherIds);
 
     /**
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取学生相关的课程
      * @author Joburgess
      * @date 2020/2/10
-     * @param userId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findUserCoursesWithPay(@Param("userId") Integer userId,
-                                         @Param("teacherIds") List<Integer> teacherIds);
+                                                @Param("teacherIds") List<Integer> teacherIds);
 
     /**
      * 获取课程实际上课老师
+     *
      * @param courseScheduleIds
      * @return
      */
     List<Map<Long, String>> queryTeacherName(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**
-     * @describe 更改团体下课程的冻结状态
-     * @author Joburgess
-     * @date 2020/2/17
      * @param groupId:
      * @param groupType:
-     * @param isLock: 冻结状态:1、冻结,0、正常
+     * @param isLock:    冻结状态:1、冻结,0、正常
      * @return int
+     * @describe 更改团体下课程的冻结状态
+     * @author Joburgess
+     * @date 2020/2/17
      */
     int updateGroupCourseLock(@Param("groupId") String groupId,
                               @Param("groupType") GroupType groupType,
@@ -1195,28 +1212,31 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取当前课程是第几课时
+     *
      * @param courseScheduleId
      * @return
      */
     int countCurrentCourseTime(Long courseScheduleId);
 
     /**
+     * @param classGroupIds: 班级编号列表
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取班级课程列表
      * @author Joburgess
      * @date 2020/2/20
-     * @param classGroupIds: 班级编号列表
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      */
     List<CourseSchedule> findCourseSchedulesByClassGroups(@Param("classGroupIds") List<Integer> classGroupIds);
 
     /**
-     * @describe 获取指定团体的第一节课程
-     * @author Joburgess
-     * @date 2020/2/23
      * @param groupId:
      * @param groupType:
      * @return com.ym.mec.biz.dal.entity.CourseSchedule
+     * @describe 获取指定团体的第一节课程
+     * @author Joburgess
+     * @date 2020/2/23
      */
     CourseSchedule findFirstCourseWithGroup(@Param("groupId") String groupId,
                                             @Param("groupType") GroupType groupType);
+
+    List<CourseSchedule> findClassGroupLastTeacher(@Param("classGroupIds") List<Integer> classGroupIds);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -358,7 +358,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      */
     void addVipGroupStudents(Long vipGroupId,List<Integer> studentIds);
-    
+
 	/**
 	 * 更新vipgroup至完成状态
 	 */

+ 19 - 22
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -13,7 +13,9 @@ import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.http.HttpUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,9 +38,7 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
     @Autowired
     private PracticeGroupDao practiceGroupDao;
     @Autowired
-    private SysConfigDao sysConfigDao;
-    @Autowired
-    private SysMessageService sysMessageService;
+    private RedisCache<String, Object> redisCache;
 
     @Override
     public BaseDAO<Long, CourseScheduleEvaluate> getDAO() {
@@ -52,27 +52,24 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
         if (classGroup == null) {
             throw new BizException("课程不存在!");
         }
-        CourseScheduleEvaluate hasOne = courseScheduleEvaluateDao.findByClassGroupId(courseScheduleEvaluate.getClassGroupId());
-        if (hasOne != null) {
-            throw new BizException("报告已添加,请勿重复提交");
+        String lockKey = "study_report_" + classGroup.getId();
+        if (!redisCache.getLocked(lockKey, 1, 10)) {
+            throw new BizException("报告提交中,请稍等");
         }
-        courseScheduleEvaluate.setMusicGroupId(classGroup.getMusicGroupId());
-        courseScheduleEvaluate.setCreateTime(new Date());
-        long num = courseScheduleEvaluateDao.insert(courseScheduleEvaluate);
-        if (num <= 0) {
-            throw new BizException("报告添加失败,请重试");
+        try {
+            CourseScheduleEvaluate hasOne = courseScheduleEvaluateDao.findByClassGroupId(courseScheduleEvaluate.getClassGroupId());
+            if (hasOne != null) {
+                throw new BizException("报告已添加,请勿重复提交");
+            }
+            courseScheduleEvaluate.setMusicGroupId(classGroup.getMusicGroupId());
+            courseScheduleEvaluate.setCreateTime(new Date());
+            long num = courseScheduleEvaluateDao.insert(courseScheduleEvaluate);
+            if (num <= 0) {
+                throw new BizException("报告添加失败,请重试");
+            }
+        } finally {
+            redisCache.releaseLocked(lockKey, 1);
         }
-        long practiceGroupId = Long.parseLong(classGroup.getMusicGroupId());
-        PracticeGroup practiceGroup = practiceGroupDao.get(practiceGroupId);
-
-        Map<Integer, String> push = new HashMap<>(1);
-        push.put(practiceGroup.getStudentId(), practiceGroup.getStudentId().toString());
-        String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
-        String memo = baseUrl + "/#/reportDetail?classGroupId=" + classGroup.getId();
-        BasicUserDto teacherInfo = teacherDao.findTeacherInfo(courseScheduleEvaluate.getTeacherId());
-
-        sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.PUSH_STUDY_REPORT, push, null, 0, memo, "STUDENT",
-                teacherInfo.getName(),HttpUtil.getSortUrl(memo));
         return true;
     }
 

+ 80 - 70
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -754,86 +754,96 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<Integer, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
-        //将课程计划按照开课时间排序
-        allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+        Map<Date, List<CourseSchedule>> existClassDateCoursesMap = allCourseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDate));
+        Map<Date, List<CourseSchedule>> newClassDateCoursesMap = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDate));
         if (allCourseSchedules.size() > 1) {
-            for (CourseSchedule preCourseSchedule : courseSchedules) {
-                for (CourseSchedule backCourseSchedule : allCourseSchedules) {
-                    //判断前后两节课是否存在冲突
-                    if (!preCourseSchedule.getStartClassTime().before(backCourseSchedule.getEndClassTime())
-                        ||!preCourseSchedule.getEndClassTime().after(backCourseSchedule.getStartClassTime())) {
-                        continue;
-                    }
-                    if (!checkExistCourseSchedule
-                            && !courseScheduleIdsSet.contains(backCourseSchedule.getId())) {
-                        continue;
-                    }
+            for (Map.Entry<Date, List<CourseSchedule>> classDateCourseEntry : newClassDateCoursesMap.entrySet()) {
+                List<CourseSchedule> existClassDateCourses = existClassDateCoursesMap.get(classDateCourseEntry.getKey());
+                if(CollectionUtils.isEmpty(existClassDateCourses)){
+                    continue;
+                }
+                List<CourseSchedule> newClassDateCourses=classDateCourseEntry.getValue();
+                existClassDateCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+                newClassDateCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+                for (CourseSchedule preCourseSchedule : newClassDateCourses) {
+                    for (CourseSchedule backCourseSchedule : existClassDateCourses) {
+
+                        //判断前后两节课是否存在冲突
+                        if (!preCourseSchedule.getStartClassTime().before(backCourseSchedule.getEndClassTime())
+                                ||!preCourseSchedule.getEndClassTime().after(backCourseSchedule.getStartClassTime())) {
+                            continue;
+                        }
+                        if (!checkExistCourseSchedule
+                                && !courseScheduleIdsSet.contains(backCourseSchedule.getId())) {
+                            continue;
+                        }
 
-                    //如果存在时间重叠,则需要判断前后两节课的教师和学生是否存在冲突
-                    //主教冲突检测
-                    if (Objects.nonNull(preCourseSchedule.getActualTeacherId())
-                            && preCourseSchedule.getActualTeacherId().equals(backCourseSchedule.getActualTeacherId())) {
+                        //如果存在时间重叠,则需要判断前后两节课的教师和学生是否存在冲突
+                        //主教冲突检测
+                        if (Objects.nonNull(preCourseSchedule.getActualTeacherId())
+                                && preCourseSchedule.getActualTeacherId().equals(backCourseSchedule.getActualTeacherId())) {
 
-                        throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 1));
-                    }
-                    //助教冲突检测
-                    if (Objects.isNull(preCourseSchedule.getId())) {
-                        IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(preCourseSchedule.getClassGroupId());
-                        if (Objects.nonNull(integerAndIntegerListDto)) {
-                            preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                            throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 1));
                         }
-                    } else if (existCourseScheduleIds.contains(preCourseSchedule.getId())) {
-                        IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
-                        if (Objects.nonNull(integerAndIntegerListDto)) {
-                            preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                        //助教冲突检测
+                        if (Objects.isNull(preCourseSchedule.getId())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(preCourseSchedule.getClassGroupId());
+                            if (Objects.nonNull(integerAndIntegerListDto)) {
+                                preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                            }
+                        } else if (existCourseScheduleIds.contains(preCourseSchedule.getId())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
+                            if (Objects.nonNull(integerAndIntegerListDto)) {
+                                preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                            }
                         }
-                    }
-                    if (Objects.isNull(backCourseSchedule.getId())) {
-                        IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(backCourseSchedule.getClassGroupId());
-                        if (Objects.nonNull(integerAndIntegerListDto)) {
-                            backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                        if (Objects.isNull(backCourseSchedule.getId())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(backCourseSchedule.getClassGroupId());
+                            if (Objects.nonNull(integerAndIntegerListDto)) {
+                                backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                            }
+                        } else if (existCourseScheduleIds.contains(backCourseSchedule.getId())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
+                            if (Objects.nonNull(integerAndIntegerListDto)) {
+                                backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                            }
+                        }
+                        if (!CollectionUtils.isEmpty(preCourseSchedule.getTeachingTeacherIdList())
+                                && !CollectionUtils.isEmpty(backCourseSchedule.getTeachingTeacherIdList())) {
+                            List<Integer> repeatIds = preCourseSchedule.getTeachingTeacherIdList()
+                                    .stream().filter(backCourseSchedule.getTeachingTeacherIdList()::contains)
+                                    .collect(Collectors.toList());
+                            if (!CollectionUtils.isEmpty(repeatIds)) {
+                                throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 2));
+                            }
                         }
-                    } else if (existCourseScheduleIds.contains(backCourseSchedule.getId())) {
-                        IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
-                        if (Objects.nonNull(integerAndIntegerListDto)) {
-                            backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+                        //学生冲突检测
+                        if (preCourseSchedule.getClassGroupId().equals(backCourseSchedule.getClassGroupId())) {
+                            //如果班级相同,则学生肯定存在冲突
+                            throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 3));
                         }
-                    }
-                    if (!CollectionUtils.isEmpty(preCourseSchedule.getTeachingTeacherIdList())
-                            && !CollectionUtils.isEmpty(backCourseSchedule.getTeachingTeacherIdList())) {
-                        List<Integer> repeatIds = preCourseSchedule.getTeachingTeacherIdList()
-                                .stream().filter(backCourseSchedule.getTeachingTeacherIdList()::contains)
+                        //如果班级不同,则需要检测两个班级是否存在重复的学生
+                        List<ClassGroupStudentMapper> preClassGroupStudents = classGroupStudentsMap.get(preCourseSchedule.getClassGroupId());
+                        List<ClassGroupStudentMapper> backClassGroupStudents = classGroupStudentsMap.get(backCourseSchedule.getClassGroupId());
+                        //如果有一个存在没有学生的班级则不存在冲突
+                        if (CollectionUtils.isEmpty(preClassGroupStudents) || CollectionUtils.isEmpty(backClassGroupStudents)) {
+                            continue;
+                        }
+                        //当前课程所在班级的学生编号列表
+                        List<Integer> preClassGroupStudentIds = preClassGroupStudents.stream()
+                                .map(ClassGroupStudentMapper::getUserId)
+                                .collect(Collectors.toList());
+                        //后面一节课程所在班级的学生编号列表
+                        List<Integer> backClassGroupStudentIds = backClassGroupStudents.stream()
+                                .map(ClassGroupStudentMapper::getUserId)
                                 .collect(Collectors.toList());
-                        if (!CollectionUtils.isEmpty(repeatIds)) {
-                            throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 2));
+                        List<Integer> repeatStudentIds = preClassGroupStudentIds.stream()
+                                .filter(backClassGroupStudentIds::contains)
+                                .collect(Collectors.toList());
+                        if (!CollectionUtils.isEmpty(repeatStudentIds)) {
+                            throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 3));
                         }
                     }
-                    //学生冲突检测
-                    if (preCourseSchedule.getClassGroupId().equals(backCourseSchedule.getClassGroupId())) {
-                        //如果班级相同,则学生肯定存在冲突
-                        throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 3));
-                    }
-                    //如果班级不同,则需要检测两个班级是否存在重复的学生
-                    List<ClassGroupStudentMapper> preClassGroupStudents = classGroupStudentsMap.get(preCourseSchedule.getClassGroupId());
-                    List<ClassGroupStudentMapper> backClassGroupStudents = classGroupStudentsMap.get(backCourseSchedule.getClassGroupId());
-                    //如果有一个存在没有学生的班级则不存在冲突
-                    if (CollectionUtils.isEmpty(preClassGroupStudents) || CollectionUtils.isEmpty(backClassGroupStudents)) {
-                        continue;
-                    }
-                    //当前课程所在班级的学生编号列表
-                    List<Integer> preClassGroupStudentIds = preClassGroupStudents.stream()
-                            .map(ClassGroupStudentMapper::getUserId)
-                            .collect(Collectors.toList());
-                    //后面一节课程所在班级的学生编号列表
-                    List<Integer> backClassGroupStudentIds = backClassGroupStudents.stream()
-                            .map(ClassGroupStudentMapper::getUserId)
-                            .collect(Collectors.toList());
-                    List<Integer> repeatStudentIds = preClassGroupStudentIds.stream()
-                            .filter(backClassGroupStudentIds::contains)
-                            .collect(Collectors.toList());
-                    if (!CollectionUtils.isEmpty(repeatStudentIds)) {
-                        throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 3));
-                    }
                 }
             }
         }

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

@@ -3383,7 +3383,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Override
     public void pushStudyReport(Date expiredDate, String pushType) {
         if(Objects.isNull(expiredDate)){
-            throw new BizException("请指定推送报告的截至日期");
+            expiredDate=new Date();
         }
 
         if(StringUtils.isBlank(pushType)){

+ 66 - 65
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -876,39 +876,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum);
 		BigDecimal teacherOnlineSalary=null,teacherOfflineSalary=null;
 
-		//教师课酬线上单课酬计算
-		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
-            if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
-                    &&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){
-                teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
-                results.put("onlineTeacherSalary",teacherOnlineSalary);
-            }
-            if(Objects.isNull(teacherOnlineSalary)){
-                switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
-                    case TEACHER_DEFAULT:
-                        if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){
-                            teacherOnlineSalary=new BigDecimal(0);
-                        }else{
-                            teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
-                        }
-//                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
-                        results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
-                        break;
-                    case RATIO_DISCOUNT:
-                        results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
-                        break;
-                    case FIXED_SALARY:
-                        results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
-                        break;
-                    default:
-                        throw new BizException("未指定课酬结算标准!");
-                }
-
-            }
-		}else{
-			results.put("onlineTeacherSalary", new BigDecimal(0));
-		}
-
 		//教师线下单课酬计算
 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOfflineSalarySettlement())){
             if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
@@ -945,41 +912,75 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("此活动未设置活动类型");
         }
 
-		if(computeTotalPrice){
-			//课程购买费用计算
-			BigDecimal totalPrice;
-			switch (vipGroupActivity.getType()){
-				case BASE_ACTIVITY:
-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-					break;
-				case DISCOUNT:
-					BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-					totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
-					break;
-				case GIVE_CLASS:
-					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){
-
-					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
-						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
-							offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
-						}
-						offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
-					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
-						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
-							onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
-						}
-						onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
-					}else{
-						throw new BizException("请指定赠送课程类型!");
+		//课程购买费用计算
+		BigDecimal totalPrice;
+		switch (vipGroupActivity.getType()){
+			case BASE_ACTIVITY:
+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+				break;
+			case DISCOUNT:
+				BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+				totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
+				break;
+			case GIVE_CLASS:
+				if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){
+
+				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
+					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
+						offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
+					}
+					offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
+				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
+					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
+						onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
 					}
-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-					break;
-				default:
-					throw new BizException("活动类型错误!");
+					onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
+				}else{
+					throw new BizException("请指定赠送课程类型!");
+				}
+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+				break;
+			default:
+				throw new BizException("活动类型错误!");
+		}
+		results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING));
+
+		//教师课酬线上单课酬计算
+		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
+			if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
+					&&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){
+				teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
+				results.put("onlineTeacherSalary",teacherOnlineSalary);
 			}
-			results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING));
+			if(Objects.isNull(teacherOnlineSalary)){
+				switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
+					case TEACHER_DEFAULT:
+						if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){
+							teacherOnlineSalary=new BigDecimal(0);
+						}else{
+							teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
+						}
+						results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
+						break;
+					case RATIO_DISCOUNT:
+						BigDecimal tos=results.get("totalPrice").divide(onlineClassNum.add(offlineClassNum), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN)
+								.multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue());
+//						results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
+						results.put("onlineTeacherSalary", tos);
+						break;
+					case FIXED_SALARY:
+						results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
+						break;
+					default:
+						throw new BizException("未指定课酬结算标准!");
+				}
+
+			}
+		}else{
+			results.put("onlineTeacherSalary", new BigDecimal(0));
 		}
+
         return results;
     }
 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 414 - 406
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml


+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -75,4 +75,8 @@ public interface TaskRemoteService {
 	//更新历史陪练课至已结束
 	@GetMapping("task/updateHistoryPracticeGroupStatus")
 	public void updateHistoryPracticeGroupStatus();
+
+	//练习报告定时推送
+	@GetMapping("task/pushStudyReport")
+	void pushStudyReport();
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -95,4 +95,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void updateHistoryPracticeGroupStatus() {
 		logger.info("历史网管课状态更新失败");
 	}
+
+	@Override
+	public void pushStudyReport() {
+		logger.info("练习报告推送失败");
+	}
 }

+ 21 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/StudyReportTask.java

@@ -0,0 +1,21 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/2/29
+ */
+public class StudyReportTask extends BaseTask {
+
+    @Autowired
+    private TaskRemoteService taskRemoteService;
+
+    @Override
+    public void execute() throws TaskException {
+        taskRemoteService.pushStudyReport();
+    }
+}

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

@@ -144,4 +144,10 @@ public class TaskController extends BaseController {
 		practiceGroupService.updateHistoryPracticeGroupStatus();
 	}
 
+	//练习报告定时推送
+	@GetMapping("/pushStudyReport")
+	public void pushStudyReport(){
+		practiceGroupService.pushStudyReport(null, "ALL");
+	}
+
 }

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.