瀏覽代碼

fix:报告分类权限,报告章节权限,报告权限同步逻辑调整

Roc 9 月之前
父節點
當前提交
4d0d2f2fd7

+ 6 - 8
controllers/report_chapter_type.go

@@ -188,8 +188,8 @@ func (this *ReportChapterTypeController) Add() {
 			ReportChapterTypeName: item.ReportChapterTypeName,
 			ChartPermissionId:     req.ChartPermissionIdList[i],
 			PermissionName:        permissionIdName[req.ChartPermissionIdList[i]],
-			//ResearchType:          researchType,
-			CreatedTime: nowTime,
+			ResearchType:          item.ResearchType,
+			CreatedTime:           nowTime,
 		})
 	}
 
@@ -206,10 +206,9 @@ func (this *ReportChapterTypeController) Add() {
 		_ = utils.Rc.Delete(key)
 	}
 
-	//todo 同步更新crm章节权限和章节类型
 	go func() {
 		var syncReq services.ChapterTypeSyncReq
-		//syncReq.ResearchType = researchType
+		syncReq.ResearchType = item.ResearchType
 		syncReq.ReportChapterTypeId = item.ReportChapterTypeId
 		_, _ = services.ReportChapterTypeSync(&syncReq)
 	}()
@@ -312,8 +311,8 @@ func (this *ReportChapterTypeController) Edit() {
 			ReportChapterTypeName: item.ReportChapterTypeName,
 			ChartPermissionId:     req.ChartPermissionIdList[i],
 			PermissionName:        permissionIdName[req.ChartPermissionIdList[i]],
-			//ResearchType:          researchType,
-			CreatedTime: nowTime,
+			ResearchType:          item.ResearchType,
+			CreatedTime:           nowTime,
 		})
 	}
 
@@ -337,10 +336,9 @@ func (this *ReportChapterTypeController) Edit() {
 		_ = utils.Rc.Delete(key)
 	}
 
-	// todo 处理crm那边的报告权限逻辑
 	go func() {
 		var syncReq services.ChapterTypeSyncReq
-		//syncReq.ResearchType = researchType
+		syncReq.ResearchType = item.ResearchType
 		syncReq.ReportChapterTypeId = item.ReportChapterTypeId
 		_, _ = services.ReportChapterTypeSync(&syncReq)
 	}()

+ 0 - 2
controllers/report_v2.go

@@ -15,8 +15,6 @@ import (
 	"time"
 )
 
-// TODO 报告的权限校验(跳过列表页,直接进入详情页,不管是普通报告还是章节报告)
-
 // ListReport
 // @Title 获取报告列表接口
 // @Description 获取报告列表

+ 8 - 0
models/report.go

@@ -1201,6 +1201,14 @@ func UpdateReportFirstClassifyNameByClassifyId(classifyId int, classifyName stri
 	return
 }
 
+// UpdateReportThirdClassifyNameByClassifyId 更新报告的三级分类名称字段
+func UpdateReportThirdClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := " UPDATE report SET classify_name_third = ? WHERE classify_id_third = ? "
+	_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	return
+}
+
 // UpdateReportSecondClassifyFirstNameByClassifyId 更新报告二级分类的一级分类名称和id
 func UpdateReportSecondClassifyFirstNameByClassifyId(classifyId, newClassifyId int, classifyName string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")

+ 0 - 1
services/chart_permission_sync.go

@@ -102,7 +102,6 @@ type EditClassifyPermissionReq struct {
 
 // EditClassifyChartPermissionSync 设置报告分类权限
 func EditClassifyChartPermissionSync(keyword string, classifyId int) (err error) {
-	// TODO CRM的报告分类权限同步
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步设置报告分类权限失败, Err: " + err.Error())

+ 1 - 1
services/classify.go

@@ -551,7 +551,7 @@ func EditReportClassify(classifyId int, classifyName string, chartPermissionIdLi
 	// TODO 修改分类的关联品种时,历史报告中关联的品种怎么处理?
 	// 更新报告分类名称/父级分类后
 	go func() {
-		_ = AfterUpdateClassifyNameOrParent(item.Id, item.ParentId, item.ParentId, originName, item.ClassifyName)
+		_ = AfterUpdateClassifyNameOrParent(item.Id, item.ParentId, item.ParentId, originName, item.ClassifyName, item.Level)
 	}()
 
 	return

+ 40 - 30
services/report_classify.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"errors"
 	"eta/eta_api/models"
 	"eta/eta_api/services/alarm_msg"
 	"fmt"
@@ -65,7 +66,7 @@ func UpdateParentClassifyHasTel(classifyId, parentId, hasTeleconference int) (er
 // AfterUpdateClassifyNameOrParent 更新报告分类名称/父级分类后的操作
 // 当二级分类名称做了修改, 更新chart_permission_search_key_word_mapping对应的key_word
 // 以及report表中的classify_name_second, 不然报告的权限会有BUG
-func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, originName, classifyName string) (err error) {
+func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, originName, classifyName string, classifyLevel int) (err error) {
 	if classifyId == 0 {
 		return
 	}
@@ -75,46 +76,55 @@ func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, o
 		}
 	}()
 
-	// 一级分类-修改名称
-	if originName != classifyName && parentId == 0 {
-		// 更新报告表分类字段
-		if e := models.UpdateReportFirstClassifyNameByClassifyId(classifyId, classifyName); e != nil {
-			err = fmt.Errorf("更新报告表一级分类名称失败, Err: %s", e.Error())
+	// 修改名称
+	// ETA1.8.3 现在任何一级都能挂报告,所以只需要名称变更就要去更新数据,不需要判断是否属于子分类(2024-6-18 10:37:17)
+	if originName != classifyName {
+		switch classifyLevel {
+		case 1: // 一级分类
+			if e := models.UpdateReportFirstClassifyNameByClassifyId(classifyId, classifyName); e != nil {
+				err = fmt.Errorf("更新报告表一级分类名称失败, Err: %s", e.Error())
+				return
+			}
+		case 2: // 二级分类
+			// 更新报告表分类字段
+			if e := models.UpdateReportSecondClassifyNameByClassifyId(classifyId, classifyName); e != nil {
+				err = fmt.Errorf("更新报告表二级分类名称失败, Err: %s", e.Error())
+				return
+			}
+		case 3: // 三级分类
+			// 更新报告表分类字段
+			if e := models.UpdateReportThirdClassifyNameByClassifyId(classifyId, classifyName); e != nil {
+				err = fmt.Errorf("更新报告表三级分类名称失败, Err: %s", e.Error())
+				return
+			}
+		default:
+			err = errors.New(fmt.Sprint("错误的分类级别,ClassifyId:", classifyId, ";层级:", classifyLevel))
 			return
 		}
-		return
-	}
 
-	// 二级分类-修改名称
-	if originName != classifyName && parentId > 0 {
 		// 更新关键词
 		if e := models.UpdateChartPermissionNameFromMappingByKeyword(classifyName, classifyId, "rddp"); e != nil {
 			err = fmt.Errorf("更新二级分类关键词失败, Err: %s", e.Error())
 			return
 		}
-		// 更新报告表分类字段
-		if e := models.UpdateReportSecondClassifyNameByClassifyId(classifyId, classifyName); e != nil {
-			err = fmt.Errorf("更新报告表二级分类名称失败, Err: %s", e.Error())
-			return
-		}
-
 		// 同步crm_master
 		_ = EditKeywordPermissionSync(classifyName, classifyId)
-		return
 	}
 
-	// 二级分类-修改了父级分类
-	if originParentId > 0 && parentId > 0 && originParentId != parentId {
-		parentClassify, e := models.GetClassifyById(parentId)
-		if e != nil {
-			err = fmt.Errorf("获取父级分类信息失败, Err: %s", e.Error())
-			return
-		}
-		// 更新报告表一级分类名称和ID
-		if e = models.UpdateReportSecondClassifyFirstNameByClassifyId(classifyId, parentClassify.Id, parentClassify.ClassifyName); e != nil {
-			err = fmt.Errorf("更新报告表一级分类名称和ID, Err: %s", e.Error())
-			return
-		}
-	}
+	//// 二级分类-修改了父级分类
+	//// ETA1.8.3已经不允许修改父级分类了(2024-6-18 10:37:17)
+	//if originParentId > 0 && parentId > 0 && originParentId != parentId {
+	//	parentClassify, e := models.GetClassifyById(parentId)
+	//	if e != nil {
+	//		err = fmt.Errorf("获取父级分类信息失败, Err: %s", e.Error())
+	//		return
+	//	}
+	//	// 更新报告表一级分类名称和ID
+	//	if e = models.UpdateReportSecondClassifyFirstNameByClassifyId(classifyId, parentClassify.Id, parentClassify.ClassifyName); e != nil {
+	//		err = fmt.Errorf("更新报告表一级分类名称和ID, Err: %s", e.Error())
+	//		return
+	//	}
+	//}
+
 	return
 }