Prechádzať zdrojové kódy

Merge #40 into master from pingkang

优化团长

* pingkang: (3 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/40
huangpingkang 1 rok pred
rodič
commit
5ba586f273

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

@@ -161,19 +161,19 @@ public class KuaiShouAdSocialController {
     }
 
     @GetMapping("/contractorMissionInfo")
-    public MessageModel contractorMissionInfo() {
-        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken();
+    public MessageModel contractorMissionInfo(@RequestParam(required = false)Long missionId,@RequestParam(required = false)Long contractorUserId) {
+        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken( missionId, contractorUserId);
         for (JSONObject info : missionTokens) {
             Long advId = info.getLong("advertiser_id");
-            Long missionId = info.getLong("mission_id");
-            Long contractorUserId = info.getLong("contractor_user_id");
+            Long misId = info.getLong("mission_id");
+            Long contractorUId = 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() {
-                    if (endedDays <= 90){
-                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    if (endedDays <= 30){
+                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUId, misId, 0);
                     }
                 }
             });
@@ -182,12 +182,12 @@ public class KuaiShouAdSocialController {
     }
 
     @GetMapping("/contractorMissionOrder")
-    public MessageModel contractorMissionOrder() {
-        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken();
+    public MessageModel contractorMissionOrder(@RequestParam(required = false)Long missionId,@RequestParam(required = false)Long contractorUserId) {
+        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken(missionId, contractorUserId);
         for (JSONObject info : missionTokens) {
             Long advId = info.getLong("advertiser_id");
-            Long missionId = info.getLong("mission_id");
-            Long contractorUserId = info.getLong("contractor_user_id");
+            Long misId = info.getLong("mission_id");
+            Long contractorUId = info.getLong("contractor_user_id");
             String accessToken = info.getString("access_token");
             String status = info.getString("status");
             Integer endedDays = info.getInteger("ended_days");
@@ -195,7 +195,7 @@ public class KuaiShouAdSocialController {
                 adSocialExecutorService.submit(new Runnable() {
                     @Override
                     public void run() {
-                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId,0L, 0);
+                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUId, misId,0L, 0,0);
                     }
                 });
             }

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

@@ -36,7 +36,7 @@ public interface KuaiShouAdSocialMapper {
     List<JSONObject> queryAdSocialContractorToken();
 
     @DS("selectdb")
-    List<JSONObject> queryAdSocialMissionToken();
+    List<JSONObject> queryAdSocialMissionToken(@Param("missionId") Long missionId,@Param("contractorUserId") Long contractorUserId);
 
     @DS("selectdb")
     void insertContractorMissionList(List<KuaiShouAdSocialContractorMission> addList);

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

@@ -298,6 +298,12 @@
                  join tidb.deepthink.kuaishou_auth_list au
                       on a.admin_advertiser_id = au.admin_advertiser_id
         where a.type = 3 and au.type = 3
+        <if test="contractorUserId != null">
+            and c.contractor_user_id = #{contractorUserId}
+        </if>
+        <if test="missionId != null">
+            and c.mission_id = #{missionId}
+        </if>
     </select>
 
     <select id="test1" resultType="com.alibaba.fastjson.JSONObject">

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

@@ -17,8 +17,8 @@ public interface IKuaiShouAdSocialService {
 
     List<JSONObject> getAdSocialErrorLogs();
     List<JSONObject> getAdSocialContractorToken();
-    List<JSONObject> getAdSocialMissionToken();
+    List<JSONObject> getAdSocialMissionToken(Long missionId,Long contractorUserId);
     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, Long filterStartTime, int offset);
+    void getContractorMissionInfo(String accessToken, Long advertiserId, Long contractorId, Long missionId, int retry);
+    void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, Long filterStartTime, int offset, int retry);
 }

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

@@ -268,8 +268,8 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
         return kuaiShouAdSocialMapper.queryAdSocialContractorToken();
     }
 
-    public List<JSONObject> getAdSocialMissionToken() {
-        return kuaiShouAdSocialMapper.queryAdSocialMissionToken();
+    public List<JSONObject> getAdSocialMissionToken(Long missionId,Long contractorUserId) {
+        return kuaiShouAdSocialMapper.queryAdSocialMissionToken( missionId, contractorUserId);
     }
 
 
@@ -326,7 +326,7 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
     /**
      * 获取团长任务详情
      */
-    public void getContractorMissionInfo(String accessToken, Long advertiserId, Long contractorId, Long missionId) {
+    public void getContractorMissionInfo(String accessToken, Long advertiserId, Long contractorId, Long missionId, int retry) {
         String url = KuaishouLinkConstants.KS_PREFIX + KuaishouLinkConstants.AD_SOCIAL_CONTRACTOR_MISSION_INFO;
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-Type", "application/json");
@@ -345,7 +345,15 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
         Integer code = resultJson.getInteger("code");
         String message = resultJson.getString("message");
         if (null == code || code != 0) {
-            log.error("获取快手团长任务详情接口异常:{},accountId:{} {} {}", message, advertiserId, contractorId, missionId);
+            if (retry <= 3) {
+                try {
+                    Thread.sleep(800);
+                } catch (InterruptedException ignored) {
+                }
+                getContractorMissionInfo(accessToken, advertiserId, contractorId, missionId, retry+1);
+            }else {
+                log.error("获取快手团长任务详情接口异常:{},accountId:{} {} {}", message, advertiserId, contractorId, missionId);
+            }
             return;
         }
         JSONObject data = resultJson.getJSONObject("data");
@@ -363,7 +371,8 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
     /**
      * 获取团长订单投后数据
      */
-    public void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, Long filterStartTime, int offset) {
+    public void getContractorMissionOrder(String accessToken, Long advertiserId, Long contractorId, Long missionId, Long filterStartTime, int offset, int retry) {
+        //log.info("获取快手团长订单投后数据 {}-{}-{}-{}-{}", advertiserId, contractorId, missionId,offset,filterStartTime);
         String url = KuaishouLinkConstants.KS_PREFIX + KuaishouLinkConstants.AD_SOCIAL_CONTRACTOR_MISSION_DATA;
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-Type", "application/json");
@@ -386,7 +395,15 @@ public class KuaiShouAdSocialServiceImpl implements IKuaiShouAdSocialService {
         Integer code = resultJson.getInteger("code");
         String message = resultJson.getString("message");
         if (null == code || code != 0) {
-            log.error("获取快手团长订单投后数据列表接口异常:{},accountId:{} {} {}", message, advertiserId, contractorId, missionId);
+            if (retry <= 3) {
+                try {
+                    Thread.sleep(800);
+                } catch (InterruptedException ignored) {
+                }
+                getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, filterStartTime, offset, retry + 1);
+            }else{
+                log.error("获取快手团长订单投后数据列表接口异常:{},accountId:{} {} {}", message, advertiserId, contractorId, missionId);
+            }
             return;
         }
         JSONObject data = resultJson.getJSONObject("data");
@@ -409,10 +426,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 && 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);
+        if (offset + pageSize < totalCount && offset + pageSize <= 10000 - pageSize) {
+            getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, filterStartTime, offset + pageSize , 0);
+        } else if (offset + pageSize < totalCount && offset + pageSize > 10000 - pageSize) {
+            getContractorMissionOrder(accessToken, advertiserId, contractorId, missionId, nextFilterStartTime, 0, 0);
         } else {
             log.info("【{}】获取快手团长订单投后数据列表完成 {} {} totalCount: {}", advertiserId, contractorId, missionId, totalCount);
         }

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

@@ -82,7 +82,7 @@ public class KuaiShouAdSocialJob {
 
     @XxlJob("contractorMissionInfo")
     public void contractorMissionInfo() {
-        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken();
+        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken(null, null);
         for (JSONObject info : missionTokens) {
             Long advId = info.getLong("advertiser_id");
             Long missionId = info.getLong("mission_id");
@@ -92,8 +92,8 @@ public class KuaiShouAdSocialJob {
             executorService.submit(new Runnable() {
                 @Override
                 public void run() {
-                    if (endedDays <= 90) {
-                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId);
+                    if (endedDays <= 30) {
+                        kuaiShouAdSocialService.getContractorMissionInfo(accessToken, advId, contractorUserId, missionId, 0);
                     }
                 }
             });
@@ -102,7 +102,7 @@ public class KuaiShouAdSocialJob {
 
     @XxlJob("contractorMissionOrder")
     public void contractorMissionOrder() {
-        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken();
+        List<JSONObject> missionTokens = kuaiShouAdSocialService.getAdSocialMissionToken(null, null);
         for (JSONObject info : missionTokens) {
             Long advId = info.getLong("advertiser_id");
             Long missionId = info.getLong("mission_id");
@@ -110,11 +110,11 @@ public class KuaiShouAdSocialJob {
             String accessToken = info.getString("access_token");
             String status = info.getString("status");
             Integer endedDays = info.getInteger("ended_days");
-            if ("已承接".equals(status) && endedDays <= 90) {
+            if ("已承接" .equals(status) && endedDays <= 30) {
                 executorService.submit(new Runnable() {
                     @Override
                     public void run() {
-                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId,0L, 0);
+                        kuaiShouAdSocialService.getContractorMissionOrder(accessToken, advId, contractorUserId, missionId, 0L, 0, 0);
                     }
                 });
             }