package com.iamberry.wechat.service.mapper;

import java.util.List;

import com.iamberry.wechat.core.entity.order.Order;
import com.iamberry.wechat.core.entity.order.ProbationCode;
import com.iamberry.wechat.core.entity.order.ProbationOrderDto;
import com.iamberry.wechat.core.entity.probation.ProbationAwardRelu;
import com.iamberry.wechat.core.entity.probation.ProbationNewLogs;
import com.iamberry.wechat.core.entity.probation.ProbationUserInfo;
import com.iamberry.wechat.core.entity.probation.ProbationUserDto;
import com.iamberry.wechat.core.entity.product.Product;

/**
 * 试用订单 mapper
 * 22016年11月15日17:29:03
 * @author LJK
 *
 */
public interface ProbationShopOrderMapper {

	//根据用户openID 查询会员试用订单
	public List<ProbationOrderDto> selectProbationOrderByOpenid(String openId);
	
	//根据用户openID 查询会员试用订单
	public List<ProbationAwardRelu> selectProbationAwardRelu();
	
	/**
	 * 查询所有派送完成试用开始订单
	 * @return
	 */
	public List<ProbationOrderDto> selectProbationStartOrder();
	
	//根据订单ID查询 发放奖励阶段
	public ProbationNewLogs selectProbationNewLogsByOrderId(String logsOrderid);
	
	//添加奖励推送日志
	public Integer insertProbationLogs(ProbationNewLogs probationNewLogs);
	
	//修改奖励推送日志推送小时数
	public Integer updatePauseLogsDate(ProbationNewLogs probationNewLogs);
	
	//根据手机号查询验证码信息
	public ProbationCode selectProbationCodeByTel(String puserTel);
	
	//添加奖励推送code
	public Integer insertProbationCode(ProbationCode probationCode);
	
	//修改奖励推送code 
	public Integer updatePauseCode(ProbationCode probationCode);
	
	//查询是否已存在申请记录
	public ProbationUserInfo selectProbationOrderByTel(String puserTel);
	
	/**
	 * 根据商品id查询商品信息
	 * @param productId
	 * @return
	 */
	public Product selectProductInfo(Integer productId, Integer colorId);
	
	/**
	 * 添加试用订单信息
	 * @param probationOrderDto
	 * @return
	 */
	public Integer addProbationOrder(ProbationOrderDto probationOrderDto);
	
	/**
	 * 添加试用人信息
	 * @param probationUserDto
	 * @return
	 */
	public Integer addProbationUser(ProbationUserDto probationUserDto);
	
	/**
	 * 根据orderId 查询一个试用订单
	 * 2016年11月18日
	 * mzx
	 * @param orderId
	 * @return
	 */
	public ProbationOrderDto selectProbationOrderByOrderId(String orderId);
	
	/**
	 * 添加销售订单信息
	 * @param order
	 * @return
	 */
	public Integer insertSalesOrder(Order order);
	
	/**
	 * 根据电话号码查询订单个数
	 * @param probationTel
	 * @return
	 */
	public Integer selectProbationOrderCountByTel(String probationTel);
	
	/**
	 * 查询VIP会员和金牌会员下线试用订单列表
	 * @param openId
	 * @return
	 */
	public List<ProbationOrderDto> selectVipProbationList(ProbationOrderDto probationOrderDto);
	
	/**
	 * 查询门店和钻石会员下线试用订单列表
	 * @param openId
	 * @return
	 */
	public List<ProbationOrderDto> selectStoreProbationList(ProbationOrderDto probationOrderDto);
	
	/**
	 * 查询合伙人下线试用订单列表
	 * @param openId
	 * @return
	 */
	public List<ProbationOrderDto> selectPartnerProbationList(ProbationOrderDto probationOrderDto);
	
	/**
	 * 查询VIP会员和金牌会员下线试用订单数量
	 * @param openId
	 * @return
	 */
	public Integer selectVipProbationNum(String openId);
	
	/**
	 * 查询门店和钻石会员下线试用订单数量
	 * @param openId
	 * @return
	 */
	public Integer selectStoreProbationNum(String openId);
	
	/**
	 * 查询合伙人下线试用订单数量
	 * @param openId
	 * @return
	 */
	public Integer selectPartnerProbationNum(String openId);
}
