package com.ylcm.sys.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ylcm.sys.domain.AdSpecial;
import com.ylcm.sys.form.AdSpecialAnalysisBenchmarkingQueryForm;
import com.ylcm.sys.form.AdSpecialAnalysisQueryForm;
import com.ylcm.sys.vo.AdSpecialAnalysisBenchmarkingVO;
import com.ylcm.sys.vo.AdSpecialAnalysisVO;
import com.ylcm.sys.vo.AdSpecialDistVO;
import com.ylcm.sys.vo.AdSpecialTopVO;

/**
 * <p>
 * 专题管理 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2020-07-01
 */
public interface AdSpecialMapper extends BaseMapper<AdSpecial> {

	IPage<AdSpecialAnalysisVO> getPage(IPage<AdSpecial> page, @Param("queryBean") AdSpecialAnalysisQueryForm analysisQueryForm);
	/**
	 *    全部---> 合并 产品、栏目
	 * @param page
	 * @param analysisQueryForm
	 * @return
	 */
	IPage<AdSpecialAnalysisVO> getALLPage(IPage<AdSpecial> page, @Param("queryBean") AdSpecialAnalysisQueryForm analysisQueryForm);
	/**
	 * 产品专题广告投放排名
	 * @param type
	 * @return
	 */
	List<AdSpecialTopVO> specialTop(@Param("type") Integer type, @Param("startDate") String startDate, @Param("endDate") String endDate);
	
	/**
	 * 投放媒体分布
	 * @param type
	 * @param productName
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	List<AdSpecialDistVO> mediaDist(@Param("type") Integer type,@Param("productName") String productName, @Param("startDate") String startDate, @Param("endDate") String endDate);

	/**
	 * 投放电视剧分布
	 * @param type
	 * @param productName
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	List<AdSpecialDistVO> tvDist(@Param("type") Integer type,@Param("productName") String productName, @Param("startDate") String startDate, @Param("endDate") String endDate);

	/**
	 * 投放时长，次数
	 * @param tvName 剧名
	 * @param startDate 起止时间
	 * @param endDate 起止时间
	 */
	List<AdSpecialDistVO> tvDistByTvName(@Param("tvName") String tvName, @Param("startDate") String startDate, @Param("endDate") String endDate);

	/**
	 * 二级行业广告投放品牌分布
	 * @param type
	 * @param secondInd
	 * @param launch
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	List<AdSpecialDistVO> secondIndDist(@Param("type") Integer type, @Param("launch") Integer launch, @Param("secondInd") String secondInd, @Param("startDate") String startDate, @Param("endDate") String endDate);
	
	/**
	 *    对标分析
	 * @param AdSpecialAnalysisBenchmarkingQueryForm 
	 * @return
	 */
	IPage<AdSpecialAnalysisBenchmarkingVO> benchmarkingPage (IPage<AdSpecialAnalysisBenchmarkingQueryForm> page,@Param("queryBean") AdSpecialAnalysisBenchmarkingQueryForm queryForm); 

	/**
	 * 同步专题栏目/产品信息
	 * @param type
	 * @param productName
	 * @param brandName
	 * @param oldProductName
	 * @param oldBrandName
	 * @return
	 */
	int upSyscAdSpecialProductName(@Param("type") Integer type, @Param("productName") String productName
			, @Param("brandName") String brandName, @Param("oldProductName") String oldProductName ,@Param("oldBrandName") String oldBrandName);
	
}
