Browse Source

feat:清除缓存rpc

wangshan 2 years ago
parent
commit
a1b21439ff

+ 4 - 1
api/etc/usercenter-api.yaml

@@ -20,4 +20,7 @@ Logx:
   KeepDays: 10
 Auth:
   AccessSecret: jianyuservice
-  AccessExpire: 600
+  AccessExpire: 600
+ManagerUserIds: #可清除用户工作菜单缓存的管理员id
+  - 5f51d194b44a4a76fe4cf342
+  - 62e09d13df1f161cf87b1153

+ 3 - 0
api/internal/config/config.go

@@ -15,4 +15,7 @@ type Config struct {
 		AccessSecret string
 		AccessExpire int64
 	}
+	ManagerUserIds []string
 }
+
+var ManagerUserIdsMap = map[string]bool{}

+ 19 - 10
api/internal/logic/workdesktopclearuserinfologic.go

@@ -3,6 +3,7 @@ package logic
 import (
 	"context"
 	"net/http"
+	"userCenter/api/internal/config"
 	"userCenter/entity"
 	"userCenter/rpc/pb"
 
@@ -29,16 +30,24 @@ func NewWorkDesktopClearUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceCo
 }
 
 func (l *WorkDesktopClearUserInfoLogic) WorkDesktopClearUserInfo(req *types.WorkDesktopClearUserInfo) (resp *types.CommonResp, err error) {
-	res, err := entity.UserCenterRpc.WorkDesktopClearUserInfo(l.ctx, &pb.WorkDesktopClearUserInfoReq{
-		UserId:    req.UserId,
-		AppId:     req.AppId,
-		Platform:  req.Platform,
-		UserIds:   req.UserIds,
-		NewUserId: req.NewUserId,
-	})
+	//有管理员权限
+	if config.ManagerUserIdsMap[req.UserId] {
+		res, err := entity.UserCenterRpc.WorkDesktopClearUserInfo(l.ctx, &pb.WorkDesktopClearUserInfoReq{
+			UserId:    req.UserId,
+			AppId:     req.AppId,
+			Platform:  req.Platform,
+			UserIds:   req.UserIds,
+			NewUserId: req.NewUserId,
+		})
+		return &types.CommonResp{
+			Error_code: res.ErrorCode,
+			Error_msg:  res.ErrorMsg,
+			Data:       res.Data,
+		}, err
+	}
 	return &types.CommonResp{
-		Error_code: res.ErrorCode,
-		Error_msg:  res.ErrorMsg,
-		Data:       res.Data,
+		Error_code: -1,
+		Error_msg:  "无权限",
+		Data:       nil,
 	}, err
 }

+ 6 - 0
api/usercenter.go

@@ -27,6 +27,12 @@ func main() {
 	// logx 根据配置初始化
 	logx.MustSetup(c.Logx)
 
+	//管理员权限
+	if len(c.ManagerUserIds) > 0 {
+		for _, v := range c.ManagerUserIds {
+			config.ManagerUserIdsMap[v] = true
+		}
+	}
 	//前置代理相关
 	var serverCode string = "usercenter"
 	var serverPort int = c.Port

+ 10 - 10
entity/user.go

@@ -53,8 +53,8 @@ func AutoUserPowerInfo(userId, baseUserId, appId string, internalTime int, bigMe
 	data, ok := Mgo.FindById("user", userId, `{"s_phone":1,"s_m_phone":1,i_member_status":1,"s_member_mainid":1,"i_member_sub_status":1,"i_vip_status":1,"o_vipjy":1,"o_jy":1,"l_registedate":1}`)
 	if ok && *data != nil && len(*data) > 0 {
 		var (
-			isFree     = true
-			domainBool = false //第一版领域化权限判断
+			isFree = true
+			//domainBool = false //第一版领域化权限判断
 		)
 		phone, _ := MC.If((*data)["s_phone"] != nil, (*data)["s_phone"], (*data)["s_m_phone"]).(string)
 		if phone != "" {
@@ -94,7 +94,7 @@ func AutoUserPowerInfo(userId, baseUserId, appId string, internalTime int, bigMe
 			if memberStatus := MC.IntAll((*data)["i_member_status"]); memberStatus > 0 || bigMemberOff {
 				userId := userId
 				if memberStatus > 0 {
-					domainBool = true
+					//domainBool = true
 					isFree = false
 					UserPowerMap["0"] = memberStatus
 					//是否是子账号 而且 子账号被启用
@@ -112,7 +112,7 @@ func AutoUserPowerInfo(userId, baseUserId, appId string, internalTime int, bigMe
 			}
 			//VIP用户
 			if vipStatus := MC.IntAll((*data)["i_vip_status"]); vipStatus > 0 {
-				domainBool = true
+				//domainBool = true
 				isFree = false
 				UserPowerMap["200"] = vipStatus
 				if vipSet := MC.ObjToMap((*data)["o_vipjy"]); vipSet != nil {
@@ -144,12 +144,12 @@ func AutoUserPowerInfo(userId, baseUserId, appId string, internalTime int, bigMe
 			//1:是否是大会员或者超级订阅用户 否:提示购买到超级订阅购买页; 是>-2
 			//2:判断用户是否留资  否:提示用去留资;是:>-3
 			//3:资源中台获取用户权限码判断是否有权限 否:提示用户去联系客服
-			if domainBool {
-				//c := BaseMysql.CountBySql(`SELECT COUNT(id) FROM `+CapitalRetention+` WHERE  source = 'medical_domain' AND user_id = ? AND appid = ?`, baseUserId, appId)
-				//if c > 0 {
-				UserPowerMap["500"] = 1
-				//}
-			}
+			//if domainBool {
+			//c := BaseMysql.CountBySql(`SELECT COUNT(id) FROM `+CapitalRetention+` WHERE  source = 'medical_domain' AND user_id = ? AND appid = ?`, baseUserId, appId)
+			//if c > 0 {
+			//UserPowerMap["500"] = 1
+			//}
+			//}
 		}
 		if UserPowerMap != nil {
 			bytes, err := json.Marshal(UserPowerMap)

+ 0 - 3
rpc/etc/usercenter.yaml

@@ -50,9 +50,6 @@ Mongo:
 BigMemberOff: false #大会员权益表是否开放给其他用户
 CommonlySize: 8 #常用功能数量
 CommonlyIds: 47,51,63,65 #默认常用功能
-ManagerUserIds: #可清除用户工作菜单缓存的管理员id
-  - 5f51d194b44a4a76fe4cf342
-  - 62e09d13df1f161cf87b1153
 UserRolePower: #需要初始化的用户角色
   - 大会员
   - 商机管理

+ 5 - 13
rpc/internal/config/config.go

@@ -28,11 +28,10 @@ type Config struct {
 	Mongo            struct {
 		Main *MongoStruct
 	}
-	BigMemberOff   bool
-	CommonlySize   int64  //常用功能设置数量
-	CommonlyIds    string //初始化常用功能内容
-	ManagerUserIds []string
-	UserRolePower  []string
+	BigMemberOff  bool
+	CommonlySize  int64  //常用功能设置数量
+	CommonlyIds   string //初始化常用功能内容
+	UserRolePower []string
 }
 type MongoStruct struct {
 	Address        string `json:"address"`
@@ -47,8 +46,7 @@ type MongoStruct struct {
 }
 
 var (
-	ConfigJson        Config
-	ManagerUserIdsMap = map[string]bool{}
+	ConfigJson Config
 )
 
 type Mongodb struct {
@@ -76,10 +74,4 @@ func init() {
 		},
 	})
 	entity.ResourceLib = resource.NewResource(resourceClient)
-	//
-	if len(ConfigJson.ManagerUserIds) > 0 {
-		for _, v := range ConfigJson.ManagerUserIds {
-			ManagerUserIdsMap[v] = true
-		}
-	}
 }

+ 4 - 12
rpc/internal/logic/workdesktopclearuserinfologic.go

@@ -4,7 +4,6 @@ import (
 	"context"
 	"strings"
 	"userCenter/entity"
-	"userCenter/rpc/internal/config"
 	"userCenter/rpc/internal/svc"
 	"userCenter/rpc/pb"
 
@@ -27,18 +26,11 @@ func NewWorkDesktopClearUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceCo
 
 // 手动清除用户功能内存信息
 func (l *WorkDesktopClearUserInfoLogic) WorkDesktopClearUserInfo(in *pb.WorkDesktopClearUserInfoReq) (*pb.WorkDesktopComprehensiveResp, error) {
-	var r = &pb.WorkDesktopComprehensiveResp{}
-	//是否是管理者账号
-	if config.ManagerUserIdsMap[in.UserId] {
-		//in.UserIds 不为空;清此用户内存信息
-		if in.UserIds != "" {
-			for _, uv := range strings.Split(in.UserIds, ",") {
-				go entity.ClearUserPowerFunc(uv, in.AppId)
-			}
+	//in.UserIds 不为空;清此用户内存信息
+	if in.UserIds != "" {
+		for _, uv := range strings.Split(in.UserIds, ",") {
+			go entity.ClearUserPowerFunc(uv, in.AppId)
 		}
-	} else {
-		r.ErrorCode = -1
-		r.ErrorMsg = "暂无权限"
 	}
 	return &pb.WorkDesktopComprehensiveResp{}, nil
 }