初始化
This commit is contained in:
63
server/repository/share_repo.go
Normal file
63
server/repository/share_repo.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"seeyon-filesystem/config"
|
||||
"seeyon-filesystem/model"
|
||||
)
|
||||
|
||||
// ShareRepository 分享数据访问
|
||||
type ShareRepository struct{}
|
||||
|
||||
// NewShareRepository 创建分享Repository实例
|
||||
func NewShareRepository() *ShareRepository {
|
||||
return &ShareRepository{}
|
||||
}
|
||||
|
||||
// Create 创建分享记录
|
||||
func (r *ShareRepository) Create(share *model.Share) error {
|
||||
return config.DB.Create(share).Error
|
||||
}
|
||||
|
||||
// FindByShareCode 根据分享码查找
|
||||
func (r *ShareRepository) FindByShareCode(code string) (*model.Share, error) {
|
||||
var share model.Share
|
||||
err := config.DB.Where("share_code = ? AND status = 1", code).First(&share).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &share, nil
|
||||
}
|
||||
|
||||
// FindByID 根据ID查找
|
||||
func (r *ShareRepository) FindByID(id uint64) (*model.Share, error) {
|
||||
var share model.Share
|
||||
err := config.DB.First(&share, id).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &share, nil
|
||||
}
|
||||
|
||||
// ListByOwner 查询用户的分享列表
|
||||
func (r *ShareRepository) ListByOwner(ownerID uint64) ([]model.Share, error) {
|
||||
var shares []model.Share
|
||||
err := config.DB.Where("owner_id = ? AND status = 1", ownerID).
|
||||
Order("created_at DESC").Find(&shares).Error
|
||||
return shares, err
|
||||
}
|
||||
|
||||
// IncrementDownloadCount 增加下载次数
|
||||
func (r *ShareRepository) IncrementDownloadCount(id uint64) error {
|
||||
return config.DB.Model(&model.Share{}).Where("id = ?", id).
|
||||
Update("download_count", config.DB.Raw("download_count + 1")).Error
|
||||
}
|
||||
|
||||
// Cancel 取消分享
|
||||
func (r *ShareRepository) Cancel(id uint64) error {
|
||||
return config.DB.Model(&model.Share{}).Where("id = ?", id).Update("status", 0).Error
|
||||
}
|
||||
|
||||
// Delete 永久删除
|
||||
func (r *ShareRepository) Delete(id uint64) error {
|
||||
return config.DB.Unscoped().Delete(&model.Share{}, id).Error
|
||||
}
|
||||
Reference in New Issue
Block a user