feat(database): 添加数据库模型查询后时间戳更新功能

- 在 BaseModel 中实现 AfterFind 钩子函数,用于查询后更新 UpdateTime 字段
- 集成 time 包支持时间操作
- 配置 GORM NowFunc 使用本地时间,确保时间戳准确性
- 统一数据库操作的时间处理逻辑,提高数据一致性
main
maguodong 2026-03-28 15:34:10 +08:00
parent 7b6026950a
commit d41b554acf
2 changed files with 9 additions and 0 deletions

View File

@ -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

View File

@ -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
}