Browse Source

周度思考与产业透视处理

xingzai 2 năm trước cách đây
mục cha
commit
10e7a45d6e

+ 12 - 1
controllers/tactics.go

@@ -118,7 +118,18 @@ func (this *TacticsController) List() {
 		listTacticsSrt = strings.TrimRight(listTacticsSrt, ",")
 		condition = ` AND category_id IN(` + listTacticsSrt + `)`
 	} else {
-		condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
+		categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(categoryId)
+		if errCategory != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+			return
+		}
+		if categoryIdSet != "" {
+			condition = ` AND category_id IN(` + categoryIdSet + `)`
+		} else {
+			condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
+		}
+
 	}
 	total, err = models.GetHomeCount(condition, pars)
 	if err != nil {

+ 10 - 3
models/industrial_management.go

@@ -325,6 +325,14 @@ func UpdateIndustrialManagementArtReadNum(num, industrialManagementId int) (err
 	return
 }
 
+//更新产业布局时间
+func UpdateIndustrialManagementLayoutTime(layoutTime string, industrialManagementId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_industrial_management SET layout_time = ? WHERE industrial_management_id = ?`
+	_, err = o.Raw(sql, layoutTime, industrialManagementId).Exec()
+	return
+}
+
 //获取产业下阅读数量第三的产业详情
 func GetIndustrialManagementHot3(chartPermissionId int) (item *IndustrialManagementRep, err error) {
 	o := orm.NewOrm()
@@ -405,7 +413,7 @@ func GetIndustrialManagementNewList(condition string) (items []*IndustrialManage
 //获取产业关联标的列表
 func GetIndustrialManagementForSubjecName(subjectName string, chartPermissionId int) (items []*IndustrialSubject, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT s.subject_name,s.industrial_subject_id,m.industrial_management_id,m.industry_name
+	sql := `SELECT s.subject_name,s.industrial_subject_id,m.industrial_management_id,m.industry_name,layout_time
 			FROM cygx_industrial_subject as s 
 			INNER JOIN cygx_industrial_management as m ON m.industrial_management_id = s.industrial_management_id
 			WHERE subject_name IN (` + subjectName + `) AND m.chart_permission_id = ? `
@@ -613,10 +621,9 @@ func GetSourceIndustryByName(industryName string) (item *IndustrialManagement, e
 	return
 }
 
-
 // GetIndustryByName 通过名称获取产业
 func GetIndustryByName(industryName string) (item *IndustrialManagement, err error) {
 	sql := `SELECT * FROM cygx_industrial_management WHERE industry_name = ? LIMIT 1`
 	err = orm.NewOrm().Raw(sql, industryName).QueryRow(&item)
 	return
-}
+}

+ 1 - 0
models/report.go

@@ -44,6 +44,7 @@ type IndustrialSubject struct {
 	IndustrialManagementId int    `description:"产业id"`
 	SubjectName            string `description:"标的名称"`
 	IndustryName           string `description:"产业名称"`
+	LayoutTime             string `description:"产业布局时间"`
 }
 
 //获取产业报告数量

+ 15 - 1
models/report_mapping.go

@@ -6,6 +6,7 @@ import (
 
 type ReportMapping struct {
 	CategoryId          int    `description:"分类ID"`
+	CategoryIdSet       int    `description:"分类ID手动设置的分类"`
 	SubCategoryName     string `description:"主题"`
 	MatchTypeName       string `description:"分类名称"`
 	ChartPermissionName string `description:"行业名称"`
@@ -114,6 +115,19 @@ func GetdetailByCategoryId(categoryId int) (item *ReportMapping, err error) {
 	return
 }
 
+//通过分类ID获取详情
+func GetdetailByCategoryIdSet(categoryId int) (ids string, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+		GROUP_CONCAT( DISTINCT category_id SEPARATOR ',' ) AS ids 
+	FROM
+		cygx_report_mapping 
+	WHERE
+		category_id_set = ? `
+	err = o.Raw(sql, categoryId).QueryRow(&ids)
+	return
+}
+
 //通过分类ID获取详情
 func GetdetailByCategoryIdPush(categoryId int) (item *ReportMapping, err error) {
 	o := orm.NewOrm()
@@ -152,7 +166,7 @@ func CheckThisCategoryNewArticleIsRead(uid, categoryId int) (count int, err erro
 //获取策略下面的所有分类
 func GetMatchTypeNamenNotNull() (items []*ReportMapping, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT category_id,match_type_name FROM cygx_report_mapping WHERE match_type_name <> ''`
+	sql := `SELECT category_id,category_id_set,match_type_name FROM cygx_report_mapping WHERE match_type_name <> ''`
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }

+ 8 - 1
services/article.go

@@ -678,7 +678,7 @@ func GetArticleListByApi(cont context.Context) (err error) {
 }
 
 //func init() {
-//	HandleArticleListByApi(7370)
+//	HandleArticleListByApi(7507)
 //}
 
 //处理同步过来的文章
@@ -828,6 +828,10 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		fmt.Println("GetTacticsList Err:", errMatch.Error())
 		return err
 	}
+	//mapCategoryIdSet := make(map[int]int)
+	//for _, vMatch := range listGetMatchTypeName {
+	//	mapCategoryIdSet[vMatch.CategoryId] = vMatch.CategoryIdSet
+	//}
 	fmt.Println("list len:", len(list))
 	noSummaryArticleIds := "3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470" //非纪要库类型的文章ID
 	listNoSummaryArticleIds := strings.Split(noSummaryArticleIds, ",")
@@ -1026,6 +1030,9 @@ func HandleArticleListByApi(artcleId int) (err error) {
 								mapIndustrialId[vIndustrial.IndustrialManagementId] = vIndustrial.IndustrialManagementId
 								industrialSubjectIdStr += strconv.Itoa(vIndustrial.IndustrialSubjectId) + ","
 								mapManagementForSubject[vIndustrial.IndustryName] += vIndustrial.SubjectName + "/"
+								if vIndustrial.LayoutTime == "0000-00-00 00:00:00" {
+									go models.UpdateIndustrialManagementLayoutTime(v.PublishDate.Format(utils.FormatDateTime), vIndustrial.IndustrialManagementId)
+								}
 							}
 
 							industrialManagementIdStr = strings.TrimRight(industrialManagementIdStr, ",")