package com.ssj.service.weixin.sales.service;

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.sales.domain.LibStaffing;
import com.ssj.framework.core.common.service.BaseService;


/** 
 * @author  ZhangCaibao 
 * @version 2017年4月24日 上午11:11:31 
 * 类说明 
 */
public interface LibStaffingService extends BaseService<LibStaffing, String>{
	
	 public  Page<LibStaffing>  findByPage(Map<String, Object> params, Pageable sp);
	 
	 public Page<Map<String, Object>> getUserList(Map<String, Object> searchParams, Pageable pageable);
	 public Page<Map<String, Object>> getUserListZB(Map<String, Object> searchParams, Pageable pageable);
	 /**
	  * 添加作业吧管理从SR里面挑选
	 * @param searchParams
	 * @param pageable
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年9月15日 下午2:30:28 
	 * @Page<Map<String,Object>>
	  */
	 public Page<Map<String, Object>> getUserListSR(Map<String, Object> searchParams, Pageable pageable);
	 
	 public void libStaffingSave(String orgCode,String libId,String[] ids,String type);
	 public void libStaffingZBSave(String orgCode,String libId,String[] ids,String type);
	 
	 public String getLibJoinId(String orgCode); 
	 
	 public List<LibStaffing> findByLibId(String libId); 
	 /**
	  * 查询并且批量修改
	 * @param userId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年12月7日 下午5:30:38 
	 * @List<LibStaffing>
	  */
	 public List<LibStaffing> findByUserId(String userId); 
	 /**
	  * 获取 CD 的openID
	 * @param libId
	 * @param type
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年6月26日 下午2:35:11 
	 * @List<String>
	  */
	 public List<String> findByCDAndOpenId(String libId,String type); 
     
	 public Integer findByLibIdAndUserIdAndTypeCount(String libId,String userId,String type);
	 
	 public LibStaffing findByLibIdAndUserId(String libId,String userId);
	 
	 public Integer fingByCDcount(String libId);
	 /**
	  * 把人员设置为无效
	 * @param id
	 * @param stat
	 * 创建人：ZhangCaibao 
	 * 2017年9月18日 上午9:44:54 
	 * @void
	  */
	 public void updateStaffingById(String id,Integer stat);
	 /**
	  * 总部SD 失效所有馆的SD
	 * @param userId
	 * @param stat
	 * 创建人：ZhangCaibao 
	 * 2017年12月7日 下午5:21:41 
	 * @void
	  */
	 public void updateStatByUserId(String userId,Integer stat);
	 
	 /**
	 * @param libId 
	  * 
	  * @Title: findByUserIdAndType
	  * @Description: 查询用户是否认证专员
	  * @param @param id
	  * @param @param string
	  * @param @return    设定文件
	  * @return LibStaffing    返回类型
	  * @author shenhao
	  * @date 2017年11月23日 下午4:23:04
	  * @throws
	  */
	 public LibStaffing findByUserIdAndType(String userId, String type);
	 /**
	  * 
	 * 创建人:zhanglin
	 * @param @param libId
	 * @param @param type
	 * @param @param types
	 * @param @return       
	 * 方法说明：查询sd和cd
	  * @date 2017年12月27日 下午4:38:33
	  */
	 public List<String> findByCDSDAndOpenId(String libId,String type,String types);

	 /**
	  * 
	  * @Title: findByUserIdAndLib
	  * @Description: 查询用户在这个图书馆的销售角色
	  * @param @param id
	  * @param @param libId
	  * @param @return    
	  * @return LibStaffing    
	  * @author shenhao
	  * @date 2018年1月16日 下午5:51:37
	  * @throws
	  */
	 public LibStaffing findByUserIdAndLib(String id, String libId);

	  public Map<String, Object> findUserCost(String vipId,String libId);

	public LibStaffing findOnebyLibIdAndType(String libId, String type);

	/**
	 * 查询某个类型的馆长用于推送
	 * @param libId
	 * @param type
	 * @return
	 */
	public List<Map<String, Object>> findLibMasterByLibIdAndType (String libId, String type);


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