Browse Source

getuserinfo

xiaochan 1 year ago
parent
commit
02ef4bb4d6

+ 6 - 0
src/main/java/thyyxxk/webserver/controller/LoginController.java

@@ -8,6 +8,7 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.service.LoginService;
+import thyyxxk.webserver.utils.ResultVoUtil;
 
 import javax.print.DocFlavor;
 import javax.servlet.http.HttpServletRequest;
@@ -69,4 +70,9 @@ public class LoginController {
         return service.checkVerificationCodeV2(verification);
     }
 
+    @PostMapping("/getUserInfo")
+    public ResultVo<UserInfo> getUserInfo() {
+        return ResultVoUtil.success(service.getUserInfoByCode());
+    }
+
 }

+ 3 - 3
src/main/java/thyyxxk/webserver/dao/his/redislike/RedisLikeDao.java

@@ -43,10 +43,10 @@ public interface RedisLikeDao {
     @Select("select rtrim(name) from zd_country_code where code=#{code}")
     String selectCountryName(@Param("code") String code);
 
-    @Select("select a.code," +
-            " a.name," +
+    @Select("select b.code," +
+            " b.name," +
             " password," +
-            " a.code_rs,rtrim(b.yb_code) as ybCode," +
+            " b.code_rs,rtrim(b.yb_code) as ybCode," +
             " emp_tit_code," +
             " rtrim(b.dept_code) as deptCode," +
             " cast(isnull(NULLIF(doctor_xz_yp, ''), 0) as int) doctor_xz_yp " +

+ 3 - 5
src/main/java/thyyxxk/webserver/entity/settings/IntergrationMenu.java

@@ -95,11 +95,6 @@ public class IntergrationMenu implements Serializable {
     @TableField(value = "path_params")
     private String pathParams;
 
-    /**
-     * 需要登录
-     */
-    @TableField(value = "meta_need_token")
-    private Boolean metaNeedToken;
 
     /**
      * 需要使用卡片main
@@ -129,5 +124,8 @@ public class IntergrationMenu implements Serializable {
         return 2 == type;
     }
 
+    public Boolean getMetaNeedToken() {
+        return Boolean.TRUE;
+    }
 
 }

+ 4 - 1
src/main/java/thyyxxk/webserver/service/LoginService.java

@@ -83,7 +83,6 @@ public class LoginService {
         tempUserInfo.setIp(ip);
         tempUserInfo.setSid(makeSid(tempUserInfo.getCode(), userInfo.getSid(), ip));
         redisLikeService.setUserInfo(tempUserInfo);
-
         return ResultVoUtil.success(tempUserInfo);
     }
 
@@ -173,4 +172,8 @@ public class LoginService {
         return code + uuid;
     }
 
+    public UserInfo getUserInfoByCode() {
+        return redisLikeService.getUserInfoByToken();
+    }
+
 }

+ 20 - 0
src/main/java/thyyxxk/webserver/service/RedisServer.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.service;
 
 import com.google.errorprone.annotations.concurrent.UnlockMethod;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
@@ -12,6 +13,11 @@ import java.util.function.Function;
 @Component
 public class RedisServer {
 
+    @FunctionalInterface
+    public interface CyConsumer<T> {
+        T accept();
+    }
+
     private final RedisTemplate<String, Object> redisTemplate;
 
     public RedisServer(RedisTemplate<String, Object> redisTemplate) {
@@ -47,6 +53,20 @@ public class RedisServer {
         return (T) o;
     }
 
+    @SuppressWarnings("unchecked")
+    public <T> T getData(String key, CyConsumer<T> function) {
+        Object o = redisTemplate.opsForValue().get(key);
+        if (o == null) {
+            if (function == null) {
+                throw new RuntimeException("function should not be null");
+            }
+            T data = function.accept();
+            setData(key, data);
+            return data;
+        }
+        return (T) o;
+    }
+
 
     public Boolean delData(String key) {
         return redisTemplate.delete(key);

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

@@ -273,12 +273,7 @@ public class RedisLikeService {
         if (StringUtil.invalidValue(code)) {
             return null;
         }
-        UserInfo userInfo = redisServer.getData(StrUtil.format(US_INFO_KEY, code));
-        if (null == userInfo) {
-            userInfo = dbUserInfo(code);
-            setUserInfo(userInfo);
-        }
-        return userInfo;
+        return redisServer.getData(StrUtil.format(US_INFO_KEY, code), () -> dbUserInfo(code));
     }
 
     public UserInfo getUserInfoByToken() {