2021-11-03 14:51:14 +08:00
|
|
|
package user
|
|
|
|
|
|
|
|
import (
|
2021-11-24 09:08:07 +08:00
|
|
|
model2 "ArmedPolice/app/common/model"
|
|
|
|
"ArmedPolice/app/controller/basic"
|
2021-11-04 15:15:11 +08:00
|
|
|
"ArmedPolice/app/model"
|
2021-11-03 14:51:14 +08:00
|
|
|
"ArmedPolice/app/service"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Menu struct{ *service.Session }
|
|
|
|
|
|
|
|
type MenuHandle func(session *service.Session) *Menu
|
|
|
|
|
2021-11-24 09:08:07 +08:00
|
|
|
type MenuInfo struct {
|
|
|
|
basic.CommonIDString
|
|
|
|
*model2.SysMenuBasic
|
|
|
|
ParentID string `json:"parent_id"`
|
|
|
|
// 与前端约定
|
|
|
|
Meta struct {
|
|
|
|
Title string `json:"title"`
|
|
|
|
} `json:"meta"`
|
|
|
|
Path string `json:"path"`
|
|
|
|
}
|
|
|
|
|
2021-11-04 15:15:11 +08:00
|
|
|
// Menu 用户菜单信息
|
2021-11-24 09:08:07 +08:00
|
|
|
func (c *Menu) Menu() ([]*MenuInfo, error) {
|
2021-11-04 15:15:11 +08:00
|
|
|
mSysMenu := model.NewSysMenu()
|
2021-11-03 14:51:14 +08:00
|
|
|
|
2021-11-04 15:15:11 +08:00
|
|
|
out := make([]*model.SysMenuScene, 0)
|
|
|
|
var err error
|
2021-11-03 14:51:14 +08:00
|
|
|
|
2021-11-04 15:15:11 +08:00
|
|
|
if c.IsAdmin {
|
|
|
|
if out, err = mSysMenu.SystemMenu(); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
goto RETURN
|
|
|
|
}
|
|
|
|
if out, err = mSysMenu.UserMenu(c.UID); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
RETURN:
|
2021-11-24 09:08:07 +08:00
|
|
|
list := make([]*MenuInfo, 0)
|
|
|
|
|
|
|
|
for _, v := range out {
|
|
|
|
mSysMenu.SetID(v.ID)
|
|
|
|
data := &MenuInfo{
|
|
|
|
CommonIDString: basic.CommonIDString{ID: mSysMenu.GetEncodeID()},
|
|
|
|
SysMenuBasic: v.SysMenuBasic,
|
|
|
|
ParentID: (&model2.Model{ID: v.ParentID}).GetEncodeID(),
|
|
|
|
Meta: struct {
|
|
|
|
Title string `json:"title"`
|
|
|
|
}{Title: v.Name},
|
|
|
|
}
|
|
|
|
data.Name = v.Link
|
|
|
|
data.Path = v.Link
|
|
|
|
list = append(list, data)
|
|
|
|
}
|
|
|
|
return list, nil
|
|
|
|
//return menu.TreeIdentity(mSysMenu.SysMenu, out, 0), nil
|
2021-11-03 14:51:14 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewMenu() MenuHandle {
|
|
|
|
return func(session *service.Session) *Menu {
|
|
|
|
return &Menu{session}
|
|
|
|
}
|
|
|
|
}
|