Files
mayfly-go/server/internal/sys/domain/entity/config.go

63 lines
1.6 KiB
Go
Raw Normal View History

package entity
2022-10-26 20:49:29 +08:00
import (
"encoding/json"
"mayfly-go/pkg/model"
2024-03-21 17:15:52 +08:00
"github.com/may-fly/cast"
2022-10-26 20:49:29 +08:00
)
const (
ConfigUseWartermark string = "UseWartermark" // 是否使用水印
)
type Config struct {
model.Model
Name string `json:"name" gorm:"size:60;not null;"` // 配置名
Key string `json:"key" gorm:"size:60;not null;"` // 配置key
Params string `json:"params" gorm:"size:1500"`
Value string `json:"value" gorm:"size:1500"`
Remark string `json:"remark" gorm:"size:255"`
Permission string `json:"permission" gorm:"size:255;comment:操作权限"` // 可操作该配置的权限
}
func (a *Config) TableName() string {
return "t_sys_config"
}
// 若配置信息不存在, 则返回传递的默认值.
func (c *Config) BoolValue(defaultValue bool) bool {
// 如果值不存在,则返回默认值
if c.Id == 0 {
return defaultValue
}
2023-07-26 10:24:32 +08:00
return c.ConvBool(c.Value, defaultValue)
}
2022-10-26 20:49:29 +08:00
// 值返回json map
func (c *Config) GetJsonMap() map[string]string {
var res map[string]string
if c.Id == 0 || c.Value == "" {
return res
}
_ = json.Unmarshal([]byte(c.Value), &res)
return res
}
// 获取配置的int值如果配置值非int或不存在则返回默认值
func (c *Config) IntValue(defaultValue int) int {
// 如果值不存在,则返回默认值
if c.Id == 0 {
return defaultValue
}
2024-03-21 17:15:52 +08:00
return cast.ToIntD(c.Value, defaultValue)
2023-06-17 15:15:03 +08:00
}
// 转换配置中的值为bool类型默认"1"或"true"为true其他为false
2023-07-26 10:24:32 +08:00
func (c *Config) ConvBool(value string, defaultValue bool) bool {
2023-06-17 15:15:03 +08:00
if value == "" {
return defaultValue
}
return value == "1" || value == "true"
}