Files
waf-platform/EdgeAPI/internal/db/models/sys_setting_dao_plus.go
2026-02-07 20:30:31 +08:00

91 lines
2.4 KiB
Go

// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
//go:build plus
package models
import (
"encoding/json"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/userconfigs"
"github.com/iwind/TeaGo/dbs"
)
func (this *SysSettingDAO) ReadNSUserConfig(tx *dbs.Tx) (*dnsconfigs.NSUserConfig, error) {
valueJSON, err := this.ReadSetting(tx, systemconfigs.SettingCodeNSUserConfig)
if err != nil {
return nil, err
}
if len(valueJSON) == 0 {
return dnsconfigs.NewNSUserConfig(), nil
}
var config = dnsconfigs.NewNSUserConfig()
err = json.Unmarshal(valueJSON, config)
if err != nil {
return nil, err
}
return config, nil
}
// ReadUserPriceConfig 读取服务价格配置
func (this *SysSettingDAO) ReadUserPriceConfig(tx *dbs.Tx) (*userconfigs.UserPriceConfig, error) {
valueJSON, err := this.ReadSetting(tx, systemconfigs.SettingCodeUserPriceConfig)
if err != nil {
return nil, err
}
if len(valueJSON) == 0 {
return userconfigs.DefaultUserPriceConfig(), nil
}
var config = userconfigs.DefaultUserPriceConfig()
err = json.Unmarshal(valueJSON, config)
if err != nil {
return nil, err
}
return config, nil
}
// ReadUserSenderConfig 读取用户消息发送配置
func (this *SysSettingDAO) ReadUserSenderConfig(tx *dbs.Tx) (*userconfigs.UserSenderConfig, error) {
valueJSON, err := this.ReadSetting(tx, systemconfigs.SettingCodeUserSenderConfig)
if err != nil {
return nil, err
}
if len(valueJSON) == 0 {
return userconfigs.DefaultUserSenderConfig(), nil
}
var config = userconfigs.DefaultUserSenderConfig()
err = json.Unmarshal(valueJSON, config)
if err != nil {
return nil, err
}
return config, nil
}
// ReadClickHouseConfig 读取 ClickHouse 连接配置(后台页面配置,用于访问日志 logs_ingest 查询)
func (this *SysSettingDAO) ReadClickHouseConfig(tx *dbs.Tx) (*systemconfigs.ClickHouseSetting, error) {
valueJSON, err := this.ReadSetting(tx, systemconfigs.SettingCodeClickHouseConfig)
if err != nil {
return nil, err
}
out := &systemconfigs.ClickHouseSetting{Port: 8123, Database: "default"}
if len(valueJSON) == 0 {
return out, nil
}
err = json.Unmarshal(valueJSON, out)
if err != nil {
return nil, err
}
if out.Port <= 0 {
out.Port = 8123
}
if out.Database == "" {
out.Database = "default"
}
return out, nil
}