ソースを参照

fix: 研报编辑状态

hsun 1 年間 前
コミット
f0c813a84c

+ 1 - 1
controllers/english_report/report.go

@@ -229,7 +229,7 @@ func (this *EnglishReportController) Edit() {
 	item.Abstract = req.Abstract
 	item.Author = req.Author
 	item.Frequency = req.Frequency
-	//item.State = req.State
+	item.State = report.State // 编辑不变更状态
 	item.Stage = stage
 	item.Content = html.EscapeString(req.Content)
 	item.ContentSub = html.EscapeString(contentSub)

+ 16 - 9
controllers/report.go

@@ -672,21 +672,28 @@ func (this *ReportController) Edit() {
 	}
 
 	var stage int
-	report, _ := models.GetReportById(int(req.ReportId))
-	if report != nil {
-		if report.ClassifyNameFirst != req.ClassifyNameFirst || report.ClassifyNameSecond != req.ClassifyNameSecond {
-			maxStage, _ := models.GetReportStageEdit(req.ClassifyIdFirst, req.ClassifyIdSecond, int(req.ReportId))
-			maxStage = maxStage + 1
-			stage = maxStage
-		} else {
-			stage = report.Stage
+	report, e := models.GetReportById(int(req.ReportId))
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "报告已被删除, 请刷新页面"
+			return
 		}
+		br.Msg = "操作失败"
+		br.ErrMsg = "获取报告失败, Err: " + e.Error()
+		return
 	}
 	if report.State == models.ReportStatePublished || report.State == models.ReportStatePass {
 		br.Msg = "该报告已发布,不允许编辑"
 		br.ErrMsg = "该报告已发布,不允许编辑"
 		return
 	}
+	if report.ClassifyNameFirst != req.ClassifyNameFirst || report.ClassifyNameSecond != req.ClassifyNameSecond {
+		maxStage, _ := models.GetReportStageEdit(req.ClassifyIdFirst, req.ClassifyIdSecond, int(req.ReportId))
+		maxStage = maxStage + 1
+		stage = maxStage
+	} else {
+		stage = report.Stage
+	}
 	//if req.State != report.State {
 	//	recordItem := &models.ReportStateRecord{
 	//		ReportId:   int(req.ReportId),
@@ -710,7 +717,7 @@ func (this *ReportController) Edit() {
 	item.Abstract = req.Abstract
 	item.Author = req.Author
 	item.Frequency = req.Frequency
-	//item.State = req.State
+	item.State = report.State // 编辑不变更状态
 	item.Stage = stage
 	item.Content = html.EscapeString(req.Content)
 	item.ContentSub = html.EscapeString(contentSub)

+ 2 - 2
models/english_report.go

@@ -881,13 +881,13 @@ func UpdateEnglishReportsStateBySecondIds(oldState, newState int, secondIds []in
 	}
 	o := orm.NewOrmUsingDB("rddp")
 	// (有审批流的)未发布->待提交
-	sql := fmt.Sprintf(`UPDATE english_report SET state = ? WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql := fmt.Sprintf(`UPDATE english_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, newState, oldState, secondIds).Exec()
 	if err != nil {
 		return
 	}
 	// (无审批流的)待提交->未发布
-	sql = fmt.Sprintf(`UPDATE english_report SET state = ? WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql = fmt.Sprintf(`UPDATE english_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, oldState, newState, secondIds).Exec()
 	return
 }

+ 2 - 2
models/report.go

@@ -1131,13 +1131,13 @@ func UpdateReportsStateBySecondIds(oldState, newState int, secondIds []int) (err
 	}
 	o := orm.NewOrmUsingDB("rddp")
 	// (有审批流的)未发布->待提交
-	sql := fmt.Sprintf(`UPDATE report SET state = ? WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql := fmt.Sprintf(`UPDATE report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, newState, oldState, secondIds).Exec()
 	if err != nil {
 		return
 	}
 	// (无审批流的)待提交->未发布
-	sql = fmt.Sprintf(`UPDATE report SET state = ? WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql = fmt.Sprintf(`UPDATE report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, oldState, newState, secondIds).Exec()
 	return
 }

+ 2 - 2
models/smart_report/smart_report.go

@@ -371,13 +371,13 @@ func UpdateSmartReportsStateBySecondIds(oldState, newState int, secondIds []int)
 	}
 	o := orm.NewOrmUsingDB("rddp")
 	// (有审批流的)未发布->待提交
-	sql := fmt.Sprintf(`UPDATE smart_report SET state = ? WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql := fmt.Sprintf(`UPDATE smart_report SET state = ? WHERE state = ?, pre_publish_time = NULL AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, newState, oldState, secondIds).Exec()
 	if err != nil {
 		return
 	}
 	// (无审批流的)待提交->未发布
-	sql = fmt.Sprintf(`UPDATE smart_report SET state = ? WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
+	sql = fmt.Sprintf(`UPDATE smart_report SET state = ? WHERE state = ?, pre_publish_time = NULL AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
 	_, err = o.Raw(sql, oldState, newState, secondIds).Exec()
 	return
 }