فهرست منبع

批量创建--定时启动

zhaoxian 4 سال پیش
والد
کامیت
026300613c

+ 51 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouBatchCampaignTimeStartJob.java

@@ -0,0 +1,51 @@
+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.entity.KuaishouBatchCampaignPreview;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouBatchCampaignPreviewService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@Component
+public class KuaishouBatchCampaignTimeStartJob {
+    @Autowired
+    private ICtopOauthTokenService tokenService;
+    @Autowired
+    private IKuaishouBatchCampaignPreviewService campaignPreviewService;
+    @Autowired
+    private IKuaiShouUpdateService kuaiShouUpdateService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(5);
+
+    @XxlJob("kuaishouBatchCampaignTimeStartJob")
+    public void execute() throws Exception {
+        List<KuaishouBatchCampaignPreview> campaignPreviewList = campaignPreviewService.queryListByTime();
+        if (!Check.isNull(campaignPreviewList)) {
+            campaignPreviewList.forEach(campaignPreview -> executorService.submit(() -> {
+                CtopOauthToken token = tokenService.getTokenByAccountId(campaignPreview.getAccountId());
+                if (!Check.isNull(token)) {
+                    Map<String, Object> map = kuaiShouUpdateService.updateCampaignStatus(token.getAccessToken(), campaignPreview.getAccountId(), campaignPreview.getCampaignId(), 1, "timingStart");
+                    if ((boolean) map.get("success")) {
+                        QueryWrapper<KuaishouBatchCampaignPreview> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("id", campaignPreview.getId());
+                        KuaishouBatchCampaignPreview campaign = new KuaishouBatchCampaignPreview();
+                        campaign.setMessage("定时启动成功!");
+                        campaignPreviewService.update(campaign, queryWrapper);
+                    }
+                }
+            }));
+            XxlJobHelper.log("计划定时启动完成");
+        }
+    }
+
+}

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouBatchCampaignPreview.java

@@ -103,7 +103,7 @@ public class KuaishouBatchCampaignPreview {
     /**
      * 是否创建成功 0 失败,1成功
      */
-    private int isSuccess;
+    private Integer isSuccess;
 
     /**
      * 操作说明

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

@@ -3,6 +3,8 @@ package cn.com.ctop.kuaishou.modules.batch.mapper;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouBatchCampaignPreview;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 快手-广告计划预览信息
  *
@@ -12,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouBatchCampaignPreviewMapper extends BaseMapper<KuaishouBatchCampaignPreview> {
 
+    List<KuaishouBatchCampaignPreview> queryListByTime();
 }

+ 10 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouBatchCampaignPreviewMapper.xml

@@ -2,4 +2,14 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouBatchCampaignPreviewMapper">
 
+    <select id="queryListByTime" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaishouBatchCampaignPreview">
+        SELECT id, campaign_id, account_id
+        FROM ctop_kuaishou_batch_campaign_preview
+        WHERE is_time = 1
+          AND is_success = 1
+          AND time_start &gt;= date_sub(now(), interval 5 minute)
+          AND time_start &lt;= now()
+          AND campaign_id is not null
+    </select>
+
 </mapper>

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

@@ -4,6 +4,8 @@ import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouBatchCampaignPreview;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 快手-广告计划预览信息
  * @Author: jeecg-boot
@@ -15,4 +17,14 @@ public interface IKuaishouBatchCampaignPreviewService extends IService<KuaishouB
     void addPreviewData(JSONObject data) throws Exception;
 
     JSONObject queryByBatchId(String batchId, String accountId);
+
+    /**
+     * 查询定时启动的计划集
+     *
+     * @param
+     * @return java.util.List<cn.com.ctop.kuaishou.modules.batch.entity.KuaishouBatchCampaignPreview>
+     * @throws
+     * @author ZHAOXA
+     */
+    List<KuaishouBatchCampaignPreview> queryListByTime();
 }

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

@@ -109,6 +109,10 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
         }
         return campaigns;
     }
+    @Override
+    public List<KuaishouBatchCampaignPreview> queryListByTime() {
+        return campaignPreviewMapper.queryListByTime();
+    }
 
     @Override
     public void addPreviewData(JSONObject data) throws Exception {

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

@@ -18,7 +18,6 @@ import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouBatchCreativePreviewService;
-import com.alibaba.fastjson.JSONObject;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;