Browse Source

新增报告后的权限同步

xyxie 1 year ago
parent
commit
cb73de0a8a

+ 4 - 0
controllers/report.go

@@ -598,6 +598,8 @@ func (this *ReportController) Add() {
 					return
 				}
 			}
+			// 同步crm权限
+			_ = services.EditReportPermissionSync(newReportId, req.ClassifyNameSecond)
 		}()
 	}
 
@@ -760,6 +762,8 @@ func (this *ReportController) Edit() {
 					return
 				}
 			}
+			// 同步crm权限
+			_ = services.EditReportPermissionSync(req.ReportId, req.ClassifyNameSecond)
 		}()
 	}
 

+ 4 - 4
models/permission.go

@@ -66,14 +66,14 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
 	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
            VALUES(?,?,?)`
-	o := orm.NewOrmUsingDB("weekly")
+	o := orm.NewOrmUsingDB("rddp")
 	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
 	return
 }
 
 func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
 	sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
-	o := orm.NewOrmUsingDB("weekly")
+	o := orm.NewOrmUsingDB("rddp")
 	_, err = o.Raw(sql, "rddp", reportId).Exec()
 	return
 }
@@ -84,7 +84,7 @@ type ChartPermissionMappingIdName struct {
 }
 
 func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (list []*ChartPermissionMappingIdName, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	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)
 
@@ -93,7 +93,7 @@ func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (
 
 // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
 func UpdateChartPermissionNameFromMappingByKeyword(newKeyword, keyword, source string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	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()
 	return

+ 77 - 0
services/chart_permission_sync.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"encoding/json"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
 	"fmt"
 	"io/ioutil"
@@ -64,6 +65,7 @@ func ChartFiccPermissionSync() (err error, errMsg string) {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步品种权限数据失败, Err: " + err.Error() + errMsg)
+			alarm_msg.SendAlarmMsg("同步品种权限数据失败,Err:"+err.Error(), 3)
 		}
 	}()
 	if utils.CrmEtaServerUrl == "" {
@@ -102,6 +104,7 @@ func EditClassifyChartPermissionSync(keyword string) (err error) {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("同步设置报告分类权限失败, Err: " + err.Error())
+			alarm_msg.SendAlarmMsg("同步设置报告分类权限失败,Err:"+err.Error(), 3)
 		}
 	}()
 	if utils.CrmEtaServerUrl == "" {
@@ -127,3 +130,77 @@ func EditClassifyChartPermissionSync(keyword string) (err error) {
 	}
 	return
 }
+
+type EditReportPermissionSyncReq struct {
+	ReportId           int64  `description:"报告id"`
+	ClassifyNameSecond string `description:"二级分类名称"`
+}
+
+// EditReportPermissionSync 设置报告权限
+func EditReportPermissionSync(reportId int64, classifyNameSecond string) (err error) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("同步设置报告权限失败, Err: " + err.Error())
+			alarm_msg.SendAlarmMsg("同步设置报告权限失败,Err:"+err.Error(), 3)
+		}
+	}()
+	if utils.CrmEtaServerUrl == "" {
+		return
+	}
+	req := &EditReportPermissionSyncReq{ReportId: reportId, ClassifyNameSecond: classifyNameSecond}
+	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/report/sync")
+	b, err := crmEtaPost(url, req)
+	if err != nil {
+		err = fmt.Errorf("url:%s err: %s", url, err.Error())
+		return
+	}
+	//result := new(models.ResultData)
+	result := new(ChartPermissionResp)
+	if e := json.Unmarshal(b, &result); e != nil {
+		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
+		return
+	}
+	utils.FileLog.Info("%s", string(b))
+	if result.Code != 200 {
+		err = fmt.Errorf("result: %s", string(b))
+		return
+	}
+	return
+}
+
+type EditKeywordPermissionSyncReq struct {
+	NewKeyword string
+	Keyword    string
+}
+
+// EditKeywordPermissionSync 设置报告权限分类名称
+func EditKeywordPermissionSync(newKeyword, keyword string) (err error) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("同步设置报告权限分类名称失败, Err: " + err.Error())
+			alarm_msg.SendAlarmMsg("同步设置报告权限分类名称失败,Err:"+err.Error(), 3)
+		}
+	}()
+	if utils.CrmEtaServerUrl == "" {
+		return
+	}
+	req := &EditKeywordPermissionSyncReq{NewKeyword: newKeyword, Keyword: keyword}
+	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/keyword/sync")
+	b, err := crmEtaPost(url, req)
+	if err != nil {
+		err = fmt.Errorf("url:%s err: %s", url, err.Error())
+		return
+	}
+	//result := new(models.ResultData)
+	result := new(ChartPermissionResp)
+	if e := json.Unmarshal(b, &result); e != nil {
+		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
+		return
+	}
+	utils.FileLog.Info("%s", string(b))
+	if result.Code != 200 {
+		err = fmt.Errorf("result: %s", string(b))
+		return
+	}
+	return
+}

+ 2 - 0
services/report.go

@@ -997,6 +997,8 @@ func CreateNewReport(req models.AddReq, adminInfo *system.Admin) (newReportId in
 					alarm_msg.SendAlarmMsg("新增权限失败,Err:"+err.Error(), 3)
 				}
 			}
+			// 同步crm权限
+			_ = EditReportPermissionSync(newReportId, req.ClassifyNameSecond)
 		}()
 	}
 

+ 3 - 0
services/report_classify.go

@@ -88,6 +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 {
 			err = fmt.Errorf("更新二级分类关键词失败, Err: %s", e.Error())
 			return
@@ -97,6 +98,8 @@ func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, o
 			err = fmt.Errorf("更新报告表二级分类名称失败, Err: %s", e.Error())
 			return
 		}
+
+		_ = EditKeywordPermissionSync(classifyName, originName)
 		return
 	}