Просмотр исходного кода

Merge #39 into master from pingkang

优化

* pingkang: (2 commits)
  优化
  优化

Signed-off-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>
Merged-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>

CR-link: https://codeup.aliyun.com/60c06368dbbed34fe0f0c263/job/hr_job-kuaishou/change/39
huangpingkang 1 год назад
Родитель
Сommit
fc65c50f89

+ 7 - 3
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/controller/KuaiShouAdSocialController.java

@@ -28,7 +28,7 @@ public class KuaiShouAdSocialController {
     @Autowired
     private IKuaiShouAdSocialService kuaiShouAdSocialService;
 
-    private static ExecutorService adSocialExecutorService = Executors.newFixedThreadPool(25);
+    private static ExecutorService adSocialExecutorService = Executors.newFixedThreadPool(10);
 
 
     @GetMapping("/taskList")
@@ -168,10 +168,13 @@ public class KuaiShouAdSocialController {
             Long missionId = info.getLong("mission_id");
             Long contractorUserId = info.getLong("contractor_user_id");
             String accessToken = info.getString("access_token");
+            Integer endedDays = info.getInteger("ended_days");
             adSocialExecutorService.submit(new Runnable() {
                 @Override
                 public void run() {
-                    kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    if (endedDays <= 90){
+                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    }
                 }
             });
         }
@@ -187,11 +190,12 @@ public class KuaiShouAdSocialController {
             Long contractorUserId = info.getLong("contractor_user_id");
             String accessToken = info.getString("access_token");
             String status = info.getString("status");
+            Integer endedDays = info.getInteger("ended_days");
             if ("已承接".equals(status)) {
                 adSocialExecutorService.submit(new Runnable() {
                     @Override
                     public void run() {
-                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId, 0);
+                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId,0L, 0);
                     }
                 });
             }

+ 1 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaiShouAdSocialContractorMissionOrder.java

@@ -28,4 +28,5 @@ public class KuaiShouAdSocialContractorMissionOrder implements Serializable {
     private Long amount;
     private Double contractorCommissionAmount;
     private Double starCommissionAmount;
+    private Long orderStartTime;
 }

+ 3 - 1
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/xml/KuaiShouAdSocialMapper.xml

@@ -288,8 +288,10 @@
               on a.admin_advertiser_id = au.admin_advertiser_id
         where a.type = 3 and au.type = 3
     </select>
+
     <select id="queryAdSocialMissionToken" resultType="com.alibaba.fastjson.JSONObject">
-        select c.mission_id,c.advertiser_id,c.contractor_user_id,au.access_token,c.status
+        select c.mission_id,c.advertiser_id,c.contractor_user_id,au.access_token,c.status,
+               ifnull(datediff(now(),from_unixtime(c.end_time/1000)),0) ended_days
         from media_api.kuaishou_ad_social_transaction_contractor_mission c
                  join tidb.deepthink.kuaishou_ad_social_advertiser_list  a
                       on c.advertiser_id = a.advertiser_id

+ 1 - 1
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/IKuaiShouAdSocialService.java

@@ -20,5 +20,5 @@ public interface IKuaiShouAdSocialService {
     List<JSONObject> getAdSocialMissionToken();
     void getContractorMissionList(String accessToken, Long advertiserId, Long contractorId, int offset);
     void getContractorMissionInfo(String accessToken, Long advertiserId, Long contractorId, Long missionId);
-    void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, int offset);
+    void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, Long filterStartTime, int offset);
 }

+ 9 - 3
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaiShouAdSocialServiceImpl.java

@@ -363,7 +363,7 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
     /**
      * 获取团长订单投后数据
      */
-    public void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, int offset) {
+    public void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, Long filterStartTime, int offset) {
         String url = KuaishouLinkConstants.KS_PREFIX + KuaishouLinkConstants.AD_SOCIAL_CONTRACTOR_MISSION_DATA;
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-Type", "application/json");
@@ -375,6 +375,8 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
         param.put("mission_id", missionId);
         param.put("limit", pageSize);
         param.put("offset", offset);
+        param.put("order_create_start_time", filterStartTime);
+        param.put("order_create_end_time", 9999999999999L);
         String result = HttpUtils.httpPostRequest(url, param, headers);
         if (Check.isNull(result)) {
             log.error("获取快手团长订单投后数据列表接口异常:{},accountId:{} {} {}", "返回结果为空", advertiserId, contractorId, missionId);
@@ -391,6 +393,7 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
         int totalCount = data.getIntValue("total_count");
         JSONArray details = data.getJSONArray("details");
         List<KuaiShouAdSocialContractorMissionOrder> addList = new ArrayList<>();
+        Long nextFilterStartTime = 0L;
         if (!Check.isNull(details)) {
             for (int i = 0; i < details.size(); i++) {
                 JSONObject detailJson = details.getJSONObject(i);
@@ -398,6 +401,7 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
                 order.setAdvertiserId(advertiserId);
                 order.setContractorUserId(contractorId);
                 order.setMissionId(missionId);
+                nextFilterStartTime = order.getOrderStartTime();
                 addList.add(order);
             }
         }
@@ -405,8 +409,10 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
             //kuaiShouAdSocialMapper.insertContractorMissionOrder(addList);
             dorisLoadManager.add("media_api", "kuaishou_ad_social_transaction_contractor_mission_order", addList);
         }
-        if (offset + pageSize < totalCount) {
-            getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, offset + pageSize);
+        if (offset + pageSize < totalCount && offset + pageSize <= 10000) {
+            getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, filterStartTime, offset + pageSize);
+        } else if (offset + pageSize < totalCount && offset + pageSize > 10000) {
+            getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, nextFilterStartTime, 0);
         } else {
             log.info("【{}】获取快手团长订单投后数据列表完成 {} {} totalCount: {}", advertiserId, contractorId, missionId, totalCount);
         }

+ 8 - 4
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaiShouAdSocialJob.java

@@ -21,7 +21,7 @@ public class KuaiShouAdSocialJob {
     @Autowired
     private IKuaiShouAdSocialService kuaiShouAdSocialService;
 
-    private static final ExecutorService executorService = Executors.newFixedThreadPool(15);
+    private static final ExecutorService executorService = Executors.newFixedThreadPool(10);
 
     @XxlJob("adSocialTaskList")
     public void taskList() {
@@ -88,10 +88,13 @@ public class KuaiShouAdSocialJob {
             Long missionId = info.getLong("mission_id");
             Long contractorUserId = info.getLong("contractor_user_id");
             String accessToken = info.getString("access_token");
+            Integer endedDays = info.getInteger("ended_days");
             executorService.submit(new Runnable() {
                 @Override
                 public void run() {
-                    kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    if (endedDays <= 90) {
+                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    }
                 }
             });
         }
@@ -106,11 +109,12 @@ public class KuaiShouAdSocialJob {
             Long contractorUserId = info.getLong("contractor_user_id");
             String accessToken = info.getString("access_token");
             String status = info.getString("status");
-            if ("已承接".equals(status)) {
+            Integer endedDays = info.getInteger("ended_days");
+            if ("已承接".equals(status) && endedDays <= 90) {
                 executorService.submit(new Runnable() {
                     @Override
                     public void run() {
-                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId, 0);
+                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId,0L, 0);
                     }
                 });
             }