Browse Source

品种启用/禁用

xyxie 1 year ago
parent
commit
913e74c057

+ 32 - 0
controller/crm/chart_permission.go

@@ -212,3 +212,35 @@ func (cp *ChartPermissionController) EditClassifyChartPermission(c *gin.Context)
 	}
 	resp.Ok("操作成功", c)
 }
+
+// SetEnabled
+// @Title 启用/禁用品种
+// @Description 启用/禁用品种
+// @Param	request	body crm.PermissionEnabledReq true "type json string"
+// @Success 200 新增成功
+// @router /crm/chart_permission/enabled/set [post]
+func (this *ChartPermissionController) SetEnabled(c *gin.Context) {
+	var req crm.PermissionEnabledReq
+	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.ChartPermissionId <= 0 {
+		resp.Fail("请选择品种", c)
+		return
+	}
+
+	e, msg := crmService.SetEnabledChartPermission(req)
+	if e != nil {
+		resp.FailData(msg, e.Error(), c)
+		return
+	}
+	resp.Ok("操作成功", c)
+}

+ 15 - 4
models/crm/chart_permission.go

@@ -74,8 +74,15 @@ func (c *ChartPermission) SetIsPublic(ids []int, parentId, isPublic int) (err er
 }
 
 // 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
+func (c *ChartPermission) UpdateClassifyNameByParentId(parentId 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
+	err = global.MYSQL["hz_crm"].Model(c).Where("parent_id = ?", parentId).Update("classify_name", classifyName).Error
+	return
+}
+
+// SetEnabledByParentId 更新启动禁用
+func (c *ChartPermission) SetEnabledByParentId(parentId, enabled int) (err error) {
+	err = global.MYSQL["hz_crm"].Model(c).Where("parent_id = ?", parentId).Update("enabled", enabled).Error
 	return
 }
 
@@ -112,14 +119,18 @@ type PermissionAddReq struct {
 }
 
 type PermissionEditReq struct {
-	ChartPermissionId   int    `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
+	ChartPermissionId   int    `description:"品种权限Id"`
 	PermissionName      string `description:"品种权限名称"`
 	ParentId            int    `description:"父级ID"`
-	Enabled             int    `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
 	IsPublic            int    `description:"是否是公有权限1:公有权限,0私有权限"`
 	PublicPermissionIds []int  `description:"公有权限的ID列表"` //一级品种没有公有私有属性
 }
 
+type PermissionEnabledReq struct {
+	ChartPermissionId int `description:"品种权限Id"`
+	Enabled           int `description:"是否可用 0禁用, 1启用"`
+}
+
 type PermissionMoveReq struct {
 	ChartPermissionId int `description:"品种id"`
 	//	ParentChartPermissionId int `description:"父级品种id"`

+ 1 - 0
routers/chart_permission.go

@@ -14,4 +14,5 @@ func InitChartPermission(r *gin.RouterGroup) {
 	group.POST("move", control.MoveChartPermission)
 	group.POST("classify", control.GetClassifyChartPermission)
 	group.POST("classify/edit", control.EditClassifyChartPermission)
+	group.POST("enabled/set", control.SetEnabled)
 }

+ 43 - 3
services/crm/chart_permission.go

@@ -148,12 +148,12 @@ func EditChartPermission(req crm.PermissionEditReq) (err error, errMsg string) {
 		parentPermissionName = parent.PermissionName
 	}
 	item.PermissionName = req.PermissionName
-	item.Enabled = req.Enabled
+	//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", "ParentId", "ClassifyName", "LastUpdatedTime"})
+	err = item.Update([]string{"PermissionName", "IsPublic", "ParentId", "ClassifyName", "LastUpdatedTime"})
 	if err != nil {
 		errMsg = "更新失败"
 		err = fmt.Errorf("更新品种失败, Err: " + err.Error())
@@ -173,7 +173,47 @@ func EditChartPermission(req crm.PermissionEditReq) (err error, errMsg string) {
 			}
 		}
 		// 更新二级的启动禁用
-		err = ob.UpdatesByParentId(item.ChartPermissionId, req.Enabled, req.PermissionName)
+		err = ob.UpdateClassifyNameByParentId(item.ChartPermissionId, req.PermissionName)
+		if err != nil {
+			errMsg = "更新品种启用禁用状态失败"
+			err = fmt.Errorf("更新品种启用禁用状态失败, Err: " + err.Error())
+			return
+		}
+	}
+
+	return
+}
+
+// SetEnabledChartPermission  设置启用禁用
+func SetEnabledChartPermission(req crm.PermissionEnabledReq) (err error, errMsg string) {
+	//查询是否存在品种
+	ob := new(crm.ChartPermission)
+	item, e := ob.GetItemById(req.ChartPermissionId)
+	if e != nil {
+		errMsg = "查询品种信息失败"
+		err = fmt.Errorf("查询品种信息失败, Err: " + e.Error())
+		return
+	}
+	if item.ChartPermissionId == 0 {
+		errMsg = "请选择正确的品种"
+		err = fmt.Errorf("请选择正确的品种")
+		return
+	}
+	// 查询品种名称是否修改
+	item.Enabled = req.Enabled
+	item.LastUpdatedTime = time.Now()
+	err = item.Update([]string{"Enabled", "LastUpdatedTime"})
+	if err != nil {
+		errMsg = "更新失败"
+		err = fmt.Errorf("更新品种失败, Err: " + err.Error())
+		return
+	}
+
+	//判断是否是一级品种
+	if item.ParentId == 0 {
+		// 判断是否设置公有的二级品种
+		// 更新二级的启动禁用
+		err = ob.SetEnabledByParentId(item.ChartPermissionId, req.Enabled)
 		if err != nil {
 			errMsg = "更新品种启用禁用状态失败"
 			err = fmt.Errorf("更新品种启用禁用状态失败, Err: " + err.Error())