package cn.com.ctop.report.mapper;

import cn.com.ctop.report.entity.AccountAttributionInfo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AccountAttributionInfoMapper extends BaseMapper<AccountAttributionInfo> {
    void reloadData();

    List<AccountAttributionInfo> selectByParams(@Param(value = "mediaList") List<Integer> mediaList,@Param(value = "orgCode")String orgCode,@Param(value = "projectIds") List<Long>projectIds,@Param(value = "userIds") List<String>userIds);

    List<AccountAttributionInfo> selectDesignAccuntsByParams(@Param(value = "mediaList")List<Integer> mediaList, @Param(value = "designUserId")String designUserId);

    //今日汇总数据
    JSONObject queryTodaySumReportBy(@Param("statDate") Long statDate, @Param("accountIds") JSONArray accountIds);

    //今日汇总数据
    JSONObject queryBytedanceTodaySumReportBy(@Param("statDate") Long statDate, @Param("accountIds") JSONArray accountIds);


    //根据小时区间查询今日汇总数据
    JSONObject queryTodaySumByHour(@Param("statDate") Long statDate, @Param("hour") int hour, @Param("accountIds") JSONArray accountIds);

    //根据小时区间查询今日汇总数据
    JSONObject queryBytedanceTodaySumByHour(@Param("statDate") Long statDate, @Param("hour") int hour, @Param("accountIds") JSONArray accountIds);


    //根据开始、结束时间 查询汇总数据
    JSONObject querySumByStartEndDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

    //根据开始、结束时间 查询汇总数据
    JSONObject queryBuytedanceSumByStartEndDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

    //今日明细数据
    List<JSONObject> queryTodayDetailReportBy(@Param("filed") String filed, @Param("statDate") Long statDate, @Param("accountIds") JSONArray accountIds);


    //今日明细数据
    List<JSONObject> queryBytedanceTodayDetailReportBy(@Param("filed") String filed, @Param("statDate") Long statDate, @Param("accountIds") JSONArray accountIds);

    //按月分组查询明细数据
    List<JSONObject> queryDetailGroupMonthByDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

    //按月分组查询明细数据
    List<JSONObject> queryBytedanceDetailGroupMonthByDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

    //根据开始、结束时间 查询明细数据
    List<JSONObject> queryDetailByStartEndDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

    //根据开始、结束时间 查询明细数据
    List<JSONObject> queryBytedanceDetailByStartEndDate(@Param("endDate") Long endDate, @Param("startDate") Long startDate, @Param("accountIds") JSONArray accountIds);

}
