Browse Source

优化sid

xiaochan 6 months ago
parent
commit
7a9df86b11

+ 2 - 18
src/main/java/thyyxxk/webserver/service/LoginService.java

@@ -130,22 +130,6 @@ public class LoginService {
         return login(us, request, false);
     }
 
-    @DS("his")
-    public ResultVo<Map<String, Object>> fetchVueMenus(String code) {
-        // 63 只有个人中心的权限
-        List<Integer> roles = dao.getUserRoles(code == null ? TokenUtil.getInstance().getTokenUserId() : code);
-        if (null == roles || roles.isEmpty()) {
-            roles = Collections.singletonList(63);
-        } else {
-            roles.add(63);
-        }
-        Map<String, Object> map = new HashMap<>();
-        List<IntergrationMenu> list = menuSettingsService.getUserMenu(code);
-        map.put("routes", list);
-        map.put("paths", dao.selectVueMenusPathByRoles(roles));
-        return ResultVoUtil.success(map);
-    }
-
     public ResultVo<List<CodeName>> getWards() {
         String code = TokenUtil.getInstance().getTokenUserId();
         if (publicServer.needRule(2, 8, 52)) {
@@ -159,9 +143,9 @@ public class LoginService {
         return ResultVoUtil.success(dao.getAllWards());
     }
 
-    private String makeSid(String code, String sid, String ip) {
+    public static String makeSid(String code, String sid, String ip) {
         String uuid = UUID.randomUUID().toString().replaceAll("-", "");
-        if (StringUtil.notBlank(sid) && "fromTriageScreen".equals(sid)) {
+        if ("fromTriageScreen".equals(sid)) {
             uuid += "-triageFloorScreen";
         } else {
             uuid = "-" + ip + "-" + uuid;

+ 24 - 1
src/main/java/thyyxxk/webserver/service/redislike/RedisLikeService.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.redislike;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
@@ -13,12 +14,15 @@ import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.settings.IntergrationPlatformRoleMenu;
 import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.YzZdOrderItemConfirm;
+import thyyxxk.webserver.service.LoginService;
 import thyyxxk.webserver.service.RedisServer;
+import thyyxxk.webserver.utils.IpAddressUtil;
 import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.StringUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
 import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -297,6 +301,23 @@ public class RedisLikeService {
         return userInfo;
     }
 
+    private void setSid(UserInfo us) {
+        if (StrUtil.isBlank(us.getSid())) {
+            return;
+        }
+        HttpServletRequest request = TokenUtil.getInstance().getRequest();
+        if (request == null) {
+            return;
+        }
+        String code = us.getCode();
+        String sid = null;
+        String ip = IpAddressUtil.getIPAddress(request);
+        if (us.getSid().indexOf("-triageFloorScreen") > 0) {
+            sid = "fromTriageScreen";
+        }
+        us.setSid(LoginService.makeSid(code, sid, ip));
+    }
+
     /**
      * 获取用户信息,并且放入 redis
      *
@@ -307,7 +328,9 @@ public class RedisLikeService {
         if (StringUtil.invalidValue(code)) {
             return null;
         }
-        return redisServer.getData(RedisServer.USER_INFO(code), () -> dbUserInfo(code));
+        UserInfo data = redisServer.getData(RedisServer.USER_INFO(code), () -> dbUserInfo(code));
+        setSid(data);
+        return data;
     }
 
     public UserInfo getUserInfoByToken() {

+ 1 - 1
src/main/java/thyyxxk/webserver/utils/TokenUtil.java

@@ -85,7 +85,7 @@ public class TokenUtil {
         }
     }
 
-    private HttpServletRequest getRequest() {
+    public HttpServletRequest getRequest() {
         ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
                 .getRequestAttributes();
         return requestAttributes == null ? null : requestAttributes.getRequest();