package com.ruoyi.mall.mapper;

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

import com.ruoyi.mall.domain.MallSeckillGoods;
import com.ruoyi.mall.domain.VO.SeckillGoodsVO;
import org.apache.ibatis.annotations.Param;

/**
 * 秒杀商品Mapper接口
 *
 * @author ruoyi
 * @date 2022-07-01
 */
public interface MallSeckillGoodsMapper
{

    /**
     * 秒杀信息修改
     * @param goodsId 商品id
     * @param type 类型（0-减少库存，1-增加销量）
     * @return
     */
    public int editSeckillGoodsInfo(@Param("goodsId") Long goodsId,@Param("type") Integer type,@Param("count") Integer count);

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

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

    /**
     * 秒杀商品列表
     *
     * @return 秒杀商品
     */
    public List<Map<String,Object>> getSeckillGoodsList(@Param("seckillTimeId") Integer seckillTimeId);

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

    /**
     * 查询秒杀商品
     *
     * @param goodsId 秒杀商品id
     * @return 秒杀商品
     */
    public int selectMallSeckillGoodsByGoodsId(@Param("goodsId") Integer goodsId);

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

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

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

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

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