From 7d3ddc62e3c1cae92dba8653e14c0bb20a473466 Mon Sep 17 00:00:00 2001 From: maguodong Date: Sat, 28 Mar 2026 18:01:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor(database):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A8=A1=E5=9E=8B=E7=BB=93=E6=9E=84=E5=92=8C?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 BaseModel 拆分为 IdModel 和 TimeModel 两个独立结构体 - 替换标准库 time 包为 gf 框架的 gtime 包进行时间处理 - 修改字段标签定义,优化数据库列映射配置 - 重写 BeforeCreate、BeforeUpdate 钩子方法实现 - 新增 AfterDelete 钩子方法处理删除后的时间转换 - 统一时间格式化为字符串类型存储到数据库中 --- database/model/base.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/database/model/base.go b/database/model/base.go index aedc42d..b3c3df1 100644 --- a/database/model/base.go +++ b/database/model/base.go @@ -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 }