Browse Source

excel导入分类处理

xyxie 5 months ago
parent
commit
550305caf9
2 changed files with 21 additions and 3 deletions
  1. 1 1
      controllers/knowledge/resource.go
  2. 20 2
      services/knowledge/resource.go

+ 1 - 1
controllers/knowledge/resource.go

@@ -1011,7 +1011,7 @@ func (this *ResourceController) ResourceUpload() {
 		return
 	}
 	kind, _ := filetype.Match(fileData)
-	if kind.Extension != "pdf" && kind.Extension != "ppt" && kind.Extension != "docx" && kind.Extension != "doc" {
+	if kind.Extension != "pdf" && kind.Extension != "ppt" && kind.Extension != "pptx" && kind.Extension != "docx" && kind.Extension != "doc" {
 		br.Msg = "文件格式有误"
 		return
 	}

+ 20 - 2
services/knowledge/resource.go

@@ -389,16 +389,34 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 		errMsg = "获取分类数据失败"
 		return
 	}
+	classifyObj := new(knowledge.KnowledgeClassify)
+	classifyAllList, err := classifyObj.GetAllClassify(resourceType)
+	if err != nil {
+		err = fmt.Errorf("获取分类数据失败 Err: %s", err.Error())
+		errMsg = "获取分类数据失败"
+		return
+	}
 	classifyNameMap := make(map[string]int)
+	classifyHasChildMap := make(map[int]bool)
+	for _, v := range classifyAllList {
+		if v.ParentId > 0 {
+			classifyHasChildMap[v.ParentId] = true
+		}
+	}
 	for _, v := range classifyList {
 		name := fmt.Sprintf("%s/%s/%s", v.RootName, v.ParentName, v.ClassifyName)
+		fmt.Println("name", name)
 		if v.RootName == "" && v.ParentName == "" { //一级分类
 			name = fmt.Sprintf("%s/%s/%s", v.ClassifyName, "", "")
+			if _, ok := classifyHasChildMap[v.ClassifyId]; ok {
+				continue
+			}
 		} else if v.RootName == "" { //二级分类
 			name = fmt.Sprintf("%s/%s/%s", v.ParentName, v.ClassifyName, "")
+			if _, ok := classifyHasChildMap[v.ClassifyId]; ok {
+				continue
+			}
 		}
-
-		fmt.Println("name", name)
 		classifyNameMap[name] = v.ClassifyId
 	}