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 package model
import ( import (
"time" "github.com/gogf/gf/v2/os/gtime"
"gorm.io/gorm" "gorm.io/gorm"
) )
// BaseModel 基础模型 type IdModel struct {
type BaseModel struct { Id int `json:"id" gorm:"column:id;type:int(11);common:id"`
Id int `gorm:"column:id;primaryKey;autoIncrement;common:主键ID" json:"id"` }
CreateTime string `gorm:"autoCreateTime;column:create_time;type:datetime" json:"create_time"` type TimeModel struct {
UpdateTime string `gorm:"autoUpdateTime;column:update_time;type:datetime" json:"update_time"` 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 { func (tm *TimeModel) BeforeCreate(scope *gorm.DB) error {
b.CreateTime = time.Now().Format("2006-01-02 15:04:05") tm.CreateTime = gtime.Datetime()
b.UpdateTime = time.Now().Format("2006-01-02 15:04:05") tm.UpdateTime = gtime.Datetime()
return nil return nil
} }
func (b BaseModel) BeforeUpdate(tx *gorm.DB) error { func (tm *TimeModel) BeforeUpdate(scope *gorm.DB) error {
b.UpdateTime = time.Now().Format("2006-01-02 15:04:05") 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 return nil
} }