package cn.com.ctop.kuaishou.modules.batch.service;

import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
import cn.com.ctop.kuaishou.modules.batch.entity.vo.KuaiShouVideoGetVo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * @Description: 快手-获取视频接口
 * @Author: jeecg-boot
 * @Date: 2019-07-25
 * @Version: V1.0
 */


public interface IKuaiShouVideoGetService extends IService<KuaiShouVideoGet> {
    void replaceBatch(List<KuaiShouVideoGet> videoGets);

    void getKeyFrame(String token, Long accountId, String md5, String photoId);

    List<KuaiShouVideoGetVo> getVideoList(Map<String, Object> stringObjectMap);

    List<KuaiShouVideoGet> getNewVideoByAccountId(Long accountId, Integer videoAiStatus);

    List<KuaiShouVideoGet> getNewVideoDescDate(Long accountId, Integer newVideoCnt);

    List<KuaiShouVideoGet> getNewVideoBetweenTime(Long accountId, String startTime, String endTime, Integer channelType, String appVersion, Integer videoCnt);

    List<JSONObject> getVideoListByMap(Map<String, Object> requestMap);

    List<KuaiShouVideoGet> selectPhotoIdsByAccountId(Long accountId);

    KuaiShouVideoGet getVideoByPhotoId(String photo_id);

    void etlVideoBaseInfoByStaDate(String statDate);

    List<JSONObject> getVideoInfoAndImageList(List<JSONObject> materialList);

    List<KuaiShouVideoGet> getVideoInfoGroupBySignature(String date);

    Integer getTotalCountByAccount(Long accountId);

    Integer getTotalCountByAccountAndStatDate(Long accountId, String statDate);

    Integer getEffectiveCountByAccountId(Long accountId);

    Integer getHotMoneyCountByAccountId(Long accountId);

    List<KuaiShouVideoGet> getZeroVideoByParams(Long accountId, String startTime, String endTime, Long videoCnt, String appVersion, Integer channelType, Integer relativeCnt);

    List<KuaiShouVideoGet> getHistoryTopVideoByParams(Long accountId, String startTime, String endTime, Long videoCnt, String appVersion, Integer channelType);

    void getSuZaoList(String token, Long accountId, int page, String startDate);

    List<JSONObject> getAccountIds();

    List<String> queryPhotoIdsByProjectAndMd5(Long projectId, String signature, JSONArray accountId);

    JSONObject getVideoByPhotoIdAndAccountId(Long accountId, String photoId);

    List<JSONObject> getVideoListByDate(Date startDate, Date endDate);

    List<String> getDateList();

    List<KuaiShouVideoGet> getVideoListByPhotoIds(JSONArray photoIds,Long accountId);
}
