Browse Source

feat:菜单缓存key

wangshan 2 năm trước cách đây
mục cha
commit
118b137b4d
5 tập tin đã thay đổi với 11 bổ sung15 xóa
  1. 2 1
      entity/entity.go
  2. 4 6
      entity/user.go
  3. 1 0
      rpc/etc/usercenter.yaml
  4. 1 1
      service/workDesktop.go
  5. 3 7
      service/workDesktop_test.go

+ 2 - 1
entity/entity.go

@@ -32,7 +32,8 @@ type RpcConfig struct {
 	DefaultPopup         map[string]Additional //菜单默认弹窗
 	WorkTableOut         string                //外网菜单表名
 	WorkTableInside      string                //内网菜单表名
-	RpcPort              string
+	RpcPort              string                //
+	MenuCacheKey         string                //多套环境 配置不同key,同一个用户对应不用菜单缓存
 }
 
 //

+ 4 - 6
entity/user.go

@@ -217,12 +217,10 @@ func (m *WorkDesktopMenu) AutoUserPowerInfo() map[string]int {
 
 // ClearUserPowerFunc clear One
 func ClearUserPowerFunc(userId, appId string) {
-	userPowerRedisKey := fmt.Sprintf(UserPowerRedisKey, appId, time.Now().Day(), userId)
-	redis.Del(RedisCode, userPowerRedisKey)
-	for _, v := range []string{"PC", "APP", "WX"} {
-		RedisMenuKey := fmt.Sprintf(RedisMenuKey, appId, v, userId)
-		redis.Del(RedisCode, RedisMenuKey)
-	}
+	//用户权限缓存
+	redis.Del(RedisCode, fmt.Sprintf(UserPowerRedisKey, appId, time.Now().Day(), userId))
+	//用户菜单缓存
+	redis.Del(RedisCode, fmt.Sprintf(RedisMenuKey, appId, ConfigJson.MenuCacheKey, userId))
 }
 
 // UserRolePowerInit 用户角色权限初始化

+ 1 - 0
rpc/etc/usercenter.yaml

@@ -85,3 +85,4 @@ DefaultPopup:
 WorkTableOut: work_menu_new
 WorkTableInside: work_menu_new
 RpcPort: "8081"
+MenuCacheKey: menu1

+ 1 - 1
service/workDesktop.go

@@ -245,7 +245,7 @@ func GetWordDesktopMenuTree(in *WorkDesktopMenuInfoReq) ([]*pb.MenuList, error)
 	var (
 		menuList []*pb.MenuList
 	)
-	RedisMenuKey := fmt.Sprintf(entity.RedisMenuKey, in.AppId, in.Platform, in.UserId)
+	RedisMenuKey := fmt.Sprintf(entity.RedisMenuKey, in.AppId, entity.ConfigJson.MenuCacheKey, in.UserId)
 	logx.Info("RedisMenuKey:", RedisMenuKey)
 	menuBytes, err := redis.GetBytes(entity.RedisCode, RedisMenuKey)
 	if in.WorkStatus == 0 && err == nil && len(*menuBytes) > 0 {

+ 3 - 7
service/workDesktop_test.go

@@ -63,16 +63,12 @@ func Test_WorkDesktopMenuTree(t *testing.T) {
 			want: "",
 		},
 	}
-	var redisMap = map[string]bool{}
 	for _, in := range tests {
 		t.Run(in.name, func(t *testing.T) {
-			if !redisMap[in.args.Platform] {
-				RedisMenuKey := fmt.Sprintf(entity.RedisMenuKey, in.args.AppId, in.args.Platform, MC.If(in.args.PositionId != "", in.args.PositionId, in.args.UserId).(string))
-				redis.Del(entity.RedisCode, RedisMenuKey)
-			}
+			RedisMenuKey := fmt.Sprintf(entity.RedisMenuKey, in.args.AppId, entity.ConfigJson.MenuCacheKey, MC.If(in.args.PositionId != "", in.args.PositionId, in.args.UserId).(string))
+			redis.Del(entity.RedisCode, RedisMenuKey)
 			res, err := GetWordDesktopMenuTree(in.args)
-			log.Println("err:", err, "---res:", res)
-			if len(res) == 0 {
+			if len(res) == 0 || err != nil {
 				log.Println(in.args.Platform, "异常:")
 			}
 		})