zwxi 1 year ago
parent
commit
283784ca02
2 changed files with 44 additions and 0 deletions
  1. 20 0
      controllers/sandbox/sandbox.go
  2. 24 0
      models/sandbox/sandbox_classify.go

+ 20 - 0
controllers/sandbox/sandbox.go

@@ -1618,6 +1618,26 @@ func (this *SandboxController) ChartClassifyMove() {
 				br.ErrMsg = "修改失败,Err:" + err.Error()
 				return
 			}
+			if req.ParentClassifyId > 0 {
+				ids, err := sandbox.GetSandboxClassifySubcategories(req.ClassifyId)
+				if err != nil {
+					br.Msg = "查询子级分类id失败"
+					br.ErrMsg = "查询子级分类id失败,Err:" + err.Error()
+					return
+				}
+				parentChartClassifyInfo, err := sandbox.GetSandboxClassifyById(req.ParentClassifyId)
+				if err != nil {
+					br.Msg = "移动失败"
+					br.ErrMsg = "获取上级分类信息失败,Err:" + err.Error()
+					return
+				}
+				err  = sandbox.UpdateSandboxClassifyChartPermissionById(parentChartClassifyInfo.ChartPermissionId, parentChartClassifyInfo.ChartPermissionName, ids)
+				if err != nil {
+					br.Msg = "修改子级分类错误"
+					br.ErrMsg = "修改子级分类错误,Err:" + err.Error()
+					return
+				}
+			}
 		}
 	}
 

+ 24 - 0
models/sandbox/sandbox_classify.go

@@ -252,3 +252,27 @@ type SandboxLinkCheckResp struct {
 	ChartInfoIdList []int `description:"图库id列表"`
 	ReportIdList    []int `description:"报告id列表"`
 }
+
+// 获取所有子级分类id
+func GetSandboxClassifySubcategories(classifyId int) (Ids string, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT GROUP_CONCAT(sandbox_classify_id) AS ids
+FROM (
+SELECT @pv := ? AS sandbox_classify_id
+UNION ALL
+SELECT sc.sandbox_classify_id
+FROM sandbox_classify sc
+JOIN (SELECT @pv := ?) initial
+WHERE sc.parent_id = @pv
+) subcategories; `
+	err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
+	return
+}
+
+// UpdateSandboxClassifyChartPermissionById 根据沙盘id更新品种
+func UpdateSandboxClassifyChartPermissionById(ChartPermissionId int, ChartPermissionName, Ids string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` UPDATE sandbox_classify SET chart_permission_id = ?, chart_permission_name = ? WHERE sandbox_classify_id IN ( `+Ids +` ) `
+	_, err = o.Raw(sql, ChartPermissionId, ChartPermissionName).Exec()
+	return
+}