Przeglądaj źródła

feat:主搜索框 关键词搜索

wangshan 2 lat temu
rodzic
commit
a562e26a48

+ 27 - 12
jyBXCore/rpc/entity/search.go

@@ -10,7 +10,6 @@ import (
 	IC "jyBXCore/rpc/init"
 	"jyBXCore/rpc/service"
 	"jyBXCore/rpc/util"
-	"log"
 	"strings"
 )
 
@@ -79,7 +78,6 @@ func (kws *KeyWordsSearch) GetBidSearchListByCache(in *bxcore.SearchReq) (list [
 	if len(l) > 0 {
 		list = l[in.PageNum : (in.PageNum+1)*in.PageSize]
 		count = c
-		log.Println("list:", len(list))
 		//是否收藏
 		util.MakeCollection(in.UserId, list)
 	}
@@ -121,10 +119,30 @@ func (kws *KeyWordsSearch) SaveKeyWordsToHistory(in *bxcore.SearchReq) {
 
 // SearchParamsHandle 搜索条件 处理
 func (kws *KeyWordsSearch) SearchParamsHandle(in *bxcore.SearchReq) {
+	// in.SearchGroup 搜索分组 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+	if in.SearchGroup < 0 {
+		in.SearchGroup = 0
+	}
+	//信息类型参数为空  根据搜索分组 初始化信息类型
+	if in.TopType == "" && in.Subtype == "" {
+		in.Subtype = IC.C.DefaultTopTypes[in.SearchGroup]
+	}
+	// in.SearchMode 搜索模式 搜索模式:0:精准搜索;1:模糊搜索
+	if in.SearchMode < 0 {
+		in.SearchMode = 0
+	}
+	// in.WordsMode 搜索关键词模式;默认0:包含所有,1:包含任意
+	if in.WordsMode < 0 {
+		in.WordsMode = 0
+	}
 	//默认每页数据量
-	if in.PageSize == 0 {
+	if in.PageSize <= 0 {
 		in.PageSize = 50
 	}
+	//第一页
+	if in.PageNum <= 0 {
+		in.PageNum = 1
+	}
 	//行业格式化
 	if in.Industry != "" {
 		in.Industry = strings.TrimSpace(in.Industry)
@@ -161,16 +179,13 @@ func (kws *KeyWordsSearch) SearchParamsHandle(in *bxcore.SearchReq) {
 
 // GetBidSearchList 非空搜索 查询
 func (kws *KeyWordsSearch) GetBidSearchList(in *bxcore.SearchReq) (count int64, list []*bxcore.SearchList, numberMsg string) {
-	var start = int((in.PageNum - 1) * in.PageSize)
 	//排除异常in.PageNum参数
-	if start >= 0 {
-		count, list = service.GetBidSearchData(in)
-		util.MakeCollection(in.UserId, list)
-		numberMsg = fmt.Sprintf("%d", count) //返回数据总量提示信息
-		limitCount := MC.If(in.IsPay, int64(util.SearchPageSize*util.SearchMaxPageNum_PAYED), int64(util.SearchPageSize*util.SearchMaxPageNum)).(int64)
-		if count > limitCount {
-			count = limitCount //付费用户count 最多5000条,100页数据,每页50条;免费用户count 最多500条,10页数据,每页50条。
-		}
+	count, list = service.GetBidSearchData(in)
+	util.MakeCollection(in.UserId, list)
+	numberMsg = fmt.Sprintf("%d", count) //返回数据总量提示信息
+	limitCount := MC.If(in.IsPay, int64(util.SearchPageSize*util.SearchMaxPageNum_PAYED), int64(util.SearchPageSize*util.SearchMaxPageNum)).(int64)
+	if count > limitCount {
+		count = limitCount //付费用户count 最多5000条,100页数据,每页50条;免费用户count 最多500条,10页数据,每页50条。
 	}
 	return
 }

+ 1 - 2
jyBXCore/rpc/internal/logic/getsearchlistlogic.go

@@ -84,9 +84,8 @@ func (l *GetSearchListLogic) GetSearchList(in *bxcore.SearchReq) (*bxcore.Search
 		t1 := time.Now()
 		if b := util.IsOptimize(IC.C, in); b {
 			res.Count, res.List, res.NumberMsg = ks.GetBidSearchList(in) // util.GetBidSearchData(in)
-			//res.Count += 1 //移动端:避免刚好50条 无法加载下一页数据//直接返回数据总量
+			logx.Info("1查询耗时", time.Since(t1))
 		}
-		logx.Info("1查询耗时", time.Since(t1))
 		t2 := time.Now()
 		//如果优化查询数据量提少,和配置数据量作比较,不够的话走原始查询
 		if res.Count < IC.C.PaySearchLimit.PageSize {

+ 2 - 1
jyBXCore/rpc/model/es/es.go

@@ -3,6 +3,7 @@ package es
 import (
 	elastic "app.yhyue.com/moapp/jybase/esv1"
 	"fmt"
+	"github.com/zeromicro/go-zero/core/logx"
 	"strconv"
 	"strings"
 )
@@ -56,7 +57,7 @@ func (e *ESSearch) GetAllByNgramWithCount() (int64, *[]map[string]interface{}) {
 		if e.Start > -1 {
 			queryStr = queryStr[:len(queryStr)-1] + `,"from":` + strconv.Itoa(e.Start) + `,"size":` + strconv.Itoa(e.Limit) + "}"
 		}
-		//logx.Info("queryStr:", queryStr)
+		logx.Info("queryStr:", queryStr)
 		return elastic.GetWithCount(e.Index, e.IType, queryStr)
 	} else {
 		return 0, nil

+ 2 - 2
jyBXCore/rpc/service/search.go

@@ -53,8 +53,8 @@ func GetBidSearchData(in *bxcore.SearchReq) (count int64, list []*bxcore.SearchL
 			Fields:     MC.If(IC.C.FileSignBool, MC.If(in.IsPay, es.BidSearchFieldOfVip, es.BidSearchFieldBase).(string)+es.BidSearchFieldFile, MC.If(in.IsPay, es.BidSearchFieldOfVip, es.BidSearchFieldBase).(string)).(string), //IC.C.FileSignBool列表是否显示附件开关
 			Start:      start,
 			Limit:      int(in.PageSize),
-			Count:      MC.If(strings.Contains(in.SelectType, "detail"), 115, 0).(int), //高亮正文数量
-			HighLight:  MC.If(strings.Contains(in.SelectType, "detail"), 1, 0).(bool),  //是否高亮正文
+			Count:      MC.If(strings.Contains(in.SelectType, "detail"), 115, 0).(int),       //高亮正文数量
+			HighLight:  MC.If(strings.Contains(in.SelectType, "detail"), true, false).(bool), //是否高亮正文
 		}
 		var repl *[]map[string]interface{}
 		count, repl = biddingSearch.GetAllByNgramWithCount()

+ 4 - 4
jyBXCore/rpc/util/search.go

@@ -288,10 +288,10 @@ func SearchListFormat(industry string, repl *[]map[string]interface{}, b bool) (
 					}
 				}
 				searchList.WinnerInfo = append(searchList.WinnerInfo, &bxcore.WinnerInfo{
-					Winner:       wv,                                                                       //中标企业 需要单独处理
-					WinnerTel:    MC.ObjToString(v["winnertel"]),                                           //中标企业联系电话
-					WinnerPerson: MC.ObjToString(v["winnerperson"]),                                        //中标企业联系人
-					WinnerId:     MC.If(winnerId != "", ME.EncodeArticleId2ByCheck(winnerId), "").(string), //中标企业加密id
+					Winner:       wv,                                                                                                     //中标企业 需要单独处理
+					WinnerTel:    MC.ObjToString(v["winnertel"]),                                                                         //中标企业联系电话
+					WinnerPerson: MC.ObjToString(v["winnerperson"]),                                                                      //中标企业联系人
+					WinnerId:     MC.If(winnerId != "" && len([]rune(winnerId)) > 12, ME.EncodeArticleId2ByCheck(winnerId), "").(string), //中标企业加密id  存在winnerId 异常的情况
 				})
 			}
 		}