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