package com.ssj.service.weixin.library.service;

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

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

public interface ILibJoinService extends BaseService<TbLibJoin, String> {

	  public  Page<TbLibJoin>  findByPage(Map<String, Object> params, Pageable sp);
	  /**
	   * 查询图书馆关联管理员
	   * @param searchParams
	   * @param pageable
	   * @return
	   */
	  Page<Map<String, Object>> findForPage(Map<String, Object> searchParams, Pageable pageable);
	  /**
	   * 图书馆VIP 会员卡
	   * @param searchParams
	   * @param pageable
	   * @return
	   */
	  Page<Map<String, Object>> findForVIPPage(Map<String, Object> searchParams, Pageable pageable);
	  
	  public void libManagerDelete(String id);
	  
	  public void addAdmin(String ids[],String libId ,Integer type,String mobiles[],String names[]);
	  
	  Page<Map<String, Object>> findBookDetailForPage(Map<String, Object> searchParams, Pageable pageable);
	  public List<Map<String, Object>> getAllSchoolMap(Map<String, Object> params);
	  /**
	   * 获取有效的图书馆
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年7月24日 下午4:05:17 
	  * @List<TbLibJoin>
	   */
	  public List<TbLibJoin> getValidLibJoin();

	  
	  public List<Map<String, Object>> getLocationJoin(String league_lat, String league_lng,Integer type);
	  /**
	   * 根据定位查询图书馆，带分页
	  * @param searchParams
	  * @param pageable
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2018年3月15日 上午11:14:45 
	  * @Page<Map<String,Object>>
	   */
	  public Page<Map<String, Object>> getLocationJoin(Map<String, Object> searchParams, Pageable pageable);
	  public Page<Map<String, Object>>  getLocationJoinService(Map<String, Object> searchParams, Pageable pageable);
	  public List<Map<String, Object>> getPositionArea(String league_lat, String league_lng,Integer type,String schoolName);
	  /**
	   * 
	  * @param libId 根据图书馆ID，定位附近的学校。
	  * @param type
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2017年12月25日 下午2:46:37 
	  * @List<Map<String,Object>>
	   */
	  public Page<Map<String, Object>>  getLocationArea(Map<String, Object> searchParams, Pageable pageable);
	  public List<Map<String, Object>> getNoLocationJoin(Integer type);
	  
	  
	  public List<TbLibJoin> getLibJoinByCode(List<String> orgCode);
	  
	  public List<Map<String, Object>> pushNotice(String libId);
	  public List<Map<String, Object>> getJoinAll(int i);
	  public List<Map<String, Object>> getNearJoin(String league_lat, String league_lng, int i);
	  /**
	   * 查询附件的馆
	  * @param locationLat
	  * @param locationLng
	  * @param type
	  * @return
	  * 创建人：ZhangCaibao 
	  * 2018年5月8日 下午4:03:15 
	  * @TbLibJoin
	   */
	  public TbLibJoin getAnnexLib(String locationLat,String locationLng,int type);
	  
	  
	  /**
	 * @param masterId
	 * @return
	
	 * 方法说明:通过校长获取馆信息
	
	 * 创立日期:2018年7月19日 上午11:18:19
	 * 创建人:yangcan
	
	 */
	public List<TbLibJoin> findByMasterId(String masterId);

	TbLibJoin findByLeagueCode(String leagueCode);
	 TbLibJoin findOneByCourseId(String courseId);
	
	
	public TbLibJoin findOneByCancelStat();
	
	public List<TbLibJoin> findByLikeNameAndCity(String name,String province,String city,String area,Integer pageNo,Integer pageSize);
	public Long countByLikeNameAndCity(String name, String province, String city, String area);

    void libJoinSave(TbLibJoin lib) throws Exception;
}
