|
@@ -1522,3 +1522,74 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*SearchComprehensiveItem, total int, err error) {
|
|
|
+ keyWord = "%" + keyWord + "%"
|
|
|
+ var conditionTitle string
|
|
|
+ var parsTitle []interface{}
|
|
|
+ conditionTitle = " AND search_title LIKE ? "
|
|
|
+ parsTitle = append(parsTitle, keyWord)
|
|
|
+ totalTitle, e := models.GetResourceDataCount(conditionTitle, parsTitle)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetResourceDataCount, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var conditionContent string
|
|
|
+ var parsContent []interface{}
|
|
|
+
|
|
|
+ conditionContent = " AND search_content LIKE ? AND search_title NOT LIKE ? "
|
|
|
+ parsContent = append(parsContent, keyWord, keyWord)
|
|
|
+ totalContent, e := models.GetResourceDataCount(conditionContent, parsContent)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxArticleViewRecord, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var searchTotal int
|
|
|
+ searchTotal = (startSize + 1) * pageSize
|
|
|
+ var list []*models.CygxResourceData
|
|
|
+ fmt.Println(totalTitle)
|
|
|
+ fmt.Println(searchTotal)
|
|
|
+ if totalTitle >= searchTotal {
|
|
|
+ fmt.Println("1")
|
|
|
+ //全部都是标题搜索
|
|
|
+ list, e = models.GetResourceDataListCondition(conditionTitle, parsTitle, startSize, pageSize)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetResourceDataListCondition, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else if totalTitle <= searchTotal-pageSize {
|
|
|
+ fmt.Println("2")
|
|
|
+ //全部都是内容搜索
|
|
|
+ list, e = models.GetResourceDataListCondition(conditionContent, parsContent, startSize, pageSize)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetResourceDataListCondition, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ fmt.Println("3")
|
|
|
+ //一半标题搜索,一半内容搜索
|
|
|
+ list, e = models.GetResourceDataListCondition(conditionTitle, parsTitle, startSize, pageSize)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetResourceDataListCondition, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ listContent, e := models.GetResourceDataListCondition(conditionContent, parsContent, 0, pageSize-totalContent%pageSize)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetResourceDataListCondition, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listContent {
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ item := new(SearchComprehensiveItem)
|
|
|
+ item.SourceId = v.SourceId
|
|
|
+ item.Source = v.Source
|
|
|
+ result = append(result, item)
|
|
|
+ }
|
|
|
+ total = totalTitle + totalContent
|
|
|
+ return
|
|
|
+}
|