package com.ruoyi.mall.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.ApiResult;
import com.ruoyi.mall.domain.MallSeckillGoods;
import com.ruoyi.mall.domain.VO.SeckillGoodsVO;
import org.apache.ibatis.annotations.Param;

/**
 * 秒杀商品Service接口
 *
 * @author ruoyi
 * @date 2022-07-01
 */
public interface IMallSeckillGoodsService
{
    /**
     * 秒杀信息修改
     * @param goodsId 商品id
     * @param type 类型（0-减少库存，1-增加销量）
     * @return
     */
    public int editSeckillGoodsInfo( Long goodsId, Integer type, Integer count);

    /**
     * 商品详情，秒杀信息
     * @return
     */
    public SeckillGoodsVO seckillGoodsInfo(Map<String,Object> param);

    /**
     * 秒杀可选商品列表
     *
     * @return 秒杀商品
     */
    public List<Map<String,Object>> enableSeckillGoodsList();

    /**
     * 秒杀商品列表
     *
     * @return 秒杀商品
     */
    public ApiResult getSeckillGoodsList(Map<String,Object> param);

    /**
     * 查询秒杀商品
     *
     * @param id 秒杀商品主键
     * @return 秒杀商品
     */
    public MallSeckillGoods selectMallSeckillGoodsById(Integer id);

    /**
     * 查询秒杀商品列表
     *
     * @param mallSeckillGoods 秒杀商品
     * @return 秒杀商品集合
     */
    public List<MallSeckillGoods> selectMallSeckillGoodsList(MallSeckillGoods mallSeckillGoods);

    /**
     * 新增秒杀商品
     *
     * @param mallSeckillGoods 秒杀商品
     * @return 结果
     */
    public AjaxResult insertMallSeckillGoods(MallSeckillGoods mallSeckillGoods);

    /**
     * 修改秒杀商品
     *
     * @param mallSeckillGoods 秒杀商品
     * @return 结果
     */
    public int updateMallSeckillGoods(MallSeckillGoods mallSeckillGoods);

    /**
     * 批量删除秒杀商品
     *
     * @param ids 需要删除的秒杀商品主键集合
     * @return 结果
     */
    public int deleteMallSeckillGoodsByIds(Integer[] ids);

    /**
     * 删除秒杀商品信息
     *
     * @param id 秒杀商品主键
     * @return 结果
     */
    public int deleteMallSeckillGoodsById(Integer id);
}
