|
@@ -35,28 +35,19 @@ func AutoInsertRaiReport() {
|
|
|
|
|
|
func HandleInsertRaiReport(raiReportId int) (err error) {
|
|
|
// 设置缓存,防止重复处理
|
|
|
- cacheKey := fmt.Sprintf("rai_report_notify_redis_%d", raiReportId)
|
|
|
- cacheValue := utils.Rc.GetStr(cacheKey)
|
|
|
- if cacheValue != "" {
|
|
|
- return nil
|
|
|
- }
|
|
|
- utils.Rc.SetNX(cacheKey, "1", 10*time.Second)
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
msg := fmt.Sprintf("处理同步过来的文章失败"+"HandleArticleListByApi ErrMsg:%s artcleId:%d", err.Error(), raiReportId)
|
|
|
utils.FileLog.Info(msg, 2)
|
|
|
go alarm_msg.SendAlarmMsg(msg, 2)
|
|
|
}
|
|
|
- utils.Rc.Delete(cacheKey)
|
|
|
}()
|
|
|
- var clueApiUrl string
|
|
|
- clueApiUrl = fmt.Sprint(utils.RaiReportLibUrl, "articles/", raiReportId)
|
|
|
- fmt.Println(clueApiUrl)
|
|
|
|
|
|
- body, err := getRaiReportLib(clueApiUrl)
|
|
|
+ body, err := getRaiReportLib(fmt.Sprintf("%s/articles/%d", utils.RaiReportLibUrl, raiReportId))
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
- return
|
|
|
+ err = fmt.Errorf("获取权益报告失败, Err: %s", err.Error())
|
|
|
+ return
|
|
|
}
|
|
|
var articleResultDate models.ArticleDetailResultApi
|
|
|
err = json.Unmarshal(body, &articleResultDate)
|
|
@@ -66,6 +57,49 @@ func HandleInsertRaiReport(raiReportId int) (err error) {
|
|
|
}
|
|
|
|
|
|
articleResult := articleResultDate.Data
|
|
|
+ err = handleInsertRaiReport(articleResult)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error) {
|
|
|
+ raiReportId := articleResult.ArticleId
|
|
|
+ // 设置缓存,防止重复处理
|
|
|
+ cacheKey := fmt.Sprintf("rai_report_notify_redis_%d", raiReportId)
|
|
|
+ cacheValue := utils.Rc.GetStr(cacheKey)
|
|
|
+ if cacheValue != "" {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ utils.Rc.SetNX(cacheKey, "1", 10*time.Second)
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ msg := fmt.Sprintf("处理同步过来的文章失败"+"HandleArticleListByApi ErrMsg:%s artcleId:%d", err.Error(), raiReportId)
|
|
|
+ utils.FileLog.Info(msg, 2)
|
|
|
+ go alarm_msg.SendAlarmMsg(msg, 2)
|
|
|
+ }
|
|
|
+ utils.Rc.Delete(cacheKey)
|
|
|
+ }()
|
|
|
+ // var clueApiUrl string
|
|
|
+ // clueApiUrl = fmt.Sprint(utils.RaiReportLibUrl, "articles/", raiReportId)
|
|
|
+ // fmt.Println(clueApiUrl)
|
|
|
+
|
|
|
+ // body, err := getRaiReportLib(clueApiUrl)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println(err)
|
|
|
+ // err = fmt.Errorf("获取权益报告失败, Err: %s", err.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // var articleResultDate models.ArticleDetailResultApi
|
|
|
+ // err = json.Unmarshal(body, &articleResultDate)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println("Getres.PublicGetDate Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+
|
|
|
+ // articleResult := articleResultDate.Data
|
|
|
// 判断是否是固收研究
|
|
|
if articleResult.IndustrId != 12 {
|
|
|
return nil
|
|
@@ -125,7 +159,7 @@ func HandleInsertRaiReport(raiReportId int) (err error) {
|
|
|
// 报告状态为未发布,则更新报告
|
|
|
state = models.ReportStatePublished
|
|
|
reportInfo.PublishTime = articleResult.PublishDate
|
|
|
- }else if articleResult.IsActive == false {
|
|
|
+ }else if !articleResult.IsActive {
|
|
|
// 删除报告
|
|
|
err = models.DeleteReport(reportInfo.Id)
|
|
|
if err != nil {
|
|
@@ -303,4 +337,55 @@ func getRaiReportLib(url string) (body []byte, err error) {
|
|
|
return
|
|
|
}
|
|
|
return
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+// 导入固收研究的历史报告,前提是需要确认报告的分类都已经建好,并且已绑定固定收益品种
|
|
|
+func RaiReportInit() (err error) {
|
|
|
+ fmt.Println("开始导入固收研究的历史报告")
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ msg := fmt.Sprintf("导入固收研究的历史报告失败, Err: %s", err.Error())
|
|
|
+ fmt.Println(msg)
|
|
|
+ go alarm_msg.SendAlarmMsg(msg, 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ // 分页调用接口获取历史报告
|
|
|
+ totalPage := 1
|
|
|
+ pageSize := 10
|
|
|
+ successCount := 0
|
|
|
+ failCount := 0
|
|
|
+ for i := 0; i <= totalPage; i++ {
|
|
|
+ pageindex := i*pageSize
|
|
|
+ body, er := getRaiReportLib(fmt.Sprintf("%s/articles/mp?take=%d&skip=%d&publish_status=2&industry_id=12", utils.RaiReportLibUrl, pageSize, pageindex))
|
|
|
+ if er != nil {
|
|
|
+ err = fmt.Errorf("获取权益报告失败, Err: %s", er.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 解析内容,获取真实的分页总数
|
|
|
+ var articleResultDate models.RaiArticleListResultApi
|
|
|
+ err = json.Unmarshal(body, &articleResultDate)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("获取权益报告失败json解析失败, Err: %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleResultDate.Code != 0 {
|
|
|
+ err = fmt.Errorf("获取权益报告失败, Err: %s", articleResultDate.Msg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalPage = articleResultDate.Pagination.PageTotal
|
|
|
+ articleResultList := articleResultDate.Data
|
|
|
+ for _, articleResult := range articleResultList {
|
|
|
+ err = handleInsertRaiReport(articleResult)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Printf("导入固收研究的历史报告失败%d, Err: %s\n", articleResult.ArticleId, err.Error())
|
|
|
+ failCount++
|
|
|
+ continue
|
|
|
+ }else {
|
|
|
+ fmt.Printf("导入固收研究的历史报告成功%d\n", articleResult.ArticleId)
|
|
|
+ successCount++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fmt.Printf("导入固收研究的历史报告完成,成功%d,失败%d\n", successCount, failCount)
|
|
|
+ return nil
|
|
|
+}
|