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

import cn.com.ctop.kuaishou.modules.batch.entity.vo.KuaiShouVideoGetVo;
import cn.com.ctop.kuaishou.modules.report.entity.EtlKuaishouAccountMaterialReportDaily;
import cn.com.ctop.kuaishou.modules.report.entity.KuaiShouReportDailyMaterial;
import cn.com.ctop.kuaishou.modules.report.entity.KuaiShouReportDailyMaterialVo;
import cn.com.ctop.kuaishou.modules.report.entity.VideoGetvo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 素材
 *
 * @author: jeecg-boot
 * @date: 2020-09-09
 * @cersion: V1.0
 */
public interface KuaiShouReportDailyMaterialMapper extends BaseMapper<KuaiShouReportDailyMaterial> {
    void loadMaterialDailyReport(@Param("accountId") Long accountId, @Param("localPath") String localPath);

    List<KuaiShouReportDailyMaterialVo> getPhotoList(@Param("accountId") Long accountId, @Param("statDate") String statDate);

    VideoGetvo getVideoGetByPhotoId(@Param("photoId") Long photoId);

    List<KuaiShouReportDailyMaterialVo> getPhotoListByDate(@Param("statDate") String statDate);

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

    void batchReplace(@Param("addList") List<KuaiShouReportDailyMaterial> addList);

    KuaiShouReportDailyMaterial getEtlDataByParams(@Param("signature") String signature, @Param("date") String date, @Param("projectId") Long projectId);

    List<KuaiShouReportDailyMaterial> getSignatureByDate(@Param("date") String date);

    List<KuaiShouReportDailyMaterial> getSignatureByDateGroupByProjectId(@Param("date") String date);

    List<JSONObject> getVideoInfoByList(@Param("photoIdList") List<Long> photoIdList);

    Long labelMaterialListTotal(@Param("companyId") String companyId, @Param("realname") String realname, @Param("roleCode") String roleCode, @Param("startTime") String startTime, @Param("endTime") String endTime);

    List<JSONObject> labelMaterialList(@Param("companyId") String companyId, @Param("realname") String realname, @Param("roleCode") String roleCode, @Param("startTime") String startTime, @Param("endTime") String endTime);

    JSONObject labelMaterialAll(@Param("companyId") String companyId, @Param("realname") String realname, @Param("roleCode") String roleCode, @Param("startTime") String startTime, @Param("endTime") String endTime);

    List<EtlKuaishouAccountMaterialReportDaily> getReportList(@Param("accountId") Long accountId,@Param("statDate") String statDate,@Param("projectId") Long projectId, @Param("projectName") String projectName);

    List<KuaiShouVideoGetVo> getBatchV2VideoList(Map<String, Object> requestMap);

    List<KuaiShouVideoGetVo> getYesterdayVideo(Map<String, Object> requestMap);

    List<KuaiShouVideoGetVo> get7dayVideo(Map<String, Object> requestMap);

    List<KuaiShouVideoGetVo> get14dayVideo(Map<String, Object> requestMap);

    List<KuaiShouVideoGetVo> get30dayVideo(Map<String, Object> requestMap);

    List<KuaiShouVideoGetVo> get3MonthVideo(Map<String, Object> requestMap);
}
