Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

zhaoxian 10 bulan lalu
induk
melakukan
970a17e2ba

+ 6 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFundMapper.java

@@ -3,6 +3,12 @@ package cn.com.ctop.job.bytedance.data.mapper;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface BytedanceFundMapper {
     void replaceFundGet(@Param("data") JSONObject data);
+
+    void updateFundGet(@Param("accountId") Long accountId, @Param("requestDesc") String requestDesc);
+
+    List<Long> getAccountList();
 }

+ 18 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFundMapper.xml

@@ -27,7 +27,9 @@
         return_goods_valid_grant,
         compensation_valid_grant,
         wallet_id,
-        wallet_name) values (
+        wallet_name,
+         request_desc
+         ) values (
          #{data.advertiser_id},
          #{data.name},
          #{data.email},
@@ -49,8 +51,22 @@
          #{data.return_goods_valid_grant},
          #{data.compensation_valid_grant},
          #{data.wallet_id},
-         #{data.wallet_name}
+         #{data.wallet_name},
+         #{data.request_desc}
          )
 
      </insert>
+    <update id="updateFundGet">
+        update bytedance_fund_get
+        set request_desc = #{requestDesc}
+        where advertiser_id = #{accountId}
+    </update>
+    <select id="getAccountList" resultType="java.lang.Long">
+        select advertiser_id
+        from (select *, date_format(update_time, '%Y%m%d') as 'updateDate', date_format(now(), '%Y%m%d') as 'nowDate'
+              from media_api.bytedance_fund_get
+              where (valid_balance - valid_grant > 0)) t
+        where t.updateDate != nowDate
+
+    </select>
 </mapper>

+ 4 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceFundService.java

@@ -2,6 +2,10 @@ package cn.com.ctop.job.bytedance.data.service;
 
 import cn.com.ctop.job.bytedance.data.entity.OauthToken;
 
+import java.util.List;
+
 public interface IBytedanceFundService {
     void getBytedanceFundInfo(OauthToken oauthToken);
+
+    List<Long> getAccountList();
 }

+ 9 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceFundServiceImpl.java

@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Service
@@ -37,18 +38,25 @@ public class BytedanceFundServiceImpl implements IBytedanceFundService {
                 Integer code = result.getInteger("code");
                 if (code != 0) {
                     log.error("获取余额信息失败,accountId:{},返回信息:{}", oauthToken.getAccountId(), result);
+                    bytedanceFundMapper.updateFundGet(oauthToken.getAccountId(), "更新余额信息失败");
                     return;
                 }
                 JSONObject data = result.getJSONObject("data");
                 if (!Check.isNull(data)) {
                     BigDecimal grant = data.getBigDecimal("grant");
                     data.put("grant_amount", grant);
+                    data.put("request_desc", "更新成功");
                     bytedanceFundMapper.replaceFundGet(data);
-                    log.error("余额信息入库完成,accountId:{}", oauthToken.getAccountId());
+                    log.info("余额信息入库完成,accountId:{}", oauthToken.getAccountId());
                 }
             }
 
         }
 
     }
+
+    @Override
+    public List<Long> getAccountList() {
+        return bytedanceFundMapper.getAccountList();
+    }
 }

+ 24 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceFundJob.java

@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
 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;
 
@@ -47,4 +48,27 @@ public class BytedanceFundJob {
     }
 
 
+    @XxlJob("fundGetCheck")
+    public void fundGetCheck() throws Exception {
+        List<Long> accounts = bytedanceFundService.getAccountList();
+        if (Check.isNull(accounts)) {
+            return;
+        }
+        for (int i = 0; i < accounts.size(); i++) {
+            Long accountId = accounts.get(i);
+            String token = tokenService.getByAccountId(Long.valueOf(accountId));
+            if (Check.isNull(token)) {
+                log.error("此账户未获取到相关token,accountId:{}", accountId);
+                continue;
+            }
+            OauthToken oauthToken = new OauthToken();
+            oauthToken.setAccessToken(token);
+            oauthToken.setAccountId(accountId);
+            bytedanceFundService.getBytedanceFundInfo(oauthToken);
+        }
+
+
+    }
+
+
 }