package cn.com.ctop.report.mapper;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BytedanceAccountReportDailyDwMapper {
    List<JSONObject> getReportByParams(@Param(value = "filedAll") String filedAll, @Param(value = "endDate") Long endDate, @Param(value = "startDate") Long startDate, @Param(value = "accountIds") JSONArray accounts, @Param(value = "target") String target, @Param(value = "order") String order, @Param(value = "hasGroupBy") int hasGroupBy, @Param(value = "groupBy") String groupBy);

    JSONObject getTotalCharge(Map<String, Object> paramsMap);

    Long getYesterdayUploadNewMaterialCount(Map<String, Object> paramsMap);

    List<JSONObject> getHourCost(@Param("projectId") Long projectId, @Param("startTime") Integer startTime);

    List<JSONObject> getDataCost(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime);

    Long getProjectToDayReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);

    List<JSONObject> getProjectToDayReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);

    Long getProjectMoreDaysReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);

    List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
}
