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