فهرست منبع

Merge branch 'ETA_1.1.5' into debug

ziwen 1 سال پیش
والد
کامیت
ac000fc8e8
3فایلهای تغییر یافته به همراه64 افزوده شده و 16 حذف شده
  1. 23 1
      controllers/sandbox/sandbox.go
  2. 3 3
      models/sandbox/sandbox.go
  3. 38 12
      services/sandbox/sandbox.go

+ 23 - 1
controllers/sandbox/sandbox.go

@@ -945,12 +945,34 @@ func (this *SandboxController) SandboxClassifyItems() {
 		return
 	}
 
+	sandboxAll, err := sandbox.GetSandboxAll()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+
+	sandListMap := make(map[int][]*sandbox.SandboxClassifyItems)
+	for _, v := range sandboxAll {
+		if _, ok := sandListMap[v.SandboxClassifyId]; !ok {
+			list := make([]*sandbox.SandboxClassifyItems, 0)
+			list  = append(list, v)
+			sandListMap[v.SandboxClassifyId] = list
+		} else {
+			sandListMap[v.SandboxClassifyId] = append(sandListMap[v.SandboxClassifyId], v)
+		}
+	}
+
 	nodeAll := make([]*sandbox.SandboxClassifyItems, 0)
 	for k := range rootList {
 		rootNode := rootList[k]
-		sandboxService.ChartClassifyItemsMakeTree(this.SysUser, classifyAll, rootNode)
+		sandboxService.SandboxClassifyItemsMakeTree(this.SysUser, classifyAll, rootNode)
 		nodeAll = append(nodeAll, rootNode)
 	}
+	//for k := range nodeAll {
+	//
+	//}
+	sandboxService.SandboxItemsMakeTree(nodeAll,nil, sandListMap)
 
 	resp.AllNodes = nodeAll
 	br.Ret = 200

+ 3 - 3
models/sandbox/sandbox.go

@@ -215,11 +215,11 @@ type SandboxSaveResp struct {
 	VersionCode string `description:"版本号"`
 }
 
-func GetSandboxAll(sandboxClassifyId int) (list []*SandboxClassifyItems, err error) {
+func GetSandboxAll() (list []*SandboxClassifyItems, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name, sort
-		FROM sandbox WHERE chart_classify_id = ? `
-	_, err = o.Raw(sql, sandboxClassifyId).QueryRows(&list)
+		FROM sandbox `
+	_, err = o.Raw(sql).QueryRows(&list)
 	return
 }
 

+ 38 - 12
services/sandbox/sandbox.go

@@ -647,7 +647,7 @@ func sandboxClassifyHaveChild(allNode []*sandbox.SandboxClassifyItems, node *san
 	return
 }
 
-func ChartClassifyItemsMakeTree(sysUser *system.Admin, allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems) {
+func SandboxClassifyItemsMakeTree(sysUser *system.Admin, allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems) {
 
 	childs, _ := sandboxClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
 	if len(childs) > 0 {
@@ -656,7 +656,7 @@ func ChartClassifyItemsMakeTree(sysUser *system.Admin, allNode []*sandbox.Sandbo
 		for _, v := range childs {                           //查询子节点的子节点,并添加到子节点
 			_, has := sandboxClassifyHaveChild(allNode, v)
 			if has {
-				ChartClassifyItemsMakeTree(sysUser, allNode, v) //递归添加节点
+				SandboxClassifyItemsMakeTree(sysUser, allNode, v) //递归添加节点
 			} else {
 				childrenArr := make([]*sandbox.SandboxClassifyItems, 0)
 				v.Children = childrenArr
@@ -769,19 +769,21 @@ func AddSandboxV2(req request.AddAndEditSandboxV2, opUserId int, opUserName stri
 	resp = new(sandbox.SandboxSaveResp)
 	//沙盘主表信息
 	sandboxInfo := &sandbox.Sandbox{
-		Name:                utils.TrimStr(req.Name),
-		Code:                GenerateCode(),
-		Content:             req.Content,
-		PicUrl:              utils.TrimStr(req.PicUrl),
-		SysUserId:           opUserId,
-		SysUserName:         opUserName,
-		IsDelete:            0,
-		ModifyTime:          time.Now(),
-		CreateTime:          time.Now(),
+		Name:              utils.TrimStr(req.Name),
+		Code:              GenerateCode(),
+		Content:           req.Content,
+		PicUrl:            utils.TrimStr(req.PicUrl),
+		SysUserId:         opUserId,
+		SysUserName:       opUserName,
+		IsDelete:          0,
+		ModifyTime:        time.Now(),
+		CreateTime:        time.Now(),
+		SandboxClassifyId: req.SandboxClassifyId,
+		Sort:              0,
 	}
 
 	//新增沙盘
-	id,err := sandbox.AddSandbox(sandboxInfo)
+	id, err := sandbox.AddSandbox(sandboxInfo)
 	if err != nil {
 		return
 	}
@@ -789,3 +791,27 @@ func AddSandboxV2(req request.AddAndEditSandboxV2, opUserId int, opUserName stri
 	resp.Sandbox = sandboxInfo
 	return
 }
+
+
+func SandboxItemsMakeTree(allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems, sandListMap map[int][]*sandbox.SandboxClassifyItems) {
+	for k := range allNode {
+		if len(allNode[k].Children) > 0 {
+			SandboxItemsMakeTree(allNode[k].Children, allNode[k], sandListMap)
+			allNode[k].Children = append(allNode[k].Children, sandListMap[allNode[k].SandboxClassifyId]...)
+		} else {
+			allNode[k].Children = append(allNode[k].Children, sandListMap[allNode[k].SandboxClassifyId]...)
+		}
+	}
+}
+
+func SandboxClassifyHaveChild(allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems) (childs []*sandbox.SandboxClassifyItems, yes bool) {
+	for _, v := range allNode {
+		if v.ParentId == node.SandboxClassifyId {
+			childs = append(childs, v)
+		}
+	}
+	if len(childs) > 0 {
+		yes = true
+	}
+	return
+}