From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 01 十一月 2023 19:20:21 +0800 Subject: [PATCH] 公海member_id使用0 --- 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