mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 23:27:17 +08:00
51 lines
972 B
Go
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
|
|
}
|