Bladeren bron

菜单无权限处理

WH01243 1 jaar geleden
bovenliggende
commit
fcec2d23f0

+ 9 - 8
entity/user.go

@@ -354,13 +354,13 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool) (title,
 			} else {
 				capitalBool = true
 				//无权限(有权限未留资|留资了未开通权限) --》 没有配置弹窗信息  --》自定义弹窗
-				title = menu.AdditionalInfo.Title
-				content = menu.AdditionalInfo.Content
-				confirmUrl = menu.AdditionalInfo.ConfirmUrl
-				confirmText = menu.AdditionalInfo.ConfirmText
-				isShowCancel = menu.AdditionalInfo.IsShowCancel
-				appType = menu.AdditionalInfo.AppType
-				openType = menu.AdditionalInfo.OpenType
+				title = menu.AdditionalInfo[wd.Platform].Title
+				content = menu.AdditionalInfo[wd.Platform].Content
+				confirmUrl = menu.AdditionalInfo[wd.Platform].ConfirmUrl
+				confirmText = menu.AdditionalInfo[wd.Platform].ConfirmText
+				isShowCancel = menu.AdditionalInfo[wd.Platform].IsShowCancel
+				appType = menu.AdditionalInfo[wd.Platform].AppType
+				openType = menu.AdditionalInfo[wd.Platform].OpenType
 				break
 			}
 		}
@@ -416,7 +416,8 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool) (title,
 			//customPopup = false
 			title = ConfigJson.DefaultPopup[menu.PowerIds].Title
 			content = ConfigJson.DefaultPopup[menu.PowerIds].Content
-			confirmUrl = ConfigJson.DefaultPopup[menu.PowerIds].ConfirmUrl
+			confirmUrlArr := strings.Split(ConfigJson.DefaultPopup[menu.PowerIds].ConfirmUrl, "__")
+			confirmUrl = MC.InterfaceToStr(MC.If(wd.Platform == "PC", confirmUrlArr[1], confirmUrlArr[0]))
 			confirmText = ConfigJson.DefaultPopup[menu.PowerIds].ConfirmText
 			isShowCancel = ConfigJson.DefaultPopup[menu.PowerIds].IsShowCancel
 			appType = ConfigJson.DefaultPopup[menu.PowerIds].AppType

+ 49 - 46
entity/workDesktop.go

@@ -35,24 +35,24 @@ type WorkDesktopMenu struct {
 // JYMenu 工作桌面菜单内容
 type JYMenu struct {
 	Id             int
-	Name           string     //菜单名称
-	Match          string     //滤镜过滤正则
-	OrderId        int        //菜单排序id
-	ParentId       int        //父级id
-	PowerIds       string     //权限id
-	CheckCode      int        //是否必须验证权限才显示菜单
-	Url            string     //菜单跳转链接
-	Icon           string     //菜单图标
-	AdditionalInfo Additional //附加弹窗信息
-	AppType        string     //菜单模式
-	OpenType       string     //打开方式
-	Status         int        //是否是可用服务
-	PermissionCode string     //功能代码
-	CapitalCode    string     //留资代码
-	CapitalInfo    Additional //留资弹窗
-	Children       []*JYMenu  //菜单s
-	Authority      int        //权限逻辑备注 默认0:功能权限、资源权限、留资权限必须全部满足;1:功能权限或资源权限或留资权限满足其一就行;
-	Level          int        //1:一级菜单;2:二级菜单;3:三级菜单;4:四级菜单
+	Name           string                //菜单名称
+	Match          string                //滤镜过滤正则
+	OrderId        int                   //菜单排序id
+	ParentId       int                   //父级id
+	PowerIds       string                //权限id
+	CheckCode      int                   //是否必须验证权限才显示菜单
+	Url            string                //菜单跳转链接
+	Icon           string                //菜单图标
+	AdditionalInfo map[string]Additional //附加弹窗信息
+	AppType        string                //菜单模式
+	OpenType       string                //打开方式
+	Status         int                   //是否是可用服务
+	PermissionCode string                //功能代码
+	CapitalCode    string                //留资代码
+	CapitalInfo    Additional            //留资弹窗
+	Children       []*JYMenu             //菜单s
+	Authority      int                   //权限逻辑备注 默认0:功能权限、资源权限、留资权限必须全部满足;1:功能权限或资源权限或留资权限满足其一就行;
+	Level          int                   //1:一级菜单;2:二级菜单;3:三级菜单;4:四级菜单
 }
 
 type Additional struct {
@@ -122,9 +122,11 @@ func (m *WorkDesktopMenu) GetMenuTreeData() error {
 			continue
 		}
 		if additionalInfo := MC.ObjToString(v["additionalinfo"]); additionalInfo != "" {
-			additional := Additional{}
+			additional := map[string]Additional{}
 			if json.Unmarshal([]byte(additionalInfo), &additional) == nil {
-				menu.AdditionalInfo = additional
+				menu.AdditionalInfo = map[string]Additional{
+					m.Platform: additional[m.Platform],
+				}
 			}
 		}
 		if capitalInfo := MC.ObjToString(v["capitalinfo"]); capitalInfo != "" {
@@ -183,13 +185,13 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 			OpenType: mv.OpenType,
 			Child:    []*pb.SecondLevelMenu{},
 			TipInfo: &pb.TipInfo{
-				Title:        mv.AdditionalInfo.Title,
-				Content:      mv.AdditionalInfo.Content,
-				ConfirmUrl:   mv.AdditionalInfo.ConfirmUrl,
-				ConfirmText:  mv.AdditionalInfo.ConfirmText,
-				IsShowCancel: mv.AdditionalInfo.IsShowCancel,
-				AppType:      mv.AdditionalInfo.AppType,
-				OpenType:     mv.AdditionalInfo.OpenType,
+				Title:        mv.AdditionalInfo[m.Platform].Title,
+				Content:      mv.AdditionalInfo[m.Platform].Content,
+				ConfirmUrl:   mv.AdditionalInfo[m.Platform].ConfirmUrl,
+				ConfirmText:  mv.AdditionalInfo[m.Platform].ConfirmText,
+				IsShowCancel: mv.AdditionalInfo[m.Platform].IsShowCancel,
+				AppType:      mv.AdditionalInfo[m.Platform].AppType,
+				OpenType:     mv.AdditionalInfo[m.Platform].OpenType,
 			},
 			Match: MC.If(mv.Match != "", strings.Split(mv.Match, ","), []string{}).([]string),
 		}
@@ -211,13 +213,13 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 					AppType:  sv.AppType,
 					OpenType: sv.OpenType,
 					TipInfo: &pb.TipInfo{
-						Title:        sv.AdditionalInfo.Title,
-						Content:      sv.AdditionalInfo.Content,
-						ConfirmUrl:   sv.AdditionalInfo.ConfirmUrl,
-						ConfirmText:  sv.AdditionalInfo.ConfirmText,
-						IsShowCancel: sv.AdditionalInfo.IsShowCancel,
-						AppType:      sv.AdditionalInfo.AppType,
-						OpenType:     sv.AdditionalInfo.OpenType,
+						Title:        sv.AdditionalInfo[m.Platform].Title,
+						Content:      sv.AdditionalInfo[m.Platform].Content,
+						ConfirmUrl:   sv.AdditionalInfo[m.Platform].ConfirmUrl,
+						ConfirmText:  sv.AdditionalInfo[m.Platform].ConfirmText,
+						IsShowCancel: sv.AdditionalInfo[m.Platform].IsShowCancel,
+						AppType:      sv.AdditionalInfo[m.Platform].AppType,
+						OpenType:     sv.AdditionalInfo[m.Platform].OpenType,
 					},
 					Match: MC.If(sv.Match != "", strings.Split(sv.Match, ","), []string{}).([]string),
 				}
@@ -236,7 +238,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 						}
 						var (
 							//数据库默认提示弹窗信息
-							title, content, confirmUrl, confirmText, isShowCancel, appType, openType, feasibility = tv.AdditionalInfo.Title, tv.AdditionalInfo.Content, tv.AdditionalInfo.ConfirmUrl, tv.AdditionalInfo.ConfirmText, tv.AdditionalInfo.IsShowCancel, tv.AdditionalInfo.AppType, tv.AdditionalInfo.OpenType, usable
+							title, content, confirmUrl, confirmText, isShowCancel, appType, openType, feasibility = tv.AdditionalInfo[m.Platform].Title, tv.AdditionalInfo[m.Platform].Content, tv.AdditionalInfo[m.Platform].ConfirmUrl, tv.AdditionalInfo[m.Platform].ConfirmText, tv.AdditionalInfo[m.Platform].IsShowCancel, tv.AdditionalInfo[m.Platform].AppType, tv.AdditionalInfo[m.Platform].OpenType, usable
 						)
 
 						//三级菜单------
@@ -246,6 +248,7 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 							//ResourceLib.PowerHandle()
 							title, content, confirmUrl, confirmText, appType, openType, isShowCancel, feasibility = CheckCapitalResources(tv, m, usable, m.VerifyPermissions(tv.PermissionCode))
 						}
+						//弹框地址处理
 						threeLevel := &pb.ThreeLevelMenu{
 							Name:     tv.Name,
 							Icon:     tv.Icon,
@@ -463,11 +466,11 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 			AppType:  mv.AppType,
 			OpenType: mv.OpenType,
 			TipInfo: &pb.TipInfo{
-				Title:        mv.AdditionalInfo.Title,
-				Content:      mv.AdditionalInfo.Content,
-				ConfirmUrl:   mv.AdditionalInfo.ConfirmUrl,
-				ConfirmText:  mv.AdditionalInfo.ConfirmText,
-				IsShowCancel: mv.AdditionalInfo.IsShowCancel,
+				Title:        mv.AdditionalInfo[m.Platform].Title,
+				Content:      mv.AdditionalInfo[m.Platform].Content,
+				ConfirmUrl:   mv.AdditionalInfo[m.Platform].ConfirmUrl,
+				ConfirmText:  mv.AdditionalInfo[m.Platform].ConfirmText,
+				IsShowCancel: mv.AdditionalInfo[m.Platform].IsShowCancel,
 				AppType:      mv.AppType,
 				OpenType:     mv.OpenType,
 			},
@@ -493,13 +496,13 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 				oneLevel.AppType = cv.AppType
 				oneLevel.OpenType = cv.OpenType
 				oneLevel.Usable = feasibility
-				if cv.AdditionalInfo.Title != "" {
+				if cv.AdditionalInfo[m.Platform].Title != "" {
 					oneLevel.TipInfo = &pb.TipInfo{
-						Title:        cv.AdditionalInfo.Title,
-						Content:      cv.AdditionalInfo.Content,
-						ConfirmUrl:   cv.AdditionalInfo.ConfirmUrl,
-						ConfirmText:  cv.AdditionalInfo.ConfirmText,
-						IsShowCancel: cv.AdditionalInfo.IsShowCancel,
+						Title:        cv.AdditionalInfo[m.Platform].Title,
+						Content:      cv.AdditionalInfo[m.Platform].Content,
+						ConfirmUrl:   cv.AdditionalInfo[m.Platform].ConfirmUrl,
+						ConfirmText:  cv.AdditionalInfo[m.Platform].ConfirmText,
+						IsShowCancel: cv.AdditionalInfo[m.Platform].IsShowCancel,
 						AppType:      cv.AppType,
 						OpenType:     cv.OpenType,
 					}

+ 5 - 5
rpc/etc/usercenter.yaml

@@ -13,12 +13,12 @@ CalleeId: usercenter.rpc
 ResourceEtcdConf:
   Etcd:
     Hosts:
-      - 192.168.3.149:2379
+      - 192.168.3.206:2379
     Key: resource.rpc
 PowersEtcdConf:
   Etcd:
     Hosts:
-      - 192.168.3.149:2379
+      - 192.168.3.206:2379
     Key: powercheck.rpc
 Node: 1
 Mysql:
@@ -45,7 +45,7 @@ CheckEntIsExpire: 00:00
 DoMain: https://jybx-webtest.jydev.jianyu360.com
 Timeout: 5000
 RedisAddrees:
-  - newother=192.168.3.149:1712
+  - newother=127.0.0.1:6379
 RedisOutTime: 61 #工作桌面redis缓存时间
 InternalTime: 121 #用户权限 redis 缓存时间
 Mongo:
@@ -68,8 +68,8 @@ DefaultPopup:
     content: 医械通已经上线啦!汇集医疗器械领域的专业数据帮助您~
     confirmText: 了解更多
     isShowCancel: false
-    confirmUrl: /big/medical/Credentials
-    appType: qiankun
+    confirmUrl: https://host.huiju.cool/page/281617177/416deded6b0f4089bc13b16a76910042__http://clpages.cn/yxtsjgwyxy
+    appType: outer
   PC:
     title: 提示信息
     content: 请前往剑鱼标讯APP使用

+ 1 - 0
rpc/internal/logic/workdesktopmenuinfologic.go

@@ -44,6 +44,7 @@ func (l *WorkDesktopMenuInfoLogic) WorkDesktopMenuInfo(in *pb.WorkDesktopMenuInf
 	logx.Info("+++++++++++++++++++++++++++++++:", in.MgoUserId, "---", in.UserId, "---", in.Phone)
 	in.UserId = MC.If(in.PositionId != "", in.PositionId, in.UserId).(string) //p278职位id(没有企业 职位id是个人职位id,职位id对应相应的企业)  职位id 慢慢替换 userId
 	//菜单树
+	in.Platform = MC.InterfaceToStr(MC.If(in.Platform == "", "pc", in.Platform))
 	menuList, err := service.GetWordDesktopMenuTree(in)
 	//菜单模式
 	menuMode, err = service.GetWorkDesktopMenuMode(in)

+ 1 - 1
rpc/internal/server/usercenterserver.go

@@ -1,4 +1,4 @@
-// Code generated by goctl. DO NOT EDIT!
+// Code generated by goctl. DO NOT EDIT.
 // Source: userCenter.proto
 
 package server

+ 1 - 1
rpc/pb/userCenter.pb.go

@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.28.0
+// 	protoc-gen-go v1.28.1
 // 	protoc        v3.15.5
 // source: userCenter.proto
 

+ 1 - 1
rpc/usercenter/usercenter.go

@@ -1,4 +1,4 @@
-// Code generated by goctl. DO NOT EDIT!
+// Code generated by goctl. DO NOT EDIT.
 // Source: userCenter.proto
 
 package usercenter

+ 6 - 5
service/workDesktop.go

@@ -3,7 +3,6 @@ package service
 import (
 	"encoding/json"
 	"fmt"
-	"math/rand"
 	"strconv"
 	"strings"
 	"time"
@@ -150,9 +149,11 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 						menu.Url = MC.ObjToString(mv["pcurl"])
 					}
 					if additionalInfo := MC.ObjToString(mv["additionalinfo"]); additionalInfo != "" {
-						additional := entity.Additional{}
+						additional := map[string]entity.Additional{}
 						if json.Unmarshal([]byte(additionalInfo), &additional) == nil {
-							menu.AdditionalInfo = additional
+							menu.AdditionalInfo = map[string]entity.Additional{
+								m.Platform: additional[m.Platform],
+							}
 						}
 					}
 					//外网不一致,
@@ -293,14 +294,14 @@ func GetWordDesktopMenuTree(in *WorkDesktopMenuInfoReq) ([]*pb.MenuList, error)
 	menuList, err = wdm.WorkMenuFormat()
 	logx.Info("菜单格式化耗时:", time.Since(t1))
 	if err == nil && len(menuList) > 0 && in.WorkStatus == 0 { //我的页面in.WorkStatus == 2 菜单暂不存缓存
-		if menuBytes, err := json.Marshal(menuList); err == nil {
+		/*if menuBytes, err := json.Marshal(menuList); err == nil {
 			redisOutTime := entity.ConfigJson.RedisOutTime + rand.Intn(60)
 			if redis.PutBytes(entity.RedisCode, RedisMenuKey, &menuBytes, redisOutTime) != nil {
 				logx.Info("工作桌面菜单 redis缓存异常")
 			}
 		} else {
 			logx.Info("菜单数据序列化异常")
-		}
+		}*/
 	}
 	logx.Info("整体耗时:", time.Since(t1))
 	return menuList, err