|
@@ -3,6 +3,7 @@ package controllers
|
|
|
import (
|
|
|
"eta_gn/eta_api/models"
|
|
|
"eta_gn/eta_api/models/system"
|
|
|
+ "eta_gn/eta_api/services"
|
|
|
"strconv"
|
|
|
)
|
|
|
|
|
@@ -55,17 +56,45 @@ func (this *SysRoleController) SysMenuList() {
|
|
|
//openMap := map[string]bool{"false": false, "true": true}
|
|
|
//openApprove := openMap[confMap[models.BusinessConfIsReportApprove]]
|
|
|
|
|
|
+ var resp system.MenuListResp
|
|
|
+ if this.GnToken == `` {
|
|
|
+ resp, err = getMenuListByRoleIds(roleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取商家菜单失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ resp, err = getMenuListByGnToken(this.GnToken)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取商家菜单失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// getMenuListByRoleIds
|
|
|
+// @Description: 根据角色获取菜单
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2025-06-17 10:01:53
|
|
|
+// @param roleIds string
|
|
|
+// @return resp system.MenuListResp
|
|
|
+// @return err error
|
|
|
+func getMenuListByRoleIds(roleIds string) (resp system.MenuListResp, err error) {
|
|
|
+ resp = system.MenuListResp{}
|
|
|
list, err := system.GetMenuListAllByRoleIds(roleIds)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
rootList, err := system.GetMenuListByRoleIds(roleIds)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -97,10 +126,80 @@ func (this *SysRoleController) SysMenuList() {
|
|
|
firstMenus.Children = secondMenus
|
|
|
}
|
|
|
}
|
|
|
- resp := new(system.MenuListResp)
|
|
|
resp.List = rootList
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = resp
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// getMenuListByRoleIds
|
|
|
+// @Description: 根据角色获取菜单
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2025-06-17 10:01:53
|
|
|
+// @param roleIds string
|
|
|
+// @return resp system.MenuListResp
|
|
|
+// @return err error
|
|
|
+func getMenuListByGnToken(gnToken string) (resp system.MenuListResp, err error) {
|
|
|
+ resp = system.MenuListResp{}
|
|
|
+
|
|
|
+ menuList, err := services.GetMenuList(gnToken, 0)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list := make([]*system.MenuList, 0)
|
|
|
+ rootList := make([]*system.MenuList, 0)
|
|
|
+ for _, v := range menuList {
|
|
|
+ var hidden bool
|
|
|
+ if v.Hidden == 1 {
|
|
|
+ hidden = true
|
|
|
+ }
|
|
|
+ tmpMenuList := &system.MenuList{
|
|
|
+ MenuId: v.MenuId,
|
|
|
+ IsLevel: v.IsLevel,
|
|
|
+ Name: v.Name,
|
|
|
+ NameEn: v.NameEn,
|
|
|
+ Path: v.Path,
|
|
|
+ IconPath: v.IconPath,
|
|
|
+ LevelPath: v.LevelPath,
|
|
|
+ Component: v.Component,
|
|
|
+ Hidden: hidden,
|
|
|
+ ParentId: v.ParentId,
|
|
|
+ Children: make([]*system.MenuList, 0),
|
|
|
+ }
|
|
|
+ list = append(list, tmpMenuList)
|
|
|
+ if v.ParentId == 2000 {
|
|
|
+ rootList = append(rootList, tmpMenuList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ menuMap := make(map[int][]*system.MenuList)
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ if menus, ok := menuMap[v.ParentId]; !ok {
|
|
|
+ menus = make([]*system.MenuList, 0)
|
|
|
+ menus = append(menus, v)
|
|
|
+ menuMap[v.ParentId] = menus
|
|
|
+ } else {
|
|
|
+ menus = append(menus, v)
|
|
|
+ menuMap[v.ParentId] = menus
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //menuList := make([]*system.MenuList, 0)
|
|
|
+ for _, firstMenus := range rootList {
|
|
|
+ if secondMenus, ok := menuMap[firstMenus.MenuId]; ok {
|
|
|
+ for _, sencodMenu := range secondMenus {
|
|
|
+ if thirdMenus, ok := menuMap[sencodMenu.MenuId]; ok {
|
|
|
+ sencodMenu.Children = thirdMenus
|
|
|
+ } else {
|
|
|
+ thirdMenuList := make([]*system.MenuList, 0)
|
|
|
+ sencodMenu.Children = thirdMenuList
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ firstMenus.Children = secondMenus
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.List = rootList
|
|
|
+
|
|
|
+ return
|
|
|
}
|