From 9cb1a4989b412a8a0d5d6745e6302e54c41dfebf Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 21 五月 2024 11:49:09 +0800 Subject: [PATCH] 修复统计条数没过滤软删除的问题 --- service/process.go | 29 ++++++++++++++++++++++++++--- 1 files changed, 26 insertions(+), 3 deletions(-) diff --git a/service/process.go b/service/process.go index 50bf7eb..29eb5f3 100644 --- a/service/process.go +++ b/service/process.go @@ -13,6 +13,7 @@ "speechAnalysis/constvar" "speechAnalysis/models" "speechAnalysis/pkg/logx" + "strings" ) // Response 缁撴瀯浣撶敤浜庡瓨鍌ㄥ搷搴斾綋鐨勫唴瀹� @@ -110,23 +111,45 @@ return } logx.Infof("AnalysisAudio result: %v", resp) + words := GetWordFromText(resp.Result, audio) + err = models.WithTransaction(func(db *gorm.DB) error { - err = models.NewAudioSearch().SetID(audioId).UpdateByMap(map[string]interface{}{"audio_status": constvar.AudioStatusFinish}) + err = models.NewAudioSearch().SetOrm(db).SetID(audioId).UpdateByMap(map[string]interface{}{ + "audio_status": constvar.AudioStatusFinish, + "score": resp.Score, + "tags": strings.Join(words, ","), + }) if err != nil { return err } - err = models.NewAudioTextSearch().Save(&models.AudioText{ + err = models.NewAudioTextSearch().SetOrm(db).Save(&models.AudioText{ AudioID: audio.ID, AudioText: resp.Result, - Score: resp.Score, }) return err }) if err != nil { logx.Infof("AnalysisAudio success but update record failed: %v", err) + _ = models.NewAudioSearch().SetID(audioId).UpdateByMap(map[string]interface{}{"audio_status": constvar.AudioStatusFailed}) return } }() return nil } + +func GetWordFromText(text string, audio *models.Audio) (words []string) { + if audio == nil { + return nil + } + wordRecords, err := models.NewWordSearch().SetLocomotiveNumber(audio.LocomotiveNumber).FindNotTotal() + if err != nil || len(wordRecords) == 0 { + return nil + } + for _, v := range wordRecords { + if strings.Contains(text, v.Content) { + words = append(words, v.Content) + } + } + return words +} -- Gitblit v1.8.0