From 4c6dcf757cc7962a8dbaefd83588cc576ee44594 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 23 七月 2025 11:29:40 +0800
Subject: [PATCH] 迁移redis服务

---
 se-common/src/main/java/com/terra/common/service/TokenHelper.java |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/se-common/src/main/java/com/terra/common/service/TokenHelper.java b/se-common/src/main/java/com/terra/common/service/TokenHelper.java
new file mode 100644
index 0000000..24aa174
--- /dev/null
+++ b/se-common/src/main/java/com/terra/common/service/TokenHelper.java
@@ -0,0 +1,78 @@
+package com.terra.common.service;
+
+import com.terra.common.entity.all.RedisCacheKey;
+import com.terra.common.entity.lf.TokenPo;
+import com.terra.common.entity.lf.UserPo;
+import com.terra.common.helper.StringHelper;
+import com.terra.common.helper.WebHelper;
+import com.terra.common.mapper.OperatePoMapper;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 浠ょ墝甯姪绫�
+ * @author WWW
+ */
+@Component
+public class TokenHelper {
+    @Resource
+    RedisService redisService;
+
+    @Resource
+    OperatePoMapper mapper;
+
+    public static Integer getCurrentUserId(HttpServletRequest req) {
+        String token = WebHelper.getToken(req);
+
+        return null;
+    }
+
+    public UserPo getUserByToken(String token) {
+        if (StringHelper.isNull(token)) {
+            return null;
+        }
+
+        // redis
+        String userKey = RedisCacheKey.signUserKey(token);
+        Object obj = redisService.get(userKey);
+        if (obj instanceof UserPo) {
+            return (UserPo) obj;
+        }
+
+        // db
+        UserPo po = mapper.selectByToken(token);
+        if (null != po) {
+            getEntityByToken(token);
+        }
+
+        return po;
+    }
+
+    public TokenPo getEntityByToken(String token) {
+        String tokenKey = RedisCacheKey.signTokenKey(token);
+
+        // redis
+        Object obj = redisService.get(tokenKey);
+        if (obj instanceof TokenPo) {
+            return (TokenPo) obj;
+        }
+
+        // db
+        TokenPo te = mapper.selectOneByToken(token);
+        if (null != te) {
+            long min = StringHelper.getMinuteDifference(te.getExpire());
+            if (min > 0) {
+                redisService.put(tokenKey, te, min, TimeUnit.MINUTES);
+            }
+        }
+
+        return te;
+    }
+
+    public static String getCurrentUserName() {
+        return null;
+    }
+}

--
Gitblit v1.9.3