Parcourir la source

es研报搜索增加发布状态的条件

kobe6258 il y a 7 mois
Parent
commit
5369e4f067
3 fichiers modifiés avec 29 ajouts et 17 suppressions
  1. 18 7
      domian/report/report_service.go
  2. 8 7
      models/eta/eta_report.go
  3. 3 3
      models/report/report.go

+ 18 - 7
domian/report/report_service.go

@@ -295,7 +295,7 @@ func InitETAReportList(list []eta.ETAReport) (err error) {
 				coverSrc = ids[randomIndex]
 			}
 		}
-		destRp := convertEtaReport(etaRp)
+		destRp := convertEtaReport(etaRp, reportDao.StatusPublish)
 		//destRp.Author = authorName
 		destRp.CoverSrc = coverSrc
 		reports = append(reports, destRp)
@@ -310,6 +310,13 @@ func InitETAReportList(list []eta.ETAReport) (err error) {
 	return initES(reports)
 
 }
+func etaStatus(status int) reportDao.ReportStatus {
+	if status == etaDao.Passed || status == etaDao.Published {
+		return reportDao.StatusPublish
+	} else {
+		return reportDao.StatusUnPublish
+	}
+}
 func SyncETAReportList(list []eta.ETAReport) (err error) {
 	logger.Info("同步研报数量%d", len(list))
 	var reports []reportDao.Report
@@ -317,7 +324,8 @@ func SyncETAReportList(list []eta.ETAReport) (err error) {
 		//authorNames := strings.Split(etaRp.Author, ",")
 		//authorNamesWithOutEmpty := stringUtils.RemoveEmptyStrings(authorNames)
 		//for _, authorName := range authorNamesWithOutEmpty {
-		destRp := convertEtaReport(etaRp)
+		status := etaStatus(etaRp.State)
+		destRp := convertEtaReport(etaRp, status)
 		//destRp.Author = authorName
 		reports = append(reports, destRp)
 	}
@@ -334,6 +342,7 @@ type UpdateESReport struct {
 	Author        string `json:"author"`
 	Abstract      string `json:"abstract"`
 	PublishedTime string `json:"publishedTime"`
+	Status        string `json:"status"`
 }
 
 func syncESAndSendMessage(reports []reportDao.Report) (err error) {
@@ -349,11 +358,13 @@ func syncESAndSendMessage(reports []reportDao.Report) (err error) {
 			Author:        report.Author,
 			PublishedTime: report.PublishedTime,
 			Abstract:      report.Abstract,
+			Status:        string(report.Status),
 		}
 		success := elastic().Update(htConfig.GetReportIndex(), report.ID, update)
 		if !success {
 			logger.Error("更新es失败,reportId::%d,err:%v", report.ID, err)
 		}
+
 	}
 
 	//err = elastic().BulkInsert(htConfig.GetReportIndex(), esReports)
@@ -587,7 +598,7 @@ func GetTotalPageCountByPermissionIds(permissionIds []int) (total int64, latestI
 	latestId = reportDao.GetMaxIdByPermissionIds(ids)
 	return
 }
-func convertEtaReport(etaRp eta.ETAReport) reportDao.Report {
+func convertEtaReport(etaRp eta.ETAReport, status reportDao.ReportStatus) reportDao.Report {
 	return reportDao.Report{
 		OrgID:         etaRp.ID,
 		Title:         etaRp.Title,
@@ -597,7 +608,7 @@ func convertEtaReport(etaRp eta.ETAReport) reportDao.Report {
 		PublishedTime: etaRp.PublishTime.Format(time.DateTime),
 		Source:        reportDao.SourceETA,
 		SendStatus:    reportDao.UNSEND,
-		Status:        reportDao.StatusPublish,
+		Status:        status,
 	}
 }
 
@@ -647,13 +658,13 @@ func convertReportDTO(report reportDao.Report, fullTime bool) (reportDTO ReportD
 
 func matchAll(sorts []string, key string) (request *es.ESQueryRequest) {
 	req := new(es.ESQueryRequest)
-	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, 0, 1, sorts, es.MatchAll)
+	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, 0, 1, sorts, es.MatchAllByCondition).ByCondition("status", "PUBLUSH")
 }
 func match(key string, from int, to int, sorts []string) (request *es.ESQueryRequest) {
 	req := new(es.ESQueryRequest)
-	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, from, to, sorts, es.Match)
+	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, from, to, sorts, es.MatchAllByCondition).ByCondition("status", "PUBLUSH")
 }
 func matchRange(key string, from int, to int, max int64, sorts []string) (request *es.ESQueryRequest) {
 	req := new(es.ESQueryRequest)
-	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, from, to, sorts, es.Range).Range(0, max, ESRangeColumn)
+	return req.CreateESQueryRequest(htConfig.GetReportIndex(), ESColumn, key, from, to, sorts, es.RangeByCondition).Range(0, max, ESRangeColumn).ByCondition("status", "PUBLISH")
 }

+ 8 - 7
models/eta/eta_report.go

@@ -8,10 +8,10 @@ import (
 )
 
 const (
-	colunms      = "id,author,abstract,title,publish_time,"
-	detailColumn = "id,author,abstract,title,publish_time,content,collaborate_type,report_layout,video_url,video_name,video_play_seconds,head_resource_id,end_resource_id,has_chapter,need_splice"
-	published    = 2
-	passed       = 6
+	colunms      = "id,author,abstract,title,publish_time,state,"
+	detailColumn = "id,author,abstract,title,publish_time,content,collaborate_type,report_layout,video_url,video_name,video_play_seconds,head_resource_id,end_resource_id,has_chapter,need_splice,state"
+	Published    = 2
+	Passed       = 6
 
 	limit                                  = 500
 	TlbChartPermissionSearchKeyWordMapping = "chart_permission_search_key_word_mapping"
@@ -45,6 +45,7 @@ type ETAReport struct {
 	EndResourceId    int       `gorm:"column:end_resource_id"`
 	HasChapter       bool      `gorm:"column:has_chapter"`
 	NeedSplice       bool      `gorm:"column:need_splice"`
+	State            int       `gorm:"column:state"`
 }
 
 //type ReportClassify struct {
@@ -58,7 +59,7 @@ type ReportPermission struct {
 }
 
 func GetETAReports(id int) (reports []ETAReport, err error) {
-	err = models.ETA().Table("report").Select(colunms+strings.Join(classifyIds, ",")).Where("state =? or state=?", published, passed).Where("id > ?", id).Order("id asc").Limit(limit).Find(&reports).Error
+	err = models.ETA().Table("report").Select(colunms+strings.Join(classifyIds, ",")).Where("state =? or state=?", Published, Passed).Where("id > ?", id).Order("id asc").Limit(limit).Find(&reports).Error
 	if reports != nil {
 		for i := 0; i < len(reports); i++ {
 			setClassifyIdValue(&reports[i])
@@ -70,7 +71,7 @@ func GetETAReports(id int) (reports []ETAReport, err error) {
 func GetUpdateETAReports() (reports []ETAReport, err error) {
 	duration := time.Now().Add(-30 * time.Second)
 	modifyTime := duration.Format(time.DateTime)
-	err = models.ETA().Table("report").Select(colunms+strings.Join(classifyIds, ",")).Where("(state =? or state=?) and modify_time >=?", published, passed, modifyTime).Order("id asc").Find(&reports).Error
+	err = models.ETA().Table("report").Select(colunms+strings.Join(classifyIds, ",")).Where("modify_time >=?", modifyTime).Order("id asc").Find(&reports).Error
 	if err != nil {
 		logger.Error("同步eta研报数据失败:%v", err)
 	}
@@ -90,7 +91,7 @@ func GetUpdateETAReports() (reports []ETAReport, err error) {
 }
 
 func GetETAReportById(id int) (report ETAReport, err error) {
-	err = models.ETA().Table("report").Select(detailColumn).Where("id = ?", id).Where("state =? or state=?", published, passed).First(&report).Error
+	err = models.ETA().Table("report").Select(detailColumn).Where("id = ?", id).Where("state =? or state=?", Published, Passed).First(&report).Error
 	if err != nil {
 		return
 	}

+ 3 - 3
models/report/report.go

@@ -25,8 +25,8 @@ const (
 	StatusUnPublish ReportStatus = "UNPUBLISH"
 
 	MaxBatchNum   = 1000
-	CommonColumns = "id,org_id,author,abstract,title,source,cover_src,published_time"
-	taskColumns   = "id,author,published_time"
+	CommonColumns = "id,org_id,author,abstract,title,source,cover_src,published_time,status"
+	taskColumns   = "id,author,published_time,status"
 )
 
 type Report struct {
@@ -95,7 +95,7 @@ func InsertOrUpdateReport(list []Report, source string) (result []Report, err er
 	tx := db.Begin()
 	OnConflictFunc := clause.OnConflict{
 		Columns:   []clause.Column{{Name: "org_id"}, {Name: "source"}},
-		DoUpdates: clause.AssignmentColumns([]string{"abstract", "title", "author", "published_time"}),
+		DoUpdates: clause.AssignmentColumns([]string{"abstract", "title", "author", "published_time", "status"}),
 	}
 	// 执行批量插入或更新操作
 	err = tx.Clauses(OnConflictFunc).Create(&list).Error