|
|
@@ -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);
|
|
|
}
|
|
|
|
|
|
|