Bläddra i källkod

头条自动投放-修改查询不同类别的素材信息时间点

yangzian 3 år sedan
förälder
incheckning
ebca403fe2

+ 38 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/enums/BytedanceCreativeMatTypeEnum.java

@@ -1,5 +1,11 @@
 package org.jeecg.modules.bytedance.advertise.enums;
 
+import org.jeecg.common.util.DateUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TimeZone;
+
 public enum BytedanceCreativeMatTypeEnum {
     /**
      * 创意素材类型
@@ -131,4 +137,36 @@ public enum BytedanceCreativeMatTypeEnum {
         return "";
     }
 
+
+
+
+    /**
+     *查询相应的素材信息  时间点
+     * @param type 类型
+     * 1-上新 当天
+     * 2-高质量 前5天 花费大于500
+     * 3-遗漏
+     * 4-打捞 前7天
+     * @return
+     */
+    public static Map<String,String> getCreativeStartTime(String type){
+        Map<String,String> map = new HashMap();
+        Long timeStart = BytedanceCreativeMatTypeEnum.getStartTimeByType(type);
+        Long timeEnd = BytedanceCreativeMatTypeEnum.getEndTimeByType(type);
+        Long now = System.currentTimeMillis();
+        long zero = now / (1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();//今天零点零分零秒的毫秒数
+        long twelve = zero + 24*60*60*1000 - 1;//今天23点59分59秒的毫秒数
+        String startTime = DateUtils.formatDateTime(zero);
+        String endTime = DateUtils.formatDateTime(twelve);
+        if(timeStart != 0){
+            startTime = DateUtils.formatDateTime(zero + timeStart * 60 * 1000L);
+        }
+        if(timeEnd != 0){
+            endTime = DateUtils.formatDateTime(twelve + timeEnd * 60 * 1000L);
+        }
+        map.put("startTime",startTime);
+        map.put("endTime",endTime);
+        return map;
+    }
+
 }

+ 9 - 14
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/AiBytedanceAdvertiserStrategyServiceImpl.java

@@ -87,19 +87,12 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         }
         //获取全量广告组数据
         campaignService.getAdvertiserCampaign(token, null, null);
-        //查询相应的素材信息
-        Long timeStart = BytedanceCreativeMatTypeEnum.getStartTimeByType(createType.toString());
-        Long timeEnd = BytedanceCreativeMatTypeEnum.getEndTimeByType(createType.toString());
-        Long now = System.currentTimeMillis();
-        String startTime = DateUtils.formatDate()+" 00:00:00";
-        String endTime = DateUtils.formatDate()+" 23:59:59";
-        if(timeStart != 0){
-            startTime = DateUtils.formatDateTime(now + timeStart * 60 * 1000L);
-        }
-        if(timeEnd != 0){
-            endTime = DateUtils.formatDateTime(now + timeEnd * 60 * 1000L);
-        }
-        List<ByteDanceVideoInfo> videoInfos = getvideoOrImageInfoByCreateType(userAllocation.getProjectId(),strategy,startTime,endTime,createType,videoCnt);
+        //查询相应的素材信息 时间点
+        Map<String,String> timeMap = BytedanceCreativeMatTypeEnum.getCreativeStartTime(createType.toString());
+        //查询 素材信息
+        List<ByteDanceVideoInfo> videoInfos = getvideoOrImageInfoByCreateType(userAllocation.getProjectId(),strategy,
+                timeMap.get("startTime"),timeMap.get("endTime"),
+                createType,videoCnt);
         if(null == videoInfos||videoInfos.isEmpty()){
             log.info("获取{}视频素材为空=>accountId:{}",BytedanceCreativeMatTypeEnum.getNameByType(createType+""),token.getAccountId());
             return videoCnt;
@@ -1164,10 +1157,12 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         if(createType == 1||createType == 3){
             return videoInfoService.listByParams(projectId,strategy.getAccountId(),imageMode,startTime,endTime,videoCnt,0);
         }else if(createType == 2){
-            startTime = startTime.substring(0,10);
+            startTime = startTime.substring(0,10); //日期截取为 年-月-日
             endTime = endTime.substring(0,10);
             return videoInfoService.topMatByParams(projectId,strategy.getAccountId(),imageMode,startTime,endTime,videoCnt);
         }else if(createType == 4){
+            startTime = startTime.substring(0,10);
+            endTime = endTime.substring(0,10);
             return videoInfoService.historyMatByParams(projectId,strategy.getAccountId(),imageMode,startTime,endTime,videoCnt);
         }
         return null;