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

import com.ssj.bean.weixin.zyb.domain.ZuoybStudentWork;
import com.ssj.framework.core.common.service.BaseService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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

/** 
 * @author  ZhangCaibao 
 * @version 2017年7月6日 下午2:40:03 
 * 类说明 
 */
public interface ZuoybStudentWorkService  extends BaseService<ZuoybStudentWork, String>{

	
	public  Page<ZuoybStudentWork>  findByPage(Map<String, Object> params, Pageable sp);
	/**
	 * 删除 之前的记录
	* @param libId
	* @param vipId
	* @param courseId
	* 创建人：ZhangCaibao 
	* 2017年7月18日 上午10:57:20 
	* @void
	 */
	public ZuoybStudentWork deleteByLibIdAndVipIdAndCourseId(String libId,String vipId,String courseId);
	
	public ZuoybStudentWork getByLibIdAndVipIdAndCourseId(String libId,String vipId,String courseId);

	public ZuoybStudentWork getByLibIdAndVipIdAndCourseName(String libId, String vipId, String courseName);
	
	public List<ZuoybStudentWork> getByLibIdAndVipId(String libId,String vipId);
	
	public List<ZuoybStudentWork> getByLibIdAndVipIdAndHour(String libId,String vipId,String courseHour);
	public List<ZuoybStudentWork> getByLibIdAndVipIdAndHourAndType(String libId,String vipId,String courseHour,Integer type);
	public List<ZuoybStudentWork> getByLibIdAndVipIdAndType(String libId,String vipId,Integer type);
	public List<ZuoybStudentWork> findByStudentPushId(String studentPushId);
	
	
	public List<ZuoybStudentWork> getByLibIdAndVipIdAndTimer(String libId,String vipId);
	
	
	/**
	 *   判断该会员打分记录有几条
	* @param vipId
	* @param libId
	* @return
	* 创建人：ZhangCaibao 
	* 2017年7月19日 下午4:50:19 
	* @Integer
	 */
	public Integer getByVipIdAndLibIdCount(String vipId,String libId,String zybCourseId);
	
	public Integer getByAvgCount(String vipId,String libId,String date);
	/**
	 * 查询该图书馆，会员的某个时段的打分标准
	* @param vipId
	* @param libId
	* @param date
	* @param courseHour
	* @return
	* 创建人：ZhangCaibao 
	* 2017年9月12日 下午5:22:17 
	* @Integer
	 */
	public Integer getByZTCount(String vipId,String libId,String date,String courseHour);
	
	public String  getHtml(String vipId,String libId,String date,String childName,Integer count);
	public String  getGzd(String libId,String vipId);
	
	public Map<String,String>  getHtmlMap(String vipId,String libId,String date,String childName,Integer count,String courseHour);
	
	
	public Map<String,String>  workPercentage(String vipId,String libId,String date,String courseHour);
	/**
	 * 昨日排名
	* @param vipId
	* @param libId
	* @param date
	* @param courseHour
	* @return
	* 创建人：ZhangCaibao 
	* 2017年10月16日 下午2:32:03 
	* @Map<String,String>
	 */
	public Map<String,String>  rankedYesterday(String vipId,String libId,String date);
	
	/**
	 * 发送消息模板
	* @param openId
	* @param name
	* @param work
	* 创建人：ZhangCaibao 
	* 2017年3月15日 下午2:10:17 
	* @void
	 */
	public  void sendTemplateTeacher(String openId,String name,String id);
	/**
	 * 消息模板打卡跳转到小程序
	* @param openId
	* @param name
	* @param id
	* @param appId
	* 创建人：ZhangCaibao 
	* 2018年2月27日 下午5:48:42 
	* @void
	 */
	public  void sendTemplateTeacher(String openId,String name,String id,String appId);
	/**
	 * 推送给用户，孩子的学习时间。
	* @param openId
	* @param name
	* @param id
	* 创建人：ZhangCaibao 
	* 2017年12月6日 下午3:15:31 
	* @void
	 */
	public  void sendStudyTime(String openId,String name,String timeCost);
	public  void sendTemplateSD(String libId,String name,String id);
	/**
	 * 消息模板打卡跳转到小程序
	* @param libId
	* @param name
	* @param id
	* @param appId
	* 创建人：ZhangCaibao 
	* 2018年2月27日 下午5:53:40 
	* @void
	 */
	public  void sendTemplateSD(String libId,String name,String id,String appId);
	/**
	 * 推送给旧的SD,CD 配置销售人员 tb_lib_staffing
	 */
	public  void newSendTemplateSD(String libId,String name,String pushId,String appId);

	/**
	 * 作业推送馆长
	 * @param libId
	 * @param name
	 * @param pushId
	 * @param appId
	 */
	void sendHomeworkReport2LibManager (String libId, String name, String pushId, String appId);

	/**
	 * 推送合作馆的老师,这里
	 * @param vipId
	 * @param name
	 * @param pushId
	 * @param appId
	 */
	public void sendTemplate2CooperateLibTeacher (String vipId, String name, String pushId, String appId);
	
	public  void  updatePushTimeAndStat(String vipId,String libId,String date, String pushId,String courseHour);
	
	/**
	  * 获取最近7天作业报告情况
	 * @param vipId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年10月31日 下午4:37:22 
	 * @List<Map<String,Object>>
	  */
	 public List<Map<String,Object>> getXqWeekReport(String vipId,String startDate ,String endDate);
	
	 public List<ZuoybStudentWork>   oldDataWorkHow();
	 
	 /**
	  *   查询该会员的最近7天的报告
	 * @param vipId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月27日 下午5:21:00 
	 * @List<Map<String,Object>>
	  */
	 public List<Map<String,Object>> getRecentWorkBg(String vipId);
	 /**
	  * 最近7天
	 * @param vipId
	 * @param derver
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月28日 下午1:40:51 
	 * @List<Map<String,Object>>
	  */
	 public List<Map<String,Object>> Last7days(String vipId);

	/**
	 * 查出来的数据只有有数据的时间，没有数据的时间直接默认0
	 * @param list
	 * @return
	 */
	 List<Map<String, Object>> parseToFormateList (List<Map<String, Object>> list);
	 /**
	  * 最近7天的难题
	 * @param derver
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月28日 下午2:49:12 
	 * @List<Map<String,Object>>
	  */
	 public List<Map<String,Object>> Lastproblem7days(String vipId);
	 /**
	  * 查询该会员的最近7天学习时长
	 * @param vipId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月28日 上午10:25:43 
	 * @String
	  */
	 public String learningbyVipId(String vipId);
	 /**
	  * 查询所有的学习报告（所有的）
	 * @param vipId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月28日 上午10:38:29 
	 * @String
	  */
	 public Long studyReportbyVipId(String vipId);
	 /**
	  * 查询该学生连续学习天数
	 * @param derver
	 * @param vipId
	 * @param beginDateTimeStr
	  * @param endDateTimeStr
	  * @return
	 * 创建人：ZhangCaibao 
	 * 2018年4月28日 下午3:01:44 
	 * @String
	  */
	 public int continuousLearning(String vipId, String beginDateTimeStr, String endDateTimeStr);
	 /**
	  * 
	  * @Title: deleteWorkDetalByStudentWorkId
	  * @Description: 删除打分项
	  * @param @param id    设定文件
	  * @return void    返回类型
	  * @author shenhao
	  * @date 2018年5月10日 上午9:54:37
	  * @throws
	  */
	 public void deleteWorkDetalByStudentWorkId(String id);


	/**
	 * 查询作业id, 如果不存在则插入一条记录
	 * @param zuoybWorkId
	 * @param vipId
	 * @param teacherId
	 * @return
	 */
	 public ZuoybStudentWork saveZuoybWork (String zuoybWorkId, String vipId, String teacherId, String subject);

	/**
	 * 查询作业吧记录，没有就插入
	 * @param vipId
	 * @param teacherId
	 * @param subject
	 * @param stat
	 * @return
	 */
	 public ZuoybStudentWork saveZybStudentWork(String vipId, String teacherId, String subject, int stat);

	 public int getTheMonthTimeCost(String vipId, String beginTime, String endTime);

	/**
	 * 查询某一天学生的某学科id
	 * @param vipId
	 * @param subject
	 * @param date
	 * @return
	 */
	 public String getStudentWorkId (String vipId, String subject, String date);

	/**
	 * 查询学生当天的作业吧学生作业记录
 	 * @param vipId
	 * @param dateTime
	 * @return
	 */
	List<ZuoybStudentWork> queryDateZybStudentwork (String vipId, Date dateTime);
	/**
	 * 保存作业 旧H5
	 * @param zuoybStudentWork
	 * @return
	 */
	ZuoybStudentWork saveCourse(ZuoybStudentWork zuoybStudentWork,String teacherId);
	ZuoybStudentWork saveCourseH5(ZuoybStudentWork zuoybStudentWork,String imgids);

}
