浏览代码

fix:完善数据节点入库

zqbao 3 月之前
父节点
当前提交
0ea54dda73
共有 2 个文件被更改,包括 40 次插入19 次删除
  1. 5 4
      models/knowledge_resource.go
  2. 35 15
      services/eta_bridge/knowledge.go

+ 5 - 4
models/knowledge_resource.go

@@ -115,12 +115,13 @@ func (k *KnowledgeResource) GetKnowledgeResourceByOutId(outId int) (item *Knowle
 	return
 }
 
-func (k *KnowledgeResource) GetKnowledgeCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	sql := "SELECT COUNT(*) FROM knowledge_resource WHERE 1=1 "
+func (k *KnowledgeResource) GetMaxTimeKnowledgeByCondition(condition string, pars []interface{}) (item *KnowledgeResource, err error) {
+	sql := "SELECT * FROM knowledge_resource WHERE 1=1 "
 	if condition != "" {
 		sql += condition
 	}
-	err = global.DmSQL["rddp"].Raw(sql, pars...).Scan(&count).Error
+	sql += " ORDER BY modify_time DESC "
+	err = global.DmSQL["rddp"].Raw(sql, pars...).First(&item).Error
 	return
 }
 
@@ -200,7 +201,7 @@ type MarketOverviewRecord struct {
 	DataSourceCode   string `json:"DATA_SOURCE_CODE"`
 	Des              string `json:"DES"`
 	Id               int    `json:"ID"`
-	IsValidData      int    `json:"IS_VALID_DATA"`
+	IsValidData      int    `json:"IS_VALID_DATA"` // 1:未删除;0:已删除
 	Person           string `json:"PERSON"`
 	Title            string `json:"TITLE"`
 	UpdateOriginTime string `json:"UPDATE_ORIGIN_TIME"`

+ 35 - 15
services/eta_bridge/knowledge.go

@@ -29,16 +29,22 @@ func SyncDataNode(cont context.Context) (err error) {
 	obj := new(models.KnowledgeResource)
 	condition := " AND out_id > ? AND resource_type = ?"
 	pars := []interface{}{0, models.KnowledgeResourceTypeOpinion}
-	count, err := obj.GetKnowledgeCountByCondition(condition, pars)
-	if err != nil {
+	knowledge, err := obj.GetMaxTimeKnowledgeByCondition(condition, pars)
+	if err != nil && !utils.IsErrNoRow(err) {
 		errMsgList = append(errMsgList, err.Error())
 		return
 	}
 	param := make(map[string]interface{})
 	param["pageSize"] = 1000
-	if count != 0 {
-		param["UPDATE_TIME"] = time.Now().AddDate(0, 0, -1).Format(utils.FormatDateTime)
+	if !utils.IsErrNoRow(err) {
+		now := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Local)
+		if knowledge.ModifyTime.Before(now.AddDate(0, 0, -1)) {
+			param["UPDATE_TIME"] = knowledge.ModifyTime.Format(utils.FormatDateTime)
+		} else {
+			param["UPDATE_TIME"] = now.AddDate(0, 0, -1).Format(utils.FormatDateTime)
+		}
 	}
+
 	bBody, err, errMsg := HttpEtaBridgePost("/knowledge/viewpoint/save", param)
 	if err != nil {
 		errMsgList = append(errMsgList, errMsg)
@@ -136,7 +142,14 @@ func ViewPointBatchSave(records []models.MarketOverviewRecord) (err error) {
 			resource.SourceFrom = record.DataSource
 			updateCols = append(updateCols, "source_from")
 		}
-
+		var isDelete int
+		if record.IsValidData == 0 {
+			isDelete = 1
+		}
+		if resource.IsDelete != isDelete {
+			resource.IsDelete = isDelete
+			updateCols = append(updateCols, "is_delete")
+		}
 		if len(updateCols) > 0 {
 			resource.ModifyTime = time.Now()
 			updateCols = append(updateCols, "modify_time")
@@ -167,17 +180,24 @@ func ViewPointBatchSave(records []models.MarketOverviewRecord) (err error) {
 			continue
 		}
 		timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
+		var isDelete int
+		if record.IsValidData == 0 {
+			isDelete = 1
+		}
 		addList = append(addList, &models.KnowledgeResource{
-			OutId:        record.Id,
-			Title:        record.Title,
-			Content:      record.Content,
-			StartTime:    &recordTime,
-			SourceFrom:   record.DataSource,
-			ClassifyId:   classifyId,
-			ResourceCode: utils.MD5(utils.CHART_PREFIX + "_" + timestamp),
-			ResourceType: models.KnowledgeResourceTypeOpinion,
-			CreateTime:   time.Now(),
-			ModifyTime:   time.Now(),
+			OutId:         record.Id,
+			Title:         record.Title,
+			Content:       record.Content,
+			State:         models.KnowledgeResourceStateApproved,
+			AdminRealName: "无",
+			StartTime:     &recordTime,
+			SourceFrom:    record.DataSource,
+			ClassifyId:    classifyId,
+			IsDelete:      isDelete,
+			ResourceCode:  utils.MD5(utils.CHART_PREFIX + "_" + timestamp),
+			ResourceType:  models.KnowledgeResourceTypeOpinion,
+			CreateTime:    time.Now(),
+			ModifyTime:    time.Now(),
 		})
 	}
 	err = obj.BatchCreate(addList)