Przeglądaj źródła

Merge branch 'develop' into 'master'

fix(运营平台接口-机构模糊查询): 运营平台接口-机构模糊查询

See merge request dcuc-tjdsj/auth-service!163
马志强 3 lat temu
rodzic
commit
06aaf0cd27

+ 36 - 7
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/business/impl/SubSyncBusinessImpl.java

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

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/service/impl/AuthOrgInfoService.java

@@ -235,7 +235,7 @@ public class AuthOrgInfoService implements IAuthOrgInfoService {
 
     @Override
     public List<AuthOrgInfo> getByCodeLike(String orgCodeLike) {
-        Specification<AuthOrgInfo> specification = (root, query, cb) -> cb.like(root.get("code"), "%" + orgCodeLike + "%");
+        Specification<AuthOrgInfo> specification = (root, query, cb) -> cb.like(root.get("code"),orgCodeLike + "%");
         return orgInfoRepository.findAll(specification);
     }
 }

+ 2 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/task/AddSyncTask.java

@@ -2,6 +2,7 @@ package com.dragoninfo.dcuc.auth.sub.task;
 
 import com.dragoninfo.dcuc.auth.sub.business.ISubSyncBusiness;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Component;
  * @author mazq
  * @date 2021/12/20
  */
+@EnableScheduling
 @Component
 public class AddSyncTask {
 

+ 8 - 4
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/util/UserCenterBusiUtil.java

@@ -7,6 +7,8 @@ import org.apache.http.Header;
 import org.apache.http.message.BasicHeader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
@@ -24,7 +26,12 @@ public class UserCenterBusiUtil {
         List<Header> headers = new ArrayList<>();
         BasicHeader appCodeHeader = new BasicHeader("appCode", appCode);
         BasicHeader idcardHeader = new BasicHeader("idcard", idcard);
-
+        headers.add(appCodeHeader);
+        headers.add(idcardHeader);
+        RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
+        if(null == attributes) {
+            return headers;
+        }
         HttpServletRequest request = RequestUtils.getRequest();
         String userToken = request.getHeader(Constants.USER_TOKEN);
         String appToken  = request.getHeader(Constants.APP_TOKEN);
@@ -39,9 +46,6 @@ public class UserCenterBusiUtil {
             Header appTokeHead = new BasicHeader(Constants.APP_TOKEN, appToken);
             headers.add(appTokeHead);
         }
-
-        headers.add(appCodeHeader);
-        headers.add(idcardHeader);
         return headers;
     }