yumeng 4 недель назад
Родитель
Сommit
a888e5d003

+ 35 - 23
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/RefreshTokenServiceImpl.java

@@ -5,6 +5,7 @@ import cn.com.ctop.job.adq.data.service.IRefreshTokenService;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -12,6 +13,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+@Slf4j
 @Service
 public class RefreshTokenServiceImpl implements IRefreshTokenService {
     @Autowired
@@ -22,34 +24,44 @@ public class RefreshTokenServiceImpl implements IRefreshTokenService {
     public void refreshToken() {
         List<JSONObject> tokenList = refreshTokenMapper.getAllTokenList();
         if (Check.isNull(tokenList)) {
+            log.info("refreshToken: 未查询到待刷新的账号");
             return;
         }
+        log.info("refreshToken: 共查询到 {} 个待刷新账号", tokenList.size());
         for (JSONObject tokenJson : tokenList) {
             Long id = tokenJson.getLong("id");
-            String clientId = tokenJson.getString("clientId");
-            String clientSecret = tokenJson.getString("clientSecret");
-            String refreshToken = tokenJson.getString("refreshToken");
-            Map<String, Object> param = new HashMap<>();
-            param.put("client_id", clientId);
-            param.put("client_secret", clientSecret);
-            param.put("refresh_token", refreshToken);
-            param.put("grant_type", "refresh_token");
-            String s = HttpUtils.httpGet("https://api.e.qq.com/oauth/token", param, new HashMap<>());
-            JSONObject tokenResult = JSONObject.parseObject(s);
-            if (Check.isNull(tokenResult)) {
-                continue;
+            try {
+                String clientId = tokenJson.getString("clientId");
+                String clientSecret = tokenJson.getString("clientSecret");
+                String refreshToken = tokenJson.getString("refreshToken");
+                Map<String, Object> param = new HashMap<>();
+                param.put("client_id", clientId);
+                param.put("client_secret", clientSecret);
+                param.put("refresh_token", refreshToken);
+                param.put("grant_type", "refresh_token");
+                String s = HttpUtils.httpGet("https://api.e.qq.com/oauth/token", param, new HashMap<>());
+                JSONObject tokenResult = JSONObject.parseObject(s);
+                if (Check.isNull(tokenResult)) {
+                    log.warn("refreshToken: 账号 id={} 接口无响应或返回为空", id);
+                    continue;
+                }
+                Integer code = tokenResult.getInteger("code");
+                if (code == null || code != 0) {
+                    log.warn("refreshToken: 账号 id={} 刷新失败, code={}, message={}", id, code, tokenResult.getString("message"));
+                    continue;
+                }
+                JSONObject data = tokenResult.getJSONObject("data");
+                if (Check.isNull(data)) {
+                    log.warn("refreshToken: 账号 id={} 返回数据为空", id);
+                    continue;
+                }
+                String updateAccessToken = data.getString("access_token");
+                String updateRefreshToken = data.getString("refresh_token");
+                refreshTokenMapper.updateToken(id, updateAccessToken, updateRefreshToken);
+                log.info("refreshToken: 账号 id={} 刷新成功并已回写", id);
+            } catch (Exception e) {
+                log.error("refreshToken: 账号 id={} 刷新异常", id, e);
             }
-            Integer code = tokenResult.getInteger("code");
-            if (code != 0) {
-                continue;
-            }
-            JSONObject data = tokenResult.getJSONObject("data");
-            if (Check.isNull(data)) {
-                continue;
-            }
-            String updateAccessToken = data.getString("access_token");
-            String updateRefreshToken = data.getString("refresh_token");
-            refreshTokenMapper.updateToken(id, updateAccessToken, updateRefreshToken);
         }