浏览代码

feat:移动端常用功能

wangshan 2 年之前
父节点
当前提交
2f22f426ce
共有 3 个文件被更改,包括 85 次插入24 次删除
  1. 43 10
      entity/workDesktop.go
  2. 13 1
      rpc/etc/usercenter.yaml
  3. 29 13
      service/workDesktop.go

+ 43 - 10
entity/workDesktop.go

@@ -50,8 +50,8 @@ type JYMenu struct {
 type Additional struct {
 	Title        string `json:"title"`                      //弹窗标题
 	Content      string `json:"content"`                    //弹窗提示信息
-	ConfirmUrl   string `json:"confirmUrl"`                 //确认按钮跳转地址
-	ConfirmText  string `json:"confirmText"`                //确认按钮
+	ConfirmUrl   string `json:"confirmUrl,optional"`        //确认按钮跳转地址
+	ConfirmText  string `json:"confirmText,optional"`       //确认按钮
 	IsShowCancel bool   `json:"isShowCancel,optional"`      //是否显示取消按钮
 	AppType      string `json:"appType,optional,omitempty"` //跳转方式
 	OpenType     string `json:"openType,optional,omitempty"`
@@ -206,8 +206,8 @@ func (m *WorkDesktopMenu) WorkMenuFormat() ([]*pb.MenuList, error) {
 				}
 				if len(sv.Children) > 0 {
 					for _, tv := range sv.Children {
-						//附件下载包、采购单位画像记录、企业画像记录  如果是大会员+超级订阅  排除此三项菜单
-						//灵活性降低,不应该这么搞
+						//附件下载包、采购单位画像记录、企业画像记录  如果是大会员  排除此三项菜单
+						//灵活性降低
 						if (tv.Name == "附件下载包" && m.VerifyPermissions("3")) || (tv.Name == "采购单位画像记录" && m.VerifyPermissions("5")) || (tv.Name == "企业画像记录" && m.VerifyPermissions("4,12,13,19,20,21,23")) {
 							continue
 						}
@@ -401,12 +401,18 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 	delBool := false //更新因超级订阅用户,又购买大会员得用户 导致附件下载包||采购单位画像记录||企业画像记录 不应该展示
 	var saveIds []string
 	for _, mv := range m.MenuTree {
-		//过滤子级   ++  三级下架菜单:mv.Status == 1
-		if subLevel[mv.ParentId] || mv.Status == 1 {
+		//三级菜单已处理,子级四级菜单不再处理
+		//过滤子级   ++
+		if subLevel[mv.ParentId] {
 			continue
 		}
-		//附件下载包、采购单位画像记录、企业画像记录  如果是大会员+超级订阅  排除此三项菜单
-		//灵活性降低,不应该这么搞
+		//三级下架菜单:mv.Status == 1
+		if mv.Status == 1 {
+			delBool = true
+			continue
+		}
+		//附件下载包、采购单位画像记录、企业画像记录  如果是大会员  排除此三项菜单
+		//灵活性降低
 		if (mv.Name == "附件下载包" && m.VerifyPermissions("3")) || (mv.Name == "采购单位画像记录" && m.VerifyPermissions("5")) || (mv.Name == "企业画像记录" && m.VerifyPermissions("4,12,13,19,20,21,23")) {
 			delBool = true
 			continue
@@ -415,12 +421,17 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 		subLevel[mv.Id] = true
 		//0:默认展示;1:需验证权限,有权限展示;2:需验证权限,无权限也可展示(可用服务无权限不展示)
 		usable := m.VerifyPermissions(mv.PowerIds)
+		feasibility := usable
+		//三级菜单------
+		if len(childMenus[mv.Id]) == 0 && (mv.CapitalCode != "" || mv.PermissionCode != "") {
+			_, _, _, _, _, _, _, feasibility = CheckCapitalResources(mv, m, usable, m.VerifyPermissions(mv.PermissionCode))
+		}
 		oneLevel := &pb.ThreeLevelMenu{
 			Name:     mv.Name,
 			Icon:     mv.Icon,
 			Url:      mv.Url,
 			Id:       encrypt.SE.EncodeString(strconv.Itoa(mv.Id)), //功能id加密
-			Usable:   usable,                                       //MC.If(mv.PowerIds != "", usable && mv.CheckCode == 1, true).(bool),
+			Usable:   feasibility,                                  //MC.If(mv.PowerIds != "", usable && mv.CheckCode == 1, true).(bool),
 			AppType:  mv.AppType,
 			OpenType: mv.OpenType,
 			TipInfo: &pb.TipInfo{
@@ -442,13 +453,18 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 			})
 		L:
 			for _, cv := range childMenu {
-				if cv.Name == "" || cv.ParentId != mv.Id {
+				//cv.Status < 0 四级菜单 生效不再处理;因为常用功能设置保存的都是三级菜单id,如果三级菜单功能下架,只处理三级菜单。
+				if cv.Name == "" || cv.ParentId != mv.Id || cv.Status < 0 {
 					continue
 				}
+				if cv.CapitalCode != "" || cv.PermissionCode != "" {
+					_, _, _, _, _, _, _, feasibility = CheckCapitalResources(cv, m, usable, m.VerifyPermissions(cv.PermissionCode))
+				}
 				oneLevel.Url = MC.If(cv.Url != "", cv.Url, mv.Url).(string)
 				oneLevel.Icon = MC.If(cv.Icon != "", cv.Icon, mv.Icon).(string)
 				oneLevel.AppType = cv.AppType
 				oneLevel.OpenType = cv.OpenType
+				oneLevel.Usable = feasibility
 				if cv.AdditionalInfo.Title != "" {
 					oneLevel.TipInfo = &pb.TipInfo{
 						Title:        cv.AdditionalInfo.Title,
@@ -467,6 +483,23 @@ func (m *WorkDesktopMenu) CommonlyFormat(childMenus map[int][]*JYMenu) ([]*pb.Th
 				}
 			}
 		}
+		//跨平台,非本平台功能,给用户提示信息
+		if oneLevel.Url == "-1" {
+			oneLevel.TipInfo = &pb.TipInfo{
+				Title:        ConfigJson.DefaultPopup[m.Platform].Title,
+				Content:      ConfigJson.DefaultPopup[m.Platform].Content,
+				ConfirmUrl:   ConfigJson.DefaultPopup[m.Platform].ConfirmUrl,
+				ConfirmText:  ConfigJson.DefaultPopup[m.Platform].ConfirmText,
+				IsShowCancel: ConfigJson.DefaultPopup[m.Platform].IsShowCancel,
+				AppType:      oneLevel.TipInfo.AppType,
+				OpenType:     oneLevel.TipInfo.OpenType,
+			}
+		}
+		//1、当前平台有权限,清空提示信息
+		//2、提示信息内容为空,清空提示信息
+		if (oneLevel.Url != "-1" && oneLevel.Usable) || oneLevel.TipInfo.Content == "" {
+			oneLevel.TipInfo = &pb.TipInfo{}
+		}
 		menuList = append(menuList, oneLevel)
 	}
 	return menuList, saveIds, delBool

+ 13 - 1
rpc/etc/usercenter.yaml

@@ -64,4 +64,16 @@ DefaultPopup:
     confirmText: 了解更多
     isShowCancel: false
     confirmUrl: /big/medical/Credentials
-    appType: qiankun
+    appType: qiankun
+  PC:
+    title: 提示信息
+    content: 请前往剑鱼标讯APP使用
+    confirmText: 知道了
+  WX:
+    title: 提示信息
+    content: 请前往电脑端使用
+    confirmText: 知道了
+  APP:
+    title: 提示信息
+    content: 请前往电脑端使用
+    confirmText: 知道了

+ 29 - 13
service/workDesktop.go

@@ -30,7 +30,9 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 	case "commonlyList":
 		//查询常用功能列表
 		in.ActionMode = "commonlyRenew"
-		existingData := entity.BaseMysql.SelectBySql(`SELECT value  FROM `+entity.WorkCommonly+` WHERE base_userid = ? AND appid = ? AND field = ? AND platform = ?  ORDER BY id DESC `, in.NewUserId, in.AppId, in.ActionMode, in.Platform)
+		//existingData := entity.BaseMysql.SelectBySql(`SELECT value  FROM `+entity.WorkCommonly+` WHERE base_userid = ? AND appid = ? AND field = ? AND platform = ?  ORDER BY id DESC `, in.NewUserId, in.AppId, in.ActionMode, in.Platform)
+		//常用功能不再分平台,来自需求
+		existingData := entity.BaseMysql.SelectBySql(`SELECT value  FROM `+entity.WorkCommonly+` WHERE base_userid = ? AND appid = ? AND field = ? ORDER BY id DESC `, in.NewUserId, in.AppId, in.ActionMode)
 		var (
 			pIds []string
 		)
@@ -63,7 +65,7 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 		if len(pIds) > 0 {
 			//常用功能存储是三级菜单id,需要四级菜单信息也查出来
 			//会出现 用户设置常用功能,此功能下线,用户设置依然保存的有此功能  查询不能加 AND status = 0
-			menuData := entity.BaseMysql.SelectBySql(fmt.Sprintf(`SELECT * from %s WHERE  ( id IN (%s)  OR parentid IN (%s))`, entity.WorkMenu, strings.Join(pIds, ","), strings.Join(pIds, ",")))
+			menuData := entity.BaseMysql.SelectBySql(fmt.Sprintf(`SELECT * from %s WHERE id IN (%s)  OR (parentid IN (%s)  AND status = 0)`, entity.WorkMenu, strings.Join(pIds, ","), strings.Join(pIds, ",")))
 			if menuData != nil && len(*menuData) > 0 {
 				var (
 					m = &entity.WorkDesktopMenu{
@@ -71,6 +73,10 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 						UserId:    in.UserId,
 						NewUserId: in.NewUserId,
 						AppId:     in.AppId,
+						Platform:  in.Platform,
+						//EntId:        in.EntId,
+						//EntUserId:    in.EntUserId,
+						//IntranetBool: in.IntranetBool,
 					}
 					childMenus = map[int][]*entity.JYMenu{}
 				)
@@ -83,23 +89,32 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 					parentId := MC.IntAll(mv["parentid"])
 					parentIsExists[id] = true
 					menu := &entity.JYMenu{
-						Id:        MC.IntAll(mv["id"]),
-						Name:      MC.ObjToString(mv["name"]),
-						Match:     MC.ObjToString(mv["match"]),
-						OrderId:   MC.IntAll(mv["orderid"]),
-						ParentId:  parentId,
-						PowerIds:  MC.ObjToString(mv["powerids"]),
-						CheckCode: MC.IntAll(mv["checkcode"]),
-						Icon:      MC.ObjToString(mv["icon"]),
-						AppType:   MC.ObjToString(mv["apptype"]),
-						OpenType:  MC.ObjToString(mv["opentype"]),
-						Status:    MC.IntAll(mv["status"]),
+						Id:             MC.IntAll(mv["id"]),
+						Name:           MC.ObjToString(mv["name"]),
+						Match:          MC.ObjToString(mv["match"]),
+						OrderId:        MC.IntAll(mv["orderid"]),
+						ParentId:       parentId,
+						PowerIds:       MC.ObjToString(mv["powerids"]),
+						CheckCode:      MC.IntAll(mv["checkcode"]),
+						Icon:           MC.ObjToString(mv["icon"]),
+						AppType:        MC.ObjToString(mv["apptype"]),
+						OpenType:       MC.ObjToString(mv["opentype"]),
+						Status:         MC.IntAll(mv["status"]),
+						PermissionCode: MC.ObjToString(mv["permissioncode"]),
+						CapitalCode:    MC.ObjToString(mv["capitalcode"]),
+						Authority:      MC.IntAll(mv["authority"]),
+					}
+					var OpenType = map[string]string{}
+					if err := json.Unmarshal([]byte(MC.ObjToString(mv["opentype"])), &OpenType); err == nil {
+						menu.OpenType = OpenType[m.Platform]
 					}
 					switch in.Platform {
 					case "WX":
 						menu.Url = MC.ObjToString(mv["wxurl"])
+						menu.PowerIds = MC.ObjToString(mv["wxpids"])
 					case "APP":
 						menu.Url = MC.ObjToString(mv["appurl"])
+						menu.PowerIds = MC.ObjToString(mv["apppids"])
 					default:
 						menu.Url = MC.ObjToString(mv["pcurl"])
 					}
@@ -117,6 +132,7 @@ func RenewWorkDesktopMenuModeOrCommonly(in *WorkDesktopComprehensiveReq) (r *Wor
 				}
 				//常用功能格式化
 				menu, saveIds, delBool := m.CommonlyFormat(childMenus)
+				//某一功能下架,但是用户收藏在常用功能中,需要更新此用户的常用功能数据
 				if delBool && len(saveIds) > 0 {
 					in.MenuIds = strings.Join(saveIds, ",")
 					go func(in *WorkDesktopComprehensiveReq) {