package com.uas.platform.b2b.dao;

import com.uas.platform.b2b.model.Product;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.QueryHints;
import org.springframework.stereotype.Repository;

import javax.persistence.QueryHint;
import java.util.List;

@Repository
public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaRepository<Product, Long> {

	/**
	 * 按所属企业的ID和产品的编号查找产品
	 * 
	 * @param enUU
	 * @param code
	 * @return
	 */
	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
	public List<Product> findByEnUUAndCode(long enUU, String code);

	/**
	 * 查询企业的所有物料
	 * 
	 * @param enuu
	 * @return
	 */
	public List<Product> findByEnUU(Long enuu);

    /**
     * 通过企业UU，物料名称、规格、品牌（非标准）
     *
     * @param enUU
     * @param titile
     * @param spec
     * @param brand
     * @return
     */
    public List<Product> findByTitleAndCmpCodeAndBrandAndEnUU(String title, String cmpcode, String brand, Long enUU);

	/**
	 * 通过企业UU号查询物料上传数量
	 *
	 * @param enUU 企业UU
	 * @return
	 */
	Long countByEnUU(Long enUU);

}
