refactor(database): 重构基础模型结构和时间处理逻辑
- 将 BaseModel 拆分为 IdModel 和 TimeModel 两个独立结构体 - 替换标准库 time 包为 gf 框架的 gtime 包进行时间处理 - 修改字段标签定义,优化数据库列映射配置 - 重写 BeforeCreate、BeforeUpdate 钩子方法实现 - 新增 AfterDelete 钩子方法处理删除后的时间转换 - 统一时间格式化为字符串类型存储到数据库中main
parent
427f568db6
commit
7d3ddc62e3
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue