Files
resume/internal/service/system/system_service.go
T

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
}