package com.iformall.mapper;

import java.util.*;
import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxTopic;
import com.iformall.domain.vo.WxCouponCVo;
import com.iformall.domain.vo.WxCouponStatisVo;
import org.apache.ibatis.annotations.Param;
import com.iformall.domain.po.WxCoupon;

public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> {
	List<WxCouponStatisVo> findPressData(WxCoupon wxCoupon);
    List<WxCouponStatisVo> findCouponData(WxCoupon wxCoupon);
	List<WxCouponStatisVo> findCountData(WxCoupon wxCoupon);

	List<WxCoupon> findList(WxCoupon wxCoupon);
	List<WxCoupon> findCouponList(WxCoupon wxCoupon);


	WxCouponCVo findVoDetail(@Param("id")Long id);
	WxCouponCVo findVoStatusDetail(@Param("id")Long id);

	Integer reduceInventory(@Param("id")Long id,@Param("number")Integer number,@Param("remainInventory")Integer remainInventory);

	Integer backInventory(@Param("id")Long id, @Param("number")Integer number,@Param("remainInventory")Integer remainInventory);

	void offExpiriedCouponByValidDate();

	void offExpiriedCouponByMerchantStatus();

	/**
	 * 查询时间段内销售金额
	 * @param wxCoupon
	 * @return
	 */
	List<WxCouponStatisVo> findSaleMoneyByDate(WxCoupon wxCoupon);

	/**
	 * 查询时间段内核销金额
	 * @param wxCoupon
	 * @return
	 */
	List<WxCouponStatisVo> findPaymentByDate(WxCoupon wxCoupon);

	Long findSaleCardCount(WxCoupon wxCoupon);

	Long findTranCardCount(WxCoupon wxCoupon);

	String findSubsidyMoney(WxCoupon wxCoupon);

	//-------卷--------

	List<WxCouponStatisVo> findCouponOrderCount(WxCoupon wxCoupon);

	List<WxCouponStatisVo> findCouponPaymentCount(WxCoupon wxCoupon);

	List<WxCouponStatisVo> priceCouponSaleCount(WxCoupon wxCoupon);

	List<WxCouponStatisVo> priceCouponPaymentCount(WxCoupon wxCoupon);

	String findSumPriceSaleMoney(WxCoupon wxCoupon);
	String findSumPricePayMent(WxCoupon wxCoupon);
	String findSumSubsidyMoney(WxCoupon wxCoupon);

	//-------砍价--------
	List<WxCouponStatisVo> pressSendHistory(WxCoupon wxCoupon);
	List<WxCouponStatisVo> pressSuccHistory(WxCoupon wxCoupon);
	List<WxCouponStatisVo> pressPaymentHistory(WxCoupon wxCoupon);
	String pressSuccRate(WxCoupon wxCoupon);
	Long sumJoin(WxCoupon wxCoupon);


	List<WxCoupon> findCouponByTopic(WxTopic wxTopic);

	Long priceCouponCancelCount(WxCoupon wxCoupon);

	List<WxCouponStatisVo> findSaleCardCountHistory(WxCoupon wxCoupon);

	// 库存，有效期修改
    int updateStockAndValidDate(WxCoupon wxCoupon);

	WxCoupon findCouponModel(WxCoupon wxCoupon);

	Integer findCouponListCount(WxCoupon wxCoupon);
}
