diff --git a/server/dao/file.go b/server/dao/file.go index 36497aa..63808d9 100644 --- a/server/dao/file.go +++ b/server/dao/file.go @@ -100,6 +100,11 @@ func CreateFile(filename string, description string, resourceID uint, storageID if err != nil { return err } + err = tx.Model(&model.Resource{}).Where("id = ?", resourceID). + UpdateColumn("modified_time", time.Now()).Error + if err != nil { + return err + } return nil }) diff --git a/server/dao/resource.go b/server/dao/resource.go index 941e67d..11919b4 100644 --- a/server/dao/resource.go +++ b/server/dao/resource.go @@ -15,6 +15,7 @@ import ( func CreateResource(r model.Resource) (model.Resource, error) { err := db.Transaction(func(tx *gorm.DB) error { + r.ModifiedTime = time.Now() err := tx.Create(&r).Error if err != nil { return err @@ -71,9 +72,9 @@ func GetResourceList(page, pageSize int, sort model.RSort) ([]model.Resource, in order := "" switch sort { case model.RSortTimeAsc: - order = "created_at ASC" + order = "modified_time ASC" case model.RSortTimeDesc: - order = "created_at DESC" + order = "modified_time DESC" case model.RSortViewsAsc: order = "views ASC" case model.RSortViewsDesc: @@ -83,7 +84,7 @@ func GetResourceList(page, pageSize int, sort model.RSort) ([]model.Resource, in case model.RSortDownloadsDesc: order = "downloads DESC" 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 { @@ -102,6 +103,7 @@ func UpdateResource(r model.Resource) error { r.Images = nil r.Tags = nil r.Files = nil + r.ModifiedTime = time.Now() if err := db.Save(&r).Error; err != nil { return err } diff --git a/server/model/resource.go b/server/model/resource.go index 56346b1..2aaa6cd 100644 --- a/server/model/resource.go +++ b/server/model/resource.go @@ -20,6 +20,7 @@ type Resource struct { Views uint Downloads uint Comments uint + ModifiedTime time.Time } type Link struct {