package com.hzs.sale.order.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.SaOrderWaresLimit;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 会员商品限购 Mapper 接口
 */
public interface SaOrderWaresLimitMapper extends BaseMapper<SaOrderWaresLimit> {

    /**
     * 查询会员已经购买的限购数据
     *
     * @param pkMember      会员ID
     * @param orderType     订单类型
     * @param limitDate     限购月份
     * @param waresCodeList 商品列表
     * @return
     */
    List<SaOrderWaresLimitExt> listWaresList(@Param("pkMember") Long pkMember,
                                             @Param("orderType") Integer orderType,
                                             @Param("limitDate") String limitDate,
                                             @Param("waresCodeList") List<String> waresCodeList);

    /**
     * 批量插入或更新会员商品限购
     *
     * @param dataList 会员购买数据列表
     * @return
     */
    int saveBatchLimit(@Param("dataList") List<SaOrderWaresLimit> dataList);

    /**
     * 撤单更新限购数量
     *
     * @param pkOrder       订单ID
     * @param pkMember      会员ID
     * @param modifiedTime  订单修改时间
     * @param waresCodeList 商品列表
     * @return
     */
    int updateCancelOrder(@Param("pkOrder") Long pkOrder,
                          @Param("pkMember") Long pkMember,
                          @Param("modifiedTime") Date modifiedTime,
                          @Param("waresCodeList") List<String> waresCodeList);

}
