package com.hzs.sale.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.SaOrderWaresLimit;

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

/**
 * 会员商品限购 服务类
 *
 * @author hzs
 * @since 2025-03-11
 */
public interface ISaOrderWaresLimitService extends IService<SaOrderWaresLimit> {

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

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

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

}
