1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package system
- import "github.com/beego/beego/v2/client/orm"
- type MenuList struct {
- MenuId int `description:"导航唯一标识"`
- IsLevel int `description:"1,只有一级;2,有多级"`
- Name string `json:"name" description:"导航名称"`
- Path string `json:"path"`
- IconPath string `json:"icon_path"`
- LevelPath string `json:"level_path"`
- Component string `json:"component"`
- Hidden bool `json:"hidden"`
- Children []*ChildMenu `json:"children"`
- }
- type ChildMenu struct {
- MenuId int `description:"导航唯一标识"`
- Name string `json:"name" description:"导航名称"`
- Path string `json:"path"`
- Component string `json:"component"`
- IconPath string `json:"icon_path"`
- Hidden bool `json:"hidden"`
- }
- type MenuListResp struct {
- List []*MenuList
- }
- func GetMenuList(roleId int) (items []*MenuList, err error) {
- sql := ` SELECT a.* FROM sys_menu AS a
- INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
- INNER JOIN sys_role AS c ON b.role_id=c.role_id
- WHERE c.role_id=?
- AND a.parent_id=0
- ORDER BY sort ASC `
- _, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
- return
- }
- func GetMenuByParentId(roleId, parentId int) (items []*ChildMenu, err error) {
- sql := ` SELECT a.* FROM sys_menu AS a
- INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
- INNER JOIN sys_role AS c ON b.role_id=c.role_id
- WHERE c.role_id=?
- AND a.parent_id=?
- ORDER BY sort ASC `
- _, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
- return
- }
- // GetMenuListByRoleIds 根据管理员多个角色查询菜单ID
- func GetMenuListByRoleIds(roleIds string) (items []*MenuList, err error) {
- sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
- INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
- INNER JOIN sys_role AS c ON b.role_id=c.role_id
- WHERE c.role_id in (` + roleIds + `)
- AND a.parent_id=0
- ORDER BY sort ASC `
- _, err = orm.NewOrm().Raw(sql).QueryRows(&items)
- return
- }
- // GetMenuByParentIdRoleIds 根据管理员多个角色查询子菜单ID
- func GetMenuByParentIdRoleIds(roleIds string, parentId int) (items []*ChildMenu, err error) {
- sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
- INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
- INNER JOIN sys_role AS c ON b.role_id=c.role_id
- WHERE c.role_id in (` + roleIds + `)
- AND a.parent_id=?
- ORDER BY a.sort ASC`
- _, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
- return
- }
|