Bläddra i källkod

Merge branch 'hotfix/classify_repeat_0603' into custom

hsun 9 månader sedan
förälder
incheckning
6188073427

+ 10 - 10
controllers/classify.go

@@ -203,14 +203,14 @@ func (this *ClassifyController) Add() {
 	}*/
 	//获取报告分类权限列表
 	if classify.ParentId > 0 { //二级分类才能修改权限
-		err = models.EditChartPermissionSearchKeyWordMappingMulti(req.ClassifyName, req.ChartPermissionIdList)
+		err = models.EditChartPermissionSearchKeyWordMappingMulti(req.ClassifyName, req.ChartPermissionIdList, classify.Id)
 		if err != nil {
 			br.Msg = "修改分类权限失败"
 			br.ErrMsg = "修改分类权限失败,Err:" + err.Error()
 			return
 		}
 		go func() {
-			_ = services.EditClassifyChartPermissionSync(req.ClassifyName)
+			_ = services.EditClassifyChartPermissionSync(req.ClassifyName, classify.Id)
 		}()
 	}
 
@@ -528,14 +528,14 @@ func (this *ClassifyController) Edit() {
 	// 为二级分类时, 更新父级分类是否含电话会字段
 	if req.ParentId > 0 {
 		//二级分类才能修改权限
-		err = models.EditChartPermissionSearchKeyWordMappingMulti(item.ClassifyName, req.ChartPermissionIdList)
+		err = models.EditChartPermissionSearchKeyWordMappingMulti(item.ClassifyName, req.ChartPermissionIdList, req.ClassifyId)
 		if err != nil {
 			br.Msg = "修改分类权限失败"
 			br.ErrMsg = "修改分类权限失败,Err:" + err.Error()
 			return
 		}
 		go func() {
-			_ = services.EditClassifyChartPermissionSync(item.ClassifyName)
+			_ = services.EditClassifyChartPermissionSync(item.ClassifyName, req.ClassifyId)
 		}()
 		/*go func() {
 			_ = services.UpdateParentClassifyHasTel(req.ClassifyId, req.ParentId, req.HasTeleconference)
@@ -817,10 +817,10 @@ func (this *ClassifyController) ListClassify() {
 
 	// 查询分类绑定的权限
 	permissionList, _ := models.GetAllPermissionMapping()
-	classifyPermissionMap := make(map[string][]int, 0)
+	classifyPermissionMap := make(map[int][]int, 0)
 	if len(permissionList) > 0 {
 		for _, v := range permissionList {
-			classifyPermissionMap[v.KeyWord] = append(classifyPermissionMap[v.KeyWord], v.ChartPermissionId)
+			classifyPermissionMap[v.ClassifyId] = append(classifyPermissionMap[v.ClassifyId], v.ChartPermissionId)
 		}
 	}
 	// 二级分类
@@ -834,7 +834,7 @@ func (this *ClassifyController) ListClassify() {
 			Classify:       *children[i],
 			ClassifyMenuId: relateMap[children[i].Id],
 		}
-		if permissionIds, ok := classifyPermissionMap[children[i].ClassifyName]; ok {
+		if permissionIds, ok := classifyPermissionMap[children[i].Id]; ok {
 			tmp.ChartPermissionIdList = permissionIds
 		}
 		childrenMap[children[i].ParentId] = append(childrenMap[children[i].ParentId], tmp)
@@ -882,7 +882,7 @@ func (this *ClassifyController) ClassifyPermission() {
 	}
 
 	//获取报告分类权限列表
-	list, err := models.GetPermission(classifyInfo.ClassifyName)
+	list, err := models.GetPermission(classifyInfo.Id)
 	if err != nil {
 		br.Msg = "获取分类信息失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -933,14 +933,14 @@ func (this *ClassifyController) EditClassifyPermission() {
 	}
 
 	//获取报告分类权限列表
-	err = models.EditChartPermissionSearchKeyWordMappingMulti(classifyInfo.ClassifyName, req.ChartPermissionIdList)
+	err = models.EditChartPermissionSearchKeyWordMappingMulti(classifyInfo.ClassifyName, req.ChartPermissionIdList, req.ClassifyId)
 	if err != nil {
 		br.Msg = "修改分类权限失败"
 		br.ErrMsg = "修改分类权限失败,Err:" + err.Error()
 		return
 	}
 	go func() {
-		_ = services.EditClassifyChartPermissionSync(classifyInfo.ClassifyName)
+		_ = services.EditClassifyChartPermissionSync(classifyInfo.ClassifyName, req.ClassifyId)
 	}()
 	// 是关联电话会二级分类修改了权限, 同步关联报告电话会的分类
 	//if classifyInfo.ParentId > 0 && classifyInfo.RelateTel == 1 {

+ 4 - 4
controllers/report.go

@@ -600,7 +600,7 @@ func (this *ReportController) Add() {
 	//处理权限
 	//if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
 	go func() {
-		permissionItems, e := models.GetPermission(req.ClassifyNameSecond)
+		permissionItems, e := models.GetPermission(req.ClassifyIdSecond)
 		if e != nil {
 			alarm_msg.SendAlarmMsg("获取权限失败,Err:"+e.Error(), 3)
 			return
@@ -613,7 +613,7 @@ func (this *ReportController) Add() {
 			}
 		}
 		// 同步crm权限
-		_ = services.EditReportPermissionSync(newReportId, req.ClassifyNameSecond)
+		_ = services.EditReportPermissionSync(newReportId, req.ClassifyIdSecond)
 	}()
 	//}
 
@@ -770,7 +770,7 @@ func (this *ReportController) Edit() {
 			alarm_msg.SendAlarmMsg("修改删除报告权限失败,Err:"+e.Error(), 3)
 			return
 		}
-		permissionItems, e := models.GetPermission(req.ClassifyNameSecond)
+		permissionItems, e := models.GetPermission(req.ClassifyIdSecond)
 		if e != nil {
 			alarm_msg.SendAlarmMsg("获取权限失败,Err:"+e.Error(), 3)
 			return
@@ -783,7 +783,7 @@ func (this *ReportController) Edit() {
 			}
 		}
 		// 同步crm权限
-		_ = services.EditReportPermissionSync(req.ReportId, req.ClassifyNameSecond)
+		_ = services.EditReportPermissionSync(req.ReportId, req.ClassifyIdSecond)
 	}()
 	//}
 

+ 14 - 13
models/permission.go

@@ -10,12 +10,13 @@ type ChartPermissionSearchKeyWordMapping struct {
 	From               string `description:"类型标识" json:"-"`
 	TacticType         string `description:"策略表type字段值" json:"-"`
 	TeleconferenceSort int    `description:"电话会类型排序" json:"-"`
+	ClassifyId         int    `description:"分类ID"`
 }
 
-func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
+func GetPermission(classifyId int) (items []*ChartPermissionSearchKeyWordMapping, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.key_word=? `
-	_, err = o.Raw(sql, classifyNameSecond).QueryRows(&items)
+	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.classify_id = ? `
+	_, err = o.Raw(sql, classifyId).QueryRows(&items)
 	return
 }
 
@@ -27,7 +28,7 @@ func GetAllPermissionMapping() (items []*ChartPermissionSearchKeyWordMapping, er
 }
 
 // EditChartPermissionSearchKeyWordMappingMulti 修改报告报告权限(先删除原有的权限,再添加新的权限)
-func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdList []int) (err error) {
+func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdList []int, classifyId int) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	to, err := o.Begin()
 	if err != nil {
@@ -40,8 +41,8 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 			_ = to.Commit()
 		}
 	}()
-	sql := "delete from chart_permission_search_key_word_mapping WHERE `from`='rddp' AND key_word=? "
-	_, err = to.Raw(sql, keyword).Exec()
+	sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE `from` = 'rddp' AND classify_id = ?"
+	_, err = to.Raw(sql, classifyId).Exec()
 	if err != nil {
 		return
 	}
@@ -55,6 +56,7 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 				From:               "rddp",
 				TacticType:         "",
 				TeleconferenceSort: 0,
+				ClassifyId:         classifyId,
 			}
 			chartPermissionSearchKeyWordMappingList = append(chartPermissionSearchKeyWordMappingList, tmpChartPermissionSearchKeyWordMapping)
 		}
@@ -83,18 +85,17 @@ type ChartPermissionMappingIdName struct {
 	PermissionName string
 }
 
-func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (list []*ChartPermissionMappingIdName, err error) {
+func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (list []*ChartPermissionMappingIdName, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.key_word = ? "
-	_, err = o.Raw(sql, source, keyword).QueryRows(&list)
-
+	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.classify_id = ? "
+	_, err = o.Raw(sql, source, classifyId).QueryRows(&list)
 	return
 }
 
 // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
-func UpdateChartPermissionNameFromMappingByKeyword(newKeyword, keyword, source string) (err error) {
+func UpdateChartPermissionNameFromMappingByKeyword(newKeyword string, classifyId int, source string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE key_word = ? AND `from` = ? "
-	_, err = o.Raw(sql, newKeyword, keyword, source).Exec()
+	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND `from` = ? "
+	_, err = o.Raw(sql, newKeyword, classifyId, source).Exec()
 	return
 }

+ 10 - 8
services/chart_permission_sync.go

@@ -96,11 +96,12 @@ func ChartFiccPermissionSync() (err error, errMsg string) {
 }
 
 type EditClassifyPermissionReq struct {
-	Keyword string
+	Keyword    string
+	ClassifyId int
 }
 
 // EditClassifyChartPermissionSync 设置报告分类权限
-func EditClassifyChartPermissionSync(keyword string) (err error) {
+func EditClassifyChartPermissionSync(keyword string, classifyId int) (err error) {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步设置报告分类权限失败, Err: " + err.Error())
@@ -110,7 +111,7 @@ func EditClassifyChartPermissionSync(keyword string) (err error) {
 	if utils.CrmEtaServerUrl == "" {
 		return
 	}
-	req := &EditClassifyPermissionReq{Keyword: keyword}
+	req := &EditClassifyPermissionReq{Keyword: keyword, ClassifyId: classifyId}
 	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/classify/sync")
 	b, err := crmEtaPost(url, req)
 	if err != nil {
@@ -134,10 +135,11 @@ func EditClassifyChartPermissionSync(keyword string) (err error) {
 type EditReportPermissionSyncReq struct {
 	ReportId           int64  `description:"报告id"`
 	ClassifyNameSecond string `description:"二级分类名称"`
+	ClassifyIdSecond   int    `description:"二级分类ID"`
 }
 
 // EditReportPermissionSync 设置报告权限
-func EditReportPermissionSync(reportId int64, classifyNameSecond string) (err error) {
+func EditReportPermissionSync(reportId int64, classifyIdSecond int) (err error) {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步设置报告权限失败, Err: " + err.Error())
@@ -147,7 +149,7 @@ func EditReportPermissionSync(reportId int64, classifyNameSecond string) (err er
 	if utils.CrmEtaServerUrl == "" {
 		return
 	}
-	req := &EditReportPermissionSyncReq{ReportId: reportId, ClassifyNameSecond: classifyNameSecond}
+	req := &EditReportPermissionSyncReq{ReportId: reportId, ClassifyIdSecond: classifyIdSecond}
 	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/report/sync")
 	b, err := crmEtaPost(url, req)
 	if err != nil {
@@ -170,11 +172,11 @@ func EditReportPermissionSync(reportId int64, classifyNameSecond string) (err er
 
 type EditKeywordPermissionSyncReq struct {
 	NewKeyword string
-	Keyword    string
+	ClassifyId int
 }
 
 // EditKeywordPermissionSync 设置报告权限分类名称
-func EditKeywordPermissionSync(newKeyword, keyword string) (err error) {
+func EditKeywordPermissionSync(newKeyword string, classifyId int) (err error) {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步设置报告权限分类名称失败, Err: " + err.Error())
@@ -184,7 +186,7 @@ func EditKeywordPermissionSync(newKeyword, keyword string) (err error) {
 	if utils.CrmEtaServerUrl == "" {
 		return
 	}
-	req := &EditKeywordPermissionSyncReq{NewKeyword: newKeyword, Keyword: keyword}
+	req := &EditKeywordPermissionSyncReq{NewKeyword: newKeyword, ClassifyId: classifyId}
 	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/keyword/sync")
 	b, err := crmEtaPost(url, req)
 	if err != nil {

+ 3 - 3
services/report.go

@@ -409,7 +409,7 @@ func UpdateReportEs(reportId int, publishState int) (err error) {
 		}
 	} else {
 		//if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
-		permissionList, tmpErr := models.GetChartPermissionNameFromMappingByKeyword(reportInfo.ClassifyNameSecond, "rddp")
+		permissionList, tmpErr := models.GetChartPermissionNameFromMappingByKeyword("rddp", reportInfo.ClassifyIdSecond)
 		if tmpErr != nil {
 			return
 		}
@@ -993,7 +993,7 @@ func CreateNewReport(req models.AddReq, adminInfo *system.Admin) (newReportId in
 	// 处理权限
 	//if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
 	go func() {
-		permissionItems, e := models.GetPermission(req.ClassifyNameSecond)
+		permissionItems, e := models.GetPermission(req.ClassifyIdSecond)
 		if e != nil {
 			alarm_msg.SendAlarmMsg("获取权限失败,Err:"+err.Error(), 3)
 		}
@@ -1004,7 +1004,7 @@ func CreateNewReport(req models.AddReq, adminInfo *system.Admin) (newReportId in
 			}
 		}
 		// 同步crm权限
-		_ = EditReportPermissionSync(newReportId, req.ClassifyNameSecond)
+		_ = EditReportPermissionSync(newReportId, req.ClassifyIdSecond)
 	}()
 	//}
 

+ 3 - 3
services/report_classify.go

@@ -88,8 +88,7 @@ func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, o
 	// 二级分类-修改名称
 	if originName != classifyName && parentId > 0 {
 		// 更新关键词
-		// todo 更新crm里的权限关键词
-		if e := models.UpdateChartPermissionNameFromMappingByKeyword(classifyName, originName, "rddp"); e != nil {
+		if e := models.UpdateChartPermissionNameFromMappingByKeyword(classifyName, classifyId, "rddp"); e != nil {
 			err = fmt.Errorf("更新二级分类关键词失败, Err: %s", e.Error())
 			return
 		}
@@ -99,7 +98,8 @@ func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, o
 			return
 		}
 
-		_ = EditKeywordPermissionSync(classifyName, originName)
+		// 同步crm_master
+		_ = EditKeywordPermissionSync(classifyName, classifyId)
 		return
 	}