:art:服务端的初始化
This commit is contained in:
64
repository/system.go
Normal file
64
repository/system.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"gorm.io/gorm"
|
||||
"wireguard-dashboard/client"
|
||||
"wireguard-dashboard/model/entity"
|
||||
"wireguard-dashboard/model/vo"
|
||||
)
|
||||
|
||||
type system struct {
|
||||
*gorm.DB
|
||||
}
|
||||
|
||||
func System() system {
|
||||
return system{
|
||||
client.DB,
|
||||
}
|
||||
}
|
||||
|
||||
// GetConfigByCode
|
||||
// @description:
|
||||
// @receiver r
|
||||
// @param code
|
||||
// @return data
|
||||
// @return err
|
||||
func (r system) GetConfigByCode(code string) (data *entity.Setting, err error) {
|
||||
err = r.Model(&entity.Setting{}).Where("code = ?", code).First(&data).Error
|
||||
return
|
||||
}
|
||||
|
||||
// GetServerSetting
|
||||
// @description: 获取服务端全局配置
|
||||
// @receiver r
|
||||
// @return data
|
||||
// @return err
|
||||
func (r system) GetServerSetting() (data *vo.ServerSetting, err error) {
|
||||
config, err := r.GetConfigByCode("SERVER_SETTING")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = json.Unmarshal([]byte(config.Data), &data); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Save
|
||||
// @description: 新增/编辑配置
|
||||
// @receiver r
|
||||
// @param ent
|
||||
// @return err
|
||||
func (r system) Save(ent *entity.Setting) (err error) {
|
||||
conf, err := r.GetConfigByCode(ent.Code)
|
||||
// 新增
|
||||
if err != nil || conf == nil {
|
||||
return r.Model(&entity.Setting{}).Create(ent).Error
|
||||
}
|
||||
|
||||
// 更新
|
||||
return r.Model(&entity.Setting{}).Where("code = ?", ent.Code).Updates(&ent).Error
|
||||
}
|
||||
Reference in New Issue
Block a user