85 lines
2.2 KiB
Go
85 lines
2.2 KiB
Go
package system
|
|
|
|
import (
|
|
"resume-platform/internal/model"
|
|
"resume-platform/internal/repository"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type SystemService interface {
|
|
GetAllMenus() ([]*model.Menu, error)
|
|
CreateMenu(menu *model.Menu) error
|
|
UpdateMenu(id string, menu *model.Menu) error
|
|
DeleteMenu(id string) error
|
|
GetSystemConfig() (*model.SystemConfig, error)
|
|
CreateSystemConfig(config *model.SystemConfig) error
|
|
UpdateSystemConfig(id string, config *model.SystemConfig) error
|
|
InitDefaultMenus() error
|
|
}
|
|
|
|
type systemService struct {
|
|
repo repository.ResumeRepository
|
|
}
|
|
|
|
func NewSystemService(repo repository.ResumeRepository) SystemService {
|
|
return &systemService{repo: repo}
|
|
}
|
|
|
|
func (s *systemService) GetAllMenus() ([]*model.Menu, error) {
|
|
return s.repo.GetAllMenus()
|
|
}
|
|
|
|
func (s *systemService) CreateMenu(menu *model.Menu) error {
|
|
if menu.ID == "" {
|
|
menu.ID = uuid.New().String()
|
|
}
|
|
return s.repo.CreateMenu(menu)
|
|
}
|
|
|
|
func (s *systemService) UpdateMenu(id string, menu *model.Menu) error {
|
|
return s.repo.UpdateMenu(id, menu)
|
|
}
|
|
|
|
func (s *systemService) DeleteMenu(id string) error {
|
|
return s.repo.DeleteMenu(id)
|
|
}
|
|
|
|
func (s *systemService) GetSystemConfig() (*model.SystemConfig, error) {
|
|
return s.repo.GetSystemConfig()
|
|
}
|
|
|
|
func (s *systemService) CreateSystemConfig(config *model.SystemConfig) error {
|
|
if config.ID == "" {
|
|
config.ID = "default"
|
|
}
|
|
return s.repo.CreateSystemConfig(config)
|
|
}
|
|
|
|
func (s *systemService) UpdateSystemConfig(id string, config *model.SystemConfig) error {
|
|
return s.repo.UpdateSystemConfig(id, config)
|
|
}
|
|
|
|
func (s *systemService) InitDefaultMenus() error {
|
|
menus, err := s.repo.GetAllMenus()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if len(menus) > 0 {
|
|
return nil
|
|
}
|
|
|
|
defaultMenus := []*model.Menu{
|
|
{ID: "menu-user", Name: "人员管理", Icon: "fas fa-users", Path: "user", ParentID: "", SortOrder: 1, IsFixed: true, IsEnabled: true},
|
|
{ID: "menu-menu", Name: "菜单管理", Icon: "fas fa-list", Path: "menu", ParentID: "", SortOrder: 2, IsFixed: true, IsEnabled: true},
|
|
{ID: "menu-settings", Name: "系统设置", Icon: "fas fa-cog", Path: "settings", ParentID: "", SortOrder: 3, IsFixed: true, IsEnabled: true},
|
|
}
|
|
|
|
for _, menu := range defaultMenus {
|
|
if err := s.repo.CreateMenu(menu); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
} |