package org.jeecg.ctop.material.mapper;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.ctop.material.entity.AccountTrendPojo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Mapper
public interface BossDataExhibitionMapper {

    /**
     * 素材产出占比 快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialProduceRateKuaiShou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材产出占比 头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialProduceRateBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 分公司素材消耗 头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getCompanyMeterialConsumeBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 分公司素材消耗 快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getCompanyMeterialConsumeKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材使用率===头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialUseRateBytedanc(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材使用率===快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialUseRateKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材爆款率===头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialFaddishRateBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材爆款率===快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialFaddishRateKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材创新率===头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialInnovateRateBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 素材相关===素材创新率===快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMeterialInnovateRateKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 分公司投放数据-账户-头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getCompanyAccountDataBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 分公司投放数据-账户-快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getCompanyAccountDataKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 分媒体投放数据-账户维度
     * @param firstDay 本月第一天
     * @return
     */
    List<Map<String,Object>> getMediaTypeAccountData(@Param("firstDay") Integer firstDay);

    /**
     * 分媒体公司消耗-账户维度-分日数据 -折线图-头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<AccountTrendPojo> getMediaTypeAccountTrendBytedance(@Param("startTime") Integer startTime, @Param("endTime") Integer endTime);

    /**
     * 分媒体公司消耗-账户维度-分日数据 -折线图-快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<AccountTrendPojo> getMediaTypeAccountTrendKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 项目消耗排行 top10 头条
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMediaTypeProjectCostBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 项目消耗排行 top10 头条 基建数
     * @param projectId
     * @param startTime
     * @param endTime
     * @return
     */
    Map<String,Object> getMediaTypeProjectCostBytedanceBase(@Param("projectId") String projectId,@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 项目消耗排行 top10 快手
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,Object>> getMediaTypeProjectCostKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);

    /**
     * 项目消耗排行 top10 快手 基建数
     * @param projectId
     * @param startTime
     * @param endTime
     * @return
     */
    Map<String,Object> getMediaTypeProjectCostKuaishouBase(@Param("projectId") String projectId,@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
}
