package com.ylcm.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ylcm.sys.domain.AdTheatre;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ylcm.sys.domain.AdTheatreTv;
import com.ylcm.sys.form.AdTheatreForm;
import com.ylcm.sys.vo.AdTheatreVO;

import java.util.List;

/**
 * <p>
 * 剧场管理表 服务类
 * </p>
 *
 * @author admin
 * @since 2020-07-01
 */
public interface AdTheatreService extends IService<AdTheatre> {

    IPage<AdTheatreVO> page(IPage<AdTheatre> page, AdTheatreForm form);

    /**
     * 根据组合键判断是否已存在
     */
    AdTheatre getUniqu(AdTheatre form);

    /**
     * 批量添加
     * @param list 剧场数据
     * @param tvList 电视剧收视数据
     * @return 执行结果：errorMsg or ok
     */
    String batchAdd(List<AdTheatre> list, List<AdTheatreTv> tvList) throws Exception;

    String deleteById(Integer id);

    void saveOrUpd(AdTheatre adTheatre);
    
    /**
     * 栏目或者产品名修改后 同步剧场
	 * @param type
	 * @param oldName 旧的栏目/产品名
	 * @param newName 新的栏目/产品名
	 * @param newBrandName 新的内容/品牌 
     */
    void updateProductName(Integer type, String oldName, String newName);
    
    /**
     * 电视剧修改后，同步剧场
     * @param oldName
     * @param newName
     * @param newName
     * @param newName
     */
    void updateTvName(String oldName, String newName, String newFirstTheme, String oldFirstTheme, String newSecondTheme);
    
     /**
      * 媒体修改后，同步剧场
      * @param oldName
      * @param newName
      */
    void updateMediaName(String oldName, String newName);

    /**
     * 统计集数
     * @param name
     * @param mediaName
     * @param startDate
     * @param endDate
     * @return
     */
    int countTvNum(String name, String mediaName, String startDate, String endDate);

    /**
     * 统计题材总数
     * @param firstTheme
     * @param timeQuery
     * @param startDate
     * @param endDate
     * @return
     */
    int countThemeNum(String firstTheme, String mediaName, String timeQuery, String startDate, String endDate);
}
