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

---
 request/audio.go     |   18 ++++--
 models/audio.go      |   41 +++++++++++--
 docs/swagger.yaml    |   21 +++++++
 controllers/audio.go |    3 +
 docs/docs.go         |   30 ++++++++++
 docs/swagger.json    |   30 ++++++++++
 6 files changed, 131 insertions(+), 12 deletions(-)

diff --git a/controllers/audio.go b/controllers/audio.go
index ad13a82..2476a6c 100644
--- a/controllers/audio.go
+++ b/controllers/audio.go
@@ -178,6 +178,9 @@
 		SetTrainNumber(params.TrainNumber).
 		SetDriverNumber(params.DriverNumber).
 		SetStation(params.StationNumber).
+		SetBeginTime(params.BeginTime).
+		SetEndTime(params.EndTime).
+		SetIsFollowed(params.IsFollowed).
 		Find()
 
 	if err != nil {
diff --git a/docs/docs.go b/docs/docs.go
index c225b57..4704be6 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -199,12 +199,42 @@
                 "parameters": [
                     {
                         "type": "string",
+                        "description": "寮�濮嬫椂闂�",
+                        "name": "beginTime",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
                         "description": "鍙告満鍙�",
                         "name": "driverNumber",
                         "in": "query"
                     },
                     {
                         "type": "string",
+                        "description": "缁撴潫鏃堕棿",
+                        "name": "endTime",
+                        "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2
+                        ],
+                        "type": "integer",
+                        "x-enum-comments": {
+                            "BoolTypeFalse": "false",
+                            "BoolTypeTrue": "true"
+                        },
+                        "x-enum-varnames": [
+                            "BoolTypeTrue",
+                            "BoolTypeFalse"
+                        ],
+                        "description": "鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉�",
+                        "name": "isFollowed",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
                         "description": "鍏抽敭瀛�",
                         "name": "keyword",
                         "in": "query"
diff --git a/docs/swagger.json b/docs/swagger.json
index 46229b6..e7c1bea 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -187,12 +187,42 @@
                 "parameters": [
                     {
                         "type": "string",
+                        "description": "寮�濮嬫椂闂�",
+                        "name": "beginTime",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
                         "description": "鍙告満鍙�",
                         "name": "driverNumber",
                         "in": "query"
                     },
                     {
                         "type": "string",
+                        "description": "缁撴潫鏃堕棿",
+                        "name": "endTime",
+                        "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2
+                        ],
+                        "type": "integer",
+                        "x-enum-comments": {
+                            "BoolTypeFalse": "false",
+                            "BoolTypeTrue": "true"
+                        },
+                        "x-enum-varnames": [
+                            "BoolTypeTrue",
+                            "BoolTypeFalse"
+                        ],
+                        "description": "鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉�",
+                        "name": "isFollowed",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
                         "description": "鍏抽敭瀛�",
                         "name": "keyword",
                         "in": "query"
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index e16406b..e6ed566 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -313,10 +313,31 @@
   /api-sa/v1/audio/list:
     get:
       parameters:
+      - description: 寮�濮嬫椂闂�
+        in: query
+        name: beginTime
+        type: string
       - description: 鍙告満鍙�
         in: query
         name: driverNumber
         type: string
+      - description: 缁撴潫鏃堕棿
+        in: query
+        name: endTime
+        type: string
+      - description: 鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉�
+        enum:
+        - 1
+        - 2
+        in: query
+        name: isFollowed
+        type: integer
+        x-enum-comments:
+          BoolTypeFalse: "false"
+          BoolTypeTrue: "true"
+        x-enum-varnames:
+        - BoolTypeTrue
+        - BoolTypeFalse
       - description: 鍏抽敭瀛�
         in: query
         name: keyword
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
 }
 
diff --git a/request/audio.go b/request/audio.go
index e146e7e..a9000eb 100644
--- a/request/audio.go
+++ b/request/audio.go
@@ -1,14 +1,20 @@
 package request
 
-import "speechAnalysis/constvar"
+import (
+	"speechAnalysis/constvar"
+	"time"
+)
 
 type GetAudioList struct {
 	PageInfo
-	Keyword          string `form:"keyword"`                                                                         // 鍏抽敭瀛�
-	LocomotiveNumber string `gorm:"index;type:varchar(255);not null;default:'';comment:鏈鸿溅鍙�" form:"locomotiveNumber"` // 鏈鸿溅鍙�
-	TrainNumber      string `gorm:"index;type:varchar(255);not null;default:'';comment:杞︽" form:"trainNumber"`       // 杞︽
-	DriverNumber     string `gorm:"index;type:varchar(255);not null;default:'';comment:鍙告満鍙�" form:"driverNumber"`     // 鍙告満鍙�
-	StationNumber    string `gorm:"index;type:varchar(255);not null;default:'';comment:杞︾珯鍙�" form:"stationNumber"`    // 杞︾珯鍙�
+	Keyword          string            `form:"keyword"`                                                                            // 鍏抽敭瀛�
+	LocomotiveNumber string            `gorm:"index;type:varchar(255);not null;default:'';comment:鏈鸿溅鍙�" form:"locomotiveNumber"` // 鏈鸿溅鍙�
+	TrainNumber      string            `gorm:"index;type:varchar(255);not null;default:'';comment:杞︽" form:"trainNumber"`        // 杞︽
+	DriverNumber     string            `gorm:"index;type:varchar(255);not null;default:'';comment:鍙告満鍙�" form:"driverNumber"`     // 鍙告満鍙�
+	StationNumber    string            `gorm:"index;type:varchar(255);not null;default:'';comment:杞︾珯鍙�" form:"stationNumber"`    // 杞︾珯鍙�
+	BeginTime        time.Time         `json:"beginTime"`                                                                          //寮�濮嬫椂闂�
+	EndTime          time.Time         `json:"endTime"`                                                                            //缁撴潫鏃堕棿
+	IsFollowed       constvar.BoolType `json:"isFollowed"`                                                                         //鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉�
 }
 
 type ProcessAudio struct {

--
Gitblit v1.8.0