2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-05 04:37:17 +08:00
Files
panel/app/services/setting.go
2023-07-07 20:09:31 +08:00

51 lines
972 B
Go

package services
import (
"github.com/goravel/framework/facades"
"panel/app/models"
)
type Setting interface {
Get(key string, defaultValue ...string) string
Set(key, value string) error
}
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
}