Jelajahi Sumber

修改根据项目id获取token的查询方法和sql

huangxuechao 4 tahun lalu
induk
melakukan
b31404ef63

+ 2 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/CtopOauthTokenMapper.java

@@ -59,4 +59,6 @@ public interface CtopOauthTokenMapper extends BaseMapper<CtopOauthToken> {
     List<CtopOauthToken> queryKsValidRuleAccountsToken();
 
     List<CtopOauthToken> queryTtValidRuleAccountsToken();
+
+    List<CtopOauthToken> selectTokensByProjectId(@Param("projectId") Long projectId);
 }

+ 9 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/xml/CtopOauthTokenMapper.xml

@@ -158,4 +158,13 @@
               )
     </select>
 
+    <select id="selectTokensByProjectId" resultType="cn.com.ctop.common.module.entity.CtopOauthToken">
+        select t1.*
+        from ctop_oauth_token t1
+        left join ctop_user_allocation t2
+        on t1.account_id = t2.account_id
+        where t2.account_status = 0
+        and t2.project_id = #{projectId}
+        group by account_id
+    </select>
 </mapper>

+ 4 - 3
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/CtopOauthTokenServiceImpl.java

@@ -232,9 +232,10 @@ public class CtopOauthTokenServiceImpl extends ServiceImpl<CtopOauthTokenMapper,
 
     @Override
     public List<CtopOauthToken> getByProjectId(Long projectId) {
-        QueryWrapper<CtopOauthToken> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("project_id", projectId).eq("account_status", 0);
-        return this.list(queryWrapper);
+//        QueryWrapper<CtopOauthToken> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.eq("project_id", projectId).eq("account_status", 0);
+//        return this.list(queryWrapper);
+        return ctopOauthTokenMapper.selectTokensByProjectId(projectId);
     }
 
     @Override

+ 0 - 5
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouAudienceReportDailyServiceImpl.java

@@ -338,11 +338,6 @@ public class KuaishouAudienceReportDailyServiceImpl extends ServiceImpl<Kuaishou
                         System.out.print("》》5秒后重试,accountId:"+unit+",日期:"+date+"《《 "+resultJson);
                         try{Thread.sleep(5000);} catch (InterruptedException e){}
                         crowdAnalysisReport2(token,date, type, plan, unit, page, pageSize);
-                    }else if(code == 402000 || code == 402004){
-                        System.out.print("》》10分钟后重试,accountId:"+unit+",日期:"+date+"《《 "+resultJson);
-                        try{Thread.sleep(5000 * 60 * 2);} catch (InterruptedException e){}
-                        token = tokenService.getTokenByAccountId(token.getAccountId());
-                        crowdAnalysisReport2(token,date, type, plan, unit, page, pageSize);
                     }else{
                         log.error("查询人群分析报表数据返回信息错误:unit:{},日期{},返回信息:{}", unit,date, resultJson);
                     }

+ 7 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -1527,7 +1527,7 @@ public class TestController {
     static CountDownLatch countDownLatch = null;
     @Resource
     AiKuaishouUnitLevelOperationRecordMapper kuaishouUnitLevelOperationRecordMapper;
-    @PostMapping(value = "/getAudienceDataNew")
+    @GetMapping(value = "/getAudienceDataNew")
     public void getAudienceData() throws Exception {
         int page = 1;
         int pageSize = 2000;
@@ -1535,8 +1535,14 @@ public class TestController {
         List<CtopOauthToken> tokens = tokenService.getByProjectId(458l);    //淘特项目
         for (CtopOauthToken token : tokens) {
             Date startDate = DateUtils.getNowDate();
+            if(startDate.after(token.getAccessTokenExpiresIn())){   //过期跳过
+                continue;
+            }
             Date enDate = DateUtils.addDay(startDate, 30);
             List<AiKuaishouUnitLevelOperationRecord> planIdsAndUnitIds = kuaishouUnitLevelOperationRecordMapper.selectAllByAccountIdAndDate(token.getAccountId(), startDate, enDate);
+            if(Check.isNull(planIdsAndUnitIds)){
+                continue;
+            }
             countDownLatch = new CountDownLatch(planIdsAndUnitIds.size());
             planIdsAndUnitIds.forEach(planIdAndUnitId -> executorService.submit(() -> {
                 try {