yinbangzhong
2024-06-19 dd2c694c124c4a0f5b1d9c5a876337bd424d697f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
}