From 0a6e8be485f41fcbf6c362663138ce86ccdd02f1 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 22 五月 2024 19:47:19 +0800 Subject: [PATCH] 音频正在处理或者处理完成,不可删除 --- models/audio.go | 26 ++++++++++++++++++-------- controllers/audio.go | 28 ++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/controllers/audio.go b/controllers/audio.go index 2924c9b..5d035d8 100644 --- a/controllers/audio.go +++ b/controllers/audio.go @@ -322,7 +322,18 @@ return } - err := service.DeleteAudio(params.ID) + audio, err := models.NewAudioSearch().SetID(params.ID).First() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "闊抽涓嶅瓨鍦�") + return + } + + if audio.AudioStatus == constvar.AudioStatusProcessing || audio.AudioStatus == constvar.AudioStatusFinish { + util.ResponseFormat(c, code.RequestParamError, "闊抽姝e湪澶勭悊鎴栬�呭鐞嗗畬鎴愶紝涓嶅彲鍒犻櫎") + return + } + + err = service.DeleteAudio(params.ID) if err != nil { util.ResponseFormat(c, code.InternalError, err.Error()) return @@ -345,7 +356,20 @@ return } - err := service.BatchDeleteAudio(params.IDs) + audioList, err := models.NewAudioSearch().SetIDs(params.IDs).FindNotTotal() + if err != nil { + util.ResponseFormat(c, code.InternalError, "鍐呴儴閿欒") + return + } + + for _, audio := range audioList { + if audio.AudioStatus == constvar.AudioStatusProcessing || audio.AudioStatus == constvar.AudioStatusFinish { + util.ResponseFormat(c, code.RequestParamError, "闊抽姝e湪澶勭悊鎴栬�呭鐞嗗畬鎴愶紝涓嶅彲鍒犻櫎") + return + } + } + + err = service.BatchDeleteAudio(params.IDs) if err != nil { util.ResponseFormat(c, code.InternalError, err.Error()) return diff --git a/models/audio.go b/models/audio.go index 96f52a2..f46be7c 100644 --- a/models/audio.go +++ b/models/audio.go @@ -32,14 +32,15 @@ AudioSearch struct { Audio - Order string - PageNum int - PageSize int - Orm *gorm.DB - Keyword string - IDs []uint - BeginTime time.Time - EndTime time.Time + Order string + PageNum int + PageSize int + Orm *gorm.DB + Keyword string + IDs []uint + BeginTime time.Time + EndTime time.Time + StatusList []constvar.AudioStatus } ) @@ -95,6 +96,11 @@ func (slf *AudioSearch) SetName(name string) *AudioSearch { slf.Name = name + return slf +} + +func (slf *AudioSearch) SetAudioStatusList(statusList []constvar.AudioStatus) *AudioSearch { + slf.StatusList = statusList return slf } @@ -182,6 +188,10 @@ db = db.Where("is_followed = ?", slf.IsFollowed) } + if len(slf.StatusList) != 0 { + db = db.Where("audio_status in ?", slf.StatusList) + } + return db } -- Gitblit v1.8.0