package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.entity.CourseSchedule;
import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface CourseScheduleStudentPaymentService extends BaseService<Long, CourseScheduleStudentPayment> {

	/**
	 * @Author: Joburgess
	 * @Date: 2019/10/14
	 * @params [vipGroupId, userId]
	 * @return int
	 * @describe 生成学生vip课单节课时收费信息
	 */
	int createCourseScheduleStudentPaymentForVipGroup(Long vipGroupId, Integer userId);


	/**
	 * 删除学生对应的课程
	 * @param userId
	 * @param courseScheduleList
	 * @return
	 */
	int deleteStudentCourseSchedule(Integer userId, List<CourseSchedule> courseScheduleList);

	/**
	 * @describe 根据课表创建学生的缴费记录
	 * @author Joburgess
	 * @date 2019/10/24
	 * @param courseSchedules: 课程计划列表
	 * @return void
	 */
	void createCourseScheduleStudentPaymentByCourseSchedules(List<CourseSchedule> courseSchedules);


	/**
	 * @return int
	 * @Author: Joburgess
	 * @Date: 2019/10/10
	 * @params [courseScheduleStudentPayments]
	 * @describe 批量插入
	 */
	int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments);

	/**
	 * @describe 更新VIP课赠送课顺序
	 * @author Joburgess
	 * @date 2020/1/10
	 * @param vipGroupId: 小课编号
	 * @return void
	 */
	void updateVipGiveCourse(Long vipGroupId);

}
