From dc962c6426829f6c843bb57fb89627974667470c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 17 五月 2024 15:50:07 +0800
Subject: [PATCH] 音频检索增加时间范围和是否关注的搜索条件

---
 models/audio.go |   41 +++++++++++++++++++++++++++++++++++------
 1 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/models/audio.go b/models/audio.go
index 8d1b51f..76fac0c 100644
--- a/models/audio.go
+++ b/models/audio.go
@@ -32,12 +32,14 @@
 
 	AudioSearch struct {
 		Audio
-		Order    string
-		PageNum  int
-		PageSize int
-		Orm      *gorm.DB
-		Keyword  string
-		IDs      []uint
+		Order     string
+		PageNum   int
+		PageSize  int
+		Orm       *gorm.DB
+		Keyword   string
+		IDs       []uint
+		BeginTime time.Time
+		EndTime   time.Time
 	}
 )
 
@@ -113,6 +115,21 @@
 	return slf
 }
 
+func (slf *AudioSearch) SetBeginTime(time time.Time) *AudioSearch {
+	slf.BeginTime = time
+	return slf
+}
+
+func (slf *AudioSearch) SetEndTime(time time.Time) *AudioSearch {
+	slf.EndTime = time
+	return slf
+}
+
+func (slf *AudioSearch) SetIsFollowed(isFollowed constvar.BoolType) *AudioSearch {
+	slf.IsFollowed = isFollowed
+	return slf
+}
+
 func (slf *AudioSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 
@@ -153,6 +170,18 @@
 		db = db.Where("id in ?", slf.IDs)
 	}
 
+	if !slf.BeginTime.IsZero() {
+		db = db.Where("occurrence_at >= ?", slf.BeginTime)
+	}
+
+	if !slf.EndTime.IsZero() {
+		db = db.Where("occurrence_at <= ?", slf.EndTime)
+	}
+
+	if slf.IsFollowed != 0 {
+		db = db.Where("is_followed = ?", slf.IsFollowed)
+	}
+
 	return db
 }
 

--
Gitblit v1.8.0