package com.ssj.dao.weixin.library.dao;

import com.ssj.service.reading.out.BookListOutDto;
import com.ssj.service.weixin.library.dto.SchoolManagerDTO;
import com.ssj.service.weixin.library.dto.TeacherInfoDTO;
import com.ssj.service.weixin.library.dto.out.BookApplyShowOutDto;
import com.ssj.service.weixin.library.dto.out.BookDetaiOutDto;
import com.ssj.service.weixin.library.dto.out.BookHisOutDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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


public interface IOneBookQueryDao {

	Map<String, Object> getTjInfo(String userId);

	List<Map<String, Object>> groomBookList();

	List<Map<String, Object>> readBookList(String userId);

	Map<String, Object> findSignInfo(String isbn13, String userId);

	Page<Map<String, Object>> findByPage(Map<String, Object> params, Pageable pageable);

	List<Map<String, Object>> findBorrowInfo(String vipId, String userId);

	Page<Map<String, Object>> myBorrowHis(Map<String, Object> params, Pageable pageable);

	Page<Map<String, Object>> myReadHis(Map<String, Object> params, Pageable pageable);

	
	List<Map<String,Object>>  findMasterIdByLibId(List<String[]> masterIdByLibId) ;
	
	List<Map<String,Object>> findTeacherIdByMasterId(List<String[]> teacherIdByMasterId);

	/**
	 * 查询某个馆里的某个类型的老师列表，返回微信名，真实姓名， openid
	 * @param libId
	 * @param type
	 * @return
	 */
	List<Map<String, Object>>  findLibManagerByLibIdAndType (String libId, int type);

	Page<Map<String, Object>> findBylist(Map<String, Object> params, Pageable initPage);

	/**
	 * 调度数据只查询未处理的数据
	 * @param params
	 * @param initPage
	 * @return
	 */
    Page<Map<String, Object>> findLockList(Map<String, Object> params, Pageable initPage);

    Page<SchoolManagerDTO> findPageByType(String subject, List<Integer> typeList, Pageable pageable);

    TeacherInfoDTO findMyInfo(String teacherId);

	TeacherInfoDTO findMyApplicationInfo(String teacherId);

    Page<Map<String, Object>> findInfoList(Map<String, Object> params, Pageable initPage);

    List<Map<String, Object>> findRadomList(String toString, Integer bookSize, String libId,String idStr);

    Page<Map<String, Object>> findLibInfoList(Map<String, Object> params, Pageable initPage);

	Page<Map<String, Object>> findApplyInfoList(Map<String, Object> params, Pageable initPage);

    Page<BookHisOutDto> ApplyInfoList(Map<String, Object> params, Pageable pageable);

    Page<BookDetaiOutDto> ApplyInfoDetailList(Map<String, Object> params, Pageable pageable);

    Page<BookListOutDto> NewBookApplyDetailList(Map<String, Object> params, Pageable pageable);

	Page<BookHisOutDto> NewBookApplyInfoList(Map<String, Object> params, Pageable pageable);

	Page<BookHisOutDto> randomInfoList(Map<String, Object> params, Pageable pageable);

    Page<BookDetaiOutDto> randomDetailList(Map<String, Object> params, Pageable pageable);

    Page<BookApplyShowOutDto> userApplyList(Map<String, Object> params, Pageable pageable);
}
