Add modified_time field to Resource model and update logic for tracking modifications

This commit is contained in:
2025-09-27 16:22:04 +08:00
parent c131f48448
commit e117a2e708
3 changed files with 11 additions and 3 deletions

View File

@@ -100,6 +100,11 @@ func CreateFile(filename string, description string, resourceID uint, storageID
if err != nil { if err != nil {
return err return err
} }
err = tx.Model(&model.Resource{}).Where("id = ?", resourceID).
UpdateColumn("modified_time", time.Now()).Error
if err != nil {
return err
}
return nil return nil
}) })

View File

@@ -15,6 +15,7 @@ import (
func CreateResource(r model.Resource) (model.Resource, error) { func CreateResource(r model.Resource) (model.Resource, error) {
err := db.Transaction(func(tx *gorm.DB) error { err := db.Transaction(func(tx *gorm.DB) error {
r.ModifiedTime = time.Now()
err := tx.Create(&r).Error err := tx.Create(&r).Error
if err != nil { if err != nil {
return err return err
@@ -71,9 +72,9 @@ func GetResourceList(page, pageSize int, sort model.RSort) ([]model.Resource, in
order := "" order := ""
switch sort { switch sort {
case model.RSortTimeAsc: case model.RSortTimeAsc:
order = "created_at ASC" order = "modified_time ASC"
case model.RSortTimeDesc: case model.RSortTimeDesc:
order = "created_at DESC" order = "modified_time DESC"
case model.RSortViewsAsc: case model.RSortViewsAsc:
order = "views ASC" order = "views ASC"
case model.RSortViewsDesc: case model.RSortViewsDesc:
@@ -83,7 +84,7 @@ func GetResourceList(page, pageSize int, sort model.RSort) ([]model.Resource, in
case model.RSortDownloadsDesc: case model.RSortDownloadsDesc:
order = "downloads DESC" order = "downloads DESC"
default: default:
order = "created_at DESC" // Default sort order order = "modified_time DESC" // Default sort order
} }
if err := db.Offset((page - 1) * pageSize).Limit(pageSize).Preload("User").Preload("Images").Preload("Tags").Order(order).Find(&resources).Error; err != nil { if err := db.Offset((page - 1) * pageSize).Limit(pageSize).Preload("User").Preload("Images").Preload("Tags").Order(order).Find(&resources).Error; err != nil {
@@ -102,6 +103,7 @@ func UpdateResource(r model.Resource) error {
r.Images = nil r.Images = nil
r.Tags = nil r.Tags = nil
r.Files = nil r.Files = nil
r.ModifiedTime = time.Now()
if err := db.Save(&r).Error; err != nil { if err := db.Save(&r).Error; err != nil {
return err return err
} }

View File

@@ -20,6 +20,7 @@ type Resource struct {
Views uint Views uint
Downloads uint Downloads uint
Comments uint Comments uint
ModifiedTime time.Time
} }
type Link struct { type Link struct {