feat: 优化web

This commit is contained in:
2026-04-23 18:58:13 +08:00
commit 544a2f3428
160 changed files with 27327 additions and 0 deletions
+96
View File
@@ -0,0 +1,96 @@
package entity
import (
"time"
)
// SystemParam 系统参数实体
// 用于存储系统运行所需的各种配置参数,支持多种数据类型和分组管理
type SystemParam struct {
// ID 主键,使用 UUID v4 保证全局唯一性,避免自增 ID 带来的信息泄露风险
ID string `json:"id" gorm:"column:id;type:varchar(36);primaryKey;not null;comment:主键"`
// ParamKey 参数键名,全局唯一,用于标识和访问参数值
// 命名规范:小写字母 + 下划线,如:site_name, max_upload_size
ParamKey string `json:"param_key" gorm:"column:param_key;type:varchar(100);uniqueIndex;not null;comment:参数键"`
// ParamValue 参数值,存储实际配置内容
// 根据 ParamType 不同,可能是字符串、数字、布尔值或 JSON 数组
ParamValue string `json:"param_value" gorm:"column:param_value;type:varchar(1000);not null;comment:参数值"`
// ParamType 参数类型,决定参数的校验规则和展示方式
// 可选值:text(文本), number(数字), boolean(布尔), select(下拉选择)
ParamType string `json:"param_type" gorm:"column:param_type;type:varchar(20);not null;default:'text';comment:类型:text,number,boolean,select"`
// ParamGroup 参数分组,用于对参数进行逻辑分组管理
// 常见分组:basic(基础), security(安全), business(业务), system(系统)
ParamGroup string `json:"param_group" gorm:"column:param_group;type:varchar(50);not null;default:'default';comment:分组"`
// ParamDesc 参数描述,说明该参数的用途、取值范围、默认值等信息
// 建议包含:参数说明、可选值说明、修改影响等
ParamDesc string `json:"param_desc" gorm:"column:param_desc;type:varchar(500);comment:描述"`
// CreatorID 创建人 ID,记录创建该参数的用户标识
// 用于审计追踪,定位参数创建者
CreatorID string `json:"creator_id" gorm:"column:creator_id;type:varchar(36);not null;default:'';comment:创建人 ID"`
// CreateTime 创建时间,记录参数创建的时间点
// 使用指针类型,可以区分"未设置"和"已设置"状态
// 数据库层面使用 CURRENT_TIMESTAMP 自动填充
CreateTime *time.Time `json:"create_time" gorm:"column:create_time;type:datetime;default:current_timestamp;comment:创建时间"`
// LastUpdaterID 最后更新人 ID,记录最后一次修改该参数的用户标识
// 用于审计追踪,定位参数修改者
LastUpdaterID string `json:"last_updater_id" gorm:"column:last_updater_id;type:varchar(36);not null;default:'';comment:最后更新人 ID"`
// UpdateTime 最后更新时间,记录参数最后一次修改的时间点
// 使用指针类型,可以区分"未设置"和"已设置"状态
// 数据库层面使用 ON UPDATE CURRENT_TIMESTAMP 自动更新
UpdateTime *time.Time `json:"update_time" gorm:"column:update_time;type:datetime;default:current_timestamp;on update current_timestamp;comment:最后更新时间"`
}
// TableName 指定表名为 system_param
// 遵循数据库命名规范:小写字母 + 下划线,复数形式
func (SystemParam) TableName() string {
return "system_param"
}
// ParamType 参数类型常量
// 定义系统支持的参数类型,用于前端展示和后端校验
type ParamType string
const (
// ParamTypeText 文本类型,适用于字符串值
ParamTypeText ParamType = "text"
// ParamTypeNumber 数字类型,适用于整数值
ParamTypeNumber ParamType = "number"
// ParamTypeBoolean 布尔类型,适用于 true/false 值
ParamTypeBoolean ParamType = "boolean"
// ParamTypeSelect 下拉选择类型,适用于预定义选项值
ParamTypeSelect ParamType = "select"
)
// ParamGroup 参数分组常量
// 定义系统参数的逻辑分组,便于分类管理和权限控制
type ParamGroup string
const (
// GroupBasic 基础配置分组,包含系统基本信息
// 如:站点名称、Logo、联系方式等
GroupBasic ParamGroup = "basic"
// GroupSecurity 安全配置分组,包含安全相关参数
// 如:密码策略、登录限制、Token 有效期等
GroupSecurity ParamGroup = "security"
// GroupBusiness 业务配置分组,包含业务逻辑相关参数
// 如:订单配置、支付参数、业务开关等
GroupBusiness ParamGroup = "business"
// GroupSystem 系统配置分组,包含系统运行参数
// 如:缓存配置、日志级别、性能参数等
GroupSystem ParamGroup = "system"
// GroupDefault 默认分组,未明确分组的参数归入此类
GroupDefault ParamGroup = "default"
)