package service
|
|
import (
|
"errors"
|
"gorm.io/gorm"
|
"speechAnalysis/constvar"
|
"speechAnalysis/models"
|
"speechAnalysis/pkg/logx"
|
)
|
|
func DeleteAudio(audioId uint) (err error) {
|
err = models.WithTransaction(func(db *gorm.DB) error {
|
if err := models.NewAudioSearch().SetID(audioId).Delete(); err != nil {
|
return err
|
}
|
return models.NewAudioTextSearch().SetAudioID(audioId).Delete()
|
})
|
if err != nil {
|
logx.Errorf("delete audio err: %v", err)
|
return errors.New("DB错误")
|
}
|
return nil
|
}
|
|
func BatchDeleteAudio(audioIds []uint) (err error) {
|
if len(audioIds) == 0 {
|
return nil
|
}
|
err = models.WithTransaction(func(db *gorm.DB) error {
|
if err := models.NewAudioSearch().SetIDs(audioIds).Delete(); err != nil {
|
return err
|
}
|
return models.NewAudioTextSearch().SetAudioIDs(audioIds).Delete()
|
})
|
if err != nil {
|
logx.Errorf("delete audio err: %v", err)
|
return errors.New("DB错误")
|
}
|
return nil
|
}
|
|
func Follow(audioId uint) (followStatus constvar.BoolType, err error) {
|
if audioId == 0 {
|
return
|
}
|
audio, err := models.NewAudioSearch().SetID(audioId).First()
|
if err != nil {
|
return followStatus, errors.New("DB错误")
|
}
|
if audio.IsFollowed.Bool() {
|
followStatus = constvar.BoolTypeFalse
|
} else {
|
followStatus = constvar.BoolTypeTrue
|
}
|
err = models.NewAudioSearch().SetID(audioId).UpdateByMap(map[string]interface{}{
|
"is_followed": followStatus,
|
})
|
if err != nil {
|
logx.Errorf("follow audio err: %v", err)
|
return followStatus, errors.New("DB错误")
|
}
|
return followStatus, nil
|
}
|