package com.iamberry.wechat.service.cart.dao;

import java.util.List;

import com.iamberry.wechat.core.entity.cart.ShopOrderItemDto;
import com.iamberry.wechat.core.entity.cart.UserGiftDto;
import com.iamberry.wechat.core.entity.product.Product;
import com.iamberry.wechat.core.entity.product.ProductColor;
import com.iamberry.wechat.core.entity.product.QrcodeGift;

public interface ProductInfoDao {

	//分页查询商品信息
	public List<Product> selectPageProduct(Product product);
	
	/**
	 * 根据条件查询产品集合
	 * @param product
	 * @return
	 */
	public List<Product> listSelectProduct(Product product);
	
	//根据productID查询商品信息
	public Product getProductByProductId(Integer productId, Integer colorId);
	
	//根据商品名称查询商品信息
	public List<Product> getProductByProductName(String productName);
	
	//查询在售商品总条目数
	public Integer selectProductCount(Product product);

	//查询租赁产品信息
	public Product getLeaseProduct(Integer productId);
	/**
	 * 获取10条产品信息
	 * @return
	 */
	public List<Product> selectIndexPageProduct();
	
	/**
	 * 批量修改产品购买数量
	 * @return
	 */
	public Integer updateProductNumList(List<ShopOrderItemDto> orderItemList);
	
	/**
	 * 根据商品id查询礼品信息
	 * @param userProductId
	 * @return
	 */
	public UserGiftDto selectUserGift (UserGiftDto userGiftDto);

    /**
     * 获取优惠二维码赠送礼品信息
     * @param qrcodeGift
     * @return
     */
    List<QrcodeGift> listQrcodeGift(QrcodeGift qrcodeGift);

    /**
     * 获取优惠二维码赠送礼品信息数量
     * @param qrcodeGift
     * @return
     */
    Integer listQrcodeGiftCount(QrcodeGift qrcodeGift);

    /**
     * 添加优惠二维码赠送礼品信息
     * @param qrcodeGift
     * @return
     */
    Integer addQrcodeGift(QrcodeGift qrcodeGift);

    /**
     * 修改优惠二维码赠品表信息
     * @param qrcodeGift
     * @return
     */
    Integer updateQrcodeGift(QrcodeGift qrcodeGift);

    /**
     * 修改优惠二维码赠品表状态
     * @param qrcodeGift
     * @return
     */
    Integer updateGiftStatus(QrcodeGift qrcodeGift);

    /**
     * 根据openId查询商户是否存在二维码
     * @param openId
     * @return
     */
    Integer getQrCodeByPlaceOpenId(String openId);

	/**
	 * 获取单个产品颜色信息
	 * @param productColor
	 * @return
	 */
	ProductColor getProductColor(ProductColor productColor);
}
