Browse Source

更新钉钉企业内部部署模式下的token更新加锁

seyason 2 years ago
parent
commit
7f394b9100

+ 7 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -517,6 +517,12 @@ public class DingDingServiceImpl implements DingDingService {
         }
     }
 
+    private synchronized String getPrivateAT(String corpid) throws ApiException {
+        CompanyDingding companyDingding = companyDingdingMapper.selectById(corpid);
+        String accessToken = getInnerCorpToken(companyDingding);
+        return accessToken;
+    }
+
     @Override
     public HttpRespMsg getUserByCode(String code, String corpid) {
         DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
@@ -529,8 +535,7 @@ public class DingDingServiceImpl implements DingDingService {
         try {
             String accessToken = null;
             if (isPrivateDeploy) {
-                CompanyDingding companyDingding = companyDingdingMapper.selectById(corpid);
-                accessToken = getInnerCorpToken(companyDingding);
+                getPrivateAT(corpid);
             } else {
                 accessToken = getValidCorpAccessToken(corpid);
             }