|
|
@@ -2,10 +2,10 @@ package thyyxxk.webserver.scheduled;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.logging.log4j.util.PropertiesUtil;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
+import thyyxxk.webserver.entity.WeComTokens;
|
|
|
import thyyxxk.webserver.utils.TokenUtil;
|
|
|
|
|
|
|
|
|
@@ -22,30 +22,35 @@ public class FetchAccessTokenTask {
|
|
|
private final static String CLOCKIN_ACCESS_TOKEN_URL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + CORPID + "&corpsecret=" + CLOCKIN_SECRET;
|
|
|
private final static String HRG_ACCESS_TOKEN_URL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + CORPID + "&corpsecret=" + HRG_SECRET;
|
|
|
|
|
|
+ private static volatile boolean TOKEN_SYNCED = false;
|
|
|
|
|
|
@Scheduled(fixedRate = 6900 * 1000)
|
|
|
public void getAccessToken() {
|
|
|
- String osName = PropertiesUtil.getSystemProperties().getProperty("os.name");
|
|
|
- if ("Windows 10".equals(osName)) {
|
|
|
- return;
|
|
|
- }
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
String httpRes = restTemplate.getForObject(USERINFO_ACCESS_TOKEN_URL, String.class);
|
|
|
JSONObject json = JSONObject.parseObject(httpRes);
|
|
|
- String token = json.getString("access_token");
|
|
|
- log.info("获取企业微信通讯录ACCESS_TOKEN: {}", token);
|
|
|
- TokenUtil.setCorpWechatToken(token);
|
|
|
+ String weComAddressBookToken = json.getString("access_token");
|
|
|
+ log.info("获取企业微信通讯录ACCESS_TOKEN: {}", weComAddressBookToken);
|
|
|
+ TokenUtil.setWeComAddressBookToken(weComAddressBookToken);
|
|
|
|
|
|
httpRes = restTemplate.getForObject(CLOCKIN_ACCESS_TOKEN_URL, String.class);
|
|
|
json = JSONObject.parseObject(httpRes);
|
|
|
- token = json.getString("access_token");
|
|
|
- log.info("获取企业微信打卡数据ACCESS_TOKEN: {}", token);
|
|
|
- TokenUtil.setClockinToken(token);
|
|
|
+ String weComClockInToken = json.getString("access_token");
|
|
|
+ log.info("获取企业微信打卡数据ACCESS_TOKEN: {}", weComClockInToken);
|
|
|
+ TokenUtil.setWeComClockInToken(weComClockInToken);
|
|
|
|
|
|
httpRes = restTemplate.getForObject(HRG_ACCESS_TOKEN_URL, String.class);
|
|
|
json = JSONObject.parseObject(httpRes);
|
|
|
- token = json.getString("access_token");
|
|
|
- log.info("获取企业微信紧急消息推送ACCESS_TOKEN: {}", token);
|
|
|
- TokenUtil.setSendCorpWxMsgToken(token);
|
|
|
+ String weComSendMsgToken = json.getString("access_token");
|
|
|
+ log.info("获取企业微信紧急消息推送ACCESS_TOKEN: {}", weComSendMsgToken);
|
|
|
+ TokenUtil.setWeComSendMsgToken(weComSendMsgToken);
|
|
|
+
|
|
|
+ if (!TOKEN_SYNCED) {
|
|
|
+ WeComTokens tokens = new WeComTokens(weComAddressBookToken, weComClockInToken, weComSendMsgToken);
|
|
|
+ String updateTokensUrl = "http://172.16.32.160:8706/sendWxInfo/updateWeComTokens";
|
|
|
+ String updateTokensResult = restTemplate.postForObject(updateTokensUrl, tokens, String.class);
|
|
|
+ log.info("同步线上环境企业微信tokens: {}", updateTokensResult);
|
|
|
+ TOKEN_SYNCED = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|