package user import ( "SciencesServer/app/api/controller" menu2 "SciencesServer/app/api/controller/menu" "SciencesServer/app/api/model" model2 "SciencesServer/app/common/model" "SciencesServer/app/service" ) type Menu struct{ *controller.Platform } type MenuHandle func(session *service.Session) *Menu // List ่œๅ•ๅˆ—่กจ func (c *Menu) List() (interface{}, error) { mSysMenu := model.NewSysMenu() if c.IsAdmin { return menu2.MenuForSystem(mSysMenu) } mSysUserTenant := model.NewSysUserTenant() if isExist, err := model2.FirstField(mSysUserTenant.SysUserTenant, []string{"id", "identity"}, model2.NewWhere("tenant_id", c.TenantID), model2.NewWhere("uid", c.UID)); err != nil { return nil, err } else if !isExist { return nil, nil } if mSysUserTenant.Identity == model2.SysUserTenantIdentityForSystemAdmin { return menu2.MenuForTenant(mSysMenu, c.TenantID) } return menu2.MenuForUser(mSysMenu, c.TenantID, c.UID) } func NewMenu() MenuHandle { return func(session *service.Session) *Menu { return &Menu{Platform: &controller.Platform{Session: session}} } }