| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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
- }
|