package com.fzm.mall.server.admin.goods_center.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.mall.server.admin.goods_center.entity.dto.IntegralDTO;
import com.fzm.mall.server.admin.goods_center.entity.dto.IntegralExchangeDTO;
import com.fzm.mall.server.admin.goods_center.entity.dto.OnOffDTO;
import com.fzm.mall.server.admin.goods_center.entity.dto.StockDTO;
import com.fzm.mall.server.admin.goods_center.entity.vo.IntegralExchangeVO;
import com.fzm.mall.server.admin.goods_center.model.IntegralExchange;

import java.util.List;

/**
 * @author wangp
 * @date 2021/3/25 16:06
 * @description 积分兑换服务类
 * @since JDK 1.8
 */
public interface IIntegralExchangeService extends IService<IntegralExchange> {


    /**
     * 新增
     *
     * @param ieDTO      积分兑换信息
     * @param merchantId 商户id
     */
    void add(IntegralExchangeDTO ieDTO, String merchantId);

    /**
     * 分页查询
     *
     * @param merchantId  商户id
     * @param goodsId     系列id
     * @param addTimeHead 添加时间头
     * @param addTimeTail 添加时间尾
     * @param goodsName   商品名称
     * @param pageNum     当前页数
     * @param pageSize    每页个数
     * @return 分页信息
     */
    IPage<IntegralExchangeVO> page(String merchantId, String goodsId, String goodsName, Long addTimeHead, Long addTimeTail,
                                   Integer pageNum, Integer pageSize);

    /**
     * 上下架
     *
     * @param onOffDTO 上下架信息
     */
    void onOff(OnOffDTO onOffDTO);

    /**
     * 补货
     *
     * @param stockDTO 库存信息
     */
    void stock(StockDTO stockDTO);

    /**
     * 积分值
     *
     * @param integralDTO 积分兑换
     */
    void integral(IntegralDTO integralDTO);

    /**
     * 删除
     *
     * @param goodsIds 商品id
     */
    void delete(String goodsIds);

    /**
     * 批量删除商品
     *
     * @param goodsIds 商品id
     */
    void deleteBatch(List<String> goodsIds);

    /**
     * 根据商品id查询积分商品
     *
     * @param goodsId 商品id
     */
    IntegralExchange getByGoodsId(String goodsId);
}
