package com.tzld.piaoquan.api.dao.mapper.contentplatform.ext;

import com.tzld.piaoquan.api.model.param.contentplatform.GzhDatastatListParam;
import com.tzld.piaoquan.api.model.param.contentplatform.QwDatastatListParam;
import com.tzld.piaoquan.api.model.po.contentplatform.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ContentPlatformDataStatMapperExt {

    int getGzhAccountDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhDataStat> getGzhAccountDatastatList(@Param("param") GzhDatastatListParam param,
                                                               @Param("createAccountId") Long createAccountId,
                                                               @Param("offset") int offset,
                                                               @Param("pageSize") Integer pageSize);

    int getGzhAccountVideoDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhVideoDataStat> getGzhAccountVideoDatastatList(@Param("param") GzhDatastatListParam param,
                                                                         @Param("createAccountId") Long createAccountId,
                                                                         @Param("offset") int offset,
                                                                         @Param("pageSize") Integer pageSize);

    Integer getGzhTotalDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhDataStatTotal> getGzhTotalDatastatList(@Param("param") GzhDatastatListParam param,
                                                                  @Param("createAccountId") Long createAccountId,
                                                                  @Param("offset") int offset,
                                                                  @Param("pageSize") Integer pageSize);

    int getFwhAccountDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhDataStat> getFwhAccountDatastatList(@Param("param") GzhDatastatListParam param,
                                                               @Param("createAccountId") Long createAccountId,
                                                               @Param("offset") int offset,
                                                               @Param("pageSize") Integer pageSize);

    Integer getFwhTotalDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformFwhDataStatTotal> getFwhTotalDatastatList(@Param("param") GzhDatastatListParam param,
                                                                  @Param("createAccountId") Long createAccountId,
                                                                  @Param("offset") int offset,
                                                                  @Param("pageSize") Integer pageSize);

    int getGzhPushTotalDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhPushDataStatTotal> getGzhPushTotalDatastatList(@Param("param") GzhDatastatListParam param,
                                                                      @Param("createAccountId") Long createAccountId,
                                                                      @Param("offset") int offset,
                                                                      @Param("pageSize") Integer pageSize);

    int getGzhPushAccountDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformGzhDataStat> getGzhPushAccountDatastatList(@Param("param") GzhDatastatListParam param,
                                                                  @Param("createAccountId") Long createAccountId,
                                                                  @Param("offset") int offset,
                                                                  @Param("pageSize") Integer pageSize);

    Integer getQwRootSourceIdDatastatCount(@Param("param") QwDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformQwDataStat> getQwRootSourceIdDatastatList(@Param("param") QwDatastatListParam param,
                                                                  @Param("createAccountId") Long createAccountId,
                                                                  @Param("offset") int offset,
                                                                  @Param("pageSize") Integer pageSize);

    Integer getQwTotalDatastatCount(@Param("param") QwDatastatListParam param, @Param("channel") String channel);

    List<ContentPlatformQwDataStatTotal> getQwTotalDatastatList(@Param("param") QwDatastatListParam param,
                                                                @Param("channel") String channel,
                                                                @Param("offset") int offset,
                                                                @Param("pageSize") Integer pageSize);

    Integer getQwReplyTotalDatastatCount(@Param("param") QwDatastatListParam param, @Param("channel") String channel);

    List<ContentPlatformQwDataStatReplyTotal> getQwReplyTotalDatastatList(@Param("param") QwDatastatListParam param,
                                                                          @Param("channel") String channel,
                                                                          @Param("offset") int offset,
                                                                          @Param("pageSize") Integer pageSize);

    Integer getQwSubChannelDatastatCount(@Param("param") QwDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformQwDataStatSubChannel> getQwSubChannelDatastatList(@Param("param") QwDatastatListParam param,
                                                                          @Param("createAccountId") Long createAccountId,
                                                                          @Param("offset") int offset,
                                                                          @Param("pageSize") Integer pageSize);

    Integer getQwSceneDatastatCount(@Param("param") QwDatastatListParam param,
                                    @Param("scene") Integer scene,
                                    @Param("createAccountId") Long createAccountId);

    List<ContentPlatformQwDataStat> getQwSceneDatastatList(@Param("param") QwDatastatListParam param,
                                                           @Param("scene") Integer scene,
                                                           @Param("createAccountId") Long createAccountId,
                                                           @Param("offset") int offset,
                                                           @Param("pageSize") Integer pageSize);

    Integer getQwReplyDatastatCount(@Param("param") QwDatastatListParam param, @Param("createAccountId") Long createAccountId);

    List<ContentPlatformQwDataStat> getReplyDatastatList(@Param("param") QwDatastatListParam param,
                                                         @Param("createAccountId") Long createAccountId,
                                                         @Param("offset") int offset,
                                                         @Param("pageSize") Integer pageSize);

    void batchInsertGzhDatastat(@Param("records") List<ContentPlatformGzhDataStat> saveList);

    void batchInsertGzhVideoDatastat(@Param("records") List<ContentPlatformGzhVideoDataStat> saveList);

    void batchInsertGzhDatastatTotal(@Param("records") List<ContentPlatformGzhDataStatTotal> saveList);

    void batchInsertFwhDatastat(@Param("records") List<ContentPlatformFwhDataStat> saveList);

    void batchInsertFwhDatastatTotal(@Param("records") List<ContentPlatformFwhDataStatTotal> saveList);

    void batchInsertQwDatastat(@Param("records") List<ContentPlatformQwDataStat> saveList);

    void batchInsertQwDatastatTotal(@Param("records") List<ContentPlatformQwDataStatTotal> saveList);

    void batchInsertQwDatastatReplyTotal(@Param("records") List<ContentPlatformQwDataStatReplyTotal> saveList);

    void batchInsertQwDatastatSubChannel(@Param("records") List<ContentPlatformQwDataStatSubChannel> saveList);

    void batchInsertGzhPushDatastat(@Param("records") List<ContentPlatformGzhPushDataStat> saveList);

    void batchInsertGzhPushDatastatTotal(@Param("records") List<ContentPlatformGzhPushDataStatTotal> saveList);

    List<ContentPlatformQwDataStatTotal> getQwTotalDatastatScoreList(@Param("dt") String dt, @Param("channels") List<String> channels);

    List<ContentPlatformQwDataStatReplyTotal> getQwTotalDatastatReplyScoreList(@Param("dt") String dt, @Param("channels") List<String> channels);

    void deleteQwDatastat(@Param("dt") String dt);

    void deleteQwDatastatTotal(@Param("dt") String dt);

    void deleteQwDatastatReplyTotal(@Param("dt") String dt);

    void deleteQwDatastatSubChannel(@Param("dt") String dt);

    void deleteGzhDatastat(@Param("dt") String dt);

    void deleteGzhDatastatTotal(@Param("dt") String dt);

    void deleteFwhDatastat(@Param("dt") String dt);

    void deleteFwhDatastatTotal(@Param("dt") String dt);

    void deleteGzhVideoDatastat(@Param("dt") String dt);

    void deleteGzhPushDatastat(@Param("dt") String dt);

    void deleteGzhPushDatastatTotal(@Param("dt") String dt);
}