zhangchuanxing hai 2 meses
pai
achega
cf13b80563
Modificáronse 3 ficheiros con 34 adicións e 2 borrados
  1. 8 0
      models/activity.go
  2. 8 0
      models/report.go
  3. 18 2
      services/es_comprehensive.go

+ 8 - 0
models/activity.go

@@ -1405,3 +1405,11 @@ func UpdateCygxActivityyidongActivityId(yidongActivityId, activityTime, yidongTi
 	_, err = o.Raw(sql, yidongActivityId, activityTime, yidongTitle).Exec()
 	return
 }
+
+// 获取所有未开始、进行中的活动ID
+func GetActivityIdListNoEnd() (items []*CygxActivity, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT activity_id  FROM cygx_activity WHERE  active_state IN (1,2) `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 8 - 0
models/report.go

@@ -39,6 +39,11 @@ type IndustrialManagement struct {
 	Source                 int `description:"来源 1:弘则资源包(报告)、2:研选主题(报告)"`
 }
 
+type TimeLineReportResp struct {
+	Title       string `description:"标题"`
+	PublishDate string `description:"发布时间"`
+}
+
 type MicroVideoSimpleInfo struct {
 	Id                  int    `description:"视频ID"`
 	Title               string `description:"标题"`
@@ -883,6 +888,8 @@ type IndustrialManagementHotResp struct {
 	MinReportTime          string                `description:"报告最早发布时间"`
 	ArticleReadNum         int                   `description:"文章阅读数量"`
 	Source                 int                   `description:"来源 1:弘则资源包(报告)、2:研选主题(报告)"`
+	TimeLineData           string                `description:"时间线所关联最新三篇文章的json数据"`
+	ListTimeLine           []TimeLineReportResp  `description:"时间线所关联最新三篇文章列表"`
 	IndustrialSubjectList  []*IndustrialSubject  `description:"标的列表"`
 	IndustryVideo          *MicroVideoSimpleInfo `description:"产业视频"`
 	AuthInfo               *UserPermissionAuthInfo
@@ -1241,6 +1248,7 @@ type SearchReportAndResourceResp struct {
 func GetSearchResourceList(userId int, condition string, startSize, pageSize int) (items []*IndustrialManagementHotResp, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
+   			m.time_line_data,
 			m.industry_name,
 			m.industrial_management_id,
  			MAX( a.publish_date ) as publish_date_order,

+ 18 - 2
services/es_comprehensive.go

@@ -1282,6 +1282,14 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
 			}
 		}
 		for _, v := range listIndustrialResourceIds {
+			if v.TimeLineData == "" {
+				v.ListTimeLine = make([]models.TimeLineReportResp, 0)
+			} else {
+				if err = json.Unmarshal([]byte(v.TimeLineData), &v.ListTimeLine); err != nil {
+					e = errors.New("Unmarshal, Err: " + e.Error())
+					//return
+				}
+			}
 			v.Source = 1
 			mapItems[fmt.Sprint("industrialsourceHz", v.IndustrialManagementId)].IndustrialResource = v
 		}
@@ -1560,10 +1568,18 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
 }
 
 func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*SearchComprehensiveItem, total int, err error) {
+	listListNoEnd, e := models.GetActivityIdListNoEnd()
+	var activityIds []string
+	for _, v := range listListNoEnd {
+		activityIds = append(activityIds, strconv.Itoa(v.ActivityId))
+	}
+	activityIds = append(activityIds, "0")
+
+	conditionActivity := " AND IF   ( source IN('activity') , source_id IN (" + strings.Join(activityIds, ",") + ") != 31 ,1=1 )"
 	keyWord = "%" + keyWord + "%"
 	var conditionTitle string
 	var parsTitle []interface{}
-	conditionTitle = " AND is_hide = 0  AND search_title LIKE ? AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) "
+	conditionTitle = " AND is_hide = 0  AND search_title LIKE ? AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) " + conditionActivity
 	parsTitle = append(parsTitle, keyWord)
 	totalTitle, e := models.GetResourceDataCount(conditionTitle, parsTitle)
 	if e != nil {
@@ -1574,7 +1590,7 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 	var conditionContent string
 	var parsContent []interface{}
 
-	conditionContent = " AND is_hide = 0 AND search_content LIKE ? AND search_title  NOT LIKE ?  AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) "
+	conditionContent = " AND is_hide = 0 AND search_content LIKE ? AND search_title  NOT LIKE ?  AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) " + conditionActivity
 	parsContent = append(parsContent, keyWord, keyWord)
 	totalContent, e := models.GetResourceDataCount(conditionContent, parsContent)
 	if e != nil {