mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 00:27:31 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package model
 | |
| 
 | |
| import (
 | |
| 	"github.com/HFO4/cloudreve/pkg/util"
 | |
| 	"github.com/jinzhu/gorm"
 | |
| )
 | |
| 
 | |
| // Folder 目录
 | |
| type Folder struct {
 | |
| 	// 表字段
 | |
| 	gorm.Model
 | |
| 	Name             string
 | |
| 	ParentID         uint   `gorm:"index:parent_id"`
 | |
| 	Position         string `gorm:"size:65536"`
 | |
| 	OwnerID          uint   `gorm:"index:owner_id"`
 | |
| 	PositionAbsolute string `gorm:"size:65536"`
 | |
| }
 | |
| 
 | |
| // Create 创建目录 TODO:test
 | |
| func (folder *Folder) Create() (uint, error) {
 | |
| 	if err := DB.Create(folder).Error; err != nil {
 | |
| 		util.Log().Warning("无法插入目录记录, %s", err)
 | |
| 		return 0, err
 | |
| 	}
 | |
| 	return folder.ID, nil
 | |
| }
 | |
| 
 | |
| // GetFolderByPath 根据绝对路径和UID查找目录
 | |
| func GetFolderByPath(path string, uid uint) (Folder, error) {
 | |
| 	var folder Folder
 | |
| 	result := DB.Where("owner_id = ? AND position_absolute = ?", uid, path).First(&folder)
 | |
| 	return folder, result.Error
 | |
| }
 | |
| 
 | |
| // GetChildFolder 查找子目录 TODO:test
 | |
| func (folder *Folder) GetChildFolder() ([]Folder, error) {
 | |
| 	var folders []Folder
 | |
| 	result := DB.Where("parent_id = ?", folder.ID).Find(&folders)
 | |
| 	return folders, result.Error
 | |
| }
 | 
