48 lines
954 B
Go
48 lines
954 B
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"licserver/internal/utils"
|
|
"sync"
|
|
)
|
|
|
|
type SiteService struct {
|
|
config *utils.Config
|
|
mu sync.RWMutex
|
|
}
|
|
|
|
func NewSiteService(config *utils.Config) *SiteService {
|
|
return &SiteService{
|
|
config: config,
|
|
}
|
|
}
|
|
|
|
func (s *SiteService) GetSettings() utils.SiteConfig {
|
|
s.mu.RLock()
|
|
defer s.mu.RUnlock()
|
|
return s.config.Site
|
|
}
|
|
|
|
func (s *SiteService) UpdateSettings(settings utils.SiteConfig) error {
|
|
s.mu.Lock()
|
|
defer s.mu.Unlock()
|
|
|
|
// 更新内存中的配置
|
|
s.config.Site = settings
|
|
|
|
// 持久化配置到文件
|
|
return utils.SaveConfig(s.config, "system", "更新站点设置")
|
|
}
|
|
|
|
// ValidateSettings 验证站点设置
|
|
func (s *SiteService) ValidateSettings(settings utils.SiteConfig) error {
|
|
// 这里可以添加更多的验证逻辑
|
|
if settings.Title == "" {
|
|
return errors.New("站点标题不能为空")
|
|
}
|
|
if settings.BaseURL == "" {
|
|
return errors.New("基础URL不能为空")
|
|
}
|
|
return nil
|
|
}
|