|
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.TypeReference;
|
|
|
import com.dragoninfo.dcuc.app.entity.ApplyInfo;
|
|
|
import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
|
|
|
import com.dragoninfo.dcuc.auth.auth.constance.CommonCons;
|
|
|
+import com.dragoninfo.dcuc.auth.business.IBimBusiness;
|
|
|
import com.dragoninfo.dcuc.auth.config.DcucAuthConfig;
|
|
|
import com.dragoninfo.dcuc.auth.config.SubSyncConfig;
|
|
|
import com.dragoninfo.dcuc.auth.constance.AddSyncContance;
|
|
@@ -18,6 +19,7 @@ import com.dragoninfo.dcuc.auth.sub.entity.*;
|
|
|
import com.dragoninfo.dcuc.auth.sub.enumresource.JobTypeEnum;
|
|
|
import com.dragoninfo.dcuc.auth.sub.service.*;
|
|
|
import com.dragoninfo.dcuc.auth.sub.util.UserCenterBusiUtil;
|
|
|
+import com.dragoninfo.dcuc.common.Constants;
|
|
|
import com.dragoninfo.dcuc.common.entity.*;
|
|
|
import com.dragoninfo.dcuc.common.http.HttpUtil;
|
|
|
import com.dragoninfo.dcuc.duceap.enums.UserTypeEnum;
|
|
@@ -35,6 +37,7 @@ import com.dragonsoft.duceap.core.search.enums.SearchOperator;
|
|
|
import com.google.common.base.Joiner;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.http.Header;
|
|
|
+import org.apache.http.message.BasicHeader;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
@@ -44,7 +47,6 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.util.StopWatch;
|
|
|
-
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -112,13 +114,16 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
@Autowired
|
|
|
private IAuthOrgAddOriginalService orgAddOriginalService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IBimBusiness bimBusiness;
|
|
|
+
|
|
|
@Override
|
|
|
public ResponseStatus userSync() {
|
|
|
//不使用线程池
|
|
|
//currentUser在线程环境中才能清除
|
|
|
SecurityUser currentUser = UserContextUtils.getCurrentUser();
|
|
|
String idcard = currentUser.getIdcard();
|
|
|
- List<Header> headers = getHeads(idcard);
|
|
|
+ List<Header> headers = getHeads(idcard, authConfig.getAppCode());
|
|
|
Runnable r = getUserSyncTask(currentUser, headers);
|
|
|
Thread t = new Thread(r);
|
|
|
t.start();
|
|
@@ -442,11 +447,11 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
return totalPage;
|
|
|
}
|
|
|
|
|
|
- private List<Header> getHeads(String idcard) {
|
|
|
+ private List<Header> getHeads(String idcard, String appCode) {
|
|
|
if(StringUtils.isBlank(idcard)) {
|
|
|
idcard = authConfig.getOperatorIdcard();
|
|
|
}
|
|
|
- return UserCenterBusiUtil.getHeads(idcard, authConfig.getAppCode());
|
|
|
+ return UserCenterBusiUtil.getHeads(idcard, appCode);
|
|
|
}
|
|
|
|
|
|
private void saveUserOri(Date now, ApiResultPage<JSONObject> syncResult, UserTypeEnum userType) {
|
|
@@ -621,7 +626,7 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
//不使用线程池
|
|
|
//currentUser在线程环境中才能清除
|
|
|
SecurityUser currentUser = UserContextUtils.getCurrentUser();
|
|
|
- List<Header> heads = getHeads(currentUser.getIdcard());
|
|
|
+ List<Header> heads = getHeads(currentUser.getIdcard(), authConfig.getAppCode());
|
|
|
Runnable r = getOrgSyncTask(currentUser, heads);
|
|
|
Thread t = new Thread(r);
|
|
|
t.start();
|
|
@@ -679,12 +684,24 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
|
|
|
@Override
|
|
|
public ResponseStatus userAddSync() {
|
|
|
+ // 定时任务触发当前登录人为空
|
|
|
SecurityUser currentUser = UserContextUtils.getCurrentUser();
|
|
|
String idcard = null;
|
|
|
if(null != currentUser) {
|
|
|
idcard = currentUser.getIdcard();
|
|
|
}
|
|
|
- List<Header> headers = getHeads(idcard);
|
|
|
+ String appCode = authConfig.getAppCode();
|
|
|
+ List<Header> headers = getHeads(idcard, appCode);
|
|
|
+ // 如果是定时任务触发并且需要竹云认证
|
|
|
+ // 请求中需要添加请求头
|
|
|
+ if (currentUser == null && authConfig.getBimEnabled()) {
|
|
|
+ String userToken = bimBusiness.getUserToken(false);
|
|
|
+ String appToken = bimBusiness.getAppToken(userToken, false);
|
|
|
+ BasicHeader userTokenHeader = new BasicHeader(Constants.USER_TOKEN, userToken);
|
|
|
+ BasicHeader appTokenHeader = new BasicHeader(Constants.APP_TOKEN, appToken);
|
|
|
+ headers.add(userTokenHeader);
|
|
|
+ headers.add(appTokenHeader);
|
|
|
+ }
|
|
|
Runnable r = getUserAddSyncTask(currentUser, headers);
|
|
|
Thread t = new Thread(r);
|
|
|
t.start();
|
|
@@ -1063,12 +1080,24 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
|
|
|
@Override
|
|
|
public ResponseStatus orgAddSync() {
|
|
|
+ // 定时任务当前登录人为空
|
|
|
SecurityUser currentUser = UserContextUtils.getCurrentUser();
|
|
|
String idcard = null;
|
|
|
if(null != currentUser) {
|
|
|
idcard = currentUser.getIdcard();
|
|
|
}
|
|
|
- List<Header> headers = getHeads(idcard);
|
|
|
+ String appCode = authConfig.getAppCode();
|
|
|
+ List<Header> headers = getHeads(idcard, appCode);
|
|
|
+ // 如果是定时任务触发并且需要竹云认证
|
|
|
+ // 请求中需要添加请求头
|
|
|
+ if (currentUser == null && authConfig.getBimEnabled()) {
|
|
|
+ String userToken = bimBusiness.getUserToken(false);
|
|
|
+ String appToken = bimBusiness.getAppToken(userToken, false);
|
|
|
+ BasicHeader userTokenHeader = new BasicHeader(Constants.USER_TOKEN, userToken);
|
|
|
+ BasicHeader appTokenHeader = new BasicHeader(Constants.APP_TOKEN, appToken);
|
|
|
+ headers.add(userTokenHeader);
|
|
|
+ headers.add(appTokenHeader);
|
|
|
+ }
|
|
|
Runnable r = getOrgAddSyncTask(currentUser, headers);
|
|
|
Thread t = new Thread(r);
|
|
|
t.start();
|