Browse Source

1、冲突检测

Joburgess 5 năm trước cách đây
mục cha
commit
8f1522a01b

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -180,6 +180,17 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     Integer countClassGroupStudentNum(@Param("classGroupId") Integer classGroupId);
 
     /**
+     * @describe 统计vip课或乐团下的学生人数
+     * @author Joburgess
+     * @date 2019/12/14
+     * @param groupId:
+     * @param groupType:
+     * @return java.lang.Integer
+     */
+    Integer countGroupStudentNum(@Param("groupId") String groupId,
+                                 @Param("groupType") String groupType);
+
+    /**
      * @param classGroupId: 班级编号
      * @param userIds:      学生编号
      * @return java.lang.Integer

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

@@ -796,4 +796,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     Integer countCourseNum(@Param("vipGroupId") Long vipGroupId,@Param("teachMode") String teachMode);
+
+    /**
+     * @describe 根据课程编号获取课程类型
+     * @author Joburgess
+     * @date 2019/12/15
+     * @param courseIds: 课程编号列表
+     * @return java.lang.String
+     */
+    List<Map<Integer, String>> getTeachModeById(@Param("courseIds") List<Long> courseIds);
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -95,6 +95,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 									   @Param("userIds") List<Integer> userIds);
 
 	/**
+	 * @param courseScheduleTeacherSalaries:
+	 * @return int
+	 * @describe 批量更新教师预计薪水
+	 * @author Joburgess
+	 * @date 2019/10/23
+	 */
+	int batchUpdateTeacherExpectSalarys(@Param("courseScheduleTeacherSalaries") List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries);
+
+	/**
 	 * @describe 根据课程编号与老师编号删除对应教师课酬记录
 	 * @author Joburgess
 	 * @date 2019/12/2
@@ -223,4 +232,24 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	int deleteByMusicGroupId(@Param("musicGroupId")String musicGroupId, @Param("groupType")GroupType groupType);
 
+	/**
+	 * @describe 获取乐团获取小课的课酬记录
+	 * @author Joburgess
+	 * @date 2019/12/14
+	 * @param groupId:
+	 * @param groupType:
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
+	 */
+	List<CourseScheduleTeacherSalary> findByGroup(@Param("groupId")String groupId, @Param("groupType")String groupType);
+
+	/**
+	 * @describe 获取乐团获取小课的课酬记录
+	 * @author Joburgess
+	 * @date 2019/12/14
+	 * @param groupId:
+	 * @param groupType:
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
+	 */
+	List<CourseScheduleTeacherSalary> findByGroupWithNotStart(@Param("groupId")String groupId, @Param("groupType")String groupType);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleTeacherSalaryService.java

@@ -60,4 +60,14 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @return
      */
     PageInfo<TeacherSalaryDto> querySalaries(CourseScheduleTeacherSalaryQueryInfo queryInfo);
+
+    /**
+     * @describe 更新vip课剩余课时的课酬
+     * @author Joburgess
+     * @date 2019/12/14
+     * @param vipGroupId: vip课程编号
+     * @param studentChangeNum: 学员变化数量,增加为正,减少为负
+     * @return void
+     */
+    void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer studentChangeNum);
 }

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

@@ -447,7 +447,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		//将课程计划按照开课时间排序
 		allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
-        System.out.println(DateUtil.dateToString(new Date(), "HH:mm:ss"));
 		if(allCourseSchedules.size()>1){
 		    //记录连续冲突的次数
 		    int repeatTimes=1;

+ 60 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -55,6 +55,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     private ClassGroupDao classGroupDao;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+    @Autowired
+    private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
+    @Autowired
+    private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
+    @Autowired
+    private VipGroupCategoryDao vipGroupCategoryDao;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(CourseScheduleTeacherSalaryServiceImpl.class);
@@ -554,4 +562,56 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer studentChangeNum) {
+        VipGroup vipGroup = vipGroupService.get(vipGroupId.longValue());
+        Integer studentNum = classGroupStudentMapperDao.countGroupStudentNum(vipGroupId.toString(), GroupType.VIP.getCode());
+        Integer oldStudentNum = studentNum-studentChangeNum;
+        if(oldStudentNum<0){
+            oldStudentNum=0;
+        }
+        ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId, vipGroup.getUserId());
+        BigDecimal onlineTeacherSalary,
+                offlineTeacherSalary;
+        if(oldStudentNum==0){
+            TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(),
+                    vipGroup.getVipGroupCategoryId());
+            VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+            onlineTeacherSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
+            offlineTeacherSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
+            oldStudentNum = vipGroupCategory.getStudentNum();
+        }else{
+            onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
+            offlineTeacherSalary=classGroupTeacherSalary.getSalary();
+        }
+        BigDecimal studentNumDecimal = new BigDecimal(studentNum);
+        BigDecimal oldStudentNumDecimal = new BigDecimal(oldStudentNum);
+
+        onlineTeacherSalary = onlineTeacherSalary
+                .divide(oldStudentNumDecimal, CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN)
+                .multiply(studentNumDecimal).setScale(0,BigDecimal.ROUND_HALF_UP);
+        offlineTeacherSalary = offlineTeacherSalary
+                .divide(oldStudentNumDecimal,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN)
+                .multiply(studentNumDecimal).setScale(0,BigDecimal.ROUND_HALF_UP);
+
+        classGroupTeacherSalary.setOnlineClassesSalary(onlineTeacherSalary);
+        classGroupTeacherSalary.setSalary(offlineTeacherSalary);
+
+        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByGroupWithNotStart(vipGroupId.toString(), GroupType.VIP.getCode());
+        List<Long> courseIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
+        List<Map<Integer, String>> teachModeById = courseScheduleDao.getTeachModeById(courseIds);
+        Map<Integer, String> coureTeachModeMap = MapUtil.convertIntegerMap(teachModeById);
+        for(int i=0;i<courseScheduleTeacherSalaries.size();i++){
+            String courseType = coureTeachModeMap.get(courseScheduleTeacherSalaries.get(i).getCourseScheduleId());
+            if(courseType.equals(TeachModeEnum.ONLINE.getCode())){
+                courseScheduleTeacherSalaries.get(i).setExpectSalary(onlineTeacherSalary);
+            }else if(courseType.equals(TeachModeEnum.OFFLINE.getCode())){
+                courseScheduleTeacherSalaries.get(i).setExpectSalary(offlineTeacherSalary);
+            }
+        }
+        courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(courseScheduleTeacherSalaries);
+        classGroupTeacherSalaryDao.update(classGroupTeacherSalary);
+    }
 }

+ 41 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -238,8 +238,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //		}
 
 		//如果默认课酬与实际课酬不匹配则需要审批
-		if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())!=0||
-			costInfo.get("onlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())!=0
+		if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())>0||
+			costInfo.get("onlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())>0
 			&&StringUtils.isBlank(studentIds)){
 			vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
 		}else{
@@ -776,17 +776,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                             teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
                         }
 //                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
-                        results.put("onlineTeacherSalary",teacherOnlineSalary);
+                        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(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP));
+                        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());
+                        results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
                         break;
                     default:
                         throw new BizException("未指定课酬结算标准!");
                 }
+
             }
 		}
 
@@ -806,13 +807,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                             teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
                         }
 //                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
-                        results.put("offlineTeacherSalary",teacherOfflineSalary);
+                        results.put("offlineTeacherSalary",teacherOfflineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
                         break;
                     case RATIO_DISCOUNT:
-                        results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP));
+                        results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
                         break;
                     case FIXED_SALARY:
-                        results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue());
+                        results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
                         break;
                     default:
                         throw new BizException("未指定课酬结算标准!");
@@ -1254,6 +1255,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             courseScheduleStudentPaymentDao.batchDeleteWithID(studentPaymentIds);
         }
 
+        courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),-1);
+
 //		classGroup.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
 //		classGroupDao.update(classGroup);
 
@@ -1360,6 +1363,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 				courseScheduleService.batchDeleteMusicGroupCourseWithStudent(studentPaymentOrder.getMusicGroupId(),studentApplyRefunds.getUserId(),GroupType.VIP);
 
+
+				courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(Integer.parseInt(studentPaymentOrder.getMusicGroupId()),-1);
+
 				//学员退出班级群
 				ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
 				imFeignService.groupJoin(new ImGroupModel(studentPaymentOrder.getClassGroupId().toString(), imGroupMembers, null));
@@ -1640,14 +1646,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		Date now=new Date();
 
-		BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
-		if(Objects.isNull(onlineCoursePrice)||onlineCoursePrice.compareTo(new BigDecimal(0))==0){
-			onlineCoursePrice = vipGroup.getOnlineClassesUnitPrice();
-		}
-		BigDecimal offlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.OFFLINE.getCode());
-		if(Objects.isNull(offlineCoursePrice)||offlineCoursePrice.compareTo(new BigDecimal(0))==0){
-			offlineCoursePrice = vipGroup.getOfflineClassesUnitPrice();
-		}
+//		BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
+//		if(Objects.isNull(onlineCoursePrice)||onlineCoursePrice.compareTo(new BigDecimal(0))==0){
+//			onlineCoursePrice = vipGroup.getOnlineClassesUnitPrice();
+//		}
+//		BigDecimal offlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.OFFLINE.getCode());
+//		if(Objects.isNull(offlineCoursePrice)||offlineCoursePrice.compareTo(new BigDecimal(0))==0){
+//			offlineCoursePrice = vipGroup.getOfflineClassesUnitPrice();
+//		}
 
 		BigDecimal surplusCourseTotalPrice = new BigDecimal(0);
 		BigDecimal singleClassPrice=vipGroupApplyDto.getSingleClassPrice();
@@ -1672,16 +1678,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
 
-		TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
+        ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
 
-		BigDecimal onlineTeacherSalary,offlineTeacherSalary;
-		if(Objects.nonNull(byTeacherAndCategory)){
-			onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
-			offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
+		BigDecimal onlineTeacherSalary,offlineTeacherSalary,zero=new BigDecimal(0);
+		if(Objects.nonNull(classGroupTeacherSalary)){
+            onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
+            offlineTeacherSalary=classGroupTeacherSalary.getSalary();
 		}else{
-			ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
-			onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
-			offlineTeacherSalary=classGroupTeacherSalary.getSalary();
+		    onlineTeacherSalary = new BigDecimal(0);
+		    offlineTeacherSalary = new BigDecimal(0);
+        }
+
+		if(onlineTeacherSalary.compareTo(zero)<=0
+                &&offlineTeacherSalary.compareTo(zero)<=0){
+            TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
+            if(Objects.nonNull(byTeacherAndCategory)){
+                onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
+                offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
+            }
 		}
 
 		//创建老师单节课课酬信息
@@ -1698,7 +1712,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
 			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(classGroupStudent.getUserId());
 			if(sysUserCashAccount.getCourseBalance().compareTo(surplusCourseTotalPrice)<0){
-				throw new BizException("[{}]学生课程余额不足",classGroupStudent.getUserName());
+				throw new BizException("学生[{}]的课程余额不足",classGroupStudent.getUserName());
 			}
 			List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
 			for (CourseSchedule vipGroupCourseSchedule : vipGroupApplyDto.getCourseSchedules()) {
@@ -1853,6 +1867,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupDao.update(classGroup);
 		classGroupService.updateClassGroupInfo(classGroup.getId());
 
+		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),studentIds.size());
+
 		try {
 			ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
 			// 创建群组

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -246,6 +246,18 @@
             class_group_id_ = #{classGroupId}
             AND status_!='QUIT'
     </select>
+
+    <select id="countGroupStudentNum" resultType="int">
+        SELECT
+            COUNT( user_id_ )
+        FROM
+          class_group_student_mapper
+        WHERE
+            group_type_ = #{groupType}
+            AND music_group_id_ = #{groupId}
+            AND status_!='QUIT'
+    </select>
+
     <select id="countClassGroupExitStudentNum" resultType="int">
         SELECT
             COUNT( user_id_ )

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

@@ -1617,4 +1617,10 @@
             AND cs.teach_mode_ = #{teachMode}
         </if>
     </select>
+    <select id="getTeachModeById" resultType="map">
+      SELECT id_ as 'key',teach_mode_ as 'value' FROM course_schedule WHERE id_ IN
+      <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+          #{courseId}
+      </foreach>
+    </select>
 </mapper>

+ 29 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -87,6 +87,15 @@
 			</if>
 		</set> WHERE id_ = #{id} 
 	</update>
+
+	<update id="batchUpdateTeacherExpectSalarys">
+		<foreach collection="courseScheduleTeacherSalaries" item="courseScheduleTeacherSalary" separator=";">
+			UPDATE course_schedule_teacher_salary
+				SET expect_salary_ = #{courseScheduleTeacherSalary.expectSalary},update_time_ = NOW()
+			WHERE
+				id_ = #{courseScheduleTeacherSalary.id}
+		</foreach>
+	</update>
 	
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
@@ -382,6 +391,26 @@
 			</foreach>
 		GROUP BY course_schedule_id_
 	</select>
+    <select id="findByGroup" resultMap="CourseScheduleTeacherSalary">
+		SELECT
+			*
+		FROM
+			course_schedule_teacher_salary
+		WHERE
+			group_type_ = #{groupType}
+			AND music_group_id_ = #{groupId}
+	</select>
+	<select id="findByGroupWithNotStart" resultMap="CourseScheduleTeacherSalary">
+		SELECT
+			*
+		FROM
+			course_schedule_teacher_salary csts
+			LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
+		WHERE
+			csts.group_type_ = #{groupType}
+			AND csts.music_group_id_ = #{groupId}
+			AND CONCAT(cs.class_date_, ' ', cs.start_class_time_)>NOW()
+	</select>
 
     <delete id="deleteByMusicGroupId" parameterType="map" >
 		DELETE cssp FROM course_schedule_teacher_salary cssp left join course_schedule cs on cssp.course_schedule_id_ = cs.id_ WHERE cssp.music_group_id_=#{musicGroupId} AND cssp.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'