From ff1ee6b076586cb5009e452bb9d39822df91973e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 28 十月 2023 18:25:12 +0800
Subject: [PATCH] fix

---
 middleware/refresh_user.go |    1 +
 service/lru.go             |   17 +++++++++++------
 middleware/jwt.go          |   12 +++++++-----
 model/user.go              |    4 ++--
 4 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/middleware/jwt.go b/middleware/jwt.go
index 5007bac..907a1d0 100644
--- a/middleware/jwt.go
+++ b/middleware/jwt.go
@@ -98,11 +98,8 @@
 		// parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭�
 		claims, err := j.ParseToken(token)
 		if err != nil {
-			if err == utils.TokenExpired {
-				c.Next()
-				return
-			}
-			c.Next()
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
 			return
 		}
 		userInfo := service.GetUserBaseCache(claims.UserId)
@@ -110,6 +107,11 @@
 			SyncUserInfo([]string{claims.UserId})
 			userInfo = service.GetUserBaseCache(claims.UserId)
 		}
+		if userInfo == nil {
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
+			return
+		}
 
 		SetActiveTime(claims.UserId)
 
diff --git a/middleware/refresh_user.go b/middleware/refresh_user.go
index 22db40c..c1ae38d 100644
--- a/middleware/refresh_user.go
+++ b/middleware/refresh_user.go
@@ -43,6 +43,7 @@
 		intervalRefreshUserMinute: intervalRefreshUserMinute,
 		ctx:                       ctx,
 		cancel:                    cancel,
+		Users:                     map[string]*CurrentActiveUser{},
 	}
 }
 
diff --git a/model/user.go b/model/user.go
index 42f71dd..db6afb1 100644
--- a/model/user.go
+++ b/model/user.go
@@ -314,11 +314,11 @@
 func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) {
 	var (
 		records = make([]*IdPair, 0)
-		db      = slf.build()
+		db      = slf.Orm.Model(&User{})
 	)
 
 	db = db.Where("uuid in ?", userIds)
-	if err := db.Find(&records).Error; err != nil {
+	if err := db.Select("user.id, user.uuid").Find(&records).Error; err != nil {
 		return records, fmt.Errorf("find all err: %v", err)
 	}
 
diff --git a/service/lru.go b/service/lru.go
index 040f2b6..4a9f173 100644
--- a/service/lru.go
+++ b/service/lru.go
@@ -20,18 +20,23 @@
 }
 
 func GetUserBaseCache(adminUserId string) *UserBaseInfo {
-	userCache, ok := userCache.Get(adminUserId)
+	cache, ok := userCache.Get(adminUserId)
 	if !ok {
 		userService := UserService{}
 		userRecord, err := userService.GetUserInfo(adminUserId)
 		if err != nil {
 			return nil
 		}
-		subIds, _, err := userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
-		subIds = append(subIds, userRecord.ID)
-		if err != nil {
-			return nil
+		var subIds []int
+		if len(userRecord.SubUserIds) > 0 {
+			subIds, _, err = userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
+			if err != nil {
+				return nil
+			}
 		}
+
+		subIds = append(subIds, userRecord.ID)
+
 		baseInfo := &UserBaseInfo{
 			UserId:     userRecord.ID,
 			NickName:   userRecord.NickName,
@@ -40,7 +45,7 @@
 		SetUserBaseCache(adminUserId, baseInfo)
 		return baseInfo
 	}
-	return userCache
+	return cache
 }
 
 func SetUserBaseCache(adminUserId string, user *UserBaseInfo) {

--
Gitblit v1.8.0