feat(database): 添加数据库模型查询后时间戳更新功能
- 在 BaseModel 中实现 AfterFind 钩子函数,用于查询后更新 UpdateTime 字段 - 集成 time 包支持时间操作 - 配置 GORM NowFunc 使用本地时间,确保时间戳准确性 - 统一数据库操作的时间处理逻辑,提高数据一致性main
parent
7b6026950a
commit
d41b554acf
|
|
@ -3,6 +3,7 @@ package database
|
|||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.magicany.cc/black1552/gin-base/config"
|
||||
"git.magicany.cc/black1552/gin-base/log"
|
||||
|
|
@ -40,6 +41,9 @@ func init() {
|
|||
// 构建 GORM 配置
|
||||
gormConfig := &gorm.Config{
|
||||
SkipDefaultTransaction: true,
|
||||
NowFunc: func() time.Time {
|
||||
return time.Now().Local()
|
||||
},
|
||||
// 命名策略:保持与模型一致,避免字段/表名转换问题
|
||||
NamingStrategy: schema.NamingStrategy{
|
||||
SingularTable: true, // 表名禁用复数形式(例如 User 对应 user 表,而非 users)
|
||||
|
|
|
|||
|
|
@ -26,3 +26,8 @@ func (b *BaseModel) BeforeUpdate(tx *gorm.DB) error {
|
|||
b.UpdateTime = time.Now()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *BaseModel) AfterFind(tx *gorm.DB) error {
|
||||
b.UpdateTime = time.Now()
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue