|
|
@@ -32,12 +32,14 @@ type (
|
|
|
|
|
|
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 @@ func (slf *AudioSearch) SetStation(name string) *AudioSearch {
|
|
|
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 @@ func (slf *AudioSearch) build() *gorm.DB {
|
|
|
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
|
|
|
}
|
|
|
|