Bladeren bron

同步更新classify_name

xyxie 1 jaar geleden
bovenliggende
commit
95b074324c
3 gewijzigde bestanden met toevoegingen van 61 en 10 verwijderingen
  1. 2 2
      controller/crm/chart_permission.go
  2. 10 3
      models/crm/chart_permission.go
  3. 49 5
      services/crm/chart_permission.go

+ 2 - 2
controller/crm/chart_permission.go

@@ -200,10 +200,10 @@ func (cp *ChartPermissionController) EditClassifyChartPermission(c *gin.Context)
 		resp.Fail("分类名称不能为空", c)
 		return
 	}
-	if len(req.ChartPermissionIdList) == 0 {
+	/*if len(req.ChartPermissionIdList) == 0 {
 		resp.Fail("请选择权限", c)
 		return
-	}
+	}*/
 	ob := new(crm.ChartPermissionSearchKeyWordMapping)
 	e := ob.EditChartPermissionSearchKeyWordMappingMulti(req.Keyword, req.NewKeyword, req.ChartPermissionIdList)
 	if e != nil {

+ 10 - 3
models/crm/chart_permission.go

@@ -73,9 +73,15 @@ func (c *ChartPermission) SetIsPublic(ids []int, parentId, isPublic int) (err er
 	return
 }
 
-// SetEnabled 更新启动禁用
-func (c *ChartPermission) SetEnabled(parentId, enabled int) (err error) {
-	err = global.MYSQL["hz_crm"].Model(c).Where("parent_id = ?", parentId).Update("enabled", enabled).Error
+// UpdatesByParentId 更新启动禁用
+func (c *ChartPermission) UpdatesByParentId(parentId, enabled int, classifyName string) (err error) {
+	err = global.MYSQL["hz_crm"].Model(c).Where("parent_id = ?", parentId).Updates(map[string]interface{}{"enabled": enabled, "classify_name": classifyName}).Error
+	return
+}
+
+// SetEnabledByChartPermissionId 更新启动禁用
+func (c *ChartPermission) SetEnabledByChartPermissionId(chartPermissionId, enabled int) (err error) {
+	err = global.MYSQL["hz_crm"].Model(c).Where("chart_permission_id = ?", chartPermissionId).Update("enabled", enabled).Error
 	return
 }
 
@@ -108,6 +114,7 @@ type PermissionAddReq struct {
 type PermissionEditReq struct {
 	ChartPermissionId   int    `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
 	PermissionName      string `description:"品种权限名称"`
+	ParentId            int    `description:"父级ID"`
 	Enabled             int    `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
 	IsPublic            int    `description:"是否是公有权限1:公有权限,0私有权限"`
 	PublicPermissionIds []int  `description:"公有权限的ID列表"` //一级品种没有公有私有属性

+ 49 - 5
services/crm/chart_permission.go

@@ -81,6 +81,15 @@ func AddChartPermission(req crm.PermissionAddReq) (err error, errMsg string) {
 		err = fmt.Errorf("新增品种权限失败, Err: " + e.Error())
 		return
 	}
+	if req.ParentId > 0 && req.Enabled == 1 {
+		//  更新父级品种的启用禁用
+		err = ob.SetEnabledByChartPermissionId(req.ParentId, req.Enabled)
+		if err != nil {
+			errMsg = "更新品种启用禁用状态失败"
+			err = fmt.Errorf("更新品种启用禁用状态失败, Err: " + err.Error())
+			return
+		}
+	}
 	return
 }
 
@@ -115,12 +124,36 @@ func EditChartPermission(req crm.PermissionEditReq) (err error, errMsg string) {
 			return
 		}
 	}
-	oldEnabled := item.Enabled
+
+	//判断父级品种是否存在
+	parentPermissionName := ""
+	if req.ParentId > 0 {
+		//查询父级是否存在
+		parent, e := ob.GetItemById(req.ParentId)
+		if e != nil {
+			errMsg = "查询父级品种失败"
+			err = fmt.Errorf("查询父级品种失败, Err: " + e.Error())
+			return
+		}
+		if parent.ChartPermissionId == 0 {
+			errMsg = "请选择正确的父级品种"
+			err = fmt.Errorf("请选择正确的父级品种")
+			return
+		}
+		if parent.ParentId != 0 {
+			errMsg = "只能选择一级品种作为父级品种"
+			err = fmt.Errorf("只能选择一级品种作为父级品种")
+			return
+		}
+		parentPermissionName = parent.PermissionName
+	}
 	item.PermissionName = req.PermissionName
 	item.Enabled = req.Enabled
 	item.IsPublic = req.IsPublic
+	item.ParentId = req.ParentId
+	item.ClassifyName = parentPermissionName
 	item.LastUpdatedTime = time.Now()
-	err = item.Update([]string{"PermissionName", "Enabled", "IsPublic", "LastUpdatedTime"})
+	err = item.Update([]string{"PermissionName", "Enabled", "IsPublic", "ClassifyName", "LastUpdatedTime"})
 	if err != nil {
 		errMsg = "更新失败"
 		err = fmt.Errorf("更新品种失败, Err: " + err.Error())
@@ -139,9 +172,19 @@ func EditChartPermission(req crm.PermissionEditReq) (err error, errMsg string) {
 				return
 			}
 		}
-		if oldEnabled != req.Enabled {
-			// 更新二级的启动禁用
-			err = ob.SetEnabled(item.ChartPermissionId, req.Enabled)
+		// 更新二级的启动禁用
+		err = ob.UpdatesByParentId(item.ChartPermissionId, req.Enabled, req.PermissionName)
+		if err != nil {
+			errMsg = "更新品种启用禁用状态失败"
+			err = fmt.Errorf("更新品种启用禁用状态失败, Err: " + err.Error())
+			return
+		}
+
+		//
+	} else if item.ParentId > 0 {
+		if req.Enabled == 1 {
+			//  更新父级品种的启用禁用
+			err = ob.SetEnabledByChartPermissionId(item.ParentId, req.Enabled)
 			if err != nil {
 				errMsg = "更新品种启用禁用状态失败"
 				err = fmt.Errorf("更新品种启用禁用状态失败, Err: " + err.Error())
@@ -149,6 +192,7 @@ func EditChartPermission(req crm.PermissionEditReq) (err error, errMsg string) {
 			}
 		}
 	}
+
 	return
 }