package cn.com.ctop.toutiao.modules.report.mapper;


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

import java.util.List;

/**
 * @author yumeng
 * 2019年11月12日10:04:00
 */
public interface BytedanceReportMapper {

    /**
     * 今日消耗
     *
     * @param date
     * @return
     */
    JSONObject selectDayReport(@Param("date") String date);


    /**
     * 查询明细
     *
     * @param date
     * @return
     */
    List<JSONObject> selectReportDetail(@Param("date") String date);

    /**
     * 根据开始、结束日期查询消耗
     *
     * @param anotherDay
     * @param endDate
     * @return
     */
    JSONObject selectByDate(@Param("startDate") String anotherDay, @Param("endDate") String endDate);

    /**
     * 查询全部消耗 包括今日消耗
     *
     * @return
     */
    JSONObject selectAllAccount();


    /**
     * 根据日期 小时 查询信息
     *
     * @param date
     * @param statHour
     * @return
     */
    JSONObject selectDayHourlyByHourAndDate(@Param("date") String date, @Param("statHour") String statHour);

    /**
     * 根据日期 最大小时小时 查询信息
     *
     * @param date
     * @param statHour
     * @return
     */
    JSONObject selectSumDayHourlyByHourAndDate(@Param("date") String date, @Param("statHour") String statHour);


    /**
     * 查询 七天汇总数据
     *
     * @param anotherDay
     * @param endDate
     * @return
     */
    List<JSONObject> selectDayDetailByDate(@Param("startDate") String anotherDay, @Param("endDate") String endDate);

    /**
     * 按月 明细
     *
     * @param anotherDay
     * @param endDate
     * @return
     */
    List<JSONObject> selectDayDetailByMonth(@Param("startDate") String anotherDay, @Param("endDate") String endDate);

    /**
     * 查询所有按月统计数据
     *
     * @return
     */
    List<JSONObject> selectAllDayDetailByMonth();


    /**
     * 根据月份 查询
     *
     * @param date
     * @return
     */
    JSONObject selectMonthReportByDate(@Param("date") String date);


    /**
     * 根据月份查询按日明细
     *
     * @param date
     * @return
     */
    List<JSONObject> selectDayDetailsByMonth(@Param("date") String date);

    /**
     * 根据日期查询汇总数据
     *
     * @param statDate
     * @return
     */
    JSONObject selectDayDailyByDate(@Param("statDate") String statDate);


    /**
     * 按天汇总数据
     *
     * @param date
     * @return
     */
    JSONObject selectDayReportByDate(@Param("date") String date);

    /**
     * 根据日期获取 分时详情数据
     *
     * @param date
     * @return
     */
    List<JSONObject> selectHourlyDetailsByDate(@Param("date") String date);
}
