refactor(database): 重构基础模型结构和时间处理逻辑

- 将 BaseModel 拆分为 IdModel 和 TimeModel 两个独立结构体
- 替换标准库 time 包为 gf 框架的 gtime 包进行时间处理
- 修改字段标签定义,优化数据库列映射配置
- 重写 BeforeCreate、BeforeUpdate 钩子方法实现
- 新增 AfterDelete 钩子方法处理删除后的时间转换
- 统一时间格式化为字符串类型存储到数据库中
main
maguodong 2026-03-28 18:01:44 +08:00
parent 427f568db6
commit 7d3ddc62e3
1 changed files with 18 additions and 12 deletions

View File

@ -1,25 +1,31 @@
package model
import (
"time"
"github.com/gogf/gf/v2/os/gtime"
"gorm.io/gorm"
)
// BaseModel 基础模型
type BaseModel struct {
Id int `gorm:"column:id;primaryKey;autoIncrement;common:主键ID" json:"id"`
CreateTime string `gorm:"autoCreateTime;column:create_time;type:datetime" json:"create_time"`
UpdateTime string `gorm:"autoUpdateTime;column:update_time;type:datetime" json:"update_time"`
type IdModel struct {
Id int `json:"id" gorm:"column:id;type:int(11);common:id"`
}
type TimeModel struct {
CreateTime string `json:"create_time" gorm:"column:create_time;type:varchar(255);common:创建时间"`
UpdateTime string `json:"update_time" gorm:"column:update_time;type:varchar(255);common:更新时间"`
}
func (b BaseModel) BeforeCreate(tx *gorm.DB) error {
b.CreateTime = time.Now().Format("2006-01-02 15:04:05")
b.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
func (tm *TimeModel) BeforeCreate(scope *gorm.DB) error {
tm.CreateTime = gtime.Datetime()
tm.UpdateTime = gtime.Datetime()
return nil
}
func (b BaseModel) BeforeUpdate(tx *gorm.DB) error {
b.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
func (tm *TimeModel) BeforeUpdate(scope *gorm.DB) error {
tm.UpdateTime = gtime.Datetime()
return nil
}
func (tm *TimeModel) AfterDelete(scope *gorm.DB) error {
tm.CreateTime = gtime.New(tm.CreateTime).String()
tm.UpdateTime = gtime.New(tm.UpdateTime).String()
return nil
}