Feat: filter and search file

This commit is contained in:
HFO4
2020-02-11 11:13:20 +08:00
parent 8f28a9c346
commit 127d0236f9
5 changed files with 34 additions and 13 deletions

View File

@@ -81,15 +81,26 @@ func GetFilesByIDs(ids []uint, uid uint) ([]File, error) {
// GetFilesByKeywords 根据关键字搜索文件,
// UID为0表示忽略用户只根据文件ID检索
// TODO 测试
func GetFilesByKeywords(keywords string, uid uint) ([]File, error) {
var files []File
var result *gorm.DB
func GetFilesByKeywords(uid uint, keywords ...interface{}) ([]File, error) {
var (
files []File
result = DB
conditions string
)
if uid == 0 {
result = DB.Where("name like ?", keywords).Find(&files)
} else {
result = DB.Where("name like ? AND user_id = ?", keywords, uid).Find(&files)
// 生成查询条件
for i := 0; i < len(keywords); i++ {
conditions += "LOWER(name) like ?"
if i != len(keywords)-1 {
conditions += " or "
}
}
if uid != 0 {
result = result.Where("user_id = ?", uid)
}
result = result.Where("("+conditions+")", keywords...).Find(&files)
return files, result.Error
}

View File

@@ -47,7 +47,7 @@ func Init() {
// Debug模式下输出所有 SQL 日志
if conf.SystemConfig.Debug {
db.LogMode(false)
db.LogMode(true)
}
//db.SetLogger(util.Log())