|
@@ -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
|
|
|
+}
|