package com.ssj.service.weixin.zuoyb.service;

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

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.ssj.bean.weixin.zyb.domain.ZuoybCourse;
import com.ssj.framework.core.common.service.BaseService;


/** 
 * @author  ZhangCaibao 
 * @version 2017年7月4日 上午11:23:17 
 * 类说明 
 */
public interface ZuoybCourseService  extends BaseService<ZuoybCourse, String> {

	 /**
	  * 获取作业吧课程列表
	 * @param searchParams
	 * @param pageable
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年7月4日 下午1:16:51 
	 * @Page<Map<String,Object>>
	  */
	 public Page<Map<String, Object>> getZuoybCourseist(Map<String, Object> searchParams, Pageable pageable);
	 /**
	  * 批量插入记录
	 * @param zybCourseId
	 * @param libId
	 * 创建人：ZhangCaibao 
	 * 2017年7月4日 下午2:03:18 
	 * @void
	  */
	 public void insertZuoybWeekList(String zybCourseId,String libId);
	 /**
	  * 获取作业吧的管理员
	 * @param searchParams
	 * @param pageable
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年7月4日 下午2:43:40 
	 * @Page<Map<String,Object>>
	  */
	  public Page<Map<String, Object>> getZybList(Map<String, Object> searchParams, Pageable pageable);
	  /**
	   * 获取作业吧的管理员，有总部SR人员操作，并获取已选中的
	  * @param searchParams
	  * @param pageable
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年9月6日 下午3:29:09 
	  * @Page<Map<String,Object>>
	   */
	  public Page<Map<String, Object>> selectZybSRList(Map<String, Object> searchParams, Pageable pageable);
	
	  /**
	   * 修改老师上课时间
	  * @param id
	  * @param teacherId
	  * @param teacherName
	  * 创建人：ZhangCaibao 
	  * 2017年7月4日 下午3:00:32 
	  * @void
	   */
	  public void updateCourseWeek(String zybCourseId,Integer days,String teacherId,String teacherName);
	  
	  public Integer getCourseNameAndHourAndLibId(String courseName ,String courseHour,String libId);
	  
	  public Integer fingByCourseHourAndLibIdCount(String courseHour,String libId);
	  
	  public void zuoybCourseDelete(String id);
	  
	  /**
	   * 获取老师上课的时段制定那一天
	  * @param teacherId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月6日 下午4:57:39 
	  * @List<Map<String,Object>>
	   */
	  List<Map<String,Object>> getTeacherIdList(String teacherId,Date date);	
	  /**
	   * 获取全部时段
	  * @param teacherId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月7日 下午2:56:54 
	  * @List<Map<String,Object>>
	   */
	  List<Map<String,Object>> getLibIdAndVipIdList(String libId,String vipId);	 
	  /**
	   * 上课老师查询管理学生
	  * @param searchParams
	  * @param pageable
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月6日 下午5:46:54 
	  * @Page<Map<String,Object>>
	   */
	  public Page<Map<String, Object>> findTeacherIdForPage(Map<String, Object> searchParams, Pageable pageable);
	  /**
	   *  获取图书馆课程和时段
	  * @param libId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月14日 下午2:50:57 
	  * @List<ZuoybCourse>
	   */
	  public List<ZuoybCourse> findByLibId(String libId);
	  /**
	   * 查询该学生有几名课程
	  * @param libId
	  * @param studentId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月19日 下午1:51:25 
	  * @List<ZuoybCourse>
	   */
	  public List<ZuoybCourse> findByLibIdAndVipId(String libId ,String vipId);
	  /**
	   * 获取同级的课程
	  * @param courseId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年9月7日 下午4:19:43 
	  * @List<ZuoybCourse>
	   */
	  public List<ZuoybCourse> findBySiblings(String courseId);
	  /**
	   * 根据时段和图书馆ID 查询第一个课程
	  * @param libId
	  * @param courseId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年9月7日 下午3:54:34 
	  * @List<ZuoybCourse>
	   */
	  public ZuoybCourse findByLibIdAndCourseHour(String libId,String courseHour);
	  /**
	   *  查询该馆时段的课程，除开总体
	  * @param libId
	  * @param courseHour
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年10月30日 上午10:25:45 
	  * @List<ZuoybCourse>
	   */
	  public List<ZuoybCourse>  getLibIdAndCourseHour(String libId,String courseHour);
	  /**
	   * 根据时段和
	  * @param libId
	  * @param vipId
	  * @param courseHour
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年9月7日 下午3:06:46 
	  * @List<ZuoybCourse>
	   */
	  public List<ZuoybCourse> findByLibIdAndVipIdAndCourseHour(String libId ,String vipId,String courseHour);
	  
	  public void updateWorkImgByObjectId(String oldObjectId,String newObjectId);
	  
	  public Integer getZybCourseIdAndLibIdAndNum(Integer num ,String zybCourseId,String libId);
	  /**
	   * 总部SR指定课程上课人员
	  * @param searchParams
	  * @param pageable
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年9月6日 下午2:07:08 
	  * @Page<Map<String,Object>>
	   */
	  public Page<Map<String, Object>> zuoybSRList(Map<String, Object> searchParams, Pageable pageable);
	  /**
	   * 修改排序
	  * @param id
	  * @param num
	  * 创建人：ZhangCaibao 
	  * 2017年9月12日 上午10:15:43 
	  * @void
	   */
	  public void  updateCourseNum(String id,Integer num);
	  
	  public ZuoybCourse getCourseNameAndHour(String courseName ,String courseHour,String libId);
	  /**
	   * 根据馆查询所有的时段
	  * @param libId
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2018年1月25日 下午2:49:21 
	  * @List<String>
	   */
	  public List<String> getCourseAndLibId(String libId);
	  
	  public void zuoybCourseListSave(String libId);
	  
}
