From b3a47cb555076c25c64d83dd455a472509291245 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 13 十一月 2023 16:09:35 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/crm --- 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