package com.dgtly.goods.mapper;

import com.dgtly.goods.domain.GoodsInfo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Property;

import java.util.List;

/**
 * 商品基础详情Mapper接口
 * 
 * @author dgtly
 * @date 2020-02-13
 */
public interface GoodsInfoMapper 
{
    /**
     * 查询商品基础详情
     * 
     * @param id 商品基础详情ID
     * @return 商品基础详情
     */
    public GoodsInfo selectGoodsInfoById(Long id);

    /**
     * 查询商品基础详情列表
     * 
     * @param goodsInfo 商品基础详情
     * @return 商品基础详情集合
     */
    public List<GoodsInfo> selectGoodsInfoList(GoodsInfo goodsInfo);

    /**
     * 新增商品基础详情
     * 
     * @param goodsInfo 商品基础详情
     * @return 结果
     */
    public int insertGoodsInfo(GoodsInfo goodsInfo);

    /**
     * 修改商品基础详情
     * 
     * @param goodsInfo 商品基础详情
     * @return 结果
     */
    public int updateGoodsInfo(GoodsInfo goodsInfo);

    /**
     * 删除商品基础详情
     * 
     * @param id 商品基础详情ID
     * @return 结果
     */
    public int deleteGoodsInfoById(Long id);

    /**
     * 批量删除商品基础详情
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteGoodsInfoByIds(String[] ids);

    /**
     * 查询热门商品
     *
     * @return 结果
     */
    public List<GoodsInfo> selectGoodsInfoHotList();

    /**
     * @descption: 根据分类id查询商品数量包括小雷的
     * @param:
     * @return:
     * @auther: qxp
     * @date: 2020-2-25
     */
    public int selectGoodsInfoCountByTypeId(Long typeId);

    /**
     * @descption: 为前端网页提供商品查询，价格筛选
     * @param:
     * @return:
     * @auther: qxp
     * @date: 2020/3/3 10:43
     */
    public List<GoodsInfo> selectGoodsInfoListInWeb(GoodsInfo gi);

    /**
     * @descption: 批量查询商品
     * @param:
     * @return:
     * @auther: qxp
     * @date: 2020/3/3 10:43
     */
    List<GoodsInfo> selectGoodsInfoByIds(String[] ids);


    public int countGoodsInfo();
    /**
     * @descption: 批量上下架
     * @param:
     * @return:
     * @auther: qxp
     * @date: 2020/3/3 10:43
     */
    int putawayGooodsInfo(@Param("ids") String[] ids, @Param("putawayFlag")String putawayFlag);
}
