Parcourir la source

Merge remote-tracking branch 'origin/master'

liujh il y a 3 ans
Parent
commit
3ef0f5935e

+ 4 - 0
zd-common/zd-common-core/src/main/java/com/zd/common/core/constant/SecurityConstants.java

@@ -35,6 +35,10 @@ public class SecurityConstants {
      * 请求来源
      */
     public static final String FROM_SOURCE = "from-source";
+    /**
+     * 指定数据源
+     */
+    public static final String DB = "db";
 
     /**
      * 内部请求

+ 3 - 1
zd-common/zd-common-security/src/main/java/com/zd/common/security/aspect/ServiceAspect.java

@@ -13,6 +13,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 
+import static com.zd.common.core.constant.SecurityConstants.DB;
+
 /**
  * @author hanson
  */
@@ -30,7 +32,7 @@ public class ServiceAspect {
         ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
         if (sra != null) {
             HttpServletRequest request = sra.getRequest();
-            String db = request.getHeader("db");
+            String db = request.getHeader(DB);
             if (StringUtils.hasLength(db)) {
                 DynamicDataSourceContextHolder.push(db);
             }

+ 8 - 0
zd-common/zd-common-security/src/main/java/com/zd/common/security/feign/FeignRequestInterceptor.java

@@ -11,6 +11,8 @@ import com.zd.common.core.utils.ip.IpUtils;
 import feign.RequestInterceptor;
 import feign.RequestTemplate;
 
+import static com.zd.common.core.constant.SecurityConstants.DB;
+
 /**
  * feign 请求拦截器
  *
@@ -28,6 +30,12 @@ public class FeignRequestInterceptor implements RequestInterceptor {
             if (StringUtils.isNotEmpty(userId)) {
                 requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId);
             }
+            //配置多数据源情况下对feign请求的兼容
+            String dbName = headers.get(DB);
+            if (StringUtils.isNotEmpty(dbName)) {
+                requestTemplate.header(SecurityConstants.DB, dbName);
+            }
+
             String userName = headers.get(SecurityConstants.DETAILS_USERNAME);
             if (StringUtils.isNotEmpty(userName)) {
                 requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName);

+ 4 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/device/DeviceRemoteController.java

@@ -123,15 +123,15 @@ public class DeviceRemoteController {
             Thread.sleep(900);
             Integer status = redisService.getCacheObject(relayCode + ":" + cabinetV2Lock.getLockId());
             logger.info("柜锁关锁状态查询:" + instruct + ",关锁结果" + status);
-            /*if(status != null && status == 0){
+            if(status != null && status == 0){
                 return R.ok("关锁成功");
-            }*/
-            return R.ok("关锁成功");
+            }
+//            return R.ok("关锁成功");
         } catch (Exception e) {
             e.printStackTrace();
             logger.error("柜锁连接失败:" + e.getMessage());
             return R.fail("柜锁连接失败!");
         }
-        //return R.fail("关锁失败");
+        return R.fail("关锁失败:请手动按压柜锁,确认已关闭!");
     }
 }