package com.ym.mec.biz.dal.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
import com.ym.mec.common.dal.BaseDAO;

public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudentFee> {

	/**
	 * 根据乐团编号和学员编号获取乐团费用信息
	 * @param userId
	 * @return
	 */
	MusicGroupStudentFee findByUser(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);

	/**
	 * @Author: Joburgess
	 * @Date: 2019/9/29
	 * 根据学生编号和乐团编号更新旷课次数
	 * @param operate 0重置,1加1
	 */
	int updateStudentAbsenteeismTimes(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId, @Param("operate") Integer operate);

	/**
	 * 更新乐团下所有学生的下次缴费时间
	 * @param musicGroupId 乐团编号
	 * @param nextPaymentDate 下次缴费时间
	 * @return
	 */
	int updateNextPaymentDate(@Param("musicGroupId") String musicGroupId, @Param("nextPaymentDate") Date nextPaymentDate);

	/**
	 * 根据可提前缴费的天数查询即将续费的列表
	 * @param days 可提前缴费天数
	 * @return
	 */
	List<MusicGroupStudentFee> queryWillRenewList(int days);

	/**
	 * 批量更新对象
	 * @param updateList
	 * @return
	 */
	int batchUpdate(List<MusicGroupStudentFee> updateList);
}