A:剩余文件上传
This commit is contained in:
1 parent
cf0da9b653
commit
0e0b8bfd81
2 files changed
+205
No files matched your search
@@ -0,0 +1,204 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"rear/internal/model/tables"
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// PhotoCreateTask 创建照片任务
|
||||
type PhotoCreateTask struct {
|
||||
Photo *tables.Photo
|
||||
}
|
||||
|
||||
func (t *PhotoCreateTask) Execute(db *gorm.DB) error {
|
||||
return db.Create(t.Photo).Error
|
||||
}
|
||||
|
||||
func (t *PhotoCreateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *PhotoCreateTask) GetID() string {
|
||||
return fmt.Sprintf("photo_create_%s", t.Photo.Hash)
|
||||
}
|
||||
|
||||
// PhotoUpdateTask 更新照片任务
|
||||
type PhotoUpdateTask struct {
|
||||
Photo *tables.Photo
|
||||
}
|
||||
|
||||
func (t *PhotoUpdateTask) Execute(db *gorm.DB) error {
|
||||
return db.Save(t.Photo).Error
|
||||
}
|
||||
|
||||
func (t *PhotoUpdateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *PhotoUpdateTask) GetID() string {
|
||||
return fmt.Sprintf("photo_update_%s", t.Photo.Hash)
|
||||
}
|
||||
|
||||
// PhotoDeleteTask 删除照片任务
|
||||
type PhotoDeleteTask struct {
|
||||
Hash string
|
||||
}
|
||||
|
||||
func (t *PhotoDeleteTask) Execute(db *gorm.DB) error {
|
||||
return db.Where("hash = ?", t.Hash).Delete(&tables.Photo{}).Error
|
||||
}
|
||||
|
||||
func (t *PhotoDeleteTask) GetPriority() int {
|
||||
return 3 // 高优先级
|
||||
}
|
||||
|
||||
func (t *PhotoDeleteTask) GetID() string {
|
||||
return fmt.Sprintf("photo_delete_%s", t.Hash)
|
||||
}
|
||||
|
||||
// ExifCreateTask 创建EXIF任务
|
||||
type ExifCreateTask struct {
|
||||
Exif *tables.PhotoExif
|
||||
}
|
||||
|
||||
func (t *ExifCreateTask) Execute(db *gorm.DB) error {
|
||||
return db.Create(t.Exif).Error
|
||||
}
|
||||
|
||||
func (t *ExifCreateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *ExifCreateTask) GetID() string {
|
||||
return fmt.Sprintf("exif_create_%s", t.Exif.Hash)
|
||||
}
|
||||
|
||||
// ExifUpdateTask 更新EXIF任务
|
||||
type ExifUpdateTask struct {
|
||||
Exif *tables.PhotoExif
|
||||
}
|
||||
|
||||
func (t *ExifUpdateTask) Execute(db *gorm.DB) error {
|
||||
return db.Save(t.Exif).Error
|
||||
}
|
||||
|
||||
func (t *ExifUpdateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *ExifUpdateTask) GetID() string {
|
||||
return fmt.Sprintf("exif_update_%s", t.Exif.Hash)
|
||||
}
|
||||
|
||||
// ExifDeleteTask 删除EXIF任务
|
||||
type ExifDeleteTask struct {
|
||||
Hash string
|
||||
}
|
||||
|
||||
func (t *ExifDeleteTask) Execute(db *gorm.DB) error {
|
||||
return db.Where("hash = ?", t.Hash).Delete(&tables.PhotoExif{}).Error
|
||||
}
|
||||
|
||||
func (t *ExifDeleteTask) GetPriority() int {
|
||||
return 3 // 高优先级
|
||||
}
|
||||
|
||||
func (t *ExifDeleteTask) GetID() string {
|
||||
return fmt.Sprintf("exif_delete_%s", t.Hash)
|
||||
}
|
||||
|
||||
// UpdateViewCountTask 更新访问计数任务
|
||||
type UpdateViewCountTask struct {
|
||||
Hash string
|
||||
}
|
||||
|
||||
func (t *UpdateViewCountTask) Execute(db *gorm.DB) error {
|
||||
return db.Model(&tables.Photo{}).
|
||||
Where("hash = ?", t.Hash).
|
||||
UpdateColumns(map[string]interface{}{
|
||||
"view_count": gorm.Expr("view_count + 1"),
|
||||
"last_viewed_at": time.Now(),
|
||||
}).Error
|
||||
}
|
||||
|
||||
func (t *UpdateViewCountTask) GetPriority() int {
|
||||
return 1 // 低优先级
|
||||
}
|
||||
|
||||
func (t *UpdateViewCountTask) GetID() string {
|
||||
return fmt.Sprintf("update_view_count_%s", t.Hash)
|
||||
}
|
||||
|
||||
// UserCreateTask 创建用户任务
|
||||
type UserCreateTask struct {
|
||||
User *tables.User
|
||||
}
|
||||
|
||||
func (t *UserCreateTask) Execute(db *gorm.DB) error {
|
||||
return db.Create(t.User).Error
|
||||
}
|
||||
|
||||
func (t *UserCreateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *UserCreateTask) GetID() string {
|
||||
return fmt.Sprintf("user_create_%d", t.User.ID)
|
||||
}
|
||||
|
||||
// UserDeleteTask 删除用户任务
|
||||
type UserDeleteTask struct {
|
||||
ID uint
|
||||
}
|
||||
|
||||
func (t *UserDeleteTask) Execute(db *gorm.DB) error {
|
||||
return db.Delete(&tables.User{}, t.ID).Error
|
||||
}
|
||||
|
||||
func (t *UserDeleteTask) GetPriority() int {
|
||||
return 3 // 高优先级
|
||||
}
|
||||
|
||||
func (t *UserDeleteTask) GetID() string {
|
||||
return fmt.Sprintf("user_delete_%d", t.ID)
|
||||
}
|
||||
|
||||
// LibraryUpdateTask 更新图书馆任务
|
||||
type LibraryUpdateTask struct {
|
||||
ImgPath string
|
||||
Enable bool
|
||||
}
|
||||
|
||||
func (t *LibraryUpdateTask) Execute(db *gorm.DB) error {
|
||||
return db.Model(&tables.LibraryTable{}).
|
||||
Where("img_path = ?", t.ImgPath).
|
||||
Update("is_enable", t.Enable).Error
|
||||
}
|
||||
|
||||
func (t *LibraryUpdateTask) GetPriority() int {
|
||||
return 5 // 中等优先级
|
||||
}
|
||||
|
||||
func (t *LibraryUpdateTask) GetID() string {
|
||||
return fmt.Sprintf("library_update_%s", t.ImgPath)
|
||||
}
|
||||
|
||||
// LibraryDeleteTask 删除图书馆任务
|
||||
type LibraryDeleteTask struct {
|
||||
ImgPath string
|
||||
}
|
||||
|
||||
func (t *LibraryDeleteTask) Execute(db *gorm.DB) error {
|
||||
return db.Where("img_path = ?", t.ImgPath).Delete(&tables.LibraryTable{}).Error
|
||||
}
|
||||
|
||||
func (t *LibraryDeleteTask) GetPriority() int {
|
||||
return 3 // 高优先级
|
||||
}
|
||||
|
||||
func (t *LibraryDeleteTask) GetID() string {
|
||||
return fmt.Sprintf("library_delete_%s", t.ImgPath)
|
||||
}
|
||||
@@ -65,3 +65,4 @@
|
||||
{"level":"info","time":"2025-08-21 21:12:53.018","caller":"config/config.go:90","msg":"加载配置文件成功","path":"D:\\go-argus\\src\\rear\\config.yaml"}
|
||||
{"level":"info","time":"2025-08-21 21:20:29.322","caller":"config/config.go:90","msg":"加载配置文件成功","path":"config.yaml"}
|
||||
{"level":"info","time":"2025-08-21 21:23:55.718","caller":"config/config.go:90","msg":"加载配置文件成功","path":"D:\\go-argus\\src\\rear\\config.yaml"}
|
||||
{"level":"info","time":"2025-08-22 13:37:42.034","caller":"config/config.go:90","msg":"加载配置文件成功","path":"config.yaml"}
|
||||
Reference in new issue
Block a user