Browse Source

fix: 语音识别-格式化文件大小和时长

hsun 11 months ago
parent
commit
eed0f99ed1
2 changed files with 22 additions and 4 deletions
  1. 4 4
      models/speech_recognition/speech_recognition.go
  2. 18 0
      utils/common.go

+ 4 - 4
models/speech_recognition/speech_recognition.go

@@ -355,8 +355,8 @@ type SpeechRecognitionDetailItem struct {
 	SysUserName         string                          `description:"创建人姓名"`
 	Abstract            string                          `description:"摘要,取前几段内容"`
 	Sort                int                             `description:"目录下的排序"`
-	FileSecond          int                             `description:"文件时长(秒)"`
-	FileSize            int                             `description:"文件大小(byte)"`
+	FileSecond          string                          `description:"文件时长(HH:MM:SS/MM:SS)"`
+	FileSize            string                          `description:"文件大小(MB)"`
 	CreateTime          string                          `description:"创建时间"`
 	ModifyTime          string                          `description:"修改时间"`
 	Contents            []*SpeechRecognitionContentItem `description:"语音识别内容"`
@@ -388,8 +388,8 @@ func FormatSpeechRecognition2DetailItem(origin *SpeechRecognition, contents []*S
 	item.SysUserName = origin.SysUserName
 	item.Abstract = origin.Abstract
 	item.Sort = origin.Sort
-	item.FileSecond = origin.FileSecond
-	item.FileSize = origin.FileSize
+	item.FileSecond = utils.SecondsToHHMMSS(origin.FileSecond)
+	item.FileSize = fmt.Sprintf("%.2fM", utils.ByteToMB(origin.FileSize))
 	item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
 	item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime)
 	item.Contents = contents

+ 18 - 0
utils/common.go

@@ -2298,6 +2298,20 @@ func GetColorMap() map[int]string {
 	return colorMap
 }
 
+// SecondsToHHMMSS 秒转HH:MM:SS
+func SecondsToHHMMSS(seconds int) string {
+	duration := time.Duration(seconds) * time.Second
+	hours := int(duration.Hours())
+	minutes := int(duration.Minutes()) % 60
+	seconds = int(duration.Seconds()) % 60
+
+	if hours > 0 {
+		return fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
+	} else {
+		return fmt.Sprintf("%02d:%02d", minutes, seconds)
+	}
+}
+
 // MillisecondsToHHMMSS 毫秒转HH:MM:SS
 func MillisecondsToHHMMSS(ms int) string {
 	duration := time.Duration(ms) * time.Millisecond
@@ -2323,3 +2337,7 @@ func MillisecondsToHHMMSS(ms int) string {
 
 	return hourStr + ":" + minuteStr + ":" + secondStr
 }
+
+func ByteToMB(byteCount int) float64 {
+	return float64(byteCount) / (1024 * 1024)
+}