浏览代码

Merge branch 'cygx/cygx_15_0' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

zhangchuanxing 1 天之前
父节点
当前提交
cbfaeb8e16
共有 4 个文件被更改,包括 95 次插入1 次删除
  1. 1 1
      controllers/search.go
  2. 7 0
      models/activity.go
  3. 16 0
      models/article.go
  4. 71 0
      services/es_comprehensive.go

+ 1 - 1
controllers/search.go

@@ -743,7 +743,7 @@ func (this *SearchController) ComprehensiveList() {
 	}
 	resp := new(models.HomeResourceDataListResp)
 
-	tmpResult, tmpTotalResult, err := services.SqlComprehensiveSearch(keyWord, startSize, pageSize)
+	tmpResult, tmpTotalResult, err := services.SqlComprehensiveSearch2(keyWord, startSize, pageSize)
 	if err != nil {
 		br.Msg = "检索失败"
 		br.ErrMsg = "检索失败,Err:" + err.Error()

+ 7 - 0
models/activity.go

@@ -964,6 +964,13 @@ func GetAskEmail() (item []*AskEmailRep, err error) {
 	return
 }
 
+func GetAskEmailArticleAuthor() (item []*AskEmailRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity_ask_email   WHERE chart_permission_name != ''   AND admin_id > 0  `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
 // 主题列表
 func GetActivityLabelSpecialListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()

+ 16 - 0
models/article.go

@@ -1094,3 +1094,19 @@ func UpdateCygxCygxArticleBillMulti(items []*CygxArticle) (err error) {
 	}
 	return
 }
+
+// 根据作者名称获取指定时间内所发布的报告
+func GetCygxArticleAuthorListArticleIds(realName, publishDate string) (items []*CygxArticle, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			a.article_id 
+		FROM
+			cygx_article_author AS u
+			INNER JOIN cygx_article AS a ON a.article_id = u.article_id 
+		WHERE
+			1 = 1 
+			AND u.name  = ?
+			AND a.publish_date >= ? `
+	_, err = o.Raw(sql, realName, publishDate).QueryRows(&items)
+	return
+}

+ 71 - 0
services/es_comprehensive.go

@@ -1676,3 +1676,74 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 	total = totalTitle + totalContent
 	return
 }
+
+// 新的搜索规则查研观向15.0
+func SqlComprehensiveSearch2(keyWord string, startSize, pageSize int) (result []*SearchComprehensiveItem, total int, err error) {
+
+	listArticleAuthor, e := models.GetAskEmailArticleAuthor()
+	if e != nil {
+		err = errors.New("GetAskEmailArticleAuthor, Err: " + e.Error())
+		return
+	}
+	var isAuthorkeyWord bool //是否属于作者名称的搜索
+
+	for _, v := range listArticleAuthor {
+		if v.Name == keyWord {
+			isAuthorkeyWord = true
+			break
+		}
+	}
+	var conditionTitle string
+	var parsTitle []interface{}
+	if isAuthorkeyWord {
+		var articIds []int
+		listArticId, e := models.GetCygxArticleAuthorListArticleIds(keyWord, time.Now().AddDate(-2, 0, 0).Format(utils.FormatDate))
+		if e != nil {
+			err = errors.New("GetCygxArticleAuthorListArticleIds, Err: " + e.Error())
+			return
+		}
+		for _, v := range listArticId {
+			articIds = append(articIds, v.ArticleId)
+		}
+		articIds = append(articIds, 0)
+		conditionTitle = ` AND is_hide = 0  AND source = 'article' AND source_id IN (` + utils.GetOrmInReplace(len(articIds)) + `) `
+		parsTitle = append(parsTitle, articIds)
+	} else {
+		listListNoEnd, e := models.GetActivityIdListNoEnd()
+		if e != nil {
+			err = errors.New("GetActivityIdListNoEnd, Err: " + e.Error())
+			return
+		}
+		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, ",") + ")  ,1=1 )"
+		keyWord = "%" + keyWord + "%"
+
+		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 {
+		err = errors.New("GetResourceDataCount, Err: " + e.Error())
+		return
+	}
+	var list []*models.CygxResourceData
+	//全部都是标题搜索
+	list, e = models.GetResourceDataListCondition(conditionTitle, parsTitle, startSize, pageSize)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetResourceDataListCondition, Err: " + e.Error())
+		return
+	}
+	for _, v := range list {
+		item := new(SearchComprehensiveItem)
+		item.SourceId = v.SourceId
+		item.Source = v.Source
+		result = append(result, item)
+	}
+	total = totalTitle
+	return
+}