Bläddra i källkod

分类下的报告转移

hsun 5 månader sedan
förälder
incheckning
f8465099e3
3 ändrade filer med 53 tillägg och 1 borttagningar
  1. 7 0
      models/ppt_v2.go
  2. 7 0
      models/report_v2.go
  3. 39 1
      services/classify.go

+ 7 - 0
models/ppt_v2.go

@@ -453,3 +453,10 @@ type PptReportCreateReq struct {
 	CoverContent string `description:"封面图内容-JSON数据"`
 	TitleSetting string `description:"PPT标题设置"`
 }
+
+// MovePptReportClassify 转移PPT报告分类
+func MovePptReportClassify(newClassifyId, originClassifyId int) (err error) {
+	sql := `UPDATE ppt_v2 SET classify_id = ? WHERE classify_id = ?`
+	err = global.DmSQL["rddp"].Exec(sql, newClassifyId, originClassifyId).Error
+	return
+}

+ 7 - 0
models/report_v2.go

@@ -432,3 +432,10 @@ type EditLayoutImgReq struct {
 	HeadResourceId int    `description:"版头资源ID"`
 	EndResourceId  int    `description:"版尾资源ID"`
 }
+
+// MoveReportClassify 转移报告分类
+func MoveReportClassify(firstId, secondId, thirdId int, firstName, secondName, thirdName string, originFirst, originSecond int) (err error) {
+	sql := `UPDATE report SET classify_id_first = ?, classify_id_second = ?, classify_id_third = ?, classify_name_first = ?, classify_name_second = ?, classify_name_third = ? WHERE classify_id_first = ? AND classify_id_second = ?`
+	err = global.DmSQL["rddp"].Exec(sql, firstId, secondId, thirdId, firstName, secondName, thirdName, originFirst, originSecond).Error
+	return
+}

+ 39 - 1
services/classify.go

@@ -402,16 +402,26 @@ func moveReportByAddClassify(parentClassifyInfo, currClassifyInfo *models.Classi
 	}
 
 	// 报告的分类归属调整,转为下一级的分类
-
+	var classifyIdFirst, classifyIdSecond, classifyIdThird, originIdFirst, originIdSecond int
 	var condition, updateStr string
 	pars := make([]interface{}, 0)
 	switch currClassifyInfo.Level {
 	case 3: // 当前分类是3级分类
 		updateStr += ` classify_id_third = ?,classify_name_third = ?`
 		condition += ` AND classify_id_second = ? `
+		classifyIdFirst = parentClassifyInfo.ParentId
+		classifyIdSecond = parentClassifyInfo.Id
+		classifyIdThird = currClassifyInfo.Id
+		originIdFirst = classifyIdFirst
+		originIdSecond = classifyIdSecond
 	case 2: // 当前分类是2级分类
 		updateStr += ` classify_id_second = ?,classify_name_second = ?`
 		condition += ` AND classify_id_first = ? `
+		classifyIdFirst = parentClassifyInfo.Id
+		classifyIdSecond = currClassifyInfo.Id
+		classifyIdThird = 0
+		originIdFirst = classifyIdFirst
+		originIdSecond = 0
 	default:
 		err = errors.New("错误的分类层级")
 		return
@@ -436,6 +446,34 @@ func moveReportByAddClassify(parentClassifyInfo, currClassifyInfo *models.Classi
 		return
 	}
 
+	// 分类ID-NAME
+	classifyOb := new(models.Classify)
+	classifies, e := classifyOb.GetItemsByCondition(``, make([]interface{}, 0), []string{}, "")
+	if e != nil {
+		err = fmt.Errorf("获取分类列表失败, %v", e)
+		return
+	}
+	classifyIdName := make(map[int]string)
+	for _, v := range classifies {
+		classifyIdName[v.Id] = v.ClassifyName
+	}
+
+	// 转移上级分类下的所有报告至该分类,区分研报和PPT
+	if currClassifyInfo.ClassifyType == utils.ReportTypeDefault {
+		if e := models.MoveReportClassify(classifyIdFirst, classifyIdSecond, classifyIdThird, classifyIdName[classifyIdFirst], classifyIdName[classifyIdSecond], classifyIdName[classifyIdThird], originIdFirst, originIdSecond); e != nil {
+			err = fmt.Errorf("转移研报分类失败, %v", e)
+			return
+		}
+	}
+	if currClassifyInfo.ClassifyType == utils.ReportTypePPT {
+		if e := models.MovePptReportClassify(currClassifyInfo.Id, parentClassifyInfo.Id); e != nil {
+			err = fmt.Errorf("转移PPT研报分类失败, %v", e)
+			return
+		}
+	}
+
+	// 更新分类报告计数
+	go UpdateClassifyReportNum(currClassifyInfo.Id)
 	return
 }