package com.hzs.scm.product.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.sale.product.BdProductBas;
import com.hzs.common.domain.sale.product.BdProductSpecs;
import com.hzs.common.domain.sale.product.ext.BdProductBasExt;
import com.hzs.scm.product.vo.ProductBasVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 产品基本设置 Mapper 接口
 * </p>
 *
 * @author hzs
 * @since 2023-11-21
 */
public interface BdProductBasMapper extends BaseMapper<BdProductBas> {

    /*
     * @description: 查询产品id，顺道查询出国家对应的产品id
     * @author: sui q
     * @date: 2023/11/24 11:41
     * @param: null null
     **/
    List<BdProductBasExt> queryProductBasByIds(@Param("idList") Set<Integer> idList, @Param("pkCountry") Integer pkCountry);
    /**
     * 查询列表
     * @param query
     * @return
     */
    List<ProductBasVo> queryProductBasList(@Param("query") String query, @Param("pkCountry") Integer pkCountry,@Param("pkCubasdoc") Integer pkCubasdoc);
    /**
     * 根据产品编号查询
     * @param productCode
     * @return
     */
    List<ProductBasVo> findByProductCode(@Param("productCode") String productCode, @Param("pkCountry") Integer pkCountry);

    /*
     * @description: 根据规格、主键查询产品
     * @author: sui q
     * @date: 2023/11/27 15:52
     * @param: null null
     **/
    List<BdProductBasExt> queryProductExtBySpecsId(@Param("productSpecsList") List<BdProductSpecs> productSpecsList, @Param("pkCountry") Integer pkCountry);

    /**
     * 查询全部已关联产品
     * @param query
     * @return
     */
    List<ProductBasVo> queryProductBasRelevanceList(@Param("query") String query,@Param("pkCountry") Integer pkCountry);

    /**
     * 根据供应商查询产品基本信息
     * @param pkSupplier
     * @return
     */
    List<BdProductBas> selectbypkSupplierList(@Param("pkSupplier") Integer pkSupplier);


    /**
     * 查询无供应商的产品基本信息
     * @return
     */
    List<BdProductBas> selectbyNotSupplierList(@Param("query") String query);

    /**
     * 查询全部产品基本信息
     * @param query
     * @param pkCountry
     * @return
     */
    List<ProductBasVo> queryProductBasAllList(@Param("query") String query,@Param("pkCountry") Integer pkCountry);
}
