package com.ssj.service.course.service;

import com.ssj.bean.course.domain.CourseSeries;
import com.ssj.framework.core.common.service.BaseService;
import com.ssj.service.course.req.CourseChangeReq;
import com.ssj.service.course.res.ChangeLessonRes;
import com.ssj.service.course.res.CourseLessonRes;

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

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

public interface ICSService extends BaseService<CourseSeries, String> {
	/**
	 * 馆长端首页 课程分类
	* @return
	* 创建人：ZhangCaibao 
	* 2018年10月18日 上午10:12:05 
	* @List<Map<String,Object>>
	 */
	List<Map<String, Object>> getCourseAll();
	/**
	 * 课程系列分类
	* @param courseTypeLabel
	* @return
	* 创建人：ZhangCaibao 
	* 2018年10月18日 上午10:12:25 
	* @List<Map<String,Object>>
	 */
	List<Map<String, Object>> getCourseAll(int courseTypeLabel, int offset);
	public List<Map<String,Object>> getManageJoin(String userId);
	Page<CourseSeries> findByPage(Map<String, Object> params, Pageable initPage);
	
	/**
	 * 
	 * @Title: getTeacherCourseInfo
	 * @Description: 查找老师名下的课，1查询所有，2查询今天的
	 * @param @param libId
	 * @param @param userId
	 * @param @param searchType
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @author shenhao
	 * @date 2018年10月21日 下午2:38:28
	 * @throws
	 */
	List<Map<String, Object>> getTeacherCourseInfo(String libId, String userId, int searchType);
	/**
	 * 
	 * @Title: getThisCourseInfo
	 * @Description: 课程信息
	 * @param @param search
	 * @param @return    设定文件
	 * @return Map<String,Object>    返回类型
	 * @author shenhao
	 * @date 2018年10月20日 下午2:10:28
	 * @throws
	 */
	Map<String, Object> getThisCourseInfo(Map<String, Object> search);
	/**
	 * 查询已购买的课程
	* @param libId
	* @return
	* 创建人：ZhangCaibao 
	* 2018年10月19日 下午5:27:12 
	* @List<CourseSeries>
	 */
	List<CourseSeries> findByBuy(String libId);
	/**
	 * 
	 * @Title: getCourseStudentList
	 * @Description: 查询该馆此课程下的学生列表
	 * @param @param search
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @author shenhao
	 * @date 2018年10月21日 下午2:12:42
	 * @throws
	 */
	List<Map<String, Object>> getCourseStudentList(Map<String, Object> search);
	
	/**
	 * 
	 * @Title: getFeedBackInfo
	 * @Description: 查找反馈内容
	 * @param @param courseDetailId
	 * @param @param vipId
	 * @param @return    设定文件
	 * @return Map<String,Object>    返回类型
	 * @author shenhao
	 * @date 2018年10月21日 下午3:22:30
	 * @throws
	 */
	Map<String, Object> getFeedBackInfo(String courseDetailId, String vipId, String libId);
	/**
	 * 获取新课上线最新的时间
	* @param type
	* @return
	* 创建人：ZhangCaibao 
	* 2018年10月31日 下午3:33:28 
	* @String
	 */
	public String getLatestTime(int type);
	/*
	 * 获取平均分
	 */
	public Double getAvg(int type);
	public Long getCountVip(int type);
	public Long getfinAll(int type);
	
	Map<String, Object> getFeedBackInfoById(String id);
	
	public String getCourseSeriesByColor();
	
	List<Map<String, Object>> getCourseStudentListV2(Map<String, Object> search);
	
	List<CourseLessonRes> findOrderCourseList(String libId, String userId);
	Map<String, Object> studentManagerList(String libId, String courseSeriesId);
	Map<String, Object> bkManagerList(String libId, String courseSeriesId);
	
	void confirmChange(CourseChangeReq req);
	List<ChangeLessonRes> changeLessonList(String libId, String courseSeriesId);

}
