package controllers import ( "eta/eta_mini_crm/models" "eta/eta_mini_crm/services" ) type SysMenuController struct { BaseAuthController } // @Title 获取用户权限菜单 // @Description 获取用户权限菜单接口 // @Success 200 {object} system.MenuListResp // @router /list [get] func (this *SysMenuController) SysMenuList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" return } roleId := sysUser.SysRoleId if roleId <= 0 { br.Msg = "参数错误" return } list, err := models.GetMenuListByRoleIds(roleId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,Err:" + err.Error() return } items := make([]*models.SysMenuItem, 0) for _, v := range list { t := &models.SysMenuItem{ SysMenuId: v.SysMenuId, ParentId: v.ParentId, Name: v.Name, Sort: v.Sort, Path: v.Path, IconPath: v.IconPath, ButtonCode: v.ButtonCode, Children: make([]*models.SysMenuItem, 0), } items = append(items, t) } // 递归返回树形结构 items = services.GetMenuTreeRecursive(items, 0) br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = items }