From a5429b8a83e1b4a48c2a3b9b0b475f08a114837c Mon Sep 17 00:00:00 2001 From: yinbangzhong <zhongbangyin@126.com> Date: 星期四, 20 六月 2024 09:11:57 +0800 Subject: [PATCH] download file by attach model --- models/audio.go | 72 ++++++++++++++++++++++++++++++----- 1 files changed, 61 insertions(+), 11 deletions(-) diff --git a/models/audio.go b/models/audio.go index 45331be..4ef34a6 100644 --- a/models/audio.go +++ b/models/audio.go @@ -5,6 +5,7 @@ "gorm.io/gorm" "speechAnalysis/constvar" "speechAnalysis/pkg/mysqlx" + "strings" "time" ) @@ -14,26 +15,35 @@ gorm.Model Name string `gorm:"index;type:varchar(255);not null;default:'';comment:闊抽鍚嶇О" json:"name"` // 闊抽鍚嶇О Size int64 `gorm:"type:int;not null;default:0;comment:鏂囦欢澶у皬" json:"size"` // 闊抽澶у皬 - FilePath string `gorm:"type:varchar(255);not null;default:'';comment:闊抽鍚嶇О" json:"-"` //闊抽璺緞 // 闊抽璺緞 + FilePath string `gorm:"type:varchar(255);not null;default:'';comment:闊抽璺緞" json:"-"` //闊抽璺緞 + TxtFilePath string `gorm:"type:varchar(255);not null;default:'';comment:txt璺緞" json:"-"` //txt璺緞 AudioStatus constvar.AudioStatus `gorm:"type:tinyint;not null;default:0;comment:鐘舵��" json:"audioStatus"` // 闊抽鐘舵�� LocomotiveNumber string `gorm:"index;type:varchar(255);not null;default:'';comment:鏈鸿溅鍙�" json:"locomotiveNumber"` // 鏈鸿溅鍙� TrainNumber string `gorm:"index;type:varchar(255);not null;default:'';comment:杞︽" json:"trainNumber"` // 杞︽ DriverNumber string `gorm:"index;type:varchar(255);not null;default:'';comment:鍙告満鍙�" json:"driverNumber"` // 鍙告満鍙� Station string `gorm:"index;type:varchar(255);not null;default:'';comment:杞︾珯鍙�" json:"station"` // 杞︾珯 + RouteNumber string `gorm:"index;type:varchar(255);not null;default:'';comment:浜よ矾鍙�" json:"routeNumber"` // 浜よ矾鍙� + KilometerMarker string `gorm:"index;type:varchar(255);not null;default:'';comment:鍏噷鏍�" json:"kilometerMarker"` // 鍏噷鏍� OccurrenceAt time.Time `json:"-"` OccurrenceTime string `json:"occurrenceTime" gorm:"-"` - IsFollowed constvar.BoolType `gorm:"type:tinyint;not null;default:2;comment:鏄惁鍏虫敞"` //鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉� - Score float64 `json:"score"` // 缃俊搴� + IsFollowed constvar.BoolType `gorm:"type:tinyint;not null;default:2;comment:鏄惁鍏虫敞"` //鏄惁鍏虫敞 1鍏虫敞 2鏈叧娉� + Score float64 `json:"score"` // 缃俊搴� + Words []string `json:"words" gorm:"-"` //鍖归厤鍒扮殑鏂囧瓧鏁扮粍 + Tags string `json:"-" gorm:"type:varchar(255);not null;default:'';comment:鍖归厤鍒扮殑鏂囧瓧锛岀敤閫楀彿鎷兼帴"` //鍖归厤鍒扮殑鏂囧瓧 + AudioText string `json:"audioText" gorm:"-"` //瑙f瀽鍑虹殑鏂囨湰 } 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 + StatusList []constvar.AudioStatus } ) @@ -47,8 +57,12 @@ } else { slf.OccurrenceTime = slf.OccurrenceAt.Format("2006-01-02 15:04:05") } + if slf.Tags != "" { + slf.Words = strings.Split(slf.Tags, ",") + } return } + func NewAudioSearch() *AudioSearch { return &AudioSearch{Orm: mysqlx.GetDB()} } @@ -88,6 +102,11 @@ return slf } +func (slf *AudioSearch) SetAudioStatusList(statusList []constvar.AudioStatus) *AudioSearch { + slf.StatusList = statusList + return slf +} + func (slf *AudioSearch) SetLocomotiveNumber(name string) *AudioSearch { slf.LocomotiveNumber = name return slf @@ -102,6 +121,21 @@ } func (slf *AudioSearch) SetStation(name string) *AudioSearch { slf.Station = name + 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 } @@ -143,6 +177,22 @@ if len(slf.IDs) > 0 { 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) + } + + if len(slf.StatusList) != 0 { + db = db.Where("audio_status in ?", slf.StatusList) } return db @@ -234,7 +284,7 @@ db = slf.build() ) - if err := db.Count(&total).Error; err != nil { + if err := db.Where("deleted_at IS NULL").Count(&total).Error; err != nil { return records, int(total), fmt.Errorf("find count err: %v", err) } if slf.PageNum*slf.PageSize > 0 { @@ -271,7 +321,7 @@ db = slf.Orm.Table(slf.TableName()).Where(query, args...) ) - if err := db.Count(&total).Error; err != nil { + if err := db.Where("deleted_at IS NULL").Count(&total).Error; err != nil { return records, total, fmt.Errorf("find by query count err: %v", err) } if slf.PageNum*slf.PageSize > 0 { -- Gitblit v1.8.0