Pārlūkot izejas kodu

fix:pdf报告兼容多级分类

zqbao 8 mēneši atpakaļ
vecāks
revīzija
fcd2ab6071

+ 48 - 29
controllers/report_pdf.go

@@ -64,46 +64,65 @@ func (this *ReportPdfController) Add() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	if req.ClassifyIdFirst <= 0 {
-		br.Msg = "请选择研报所属的一级分类"
-		return
-	}
-	if req.ClassifyIdSecond <= 0 {
-		br.Msg = "请选择研报所属的二级分类"
+	if req.ClassifyIdFirst <= 0 && req.ClassifyIdSecond <= 0 && req.ClassifyIdThird <= 0 {
+		br.Msg = "请选择研报所属分类"
 		return
 	}
 	if req.PdfName == "" {
 		br.Msg = "pdf名称为空"
 		return
 	}
-	nameFirst, err := models.GetClassifyById(req.ClassifyIdFirst)
-	if err != nil {
-		br.Msg = "添加失败"
-		br.ErrMsg = "一级类名获取失败,Err:" + err.Error()
+	var nameFirst, nameSecond, nameThird *models.ClassifyView
+	var err error
+	if req.ClassifyIdFirst > 0 {
+		nameFirst, err = models.GetClassifyById(req.ClassifyIdFirst)
+		if err != nil {
+			br.Msg = "添加失败"
+			br.ErrMsg = "一级类名获取失败,Err:" + err.Error()
+			return
+		}
+	} else {
+		br.Msg = "该分类不存在或已删除,请刷新重试"
 		return
 	}
-	nameSecond, err := models.GetClassifyById(req.ClassifyIdSecond)
-	if err != nil {
-		br.Msg = "添加失败"
-		br.ErrMsg = "二级类名获取失败,Err:" + err.Error()
-		return
+	if req.ClassifyIdSecond > 0 {
+		nameSecond, err = models.GetClassifyById(req.ClassifyIdSecond)
+		if err != nil {
+			br.Msg = "添加失败"
+			br.ErrMsg = "二级类名获取失败,Err:" + err.Error()
+			return
+		}
+	}
+	if req.ClassifyIdThird > 0 {
+		nameThird, err = models.GetClassifyById(req.ClassifyIdThird)
+		if err != nil {
+			br.Msg = "添加失败"
+			br.ErrMsg = "三级类名获取失败,Err:" + err.Error()
+			return
+		}
 	}
 
 	pdf := &models.ReportPdf{
-		PdfUrl:             req.PdfUrl,
-		PdfName:            req.PdfName,
-		Title:              req.Title,
-		Author:             req.Author,
-		Abstract:           req.Abstract,
-		ClassifyIdFirst:    req.ClassifyIdFirst,
-		ClassifyNameFirst:  nameFirst.ClassifyName,
-		ClassifyIdSecond:   req.ClassifyIdSecond,
-		ClassifyNameSecond: nameSecond.ClassifyName,
-		PublishTime:        time.Now(),
-		ModifyTime:         time.Now(),
-		SysUserId:          this.SysUser.SysUserId,
-		SysRealName:        this.SysUser.SysRealName,
-		State:              utils.ReportStatusUp,
+		PdfUrl:            req.PdfUrl,
+		PdfName:           req.PdfName,
+		Title:             req.Title,
+		Author:            req.Author,
+		Abstract:          req.Abstract,
+		ClassifyIdFirst:   req.ClassifyIdFirst,
+		ClassifyNameFirst: nameFirst.ClassifyName,
+		PublishTime:       time.Now(),
+		ModifyTime:        time.Now(),
+		SysUserId:         this.SysUser.SysUserId,
+		SysRealName:       this.SysUser.SysRealName,
+		State:             utils.ReportStatusUp,
+	}
+	if nameSecond != nil {
+		pdf.ClassifyIdSecond = nameSecond.Id
+		pdf.ClassifyNameSecond = nameSecond.ClassifyName
+	}
+	if nameThird != nil {
+		pdf.ClassifyIdThird = nameThird.Id
+		pdf.ClassifyNameThird = nameThird.ClassifyName
 	}
 	insertId, err := pdf.Insert()
 	if err != nil {

+ 4 - 0
models/report_pdf.go

@@ -18,6 +18,8 @@ type ReportPdf struct {
 	ClassifyNameFirst  string    `description:"一级分类名称"`
 	ClassifyIdSecond   int       `description:"二级分类id"`
 	ClassifyNameSecond string    `description:"二级分类名称"`
+	ClassifyIdThird    int       `description:"三级分类id"`
+	ClassifyNameThird  string    `description:"三级分类名称"`
 	Stage              int       `description:"期数"`
 	PublishTime        time.Time `description:"发布时间"`
 	ModifyTime         time.Time `description:"更新时间"`
@@ -39,6 +41,8 @@ type ReportPdfView struct {
 	ClassifyNameFirst  string    `description:"一级分类名称"`
 	ClassifyIdSecond   int       `description:"二级分类id"`
 	ClassifyNameSecond string    `description:"二级分类名称"`
+	ClassifyIdThird    int       `description:"三级分类id"`
+	ClassifyNameThird  string    `description:"三级分类名称"`
 	Stage              int       `description:"期数"`
 	PublishTime        string    `description:"发布时间"`
 	ModifyTime         time.Time `description:"更新时间"`

+ 1 - 0
models/request/report_pdf.go

@@ -8,6 +8,7 @@ type ReportPdfAddReq struct {
 	Abstract         string `description:"摘要"`
 	ClassifyIdFirst  int    `description:"一级分类id"`
 	ClassifyIdSecond int    `description:"二级分类id"`
+	ClassifyIdThird  int    `description:"三级分类id"`
 }
 
 type ReportPdfEditReq struct {

+ 2 - 0
services/elastic/elastic.go

@@ -91,6 +91,8 @@ func EsAddOrEditReportPdf(indexName, docId string, item *models.ReportPdfView) (
 			"ClassifyNameFirst":  item.ClassifyNameFirst,
 			"ClassifyIdSecond":   item.ClassifyIdSecond,
 			"ClassifyNameSecond": item.ClassifyNameSecond,
+			"ClassifyIdThird":    item.ClassifyIdThird,
+			"ClassifyNameThird":  item.ClassifyNameThird,
 			"Stage":              item.Stage,
 		}).Do(context.Background())
 		if err != nil {