Explorar o código

项目自动投放策略,素材筛选添加可用时间限制

zhaoxian %!s(int64=3) %!d(string=hai) anos
pai
achega
53154a6149

+ 25 - 0
jeecg-boot-base-common/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -1641,6 +1641,31 @@ public class DateUtils extends PropertyEditorSupport {
 
         return days;
     }
+
+    /**
+     * 判断time是否在from,to之内
+     *
+     * @param time 指定日期
+     * @param from 开始日期
+     * @param to   结束日期
+     * @throws
+     */
+    public static boolean checkTimeLimit(Date time, Date from, Date to) {
+        Calendar date = Calendar.getInstance();
+        date.setTime(time);
+
+        Calendar after = Calendar.getInstance();
+        after.setTime(from);
+
+        Calendar before = Calendar.getInstance();
+        before.setTime(to);
+
+        if (date.after(after) && date.before(before)) {
+            return true;
+        } else {
+            return false;
+        }
+    }
 }
 
 

+ 54 - 22
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouProjectCreateCreativeServiceImpl.java

@@ -46,6 +46,7 @@ import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -84,6 +85,8 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
     @Autowired
     private IKuaiShouVideoGetService videoGetService;
     @Autowired
+    private IKuaishouProjectVideoGetService projectVideoGetService;
+    @Autowired
     private IMaterialCutFrameService materialCutFrameService;
     @Autowired
     private IKuaiShouImageGetService imageGetService;
@@ -151,10 +154,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
             //创意制作方式,0-不限,4-自定义,7-程序化创意
             if (strategy.getUnitType() == 4) {
                 this.autoCreateCreative(strategy, 1, customUnitCnt, 1);
-            } else if (strategy.getUnitType() == 7) {
-                this.autoCreateProgramCreative(strategy, 1, programUnitCnt, 1);
-            } else {
-                this.autoCreateCreative(strategy, 1, customUnitCnt, 1);
+            } else{
                 this.autoCreateProgramCreative(strategy, 1, programUnitCnt, 1);
             }
         } catch (Exception e) {
@@ -184,20 +184,20 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
         int remindCnt = unitNum - unitCreateCnt;
         int concat = strategy.getSourceMaterial().contains("3") ? 3 : 0;
         if (concat != 0 && remindCnt >= 1) {
-            log.info("{}组创建不足,剩余需要创建个数{},使用历史遗漏素材创建", strategy.getAccountId(), remindCnt);
+            log.info("{}组创建不足,剩余需要创建个数{},即将使用历史遗漏素材创建...", strategy.getAccountId(), remindCnt);
             //优先创建历史遗漏素材
             remindCnt = this.autoCreateCreative(strategy, 3, remindCnt, 2);
         }
         concat = strategy.getSourceMaterial().contains("2") ? 2 : 0;
         if (concat != 0 && remindCnt >= 1) {
-            log.info("{}组创建不足,剩余需要创建个数{},使用高质量素材创建", strategy.getAccountId(), remindCnt);
+            log.info("{}组创建不足,剩余需要创建个数{},正在使用高质量素材创建...", strategy.getAccountId(), remindCnt);
             //高质量素材
             remindCnt = this.autoCreateCreative(strategy, 2, remindCnt, 2);
         }
         concat = strategy.getSourceMaterial().contains("4") ? 4 : 0;
         if (concat != 0 && remindCnt >= 1) {
             //历史打捞素材
-            log.info("{}组创建不足,剩余需要创建个数{},使用历史打捞素材创建", strategy.getAccountId(), remindCnt);
+            log.info("{}组创建不足,剩余需要创建个数{},将要使用历史打捞素材创建...", strategy.getAccountId(), remindCnt);
             this.autoCreateCreative(strategy, 4, remindCnt, 2);
         }
     }
@@ -236,7 +236,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
     @Override
     public void projectProgramAutomaticCreates(KuaishouProjectStrategy strategy, Integer type) {
         try {
-            Integer programUnitCnt = strategy.getCustomUnitCnt();
+            Integer programUnitCnt = strategy.getProgramUnitCnt();
             if (Check.isNull(programUnitCnt)) {
                 Integer imageCnt = strategy.getImageCnt();
                 if (imageCnt <= 5) {
@@ -245,8 +245,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
                     programUnitCnt = 300 / imageCnt;
                 }
             }
-            log.info("{}可创建组总数:{}", strategy.getAccountId(), programUnitCnt);
-            this.autoCreateCreative(strategy, type, programUnitCnt, 2);
+            this.autoCreateProgramCreative(strategy, type, programUnitCnt, 2);
         } catch (Exception e) {
             log.error("项目自动创建程序化上新异常", e);
         }
@@ -285,10 +284,25 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
             if (null != singleAppid && singleAppid == 1) {
                 //单一应用
                 String replaceString = KuaishouProjectCreativeMatTypeEnum.getNameByType(strategy.getUnitType().toString() + createType.toString());
-                List<KuaiShouVideoGet> newVideos = getVideosByParams(strategy, startTime, endTime, null, createType, Long.valueOf(videoCnt));
-                if (null == newVideos || newVideos.isEmpty()) {
-                    log.info("账户:{},{} 到 {} 未获取到相应素材({})", accountId, startTime, endTime, replaceString);
-//                    insertAccountOperationRecord(strategy, "账户在" + startTime + "~" + endTime + "时间段内未获取到相应素材(" + replaceString + ")", operationType, 0);
+                List<KuaiShouVideoGet> newVideoList = getVideosByParams(strategy, startTime, endTime, null, createType, Long.valueOf(videoCnt));
+                if (null == newVideoList || newVideoList.isEmpty()) {
+                    log.info("自定义创建(账户:{}),{} 到 {} 未获取到相应素材({})", accountId, startTime, endTime, replaceString);
+                    return videoCnt;
+                }
+                //根据素材可用日期过滤
+                List<KuaiShouVideoGet> newVideos = new ArrayList<>();
+                for (KuaiShouVideoGet newVideo : newVideoList) {
+                    if (!Check.isNull(newVideo.getPutEndTime()) && !Check.isNull(newVideo.getPutStartTime())) {
+                        boolean b = DateUtils.checkTimeLimit(new Date(), newVideo.getPutStartTime(), newVideo.getPutEndTime());
+                        if (b) {
+                            newVideos.add(newVideo);
+                        }
+                    } else {
+                        newVideos.add(newVideo);
+                    }
+                }
+                if (newVideos.size() == 0) {
+                    log.info("自定义创建(账户:{}),{} 到 {} 未获取到达标素材({})", accountId, startTime, endTime, replaceString);
                     return videoCnt;
                 }
                 Long appId = null;
@@ -362,19 +376,19 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
                             unitLevelOperationRecord.setMessage(msg);
                             if (unitCode == 0) {
                                 Long unitId = (Long) unitCreateResult.get("unitId");
-                                log.info("(accountId:{})创建自定义组({}).....success....",accountId,unitId);
+                                log.info("(accountId:{})创建自定义组({}).....success....", accountId, unitId);
                                 unitLevelOperationRecord.setUnitId(unitId);
                                 unitLevelOperationRecordService.saveOrUpdate(unitLevelOperationRecord);
                                 videoCnt--;
                                 JSONObject creativeParams = creativeParams(token, unitId, videoItem, strategy);
                                 createCreativeByImage(cutFrameList, token, creativeParams, newCampaignId, unitId, videoItem, strategy.getImageCnt(), strategy, strategyUuid, null);
                             } else {
-                                log.info("(accountId:{})创建自定义组.....fail....{}",accountId, msg);
+                                log.info("(accountId:{})创建自定义组.....fail....{}", accountId, msg);
                                 unitLevelOperationRecordService.saveOrUpdate(unitLevelOperationRecord);
                                 redisUtil.set(redisKey, redisValue - 1, 100000L);
                             }
                         } else {
-                            log.info("(accountId:{})创建自定义组.....fail....{}",accountId, msg);
+                            log.info("(accountId:{})创建自定义组.....fail....{}", accountId, msg);
                             unitLevelOperationRecord.setStatus(unitCode);
                             unitLevelOperationRecord.setMessage(msg);
                             unitLevelOperationRecordService.saveOrUpdate(unitLevelOperationRecord);
@@ -436,11 +450,29 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
             if (null != singleAppid && singleAppid == 1) {
                 String replaceString = KuaishouProjectCreativeMatTypeEnum.getNameByType(strategy.getUnitType().toString() + createType.toString());
                 //单一应用
-                List<KuaiShouVideoGet> allVideos = getVideosByParams(strategy, startTime, endTime, null, createType, Long.valueOf(videoCnt));
-                if (null == allVideos) {
+                List<KuaiShouVideoGet> allVideoList = getVideosByParams(strategy, startTime, endTime, null, createType, Long.valueOf(videoCnt));
+                if (null == allVideoList) {
+                    log.info("程序化账户:{},{} 到 {} 时间段内未获取到相应素材({})", accountId, startTime, endTime, replaceString);
 //                    insertAccountOperationRecord(strategy, "账户在" + startTime + "~" + endTime + "时间段内未获取到相应素材(" + replaceString + ")", operationType, 0);
                     return;
                 }
+                //根据素材可用日期过滤
+                List<KuaiShouVideoGet> allVideos = new ArrayList<>();
+                for (KuaiShouVideoGet newVideo : allVideoList) {
+                    if (!Check.isNull(newVideo.getPutEndTime()) && !Check.isNull(newVideo.getPutStartTime())) {
+                        boolean b = DateUtils.checkTimeLimit(new Date(), newVideo.getPutStartTime(), newVideo.getPutEndTime());
+                        if (b) {
+                            allVideos.add(newVideo);
+                        }
+                    } else {
+                        allVideos.add(newVideo);
+                    }
+                }
+                if (allVideos.size() == 0) {
+                    log.info("程序化账户:{},{} 到 {} 未获取到达标素材({})", accountId, startTime, endTime, replaceString);
+                    return;
+                }
+
                 Long appId = null;
                 //appId,当计划类型为2时必填
                 if (strategy.getCampaignType() == 2 || strategy.getCampaignType() == 7) {
@@ -698,7 +730,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
 
     private List<KuaiShouVideoGet> getNewVideoListByParams(KuaishouProjectStrategy strategy, String startTime, String endTime, AiKuaiShouAppInfo appInfo) {
         if (null == appInfo) {
-            return videoGetService.getNewVideoBetweenTime(strategy.getAccountId(), startTime, endTime, strategy.getChannelType(), null, null);
+            return projectVideoGetService.getNewVideoBetweenTime(strategy.getAccountId(), startTime, endTime, strategy.getChannelType());
         } else {
             //查询通用素材
             List<KuaiShouVideoGet> generalVideos = new ArrayList<>();
@@ -729,7 +761,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
         if (null != strategy.getChannelType() && strategy.getChannelType() != 2) {
             channelType = strategy.getChannelType();
         }
-        return videoGetService.getZeroVideoByParams(strategy.getAccountId(), startTime, endTime, videoCnt, appVersion, channelType, relativeCnt);
+        return projectVideoGetService.getZeroVideoByParams(strategy.getAccountId(), startTime, endTime, videoCnt, appVersion, channelType, relativeCnt);
     }
 
     private List<KuaiShouVideoGet> getHistoryTopVideoListByParams(KuaishouProjectStrategy strategy, String startTime, String endTime, AiKuaiShouAppInfo appInfo, Long videoCnt) {
@@ -738,7 +770,7 @@ public class AiKuaishouProjectCreateCreativeServiceImpl implements IAiKuaishouPr
         if (null != strategy.getChannelType() && strategy.getChannelType() != 2) {
             channelType = strategy.getChannelType();
         }
-        return videoGetService.getHistoryTopVideoByParams(strategy.getAccountId(), startTime, endTime, videoCnt, appVersion, channelType);
+        return projectVideoGetService.getHistoryTopVideoByParams(strategy.getAccountId(), startTime, endTime, videoCnt, appVersion, channelType);
     }
 
     /**

+ 15 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouVideoGet.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.kuaishou.modules.batch.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -44,13 +45,24 @@ public class KuaiShouVideoGet {
     private Integer materialType;
     private Integer channelType;
     private Integer status;
-    /**素造素材标签*/
+    /**
+     * 素造素材标签
+     */
     private String materialTag;
-    /**素造供应商id*/
+    /**
+     * 素造供应商id
+     */
     private Long supplierAccountId;
-    /**供应商名称*/
+    /**
+     * 供应商名称
+     */
     private String supplierAccountName;
 
+    @TableField(exist = false)
+    private Date putStartTime;
+    @TableField(exist = false)
+    private Date putEndTime;
+
     /**
      * 创建时间
      */

+ 7 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouProjectVideoGetMapper.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.kuaishou.modules.batch.mapper;
 
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -27,10 +28,15 @@ public interface KuaishouProjectVideoGetMapper extends BaseMapper<KuaishouProjec
 
     JSONObject getVideoTotalNumber(Map<String, Object> paramsMap);
 
-    JSONObject getVideoDetails(@Param("signature") String signature,@Param("id") String id);
+    JSONObject getVideoDetails(@Param("signature") String signature, @Param("id") String id);
 
     Long getAccountVideosTotal(@Param("signature") String signature, @Param("projectId") Long projectId);
 
     List<JSONObject> getAccountVideos(@Param("signature") String signature, @Param("projectId") Long projectId);
 
+    List<KuaiShouVideoGet> getNewVideoBetweenTime(@Param("accountId") Long accountId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("channelType") Integer channelType);
+
+    List<KuaiShouVideoGet> getZeroVideoByParams(@Param("accountId") Long accountId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("videoCnt") Long videoCnt, @Param("appVersion") String appVersion, @Param("channelType") Integer channelType, @Param("relativeCnt") Integer relativeCnt);
+
+    List<KuaiShouVideoGet> getHistoryTopVideoByParams(@Param("accountId") Long accountId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("videoCnt") Long videoCnt, @Param("appVersion") String appVersion, @Param("channelType") Integer channelType);
 }

+ 120 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouProjectVideoGetMapper.xml

@@ -201,12 +201,14 @@
                IFNULL(ROUND(SUM(t1.charge) / SUM(t1.aclick) * 1000, 2), 0) 'impression1kCost',
                IFNULL(ROUND(SUM(t1.charge) / SUM(t1.photo_click), 2), 0) 'photoClickCost',
                IFNULL(ROUND(SUM(t1.charge) / SUM(t1.bclick), 2), 0) 'actionCost'
-        FROM  ctop_kuaishou_video_get t0
-                  LEFT JOIN ctop_kuaishou_report_daily_material t1 ON t0.account_id = t1.account_id
-                  LEFT JOIN ctop_user_allocation t2 ON t0.account_id = t2.account_id
-                  LEFT JOIN (
-            SELECT IFNULL(COUNT(1),0) 'rejectCount',account_id FROM ctop_kuaishou_creative WHERE `status` = 42
-            and account_id IN (SELECT account_id FROM ctop_user_allocation where project_id = #{projectId})
+        FROM ctop_kuaishou_video_get t0
+                 LEFT JOIN ctop_kuaishou_report_daily_material t1 ON t0.account_id = t1.account_id
+                 LEFT JOIN ctop_user_allocation t2 ON t0.account_id = t2.account_id
+                 LEFT JOIN (
+            SELECT IFNULL(COUNT(1), 0) 'rejectCount',account_id
+            FROM ctop_kuaishou_creative
+            WHERE `status` = 42
+              and account_id IN (SELECT account_id FROM ctop_user_allocation where project_id = #{projectId})
             GROUP BY account_id
         ) t3 ON t0.account_id = t3.account_id
         WHERE t2.project_id = #{projectId}
@@ -214,4 +216,116 @@
         GROUP BY t0.account_id
     </select>
 
+    <select id="getNewVideoBetweenTime" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet">
+        select t2.*,t1.put_end_time,t1.put_start_time
+        from ctop_kuaishou_project_video_get t1
+                 INNER JOIN
+             (
+                 SELECT tt1.*, tt2.project_id
+                 FROM ctop_user_allocation tt2
+                 LEFT JOIN ctop_kuaishou_video_get tt1 ON tt2.account_id = tt1.account_id
+                 WHERE tt2.account_id = #{accountId}
+                 and tt1.signature is not null
+                 group by tt1.signature
+             ) t2 ON t1.project_id = t2.project_id AND t1.signature = t2.signature
+        WHERE t1.status = 0
+        <if test="startTime!=null">
+            AND t1.stat_date &gt;= #{startTime}
+        </if>
+        <if test="endTime!=null">
+            and t1.stat_date &lt;= #{endTime}
+        </if>
+        <if test="channelType!=null">
+            AND t1.channel_type = #{channelType}
+        </if>
+    </select>
+
+    <select id="getZeroVideoByParams" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet">
+        select t1.* from (
+        select t2.*,t1.put_end_time,t1.put_start_time
+        from ctop_kuaishou_project_video_get t1
+        INNER JOIN
+        (
+        SELECT tt1.*, tt2.project_id
+        FROM ctop_user_allocation tt2
+        LEFT JOIN ctop_kuaishou_video_get tt1 ON tt2.account_id = tt1.account_id
+        WHERE tt2.account_id = #{accountId}
+        and tt1.signature is not null
+        <if test="appVersion != null and appVersion != '' ">
+            and tt1.photo_name like concat(#{appVersion},'%')
+        </if>
+        group by tt1.signature
+        ) t2 ON t1.project_id = t2.project_id AND t1.signature = t2.signature
+        WHERE t1.status = 0
+        <if test="startTime!=null">
+            AND t1.stat_date &gt;= #{startTime}
+        </if>
+        <if test="endTime!=null">
+            and t1.stat_date &lt;= #{endTime}
+        </if>
+        <if test="channelType!=null">
+            AND t1.channel_type = #{channelType}
+        </if>
+        ) t1
+        left join ctop_kuaishou_video_relate_creatives t2 on t1.photo_id =
+        t2.photo_id and t1.account_id = t2.account_id
+        where
+        1=1
+        <if test="relativeCnt!=null">
+            and t2.creative_count &lt;= #{relativeCnt}
+        </if>
+        order by t1.stat_date desc
+        <if test="videoCnt!=null">
+            limit #{videoCnt}
+        </if>
+    </select>
+
+    <select id="getHistoryTopVideoByParams"
+            resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet">
+        select
+        t2.*
+        from
+        ctop_kuaishou_report_daily_material t1
+        left join (
+        select t2.*,t1.put_end_time,t1.put_start_time
+        from ctop_kuaishou_project_video_get t1
+        INNER JOIN
+        (
+        SELECT tt1.*, tt2.project_id
+        FROM ctop_user_allocation tt2
+        LEFT JOIN ctop_kuaishou_video_get tt1 ON tt2.account_id = tt1.account_id
+        WHERE tt2.account_id = #{accountId}
+        and tt1.signature is not null
+        <if test="appVersion != null and appVersion != '' ">
+            and tt1.photo_name like concat(#{appVersion},'%')
+        </if>
+        group by tt1.signature
+        ) t2 ON t1.project_id = t2.project_id AND t1.signature = t2.signature
+        WHERE t1.status = 0
+        <if test="startTime!=null">
+            AND t1.stat_date &gt;= #{startTime}
+        </if>
+        <if test="endTime!=null">
+            and t1.stat_date &lt;= #{endTime}
+        </if>
+        <if test="channelType!=null">
+            AND t1.channel_type = #{channelType}
+        </if>
+        ) t2
+        on t1.signature = t2.signature
+        where t2.id is not null
+        and t2.photo_id NOT IN (
+        SELECT
+        photo_id
+        FROM
+        ctop_ai_creative_limit
+        WHERE
+        account_id = #{accountId}
+        )
+        group by t2.signature
+        order by sum(t1.charge) desc
+        <if test="videoCnt!=null">
+            limit #{videoCnt}
+        </if>
+    </select>
 </mapper>

+ 7 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouProjectVideoGetService.java

@@ -1,5 +1,6 @@
 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.KuaishouProjectVideoGet;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
@@ -30,4 +31,10 @@ public interface IKuaishouProjectVideoGetService extends IService<KuaishouProjec
     Result<Object> queryCreativeBySignature(List<String> photoIds, Long accountId, Integer pageNo, Integer pageSize);
 
     void deleteCreativesByPhotoId(Object photoId);
+
+    List<KuaiShouVideoGet> getNewVideoBetweenTime(Long accountId, String startTime, String endTime, Integer channelType);
+
+    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);
 }

+ 16 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouProjectVideoGetServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.ctop.kuaishou.modules.batch.service.impl;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouCreativeMapper;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouVideoGetMapper;
@@ -158,4 +159,19 @@ public class KuaishouProjectVideoGetServiceImpl extends ServiceImpl<KuaishouProj
             }
         }
     }
+
+    @Override
+    public List<KuaiShouVideoGet> getNewVideoBetweenTime(Long accountId, String startTime, String endTime, Integer channelType) {
+        return projectVideoGetMapper.getNewVideoBetweenTime(accountId, startTime, endTime, channelType);
+    }
+
+    @Override
+    public List<KuaiShouVideoGet> getZeroVideoByParams(Long accountId, String startTime, String endTime, Long videoCnt, String appVersion, Integer channelType, Integer relativeCnt) {
+        return projectVideoGetMapper.getZeroVideoByParams(accountId, startTime, endTime, videoCnt, appVersion, channelType, relativeCnt);
+    }
+
+    @Override
+    public List<KuaiShouVideoGet> getHistoryTopVideoByParams(Long accountId, String startTime, String endTime, Long videoCnt, String appVersion, Integer channelType) {
+        return projectVideoGetMapper.getHistoryTopVideoByParams(accountId, startTime, endTime, videoCnt, appVersion, channelType);
+    }
 }