2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 14:57:16 +08:00
Files
panel/internal/services/setting.go
2024-05-29 21:31:01 +08:00

57 lines
1.1 KiB
Go

// Package services 设置服务
package services
import (
"github.com/TheTNB/panel/app/models"
"github.com/goravel/framework/facades"
)
type SettingImpl struct {
}
func NewSettingImpl() *SettingImpl {
return &SettingImpl{}
}
// Get 获取设置
func (r *SettingImpl) Get(key string, defaultValue ...string) string {
var setting models.Setting
if err := facades.Orm().Query().Where("key", key).FirstOrFail(&setting); err != nil {
if len(defaultValue) == 0 {
return ""
}
return defaultValue[0]
}
if len(setting.Value) == 0 {
if len(defaultValue) == 0 {
return ""
}
return defaultValue[0]
}
return setting.Value
}
// Set 更新或创建设置
func (r *SettingImpl) Set(key, value string) error {
var setting models.Setting
if err := facades.Orm().Query().UpdateOrCreate(&setting, models.Setting{Key: key}, models.Setting{Value: value}); err != nil {
return err
}
return nil
}
// Delete 删除设置
func (r *SettingImpl) Delete(key string) error {
var setting models.Setting
if _, err := facades.Orm().Query().Where("key", key).Delete(&setting); err != nil {
return err
}
return nil
}