瀏覽代碼

Merge branch 'bzq/knowledge_add_viewpoint' of eta_gn_server/eta_api into debug

baoziqiang 2 月之前
父節點
當前提交
fbeccd9265
共有 3 個文件被更改,包括 51 次插入4 次删除
  1. 1 1
      models/knowledge/knowledge_resource.go
  2. 38 0
      services/knowledge/es.go
  3. 12 3
      services/knowledge/resource.go

+ 1 - 1
models/knowledge/knowledge_resource.go

@@ -25,7 +25,7 @@ const (
 const (
 	// 未发布
 	KnowledgeResourceStateUnpublished = iota
-	// 已发布
+	// 已发布 暂未使用
 	KnowledgeResourceStatePublished
 	// 待审核
 	KnowledgeResourceStatePending

+ 38 - 0
services/knowledge/es.go

@@ -11,8 +11,46 @@ import (
 	"strings"
 
 	"github.com/PuerkitoBio/goquery"
+	"github.com/olivere/elastic/v7"
 )
 
+func EsBatchAddOrEditKnowledgeResource(list []*knowledge.KnowledgeResource) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("EsBatchAddOrEditData Err:", err.Error())
+			utils.FileLog.Info("EsBatchAddOrEditKnowledgeResource err:", err)
+		}
+	}()
+	indexName := utils.EsKnowledgeResourceIndexName
+	client := utils.EsClient
+
+	actions := make([]elastic.BulkableRequest, len(list))
+	for i, item := range list {
+		request := elastic.NewBulkIndexRequest().Index(indexName).Id(strconv.Itoa(item.KnowledgeResourceId)).Doc(item)
+		actions[i] = request
+	}
+	response, err := client.Bulk().Add(actions...).Do(context.Background())
+	if err != nil {
+		jsonBytes, _ := json.Marshal(list)
+		fmt.Println("add json:", string(jsonBytes))
+		fmt.Println("EsBatchAddOrEditKnowledgeResource err:", err)
+		return
+	}
+	if response.Errors {
+		for i, item := range response.Items {
+			for _, op := range item {
+				if op.Error != nil {
+					utils.FileLog.Warning("EsBatchAddOrEditKnowledgeResource Insert failed: %v", list[i])
+				}
+			}
+		}
+		fmt.Println("EsBatchAddOrEditKnowledgeResource:", response.Errors)
+	} else {
+		fmt.Printf("EsBatchAddOrEditKnowledgeResource:%+v\n", response)
+	}
+	return
+}
+
 // SearchChartInfoData 查询es中的图表数据
 func SearchKnowledgeResourceByEs(resourceType int, keywordStr string, showSysIds []int, myId int, classifyIds []int, sourceList []string, tagIds []int, isIncludeFile, isQueryRef bool, from, size int) (list []*knowledge.KnowledgeResource, total int64, err error) {
 	indexName := utils.EsKnowledgeResourceIndexName

+ 12 - 3
services/knowledge/resource.go

@@ -412,6 +412,7 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 		tagNameMap[v.TagName] = v.TagId
 	}
 
+	var addlist []*knowledge.KnowledgeResource
 	for _, v := range indexDataList {
 		errTip := ""
 		classifyId := 0
@@ -485,7 +486,7 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 				req.EndTime = fmt.Sprintf("%s %s", v.EndDate, v.EndTime)
 			}
 		}
-		tmpErr, msg := addExcelResource(req, sysUser)
+		item, tmpErr, msg := addExcelResource(req, sysUser)
 		if tmpErr != nil {
 			failItem := &knowledge.KnowledgeImportFail{
 				Title:          v.Title,
@@ -507,9 +508,17 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 			continue
 		} else {
 			successCount++
+			addlist = append(addlist, item)
 		}
 	}
 
+	go func() {
+		err = EsBatchAddOrEditKnowledgeResource(addlist)
+		if err != nil {
+			utils.FileLog.Info("知识资源EsBatchAddOrEditKnowledgeResource失败,err:%s, err", err.Error())
+		}
+	}()
+
 	// 失败数量
 	failCount = len(failDataList)
 	//fmt.Println("failDataList:", len(failDataList))
@@ -992,7 +1001,7 @@ func getExcelDate(createDate string) (newCreateDate string, err error) {
 	return
 }
 
-func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (err error, errMsg string) {
+func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (item *knowledge.KnowledgeResource, err error, errMsg string) {
 	var startTime time.Time
 	var endTime time.Time
 	if req.StartTime != "" {
@@ -1023,7 +1032,7 @@ func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (err error,
 			}
 		}
 	}
-	item := new(knowledge.KnowledgeResource)
+	item = new(knowledge.KnowledgeResource)
 	item.ClassifyId = req.ClassifyId
 	item.TagId = req.TagId
 	item.SourceFrom = req.SourceFrom