init
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"github.com/goravel/framework/facades"
|
||||
|
||||
apperrors "goravel/app/errors"
|
||||
"goravel/app/models"
|
||||
)
|
||||
|
||||
type MenuService interface {
|
||||
// GetByID 根据ID获取菜单
|
||||
GetByID(id uint) (*models.Menu, error)
|
||||
// Create 创建菜单
|
||||
Create(parentID uint, title, slug, icon, path, component, permission string, menuType uint8, status uint8, sort int, isHidden uint8, linkType, openType uint8) (*models.Menu, error)
|
||||
// Update 更新菜单
|
||||
Update(menu *models.Menu) error
|
||||
// Delete 删除菜单
|
||||
Delete(menu *models.Menu) error
|
||||
}
|
||||
|
||||
type MenuServiceImpl struct {
|
||||
}
|
||||
|
||||
func NewMenuService() MenuService {
|
||||
return &MenuServiceImpl{}
|
||||
}
|
||||
|
||||
// GetByID 根据ID获取菜单
|
||||
func (s *MenuServiceImpl) GetByID(id uint) (*models.Menu, error) {
|
||||
var menu models.Menu
|
||||
if err := facades.Orm().Query().Where("id", id).FirstOrFail(&menu); err != nil {
|
||||
return nil, apperrors.ErrMenuNotFound.WithError(err)
|
||||
}
|
||||
return &menu, nil
|
||||
}
|
||||
|
||||
// Create 创建菜单
|
||||
func (s *MenuServiceImpl) Create(parentID uint, title, slug, icon, path, component, permission string, menuType uint8, status uint8, sort int, isHidden uint8, linkType, openType uint8) (*models.Menu, error) {
|
||||
menu := &models.Menu{
|
||||
ParentID: parentID,
|
||||
Title: title,
|
||||
Slug: slug,
|
||||
Icon: icon,
|
||||
Path: path,
|
||||
Component: component,
|
||||
Permission: permission,
|
||||
Type: menuType,
|
||||
Status: status,
|
||||
Sort: sort,
|
||||
IsHidden: isHidden,
|
||||
LinkType: linkType,
|
||||
OpenType: openType,
|
||||
}
|
||||
|
||||
if err := facades.Orm().Query().Create(menu); err != nil {
|
||||
return nil, apperrors.ErrCreateFailed.WithError(err)
|
||||
}
|
||||
|
||||
return menu, nil
|
||||
}
|
||||
|
||||
// Update 更新菜单
|
||||
func (s *MenuServiceImpl) Update(menu *models.Menu) error {
|
||||
if err := facades.Orm().Query().Save(menu); err != nil {
|
||||
return apperrors.ErrUpdateFailed.WithError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete 删除菜单
|
||||
func (s *MenuServiceImpl) Delete(menu *models.Menu) error {
|
||||
if _, err := facades.Orm().Query().Delete(menu); err != nil {
|
||||
return apperrors.ErrDeleteFailed.WithError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user