package com.iamberry.wechat.face.drp;

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

import com.iamberry.wechat.core.entity.PageBean;
import com.iamberry.wechat.core.entity.PaperBean;
import com.iamberry.wechat.core.entity.ResultMsg;
import com.iamberry.wechat.core.entity.drp.ApplyPlaceLogs;
import com.iamberry.wechat.core.entity.drp.PlaceInfo;
import com.iamberry.wechat.tools.ResponseJson;


/**
 * 
 * @author 欧阳明
 * @Description: 代理者信息服务-业务处理
 * @Date:2016年4月19日
 *
 */
public interface PlaceInfoService {

	/**
	 * 修改一个分销商
	 * @param placeInfo
	 * @return
	 */
	public ResultMsg delete(PlaceInfo placeInfo);
	
	/**
	 * 新增一个分销商
	 * @param placeInfo
	 * @return
	 */
	public ResultMsg addOne(PlaceInfo placeInfo);
	
	//新增一个分销商
	public ResultMsg update(PlaceInfo placeInfo);
		
	//批量增加分销商
	public ResultMsg batchInsert(ArrayList list);
	
	//通过id 获取单个分销商的详情
	public PlaceInfo getPlaceInfoById(int id);
	
	//通过openid 获取单个分销商的详情
	public PlaceInfo getPlaceInfoByOpenId(String openid);
	
	//	通过placeInfo获取placeInfo对象
	public PlaceInfo getOnePlaceInfoByInitcode(PlaceInfo placeInfo);
	
	//进入综合查询首页
	public Map SearchPlaceInfo(PlaceInfo placeInfo);
	
	//分页综合查询
	public Map SearchPlaceInfoPage(PageBean page);
	
	//插入单条信息，并返回对象
	public PlaceInfo insertOne(PlaceInfo placeInfo);
	//获取单个用户提现总额
	public int getTotalMoneyByPlaceId(int placeId);

	/**
	 * 根据用户openid，获取对应的代理商信息
	 */
	public Integer selectPlaceIdByOpenId(String openId);
	
	/**
	 * 查询分销信息用于下载
	 * @param map
	 * @return
	 */
	public List<PlaceInfo> selectPlaceInfosForDownLoad(Map map);
	
	/**
	 * 批量更新分銷商信息
	 * @param placeInfos
	 * @return
	 */
	public int batchUpdate(List<PlaceInfo> placeInfos);
	
	/**
	 * 根据条件获取placeId
	 * @param placeInfo
	 * @return
	 */
	public List<PlaceInfo> getPlaceId(PlaceInfo placeInfo);

	/**
	 * 获取某一页的代理商申请修改信息记录
	 * @param bean
	 * @return
	 */
	public List<ApplyPlaceLogs> selectApplyPlaceLogs(int pageNO, int pageSize);

	/**
	 * 获取待处理的申请记录总条数
	 * @return
	 */
	public int getCount(int pageSize);

	/**
	 * 根据applyID更新信息
	 * @param applyID
	 * @return
	 */
	public int updateApplyStatus(ApplyPlaceLogs logs);
	
	/**
	 * 获取某一个用户的最近申请记录
	 * @param placeID
	 * @return
	 */
	public ApplyPlaceLogs selectApplyLogsByPlaceID(Integer placeID);
	
	/**
	 * 根据openid获取某一个用户的最近申请记录
	 * @param placeID
	 * @return
	 */
	public ApplyPlaceLogs selectApplyLogsByOpenID(String openID);
	
	/**
	 * 根据id，处理申请,后台
	 * @param applyID
	 * @param status
	 * @return
	 */
	public boolean handlerApplyLogs(Integer applyID, Integer status);
	
	/**
	 * 根据openid，处理商户是否需要完善信息
	 * @param openID
	 * @return
	 */
	public ResponseJson handlerPlaceInfo(String openID);
	
	/**
	 * 添加申请更新信息的处理
	 * @param applyPlaceLogs
	 * @return
	 */
	public ResponseJson addApplyPlaceLogs(ApplyPlaceLogs applyPlaceLogs);
	
	/**
	 * 根据openid获取一个正在使用的商户的信息(详情页面、修改页面)
	 * 2016年10月10日
	 * @param openid
	 * @return
	 */
	public ResponseJson selectPlaceInfoDetailByOpenId(String openid);
	
}
