瀏覽代碼

列表研报封面

kobe6258 8 月之前
父節點
當前提交
939e9b65e3
共有 5 個文件被更改,包括 34 次插入19 次删除
  1. 4 1
      common/component/es/es.go
  2. 14 9
      domian/report/report_service.go
  3. 14 6
      models/report/report.go
  4. 1 2
      routers/router.go
  5. 1 1
      task/report/report_update_task.go

+ 4 - 1
common/component/es/es.go

@@ -401,7 +401,10 @@ func (es *ESClient) GetCount(hits Hits) []Hit {
 // body es的值
 // */
 func (es *ESClient) Update(indexName string, id int, doc interface{}) bool {
-	jsonDoc, _ := json.Marshal(doc)
+	jsonUpdate := map[string]interface{}{
+		"doc": doc,
+	}
+	jsonDoc, _ := json.Marshal(jsonUpdate)
 	logger.Info("查询语句: %s", string(jsonDoc))
 	req := esapi.UpdateRequest{
 		Index:      indexName,

+ 14 - 9
domian/report/report_service.go

@@ -322,13 +322,20 @@ func SyncETAReportList(list []eta.ETAReport) (err error) {
 		reports = append(reports, destRp)
 	}
 	//}
-	err = reportDao.InsertOrUpdateReport(&reports)
-	if err != nil {
-		logger.Error("同步ETA研报失败:%v", err)
+	esList, err := reportDao.InsertOrUpdateReport(reports, SourceETA)
+	if esList == nil {
 		return
 	}
-	return syncESAndSendMessage(reports)
+	return syncESAndSendMessage(esList)
+}
+
+type UpdateESReport struct {
+	Title         string `json:"title"`
+	Author        string `json:"author"`
+	Abstract      string `json:"abstract"`
+	PublishedTime string `json:"publishedTime"`
 }
+
 func syncESAndSendMessage(reports []reportDao.Report) (err error) {
 	var esReports []es.ESBase
 	for _, etaRp := range reports {
@@ -336,9 +343,8 @@ func syncESAndSendMessage(reports []reportDao.Report) (err error) {
 		esReports = append(esReports, esRp)
 	}
 	//同步es
-
 	for _, report := range reports {
-		update := ESReport{
+		update := UpdateESReport{
 			Title:         report.Title,
 			Author:        report.Author,
 			PublishedTime: report.PublishedTime,
@@ -518,9 +524,8 @@ func SyncHTReportList(list []ht.HTReport) (noRecord bool, err error) {
 	} else {
 		logger.Info("同步研报数量%d", len(list))
 	}
-	err = reportDao.InsertOrUpdateReport(&reports)
-	if err != nil {
-		logger.Error("同步HT研报失败:%v", err)
+	esList, err := reportDao.InsertOrUpdateReport(reports, SourceHT)
+	if esList == nil {
 		return false, err
 	}
 	return false, syncESAndSendMessage(reports)

+ 14 - 6
models/report/report.go

@@ -65,14 +65,12 @@ func BatchInsertReport(list *[]Report) (err error) {
 	return nil
 }
 
-func InsertOrUpdateReport(list *[]Report) (err error) {
+func InsertOrUpdateReport(list []Report, source string) (result []Report, err error) {
 	var orgIds []int
 	//现有的作者名字
-	//var authorNames []string
-	//for _, report := range *list {
-	//	orgIds = append(orgIds, report.OrgID)
-	//	authorNames = append(authorNames, report.Author)
-	//}
+	for _, report := range list {
+		orgIds = append(orgIds, report.OrgID)
+	}
 	orgIds = silce_utils.RemoveDuplicates(orgIds)
 	db := models.Main()
 	//数据库找到作者的名字
@@ -112,7 +110,17 @@ func InsertOrUpdateReport(list *[]Report) (err error) {
 	//		}
 	//	}
 	//}
+	if err != nil {
+		logger.Error("批量插入或更新研报失败:%v", err)
+		tx.Rollback()
+		return
+	}
 	tx.Commit()
+	err = db.Select(CommonColumns).Where("org_id in ? and source =? ", orgIds, source).Find(&result).Error
+	if err != nil {
+		logger.Error("查询更新的研报数据失败:%v", err)
+		err = nil
+	}
 	return
 }
 func (t *Report) BeforeCreate(_ *gorm.DB) (err error) {

+ 1 - 2
routers/router.go

@@ -4,7 +4,6 @@ import (
 	"eta/eta_mini_ht_api/controllers/media"
 	"eta/eta_mini_ht_api/controllers/report"
 	"eta/eta_mini_ht_api/controllers/user"
-	"eta/eta_mini_ht_api/middleware"
 	"github.com/beego/beego/v2/server/web"
 	"github.com/beego/beego/v2/server/web/filter/cors"
 	"time"
@@ -21,7 +20,7 @@ func init() {
 	}))
 	//增加授权拦截
 
-	web.InsertFilter("*", web.BeforeRouter, middleware.AuthMiddleware())
+	//web.InsertFilter("*", web.BeforeRouter, middleware.AuthMiddleware())
 
 	ns := web.NewNamespace("/htapi",
 		web.NSNamespace("/user",

+ 1 - 1
task/report/report_update_task.go

@@ -100,6 +100,6 @@ type ReportUpdateTask struct {
 }
 
 func init() {
-	reportTask := base.NewTask(updateTaskName, updateCron, new(ReportUpdateTask), base.FORBIDDEN)
+	reportTask := base.NewTask(updateTaskName, updateCron, new(ReportUpdateTask), base.DEV)
 	base.RegisterTask(&reportTask)
 }