package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.TaskRewardsRulesDto;
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
import com.ym.mec.biz.dal.page.RewardsRulesQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface CourseScheduleRewardsRulesService extends BaseService<Integer, CourseScheduleRewardsRules> {

	/**
	 * 查询课程奖励额度
	 * @param organId 分部编号
	 * @param courseScheduleType 课程类型
	 * @param coursesNum 课程数
	 * @return
	 */
	BigDecimal queryRewardsAmount(Integer organId, CourseScheduleType courseScheduleType, int coursesNum);

	/**
	 * 查询已设置的分部列表
	 * @return
	 */
	List<Integer> queryOrganIdList();

	/**
	 * 添加教师奖励活动
	 * @param courseScheduleRewardsRules
	 * @return
	 */
	int add(CourseScheduleRewardsRules courseScheduleRewardsRules);

	/**
	 * 分页获取活动列表
	 * @param queryInfo
	 * @return
	 */
	PageInfo<CourseScheduleRewardsRules> queryDetailPage(RewardsRulesQueryInfo queryInfo);

	/**
	 * 修改
	 * @param courseScheduleRewardsRules
	 * @return
	 */
	int updateDetail(CourseScheduleRewardsRules courseScheduleRewardsRules);

	/**
	 * 获取教师时间段内已结算课时（课时阶梯奖励）
	 * @param firstDayOfMonth
	 * @param lastDayOfMonth
	 * @return
	 */
    List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(String firstDayOfMonth,String lastDayOfMonth);

	/**
	 * 根据主键列表获取数据
	 * @param activeIds
	 * @return
	 */
	List<CourseScheduleRewardsRules> findByIds(List<Integer> activeIds);
}