From d28815a491eac43ad9153b7a83f27ce72d64a47e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 06 二月 2024 14:47:29 +0800
Subject: [PATCH] 兼容
---
service/lru.go | 37 +++++++++++++++++++++++++------------
1 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/service/lru.go b/service/lru.go
index b212997..888aba5 100644
--- a/service/lru.go
+++ b/service/lru.go
@@ -2,39 +2,52 @@
import (
"github.com/hashicorp/golang-lru/v2/expirable"
+ "strings"
"time"
)
-type userBaseInfo struct {
- UserId int
- NickName string
+type UserBaseInfo struct {
+ UserId int
+ NickName string
+ SubUserIds []int
}
-var userCache *expirable.LRU[string, *userBaseInfo]
+var userCache *expirable.LRU[string, *UserBaseInfo]
func init() {
//make cache with 5 minutes TTL and 100 max keys
- userCache = expirable.NewLRU[string, *userBaseInfo](100, nil, time.Minute*5)
+ userCache = expirable.NewLRU[string, *UserBaseInfo](100, nil, time.Minute*1) //todo zq 鏆傛椂鏀规垚 1鍒嗛挓
}
-func GetUserBaseCache(adminUserId string) *userBaseInfo {
- userCache, ok := userCache.Get(adminUserId)
+func GetUserBaseCache(adminUserId string) *UserBaseInfo {
+ cache, ok := userCache.Get(adminUserId)
if !ok {
userService := UserService{}
userRecord, err := userService.GetUserInfo(adminUserId)
if err != nil {
return nil
}
- baseInfo := &userBaseInfo{
- UserId: userRecord.ID,
- NickName: userRecord.NickName,
+ var subIds []int
+ if userRecord.SubUserIds != "" {
+ 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,
+ SubUserIds: subIds,
}
SetUserBaseCache(adminUserId, baseInfo)
return baseInfo
}
- return userCache
+ return cache
}
-func SetUserBaseCache(adminUserId string, user *userBaseInfo) {
+func SetUserBaseCache(adminUserId string, user *UserBaseInfo) {
_ = userCache.Add(adminUserId, user)
}
--
Gitblit v1.8.0