更新前后端代码

This commit is contained in:
2026-08-23 00:48:10 +08:00
parent 1b5468995f
commit 5c1313e4f6
74 changed files with 9995 additions and 306 deletions
+60
View File
@@ -0,0 +1,60 @@
package repository
import (
"gorm.io/gorm"
"filestoragesystem/internal/model"
)
// ProjectRepo 项目数据访问
type ProjectRepo struct{ DB *gorm.DB }
func (r *ProjectRepo) Create(p *model.Project) error { return r.DB.Create(p).Error }
func (r *ProjectRepo) FindByID(id uint) (*model.Project, error) {
var p model.Project
err := r.DB.First(&p, id).Error
return &p, err
}
func (r *ProjectRepo) FindByName(userID uint, name string) (*model.Project, error) {
var p model.Project
err := r.DB.Where("user_id = ? AND name = ?", userID, name).First(&p).Error
return &p, err
}
// List 分页查询项目;keyword匹配名称;all为true时跨用户(管理员)
func (r *ProjectRepo) List(userID uint, keyword string, all bool, page, pageSize int) ([]model.Project, int64, error) {
q := r.DB.Model(&model.Project{})
if !all {
q = q.Where("user_id = ?", userID)
}
if keyword != "" {
q = q.Where("name LIKE ?", "%"+keyword+"%")
}
var total int64
if err := q.Count(&total).Error; err != nil {
return nil, 0, err
}
var projects []model.Project
err := q.Order("id DESC").
Offset((page - 1) * pageSize).Limit(pageSize).Find(&projects).Error
return projects, total, err
}
func (r *ProjectRepo) Update(p *model.Project) error { return r.DB.Save(p).Error }
func (r *ProjectRepo) Delete(id uint) error { return r.DB.Delete(&model.Project{}, id).Error }
// UpdateStorageUsed 增减项目已用存储
func (r *ProjectRepo) UpdateStorageUsed(id uint, delta int64) error {
return r.DB.Model(&model.Project{}).Where("id = ?", id).
UpdateColumn("storage_used", gorm.Expr("storage_used + ?", delta)).Error
}
// ListByUser 用户全部项目(用于统计)
func (r *ProjectRepo) ListByUser(userID uint) ([]model.Project, error) {
var projects []model.Project
err := r.DB.Where("user_id = ?", userID).Find(&projects).Error
return projects, err
}