
package com.tmerclub.cloud.product.mapper;

import com.tmerclub.cloud.product.model.TakeStockSpu;
import com.tmerclub.cloud.product.vo.TakeStockSpuVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 盘点商品列表
 *
 * @author lhd
 * @date 2022-06-22 16:57:27
 */
public interface TakeStockSpuMapper {

    /**
     * 获取盘点商品列表列表
     * @return 盘点商品列表列表
     */
    List<TakeStockSpu> list();

    /**
     * 根据盘点商品列表id获取盘点商品列表
     *
     * @param takeStockSpuId 盘点商品列表id
     * @return 盘点商品列表
     */
    TakeStockSpu getByTakeStockSpuId(@Param("takeStockSpuId") Long takeStockSpuId);

    /**
     * 保存盘点商品列表
     * @param takeStockSpu 盘点商品列表
     */
    void save(@Param("takeStockSpu") TakeStockSpu takeStockSpu);

    /**
     * 批量保存盘点商品列表
     * @param takeStockSpuList
     */
    void saveBatch(@Param("takeStockSpuList") List<TakeStockSpu> takeStockSpuList);

    /**
     * 更新盘点商品列表
     * @param takeStockSpu 盘点商品列表
     */
    void update(@Param("takeStockSpu") TakeStockSpu takeStockSpu);

    /**
     * 根据盘点商品列表id删除盘点商品列表
     * @param takeStockSpuId
     */
    void deleteById(@Param("takeStockSpuId") Long takeStockSpuId);

    /**
     * 根据实物盘点id删除实物盘点
     * @param takeStockId
     */
    void deleteByTackStockId(@Param("takeStockId") Long takeStockId);

    /**
     * 通过takeStockId获取实物盘点商品列表
     * @param takeStockId
     * @param lang
     * @return
     */
    List<TakeStockSpuVO> listByTakeStockId(@Param("takeStockId") Long takeStockId, @Param("lang") Integer lang);
}
