Bläddra i källkod

Merge remote-tracking branch 'origin/master'

songyh 4 år sedan
förälder
incheckning
d394aa84fd

+ 47 - 2
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouProjectVideoGetJob.java

@@ -1,10 +1,16 @@
 package cn.com.ctop.job.kuaishou.handler;
 
+import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.entity.Project;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.service.IProjectService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
+import com.alibaba.fastjson.JSONObject;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -20,21 +26,60 @@ import java.util.concurrent.Executors;
  * @return
  * @throws
  */
+@Slf4j
 @Component
 public class KuaishouProjectVideoGetJob {
     @Autowired
     private IKuaishouProjectVideoGetService projectVideoGetService;
     @Autowired
+    private IKuaiShouVideoGetService videoGetService;
+    @Autowired
     private IProjectService projectService;
-    static ExecutorService executorService = Executors.newFixedThreadPool(5);
+    @Autowired
+    private ICtopOauthTokenService tokenService;
+
+    static ExecutorService executorService = Executors.newFixedThreadPool(10);
 
     @XxlJob("kuaishouProjectVideoGetJob")
     public void execute() throws Exception {
+        log.info("同步素造素材供应商-------start");
+        kuaishouSupplierVideoGet();
+        Thread.sleep(60000);
+        log.info("清洗项目素材-------start");
+        kuaishouProjectVideoGet();
+    }
+
+
+    /**
+     * 获取供应商信息
+     */
+    private void kuaishouSupplierVideoGet() {
+        List<JSONObject> datas = videoGetService.getAccountIds();
+        for (JSONObject data : datas) {
+            CtopOauthToken token = tokenService.getTokenByAccountId(data.getLong("accountId"));
+            if (Check.isNull(token)) {
+                continue;
+            }
+            executorService.submit(new Runnable() {
+                @Override
+                public void run() {
+                    videoGetService.getSuZaoList(token.getAccessToken(), data.getLong("accountId"), 1, data.getString("startDate"));
+                }
+            });
+        }
+        XxlJobHelper.log("同步素造素材供应商完成");
+    }
+
+    /**
+     * 素材清洗
+     */
+    private void kuaishouProjectVideoGet() {
         //2快手,1开启的项目
         List<Project> projects = projectService.listByMediaType(2, 0);
         projects.forEach(project -> executorService.submit(() -> {
-            projectVideoGetService.clearProjectVideo(project.getId(),1);
+            projectVideoGetService.clearProjectVideo(project.getId(), 1, null);
         }));
         XxlJobHelper.log("清洗项目素材完成");
     }
+
 }

+ 0 - 50
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouSupplierVideoGetJob.java

@@ -1,50 +0,0 @@
-package cn.com.ctop.job.kuaishou.handler;
-
-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.service.IKuaiShouVideoGetService;
-import com.alibaba.fastjson.JSONObject;
-import com.xxl.job.core.context.XxlJobHelper;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * 同步素造素材供应商
- *
- * @param
- * @author ZHAOXA
- * @return
- * @throws
- */
-@Component
-public class KuaishouSupplierVideoGetJob {
-    @Autowired
-    private IKuaiShouVideoGetService videoGetService;
-    @Autowired
-    private ICtopOauthTokenService tokenService;
-    static ExecutorService executorService = Executors.newFixedThreadPool(5);
-
-    @XxlJob("kuaishouSupplierVideoGetJob")
-    public void execute() throws Exception {
-        List<JSONObject> datas = videoGetService.getAccountIds();
-        for (JSONObject data : datas) {
-            CtopOauthToken token = tokenService.getTokenByAccountId(data.getLong("accountId"));
-            if (Check.isNull(token)) {
-                continue;
-            }
-            executorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    videoGetService.getSuZaoList(token.getAccessToken(), data.getLong("accountId"), 1, data.getString("startDate"));
-                }
-            });
-        }
-        XxlJobHelper.log("同步素造素材供应商完成");
-    }
-}

+ 8 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/AiKuaishouAdvertiserStrategy.java

@@ -47,10 +47,18 @@ public class AiKuaishouAdvertiserStrategy {
      */
     private Integer campaignType;
     /**
+     * 计划状态
+     */
+    private Integer campaignStatus;
+    /**
      * 客户要求的广告组名称规范
      */
     private String groupName;
     /**
+     * 组状态
+     */
+    private Integer groupStatus;
+    /**
      * 定向模板id
      */
     private Integer templateId;

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouCreateCreativeServiceImpl.java

@@ -870,6 +870,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
     @Autowired
     private IKuaiShouCampaignService campaignService;
 
+
     private List<KuaiShouVideoGet> getVideosByParams(AiKuaishouAdvertiserStrategy strategy, String startTime, String endTime, AiKuaiShouAppInfo appInfo, Integer createType, Long videoCnt) {
         if (createType == 1) {
             return getNewVideoListByParams(strategy, startTime, endTime, appInfo);
@@ -916,9 +917,15 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             aiKuaishouCampaignLevelOperationRecordService.saveOrUpdate(record);
             return null;
         }
+
         campaignId = (Long) campaignCreateResult.get("campaignId");
         record.setCampaignId(campaignId);
         aiKuaishouCampaignLevelOperationRecordService.saveOrUpdate(record);
+        Integer campaignStatus = strategy.getCampaignStatus();
+        if (!Check.isNull(campaignStatus) && campaignStatus == 2) {
+            updateService.updateCampaignStatus(token.getAccessToken(), token.getAccountId(), campaignId, campaignStatus, "yumeng");
+        }
+
         return campaignId;
     }
 
@@ -934,6 +941,10 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
         unitParams.put("unit_name", unitName);
         //出价类型
         unitParams.put("bid_type", strategy.getBidType());
+        if (!Check.isNull(strategy.getGroupStatus()) && strategy.getGroupStatus() == 2) {
+            unitParams.put("put_status", strategy.getGroupStatus());
+
+        }
 
         //组单日预算
         if (null != strategy.getUnitDayBudget() && strategy.getUnitDayBudget() != 0) {

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouProjectVideoGetController.java

@@ -241,7 +241,7 @@ public class KuaishouProjectVideoGetController {
     @GetMapping(value = "/clearProjectVideo")
     public Result<Object> clearProjectVideo(Long projectId) {
         try {
-            kuaishouProjectVideoGetService.clearProjectVideo(projectId,1);
+            kuaishouProjectVideoGetService.clearProjectVideo(projectId,1,null);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }

+ 3 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouVideoGetMapper.xml

@@ -306,14 +306,14 @@
         INNER JOIN ctop_user_allocation t2 ON t1.account_id = t2.account_id
         WHERE t1.`status` =0
         AND t2.project_id=#{projectId}
-        <if test="updateTime!=null">
-            AND t1.update_time >=#{updateTime}
+        <if test="updateTime!=null and updateTime!=''">
+            AND t1.update_time &gt;=#{updateTime}
         </if>
         group by t1.signature
     </select>
 
     <select id="getAccountIds" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT account_id 'accountId',DATE_FORMAT(MAX(create_time), '%Y-%m-%d %H:%i:%s') 'startDate'
+        SELECT account_id 'accountId',DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 65 MINUTE), '%Y-%m-%d %H:%i:%s') 'startDate'
         FROM ctop_kuaishou_video_get
         where channel_type = 1
           and status = 0

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

@@ -17,7 +17,7 @@ public interface IKuaishouProjectVideoGetService extends IService<KuaishouProjec
     /**
      * 清洗项目数据
      */
-    void clearProjectVideo(Long projectId, Integer pageStart);
+    void clearProjectVideo(Long projectId, Integer pageStart,String updateTime);
 
     Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet, Integer pageNo, Integer pageSize);
 

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

@@ -62,10 +62,12 @@ public class KuaishouProjectVideoGetServiceImpl extends ServiceImpl<KuaishouProj
     private IKuaiShouVideoGetService videoGetService;
 
     @Override
-    public void clearProjectVideo(Long projectId, Integer pageNo) {
+    public void clearProjectVideo(Long projectId, Integer pageNo, String updateTime) {
         try {
             log.info("清洗快手项目素材数据,projectId:{},pageNo:{}", projectId, pageNo);
-            String updateTime = projectVideoGetMapper.queryLatestUpdateTime(projectId);
+            if (Check.isNull(updateTime) && pageNo == 1) {
+                updateTime = projectVideoGetMapper.queryLatestUpdateTime(projectId);
+            }
             PageHelper.startPage(pageNo, 1500);
             List<KuaishouProjectVideoGet> list = videoGetMapper.selectProjectVideo(projectId, updateTime);
             if (Check.isNull(list)) {
@@ -73,7 +75,7 @@ public class KuaishouProjectVideoGetServiceImpl extends ServiceImpl<KuaishouProj
             }
             projectVideoGetMapper.replaceBatch(list);
             Thread.sleep(500);
-            clearProjectVideo(projectId, pageNo + 1);
+            clearProjectVideo(projectId, pageNo + 1, updateTime);
         } catch (Exception e) {
             log.error("清洗项目数据异常", e);
         }