Browse Source

add:在编辑的时候同步更新pdf报告

zqbao 5 tháng trước cách đây
mục cha
commit
0909b2205d
3 tập tin đã thay đổi với 59 bổ sung33 xóa
  1. 0 2
      controllers/report_pdf.go
  2. 59 1
      models/report_pdf.go
  3. 0 30
      services/report_pdf.go

+ 0 - 2
controllers/report_pdf.go

@@ -533,8 +533,6 @@ func (this *ReportPdfController) Publish() {
 		return
 	}
 
-	err = services.SyncAddPdfReportToReportPushStatus(reportPdf)
-
 	// 修改es
 	go func(reportPdf *models.ReportPdf) {
 		reportpdfView := reportPdf.ToView()

+ 59 - 1
models/report_pdf.go

@@ -93,8 +93,66 @@ func (r *ReportPdf) ToView() (item *ReportPdfView) {
 }
 
 func (r *ReportPdf) Update(cols []string) (err error) {
+	reportPushStatus := new(ReportPushStatus)
 	o := orm.NewOrm()
-	_, err = o.Update(r, cols...)
+	sql := `SELECT * FROM report_pdf WHERE report_pdf_id=? AND report_type=?`
+	err = o.Raw(sql, r.ReportPdfId, utils.ReportTypePdf).QueryRow(&reportPushStatus)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+
+	tx, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.Commit()
+		}
+
+	}()
+	_, err = tx.Update(r, cols...)
+	if err != nil {
+		return
+	}
+	if (reportPushStatus == nil || err.Error() == utils.ErrNoRow()) && r.State == 1 {
+		insertPushStatus := &ReportPushStatus{
+			ReportId:           r.ReportPdfId,
+			State:              0,
+			Title:              r.Title,
+			Abstract:           r.Abstract,
+			Stage:              r.Stage,
+			ClassifyIdFirst:    r.ClassifyIdFirst,
+			ClassifyNameFirst:  r.ClassifyNameFirst,
+			ClassifyIdSecond:   r.ClassifyIdSecond,
+			ClassifyNameSecond: r.ClassifyNameSecond,
+			ClassifyIdThird:    r.ClassifyIdThird,
+			ClassifyNameThird:  r.ClassifyNameThird,
+			Author:             r.Author,
+			ReportType:         utils.ReportTypePdf,
+			PublishTime:        r.PublishTime,
+			CreateTime:         time.Now(),
+			ModifyTime:         time.Now(),
+		}
+		_, err = tx.Insert(insertPushStatus)
+	} else {
+		reportPushStatus.Title = r.Title
+		reportPushStatus.Abstract = r.Abstract
+		reportPushStatus.Stage = r.Stage
+		reportPushStatus.ClassifyIdFirst = r.ClassifyIdFirst
+		reportPushStatus.ClassifyNameFirst = r.ClassifyNameFirst
+		reportPushStatus.ClassifyIdSecond = r.ClassifyIdSecond
+		reportPushStatus.ClassifyNameSecond = r.ClassifyNameSecond
+		reportPushStatus.ClassifyIdThird = r.ClassifyIdThird
+		reportPushStatus.ClassifyNameThird = r.ClassifyNameThird
+		reportPushStatus.Author = r.Author
+		reportPushStatus.PublishTime = r.PublishTime
+		reportPushStatus.ModifyTime = time.Now()
+		_, err = tx.Update(reportPushStatus)
+	}
+
 	return
 }
 

+ 0 - 30
services/report_pdf.go

@@ -1,30 +0,0 @@
-package services
-
-import (
-	"eta/eta_mini_crm/models"
-	"eta/eta_mini_crm/utils"
-	"time"
-)
-
-func SyncAddPdfReportToReportPushStatus(reportPdf *models.ReportPdf) (err error) {
-	insertPushStatus := &models.ReportPushStatus{
-		ReportId:           reportPdf.ReportPdfId,
-		State:              0,
-		Title:              reportPdf.Title,
-		Abstract:           reportPdf.Abstract,
-		Stage:              reportPdf.Stage,
-		ClassifyIdFirst:    reportPdf.ClassifyIdFirst,
-		ClassifyNameFirst:  reportPdf.ClassifyNameFirst,
-		ClassifyIdSecond:   reportPdf.ClassifyIdSecond,
-		ClassifyNameSecond: reportPdf.ClassifyNameSecond,
-		ClassifyIdThird:    reportPdf.ClassifyIdThird,
-		ClassifyNameThird:  reportPdf.ClassifyNameThird,
-		Author:             reportPdf.Author,
-		ReportType:         utils.ReportTypePdf,
-		PublishTime:        reportPdf.PublishTime,
-		CreateTime:         time.Now(),
-		ModifyTime:         time.Now(),
-	}
-	_, err = insertPushStatus.Insert()
-	return
-}