|
@@ -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
|
|
|
}
|
|
|
|