Browse Source

no message

xingzai 6 months ago
parent
commit
e12e9c0ce5

+ 22 - 3
models/ficc_report/report.go

@@ -137,11 +137,30 @@ func GetByReportId(reportId int) (item *Report, err error) {
 func GetFiccRreportToCygxArticle(condition string, pars []interface{}) (items []*Report, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ` SELECT	* FROM report WHERE state = 2 AND  is_public_publish = 1 
-			AND classify_name_first IN ('宏观报告','晨会纪要','调研纪要')
-			AND classify_name_second IN ('大类资产周报','晨会纪要','黑色调研')
+			AND classify_name_first IN ('宏观报告','晨会纪要','调研纪要','数据点评')
+			AND classify_name_second IN ('大类资产周报','晨会纪要','黑色调研','宏观G2观察','人民币汇率双周报','房地产市场跟踪','黄金月报','铜行业数据点评','原油基本面推演','原油船期数据跟踪','EIA原油库存点评')
 			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '大类资产周报' ,1=1 )
 			AND IF ( classify_name_first = '晨会纪要' , classify_name_second = '晨会纪要' ,1=1 )
-			AND IF ( classify_name_first = '调研纪要' , classify_name_second = '黑色调研' ,1=1 ) ` + condition + ` ORDER BY  modify_time	 DESC   `
+			AND IF ( classify_name_first = '调研纪要' , classify_name_second = '黑色调研' ,1=1 ) 
+			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '宏观G2观察' ,1=1 ) 
+			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '人民币汇率双周报' ,1=1 ) 
+			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '房地产市场跟踪' ,1=1 ) 
+			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '黄金月报' ,1=1 ) 
+			AND IF ( classify_name_first = '数据点评' , classify_name_second = '铜行业数据点评' ,1=1 ) 
+			AND IF ( classify_name_first = '数据点评' , classify_name_second = '原油基本面推演' ,1=1 ) 
+			AND IF ( classify_name_first = '数据点评' , classify_name_second = '原油船期数据跟踪' ,1=1 ) 
+			AND IF ( classify_name_first = '数据点评' , classify_name_second = 'EIA原油库存点评' ,1=1 ) ` + condition + ` ORDER BY  modify_time	 DESC   `
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+type GetReporteSetResp struct {
+	ClassifyNameFirst  string `description:"一级分类名称" `
+	ClassifyNameSecond string `description:"二级分类名称"`
+	TagName            string `description:"自定义标签筛选"`
+}
+
+// 获取同步规则种类
+type GetReporteSetListResp struct {
+	List []*GetReporteSetResp
+}

+ 4 - 2
models/resource_data.go

@@ -21,6 +21,7 @@ type CygxResourceData struct {
 	SearchTitle       string    `description:"搜索匹配用的标题"`
 	SearchContent     string    `description:"搜索匹配用的内容"`
 	SearchOrderTime   string    `description:"搜索排序时间"`
+	TagName           string    `description:"标签名"`
 }
 
 // FICC研报小程序
@@ -132,6 +133,7 @@ func UpdateResourceDataByItem(item *CygxResourceData) (err error) {
 	updateParams["PublishDate"] = item.PublishDate
 	updateParams["SearchTag"] = item.SearchTag
 	updateParams["SearchTitle"] = item.SearchTitle
+	updateParams["TagName"] = item.TagName
 	updateParams["SearchContent"] = item.SearchContent
 	updateParams["SearchOrderTime"] = item.SearchOrderTime
 	ptrStructOrTableName := "cygx_resource_data"
@@ -201,7 +203,7 @@ func HideCygxResourceDataFiccReport(sourceIds []int) (err error) {
 		}
 	}()
 	//隐藏资源表
-	sql := ` UPDATE cygx_resource_data SET is_hide= 1  WHERE source_id IN (` + utils.GetOrmInReplace(lenArr) + `)  AND source = ? `
+	sql := ` DELETE  FROM cygx_resource_data  WHERE source_id IN (` + utils.GetOrmInReplace(lenArr) + `)  AND source = ? `
 	_, err = to.Raw(sql, sourceIds, utils.CYGX_OBJ_FICC_REPORT).Exec()
 	if err != nil {
 		return
@@ -209,7 +211,7 @@ func HideCygxResourceDataFiccReport(sourceIds []int) (err error) {
 
 	//对应文章取消发布
 	sql = ` UPDATE cygx_article SET publish_status= 0  WHERE report_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
-	_, err = to.Raw(sql, sourceIds, utils.CYGX_OBJ_FICC_REPORT).Exec()
+	_, err = to.Raw(sql, sourceIds).Exec()
 	if err != nil {
 		return
 	}

+ 32 - 6
services/ficc_report.go

@@ -3,6 +3,7 @@ package services
 //FICC研报
 import (
 	"context"
+	"encoding/json"
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
@@ -437,6 +438,7 @@ func GetChapterListByReportChapterIdList(classifyNameFirst string, reportId int,
 
 // 获取FICC研报到查研观向数据库中
 func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
+	//func GetFiccRreportToCygxArticle() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -457,6 +459,21 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 	//if len(reportList) == 0 {
 	//	return
 	//}
+	//获取研报的匹配关系
+	conf, e := models.GetConfigByCode(utils.GET_FICC_REPORT_SET)
+	if e != nil {
+		err = errors.New("GetConfigByCode, Err: " + e.Error())
+		return
+	}
+	if conf.ConfigValue == "" {
+		err = errors.New("同步FICC研报的规则配置值有误")
+		return
+	}
+	listFiccSet := new(ficc_report.GetReporteSetListResp)
+	if e = json.Unmarshal([]byte(conf.ConfigValue), &listFiccSet); e != nil {
+		err = errors.New("同步FICC研报的规则配置值解析失败 Err: " + e.Error())
+		return
+	}
 
 	if len(reportList) > 0 {
 		var reportIds []int
@@ -490,12 +507,19 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 			item.IsReport = 1
 			item.IsClass = 1
 
-			if (v.ClassifyNameFirst == "宏观报告" && v.ClassifyNameSecond == "大类资产周报") || (v.ClassifyNameFirst == "晨会纪要" && v.ClassifyNameSecond == "晨会纪要") || (v.ClassifyNameFirst == "调研纪要" && v.ClassifyNameSecond == "黑色调研") {
-				item.SubCategoryName = v.ClassifyNameSecond
-				item.MatchTypeName = v.ClassifyNameSecond
-			} else {
+			var haveSet bool
+			for _, vSet := range listFiccSet.List {
+				if v.ClassifyNameFirst == vSet.ClassifyNameFirst && v.ClassifyNameSecond == vSet.ClassifyNameSecond {
+					haveSet = true
+					item.SubCategoryName = v.ClassifyNameSecond
+					item.MatchTypeName = v.ClassifyNameSecond
+					continue
+				}
+			}
+			if !haveSet {
 				continue
 			}
+
 			detailCategory, detailCategoryErr := models.GetCygxReportMappingCelueDetailByZhoQiCategoryName(item.SubCategoryName)
 			if detailCategoryErr != nil {
 				continue
@@ -538,7 +562,7 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 					return err
 				}
 			}
-			UpdateFICCReportResourceData(v.Id)
+			UpdateFICCReportResourceData(v.Id, listFiccSet)
 
 			AddCygxReportMappingCategoryGroupByArticleId(articleIdMax)
 		}
@@ -552,7 +576,9 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 	}
 	var cygxFiccReportIds []int
 	for _, v := range listCygxFiccReport {
-		cygxFiccReportIds = append(cygxFiccReportIds, v.ReportId)
+		if v.PublishStatus == 1 {
+			cygxFiccReportIds = append(cygxFiccReportIds, v.ReportId)
+		}
 	}
 	lenArr := len(cygxFiccReportIds)
 	if lenArr == 0 {

+ 9 - 1
services/resource_data.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/models/ficc_report"
 	"hongze/hongze_cygx/utils"
 	"strconv"
 	"strings"
@@ -950,7 +951,7 @@ func initsql12_17() {
 }
 
 // 更新FICC研报
-func UpdateFICCReportResourceData(sourceId int) {
+func UpdateFICCReportResourceData(sourceId int, listFiccSet *ficc_report.GetReporteSetListResp) {
 	var err error
 	defer func() {
 		if err != nil {
@@ -1050,6 +1051,13 @@ func UpdateFICCReportResourceData(sourceId int) {
 		item.SearchContent = annotation + abstract + detail.FieldName + detail.Stock + industrialName + subjectName
 		item.SearchOrderTime = detail.PublishDate
 
+		//跟踪、深度、纪要三个自定义的搜索标签
+		for _, vSt := range listFiccSet.List {
+			if item.SearchTag == vSt.ClassifyNameSecond {
+				item.TagName = vSt.TagName
+			}
+		}
+
 		if totalData == 0 {
 			newId, e := models.AddCygxResourceData(item)
 			if e != nil {

+ 2 - 2
services/tag.go

@@ -182,7 +182,7 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 				resourceDataIdStrs = append(resourceDataIdStrs, strconv.Itoa(v))
 				resourceDataIdMap[v] = true
 			}
-			conditionInit += " AND id IN  (" + strings.Join(resourceDataIdStrs, ",") + ")   OR IF   ( source IN ('ficcreport') , search_tag IN ('黑色调研')  ,1=1 ) "
+			conditionInit += " AND id IN  (" + strings.Join(resourceDataIdStrs, ",") + ")   "
 		}
 	case 1: // 热门活动
 		conf, e := models.GetConfigByCode(utils.CYGX_TAG_HOT_ACTIVITY_ID)
@@ -275,7 +275,7 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 		for _, v := range articleList {
 			articleIds = append(articleIds, strconv.Itoa(v.ArticleId))
 		}
-		conditionInit = " AND source IN ('article','ficcreport')  AND  IF (  source = 'article'  , source_id IN ( " + strings.Join(articleIds, ",") + ")  ,1=1 )  AND IF   ( source =  'ficcreport' , search_tag IN ('晨会纪要','大类资产周报')  ,1=1 )  "
+		conditionInit = " AND source IN ('article','ficcreport')  AND  IF (  source = 'article'  , source_id IN ( " + strings.Join(articleIds, ",") + ")  ,1=1 )  AND IF   ( source =  'ficcreport' , tag_name IN ('跟踪')  ,1=1 )  "
 	}
 
 	return

+ 1 - 0
utils/constants.go

@@ -237,6 +237,7 @@ const (
 	TPL_MSG                                  = "tpl_msg"                           //王芳手机号地址参数
 	TPL_MSG_NEI_RONG_ZU                      = "tpl_msg_nei_rong_zu"               //内容组四人
 	CYGX_TAG_HOT_ACTIVITY_ID          string = "cygx_tag_hot_activity_id"          //标签管理自定义的热门活动ID
+	GET_FICC_REPORT_SET               string = "get_ficc_report_set"               //同步FICC研报的规则
 )
 
 const (