Ver Fonte

新增报告后的权限同步

xyxie há 11 meses atrás
pai
commit
0b3275b432

+ 68 - 0
controller/crm/chart_permission.go

@@ -87,3 +87,71 @@ func (this *ChartPermissionController) Sync(c *gin.Context) {
 	}
 	resp.Ok("操作成功", c)
 }
+
+// SyncReportMapping
+// @Title 同步chart_permission_chapter_mapping数据
+// @Description 启用/禁用品种
+// @Param	request	body crm.PermissionEnabledReq true "type json string"
+// @Success 200 新增成功
+// @router /crm/chart_permission/report/sync [post]
+func (this *ChartPermissionController) SyncReportMapping(c *gin.Context) {
+	var req crm.PermissionReportReq
+	err := c.Bind(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+	if req.ReportId <= 0 {
+		resp.Fail("报告ID不能为空", c)
+		return
+	}
+	if req.ClassifyNameSecond == "" {
+		resp.Fail("报告分类不能为空", c)
+		return
+	}
+	e, msg := crmService.SyncChartPermissionReportMapping(req)
+	if e != nil {
+		resp.FailData(msg, e.Error(), c)
+		return
+	}
+	resp.Ok("操作成功", c)
+}
+
+// SyncKeywordMapping
+// @Title 同步chart_permission_search_key_word_mapping数据
+// @Description 同步chart_permission_search_key_word_mapping数据
+// @Param	request	body crm.PermissionKeywordReq true "type json string"
+// @Success 200 新增成功
+// @router /crm/chart_permission/keyword/sync [post]
+func (this *ChartPermissionController) SyncKeywordMapping(c *gin.Context) {
+	var req crm.PermissionKeywordReq
+	err := c.Bind(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+	if req.NewKeyword == "" {
+		resp.Fail("新报告分类名称不能为空", c)
+		return
+	}
+	if req.Keyword == "" {
+		resp.Fail("报告分类名称不能为空", c)
+		return
+	}
+	e := crm.UpdateChartPermissionNameFromMappingByKeyword(req.NewKeyword, req.Keyword, "rddp")
+	if e != nil {
+		resp.FailData("更新权限中的报告分类名称失败", e.Error(), c)
+		return
+	}
+	resp.Ok("操作成功", c)
+}

+ 21 - 0
models/crm/chart_permission_chapter_mapping.go

@@ -1,5 +1,7 @@
 package crm
 
+import "hongze/hz_crm_eta/global"
+
 type ChartPermissionChapterMapping struct {
 	Id                  int    `gorm:"column:id;primary_key;AUTO_INCREMENT;NOT NULL"`
 	ChartPermissionId   int    `gorm:"column:chart_permission_id;default:0"`
@@ -10,3 +12,22 @@ type ChartPermissionChapterMapping struct {
 func (c *ChartPermissionChapterMapping) TableName() string {
 	return "chart_permission_chapter_mapping"
 }
+
+type PermissionReportReq struct {
+	ReportId           int64  `description:"报告id"`
+	ClassifyNameSecond string `description:"二级分类名称"`
+}
+
+func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
+	// 先删除
+	sql := `DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
+	err = global.MYSQL["hz_crm"].Exec(sql, "rddp", reportId).Error
+	return
+}
+
+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(?,?,?)`
+	err = global.MYSQL["hz_crm"].Exec(sql, chartPermissionId, reportId, "rddp").Error
+	return
+}

+ 12 - 0
models/crm/chart_permission_search_key_word_mapping.go

@@ -38,6 +38,11 @@ type ClassifyPermissionEditReq struct {
 	Keyword string
 }
 
+type PermissionKeywordReq struct {
+	NewKeyword string
+	Keyword    string
+}
+
 // EditChartPermissionSearchKeyWordMappingMulti 修改报告报告权限(先删除原有的权限,再添加新的权限)
 func (c *ChartPermissionSearchKeyWordMapping) EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdList []*ChartPermissionSearchKeyWordMapping) (err error) {
 	tx := global.MYSQL["hz_crm"].Begin()
@@ -59,3 +64,10 @@ func (c *ChartPermissionSearchKeyWordMapping) EditChartPermissionSearchKeyWordMa
 	}
 	return
 }
+
+// UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
+func UpdateChartPermissionNameFromMappingByKeyword(newKeyword, keyword, source string) (err error) {
+	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE key_word = ? AND `from` = ? "
+	err = global.MYSQL["hz_crm"].Exec(sql, newKeyword, keyword, source).Error
+	return
+}

+ 2 - 0
routers/chart_permission.go

@@ -10,4 +10,6 @@ func InitChartPermission(r *gin.RouterGroup) {
 	group := r.Group("crm/chart_permission")
 	group.POST("sync", control.Sync)
 	group.POST("classify/sync", control.SyncClassifyChartPermission)
+	group.POST("report/sync", control.SyncReportMapping)
+	group.POST("keyword/sync", control.SyncKeywordMapping)
 }

+ 38 - 0
services/crm/chart_permission_chapter_mapping.go

@@ -0,0 +1,38 @@
+package crm
+
+import (
+	"fmt"
+	"hongze/hz_crm_eta/models/crm"
+	"hongze/hz_crm_eta/models/eta"
+	"hongze/hz_crm_eta/services/alarm_msg"
+)
+
+// SyncChartPermissionReportMapping  同步报告品种数据
+func SyncChartPermissionReportMapping(req crm.PermissionReportReq) (err error, errMsg string) {
+	defer func() {
+		if err != nil {
+			alarm_msg.SendAlarmMsg("新增权限失败,Err:"+err.Error(), 3)
+		}
+	}()
+	//查询要新增的品种
+	err = crm.RemoveChartPermissionChapterMapping(req.ReportId)
+	if err != nil {
+		err = fmt.Errorf("修改删除报告权限失败,Err:%s", err.Error())
+		return
+	}
+	etaOb := new(eta.ChartPermissionSearchKeyWordMapping)
+	list, e := etaOb.GetPermissionByKeyword(req.ClassifyNameSecond)
+	if e != nil {
+		errMsg = "查询品种信息失败"
+		err = fmt.Errorf("查询品种信息失败, Err: " + e.Error())
+		return
+	}
+	for _, v := range list {
+		err = crm.AddChartPermissionChapterMapping(v.ChartPermissionId, req.ReportId)
+		if err != nil {
+			err = fmt.Errorf("新增权限失败,Err:%s", err.Error())
+			return
+		}
+	}
+	return
+}