Browse Source

+ 支持在form-data传递token

chen.cheng 4 months ago
parent
commit
559a95db71

+ 0 - 7
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/web/controller/cons/ConsUnitInfoController.java

@@ -43,12 +43,6 @@ public class ConsUnitInfoController extends BaseController {
     @Autowired
     private IConsUnitInfoService consUnitInfoService;
 
-    @Autowired
-    private ISysConfigService configService;
-
-    @Autowired
-    private CADForestCfg cadForestCfg;
-
     /**
      * 查询施工单元列表
      */
@@ -75,7 +69,6 @@ public class ConsUnitInfoController extends BaseController {
         if (StringUtils.isEmpty(consUnitInfo.getFileId())) {
             throw new ServiceException(MessageUtils.message("common.not.null", "file id"));
         }
-        String s = configService.selectConfigByKey(cadForestCfg.getCadBizParam());
         consUnitInfoService.importConsUnitHole(consUnitInfo);
     }
 

+ 1 - 1
bd-park/park-backend/park-application/src/main/resources/application-hm.yml

@@ -5,7 +5,7 @@ spring:
     # 地址
     host: 127.0.0.1
     # 端口,默认为6379
-    port: 6379
+    port: 16379
     # 数据库索引
     database: 1
     # 密码

+ 1 - 0
bd-park/park-backend/park-application/src/main/resources/i18n/messages_en.properties

@@ -38,3 +38,4 @@ cons.unit.delete.no.child=There are lower-level construction units and deletion
 cons.unit.has.no.hole=The construction unit has a designed pile hole, which cannot be deleted.
 machine.auth.param.error=SN, NO, and PWD cannot be empty.
 machine.auth.param.none=Authentication failed, please check the parameters.
+machine.not.assign.task=The machine has not been assigned a task.

+ 2 - 1
bd-park/park-backend/park-application/src/main/resources/i18n/messages_zh.properties

@@ -37,4 +37,5 @@ cons.unit.modify.not.self=修改施工{0}单元失败,上级施工单元不能
 cons.unit.delete.no.child=存在下级施工单元,不允许删除。
 cons.unit.has.no.hole=施工单元存在设计桩孔,不允许删除。
 machine.auth.param.error=SN、NO、PWD不允许为空。
-machine.auth.param.none=认证失败,请检查参数。
+machine.auth.param.none=认证失败,请检查参数。
+machine.not.assign.task=抱歉,机械没有分配任务。

+ 4 - 1
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/impl/ConsPileHoleInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.huashe.park.core.service.impl;
 
 import java.util.List;
 
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -49,7 +50,9 @@ public class ConsPileHoleInfoServiceImpl implements IConsPileHoleInfoService {
             return redisProxy.getCacheObject(redisKey);
         }
         ConsPileHoleInfo consPileHoleInfo = consPileHoleInfoMapper.selectConsPileHoleInfoByByteId(byteKey);
-        redisProxy.setCacheObject(redisKey, consPileHoleInfo);
+        if (ObjectUtils.isNotEmpty(consPileHoleInfo)) {
+            redisProxy.setCacheObject(redisKey, consPileHoleInfo);
+        }
         return consPileHoleInfo;
     }
 

+ 3 - 0
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/impl/ConsUnitInfoServiceImpl.java

@@ -318,6 +318,9 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
         // 使用 Java Stream API 将 ancestors 字符串按逗号分割,并去除重复项
         List<String> unitIds = ancestors.stream().flatMap(s -> Arrays.stream(s.split(","))).distinct()
             .collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(unitIds)){
+            throw new ServiceException(MessageUtils.message("machine.not.assign.task"));
+        }
         return consUnitInfoMapper.qryConsUnitInfoByIds(unitIds);
     }
 

+ 4 - 1
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/impl/PileMachineInfoServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -81,7 +82,9 @@ public class PileMachineInfoServiceImpl implements IPileMachineInfoService {
             return redisProxy.getCacheObject(redisKey);
         }
         PileMachineInfo pileMachineInfo = pileMachineInfoMapper.selectPileMachineInfoByByteId(byteId);
-        redisProxy.setCacheObject(redisKey, pileMachineInfo);
+        if (ObjectUtils.isNotEmpty(pileMachineInfo)) {
+            redisProxy.setCacheObject(redisKey, pileMachineInfo);
+        }
         return pileMachineInfo;
     }
 

+ 34 - 51
common-application/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java

@@ -1,18 +1,8 @@
 package com.ruoyi.framework.web.service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-
 import com.huashe.common.constant.CacheConstants;
 import com.huashe.common.utils.StringUtils;
 import com.huashe.common.utils.uuid.IdUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.redis.RedisCache;
@@ -23,6 +13,16 @@ import eu.bitwalker.useragentutils.UserAgent;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * token验证处理
@@ -30,8 +30,7 @@ import io.jsonwebtoken.SignatureAlgorithm;
  * @author ruoyi
  */
 @Component
-public class TokenService
-{
+public class TokenService {
     private static final Logger log = LoggerFactory.getLogger(TokenService.class);
 
     // 令牌自定义标识
@@ -60,23 +59,18 @@ public class TokenService
      *
      * @return 用户信息
      */
-    public LoginUser getLoginUser(HttpServletRequest request)
-    {
+    public LoginUser getLoginUser(HttpServletRequest request) {
         // 获取请求携带的令牌
         String token = getToken(request);
-        if (StringUtils.isNotEmpty(token))
-        {
-            try
-            {
+        if (StringUtils.isNotEmpty(token)) {
+            try {
                 Claims claims = parseToken(token);
                 // 解析对应的权限以及用户信息
                 String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
                 String userKey = getTokenKey(uuid);
                 LoginUser user = redisCache.getCacheObject(userKey);
                 return user;
-            }
-            catch (Exception e)
-            {
+            } catch (Exception e) {
                 log.error("获取用户信息异常'{}'", e.getMessage());
             }
         }
@@ -86,10 +80,8 @@ public class TokenService
     /**
      * 设置用户身份信息
      */
-    public void setLoginUser(LoginUser loginUser)
-    {
-        if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken()))
-        {
+    public void setLoginUser(LoginUser loginUser) {
+        if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) {
             refreshToken(loginUser);
         }
     }
@@ -97,10 +89,8 @@ public class TokenService
     /**
      * 删除用户身份信息
      */
-    public void delLoginUser(String token)
-    {
-        if (StringUtils.isNotEmpty(token))
-        {
+    public void delLoginUser(String token) {
+        if (StringUtils.isNotEmpty(token)) {
             String userKey = getTokenKey(token);
             redisCache.deleteObject(userKey);
         }
@@ -112,8 +102,7 @@ public class TokenService
      * @param loginUser 用户信息
      * @return 令牌
      */
-    public String createToken(LoginUser loginUser)
-    {
+    public String createToken(LoginUser loginUser) {
         String token = IdUtils.fastUUID();
         loginUser.setToken(token);
         setUserAgent(loginUser);
@@ -130,12 +119,10 @@ public class TokenService
      * @param loginUser
      * @return 令牌
      */
-    public void verifyToken(LoginUser loginUser)
-    {
+    public void verifyToken(LoginUser loginUser) {
         long expireTime = loginUser.getExpireTime();
         long currentTime = System.currentTimeMillis();
-        if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
-        {
+        if (expireTime - currentTime <= MILLIS_MINUTE_TEN) {
             refreshToken(loginUser);
         }
     }
@@ -145,8 +132,7 @@ public class TokenService
      *
      * @param loginUser 登录信息
      */
-    public void refreshToken(LoginUser loginUser)
-    {
+    public void refreshToken(LoginUser loginUser) {
         loginUser.setLoginTime(System.currentTimeMillis());
         loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
         // 根据uuid将loginUser缓存
@@ -159,8 +145,7 @@ public class TokenService
      *
      * @param loginUser 登录信息
      */
-    public void setUserAgent(LoginUser loginUser)
-    {
+    public void setUserAgent(LoginUser loginUser) {
         UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
         String ip = IpUtils.getIpAddr();
         loginUser.setIpaddr(ip);
@@ -175,8 +160,7 @@ public class TokenService
      * @param claims 数据声明
      * @return 令牌
      */
-    private String createToken(Map<String, Object> claims)
-    {
+    private String createToken(Map<String, Object> claims) {
         String token = Jwts.builder()
                 .setClaims(claims)
                 .signWith(SignatureAlgorithm.HS512, secret).compact();
@@ -189,8 +173,7 @@ public class TokenService
      * @param token 令牌
      * @return 数据声明
      */
-    private Claims parseToken(String token)
-    {
+    private Claims parseToken(String token) {
         return Jwts.parser()
                 .setSigningKey(secret)
                 .parseClaimsJws(token)
@@ -203,8 +186,7 @@ public class TokenService
      * @param token 令牌
      * @return 用户名
      */
-    public String getUsernameFromToken(String token)
-    {
+    public String getUsernameFromToken(String token) {
         Claims claims = parseToken(token);
         return claims.getSubject();
     }
@@ -215,18 +197,19 @@ public class TokenService
      * @param request
      * @return token
      */
-    private String getToken(HttpServletRequest request)
-    {
+    private String getToken(HttpServletRequest request) {
         String token = request.getHeader(header);
-        if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
-        {
+        if (StringUtils.isNull(token)) {
+            // 从消息体中获取token
+            token = request.getParameter("token");
+        }
+        if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) {
             token = token.replace(Constants.TOKEN_PREFIX, "");
         }
         return token;
     }
 
-    private String getTokenKey(String uuid)
-    {
+    private String getTokenKey(String uuid) {
         return CacheConstants.LOGIN_TOKEN_KEY + uuid;
     }
 }