Browse Source

创建修复报告时间设置错误

- 将报告、报告章节、语音和视频模型中的 CreateTime 字段类型从 string 修改为 time.Time- 在处理请求时,将传入的 CreateTime 字符串转换为 time.Time 类型
-修复了报告章节和语音控制器中生成视频名称时的日期格式问题
- 优化了报告 V2 服务中处理 CreateTime 的逻辑
Roc 6 months ago
parent
commit
0996efbc02

+ 10 - 1
controllers/report.go

@@ -1233,7 +1233,16 @@ func (this *ReportController) EditDayWeekReport() {
 	}
 
 	reportInfo.Title = req.Title
-	reportInfo.CreateTime = req.CreateTime
+	if req.CreateTime != "" {
+		createTime, tmpErr := time.ParseInLocation(utils.FormatDateTime, req.CreateTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			br.Msg = "日期解析异常"
+			br.ErrMsg = "日期解析异常,err:" + tmpErr.Error()
+			return
+		}
+		reportInfo.CreateTime = createTime
+	}
 	reportInfo.Author = req.Author
 	err = models.EditReport(reportInfo, int64(req.ReportId))
 

+ 7 - 8
controllers/report_chapter.go

@@ -413,7 +413,12 @@ func (this *ReportController) EditDayWeekChapter() {
 	reportChapterInfo.IsEdit = 1
 	reportChapterInfo.ModifyTime = time.Now()
 	if req.CreateTime != `` {
-		reportChapterInfo.CreateTime = req.CreateTime
+		createTime, tmpErr := time.ParseInLocation(utils.FormatDateTime, req.CreateTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		reportChapterInfo.CreateTime = createTime
 	}
 
 	reportChapterInfo.LastModifyAdminId = sysUser.AdminId
@@ -1218,13 +1223,7 @@ func (this *ReportController) VoiceUpload() {
 	sizeStr := utils.SubFloatToFloatStr(sizeFloat, 2)
 
 	{
-		reportChapterCreateTime, err := time.Parse(utils.FormatDateTime, reportChapterInfo.CreateTime)
-		if err != nil {
-			br.Msg = "上传失败"
-			br.ErrMsg = "上传失败,Err:" + err.Error()
-			return
-		}
-		createTimeStr := reportChapterCreateTime.Format("0102")
+		createTimeStr := reportChapterInfo.CreateTime.Format("0102")
 		videoName := reportChapterInfo.Title + "(" + createTimeStr + ")"
 
 		reportChapterInfo.VideoUrl = resourceUrl

+ 10 - 2
controllers/report_v2.go

@@ -452,7 +452,15 @@ func (this *ReportController) Add() {
 	item.Content = html.EscapeString(req.Content)
 	item.Stage = maxStage + 1
 	item.ContentSub = html.EscapeString(contentSub)
-	item.CreateTime = req.CreateTime
+	if req.CreateTime != `` {
+		createTime, tmpErr := time.ParseInLocation(utils.FormatDateTime, req.CreateTime, time.Local)
+		if tmpErr != nil {
+			br.Msg = "时间解析异常"
+			br.ErrMsg = "时间解析异常,Err:" + err.Error()
+			return
+		}
+		item.CreateTime = createTime
+	}
 	item.ModifyTime = time.Now()
 	item.ReportVersion = req.ReportVersion
 	item.AdminId = sysUser.AdminId
@@ -1857,7 +1865,7 @@ func fixSmartReport() {
 			Abstract:           v.Abstract,
 			Author:             v.Author,
 			Frequency:          v.Frequency,
-			CreateTime:         v.CreateTime.Format(utils.FormatDateTime),
+			CreateTime:         v.CreateTime,
 			ModifyTime:         v.ModifyTime,
 			State:              v.State,
 			PublishTime:        v.PublishTime,

+ 1 - 8
controllers/voice.go

@@ -134,14 +134,7 @@ func (this *VoiceController) Upload() {
 
 	// 修改报告的音频信息
 	{
-		reportCreateTime, err := time.Parse(utils.FormatDateTime, reportInfo.CreateTime)
-		if err != nil {
-			br.Msg = "上传失败"
-			br.ErrMsg = "上传失败,Err:" + err.Error()
-			return
-		}
-
-		createTimeStr := reportCreateTime.Format("0102")
+		createTimeStr := reportInfo.CreateTime.Format("0102")
 		videoName := reportInfo.Title + "(" + createTimeStr + ")"
 
 		reportInfo.VideoUrl = resourceUrl

+ 1 - 1
models/report.go

@@ -43,7 +43,7 @@ type Report struct {
 	Abstract           string    `gorm:"column:abstract" description:"摘要"`
 	Author             string    `gorm:"column:author" description:"作者"`
 	Frequency          string    `gorm:"column:frequency" description:"频度"`
-	CreateTime         string    `gorm:"column:create_time" description:"创建时间"`
+	CreateTime         time.Time `gorm:"column:create_time" description:"创建时间"`
 	ModifyTime         time.Time `gorm:"column:modify_time;autoUpdateTime" description:"修改时间"`
 	State              int       `gorm:"column:state" description:"1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
 	PublishTime        time.Time `gorm:"column:publish_time" description:"发布时间"`

+ 1 - 1
models/report_chapter.go

@@ -33,7 +33,7 @@ type ReportChapter struct {
 	VideoPlaySeconds    string    `gorm:"column:video_play_seconds" description:"音频播放时长"`
 	VideoSize           string    `gorm:"column:video_size" description:"音频文件大小,单位M"`
 	VideoKind           int       `gorm:"column:video_kind" description:"音频生成方式:1,手动上传,2:自动生成"`
-	CreateTime          string    `gorm:"column:create_time" description:"创建时间"`
+	CreateTime          time.Time `gorm:"column:create_time" description:"创建时间"`
 	ModifyTime          time.Time `gorm:"column:modify_time" description:"修改时间"`
 	OriginalVideoUrl    string    `gorm:"column:original_video_url" description:"原始音频文件URL"`
 	ContentStruct       string    `gorm:"column:content_struct" description:"内容组件"`

+ 8 - 1
services/report.go

@@ -703,7 +703,14 @@ func CreateNewReport(req models.AddReq, adminInfo *system.Admin) (newReportId in
 	item.Content = html.EscapeString(req.Content)
 	item.Stage = maxStage + 1
 	item.ContentSub = html.EscapeString(contentSub)
-	item.CreateTime = req.CreateTime
+	if req.CreateTime != "" {
+		createTime, tmpErr := time.ParseInLocation(utils.FormatDateTime, req.CreateTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		item.CreateTime = createTime
+	}
 	item.ModifyTime = time.Now()
 	item.ReportVersion = req.ReportVersion
 	item.AdminId = adminInfo.AdminId

+ 8 - 1
services/report_v2.go

@@ -157,7 +157,14 @@ func EditReport(reportInfo *models.Report, req models.EditReq, sysUser *system.A
 	//reportInfo.Stage = stage // 编辑不变更期数
 	//reportInfo.Content = html.EscapeString(req.Content)	// 编辑不变更具体内容
 	//reportInfo.ContentSub = html.EscapeString(contentSub)	// 编辑不变更具体内容
-	reportInfo.CreateTime = req.CreateTime
+	if req.CreateTime != `` {
+		createTime, tmpErr := time.ParseInLocation(utils.FormatDateTime, req.CreateTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		reportInfo.CreateTime = createTime
+	}
 	//reportInfo.CollaborateType = req.CollaborateType
 	//reportInfo.ReportLayout = req.ReportLayout
 	if req.IsPublicPublish <= 0 {

+ 1 - 2
services/video.go

@@ -47,8 +47,7 @@ func CreateVideo(report *models.Report) (err error) {
 	xfReq.XfAPIKey = conf[models.BusinessConfXfApiKey]
 	xfReq.XfAPISecret = conf[models.BusinessConfXfApiSecret]
 
-	ct, err := time.Parse(utils.FormatDateTime, report.CreateTime)
-	createTime := ct.Format("0102")
+	createTime := report.CreateTime.Format("0102")
 	videoName := report.Title + "(" + createTime + ")"
 	content := html.UnescapeString(report.Content)
 	content = strings.Replace(content, "Powered", "", -1)