Browse Source

fix:关键词修改

duxin 2 years ago
parent
commit
41958f2ce6

+ 1 - 6
entity/mananger/aheadManager.go

@@ -7,7 +7,6 @@ import (
 	"leadGeneration/entity/search"
 	"leadGeneration/public"
 	"leadGeneration/vars"
-	"log"
 	"sync"
 	"time"
 )
@@ -47,11 +46,7 @@ func (this *AheadManager) GetData(userId, keyWords string, isNew bool) map[strin
 		return nil
 	}
 	//查询数据
-	rDate, err := search.AdvancedProject(userId)
-	if err != nil {
-		log.Printf("[ERROR]AheadManager %s %s GetData Error %v\n", userId, keyWords, err)
-		return nil
-	}
+	rDate := search.AdvancedProject(userId, keyWords)
 	//累计请求计数
 	if rDate != nil && len(rDate) > 0 {
 		if num := redis.Incr(AheadCacheDb, cacheKey); num == 1 {

+ 2 - 5
entity/mananger/customManager.go

@@ -141,12 +141,9 @@ func (this *CustomManager) DoSearch() {
 			}
 		}
 		//查询结果处理
-		data, err := search.PotentialCustomizeAnalysis(obj.UserId)
-		if err != nil {
-			log.Printf("[ERROR]CustomManager %s DoSearch %s Error %v\n", obj.UserId, obj.Value, err)
-		}
+		data := search.PotentialCustomizeAnalysis(obj.UserId, obj.Value)
 		if data != nil || len(data) == 0 {
-			log.Printf("[ERROR]CustomManager %s DoSearch %s Error %v\n", obj.UserId, obj.Value, err)
+			log.Printf("[ERROR]CustomManager %s DoSearch %s Error %v\n", obj.UserId, obj.Value)
 			continue
 		}
 		//缓存结果

+ 61 - 37
entity/search/advancedProject.go

@@ -12,11 +12,11 @@ import (
 	"time"
 )
 
-func AdvancedProject(userid string) (map[string]interface{}, error) {
+func AdvancedProject(userid, keyWord string, types int) map[string]interface{} {
 	mae := new(MarketAnalysisEntity)
-	if !mae.KeyWordFormat(userid) {
+	if !mae.KeyWordFormat(userid, keyWord, types) {
 		log.Printf("关键词格式化化失败 userid:%s", userid)
-		return nil, nil
+		return nil
 	}
 	mae.Types = 2
 	mae.FormatParam.SubType = []string{"拟建", "采购意向"}
@@ -26,7 +26,7 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
 	log.Println("超前项目es查询:", finalSql)
 	res, _, data := public.GetAggs("bidding", "bidding", finalSql)
 	if res == nil || len(res) == 0 || data == nil || len(data) == 0 {
-		return nil, nil
+		return nil
 	}
 	var thisRow SuperProjects
 	for name, object := range res {
@@ -56,7 +56,7 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
 		redisData = append(redisData, _d)
 	}
 	if len(redisData) == 0 {
-		return nil, nil
+		return nil
 	}
 	resData := make([]map[string]interface{}, len(data))
 	for i, v := range data {
@@ -70,14 +70,68 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
 	return map[string]interface{}{
 		"projectTop2":  resData,
 		"subTypeCount": redisData,
-	}, nil
+	}
 }
 
-func (mae *MarketAnalysisEntity) KeyWordFormat(userid string) (ret bool) {
+func (mae *MarketAnalysisEntity) KeyWordFormat(userid, keyWord string, types int) (ret bool) {
 	var (
 		arrMap []map[string]interface{}
 		aItems []interface{}
 	)
+	switch mae.Types {
+	case 1: //分析报告
+		//获取订阅词
+		aItems, ret = Subscription(userid)
+		//无订阅词且未搜索页面 查询搜索词
+		if !ret && types == 1 {
+			arrs := strings.Split(redis.GetStr("other", "s_"+userid), ",")
+			if len(arrs) > 3 {
+				arrs = arrs[:3]
+			}
+			if len(arrs) > 0 {
+				ret = true
+				for _, v := range arrs {
+					arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
+				}
+				item := map[string]interface{}{
+					"a_key":      arrMap,
+					"s_item":     "未分类",
+					"updatetime": time.Now().Unix(),
+				}
+				aItems = append(aItems, item)
+			}
+		}
+	case 2: //超前项目
+		if keyWord != "" { //搜索页面超前项目
+			ret = true
+			for _, v := range strings.Split(keyWord, ",") {
+				arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
+			}
+			item := map[string]interface{}{
+				"a_key":      arrMap,
+				"s_item":     "未分类",
+				"updatetime": time.Now().Unix(),
+			}
+			aItems = append(aItems, item)
+		} else { //没有关键词 订阅页面超前项目
+			//未传搜索词按照关键词匹配
+			aItems, ret = Subscription(userid)
+		}
+	}
+	if ret {
+		//匹配到关键词 进行格式化处理
+		dataType, _ := json.Marshal(aItems)
+		key := string(dataType)
+		if err := json.Unmarshal([]byte(key), &mae.FormatParam.KeysItems); err != nil {
+			log.Println("关键词格式化失败", aItems)
+			return false
+		}
+	}
+	return
+}
+
+func Subscription(userid string) (aItems []interface{}, ret bool) {
+	var arrMap []map[string]interface{}
 	//未传搜索词按照关键词匹配
 	data, ok := public.MQFW.FindById("user", userid, `{"o_jy":1,"o_vipjy":1,"o_member_jy":1,"i_vip_status":1,"i_member_status":1,"s_phone":1,"s_m_phone":1}`)
 	if ok && data != nil && len(*data) > 0 {
@@ -111,38 +165,8 @@ func (mae *MarketAnalysisEntity) KeyWordFormat(userid string) (ret bool) {
 			}
 		}
 	}
-	if !ret {
-		//传搜索次按照搜索词匹配
-		arrs := strings.Split(redis.GetStr("other", "s_"+userid), ",")
-		if len(arrs) > 3 {
-			arrs = arrs[:3]
-		}
-		if len(arrs) > 0 {
-			ret = true
-			for _, v := range arrs {
-				arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
-			}
-			item := map[string]interface{}{
-				"a_key":      arrMap,
-				"s_item":     "未分类",
-				"updatetime": time.Now().Unix(),
-			}
-			aItems = append(aItems, item)
-		}
-	}
-
-	if ret {
-		//匹配到关键词 进行格式化处理
-		dataType, _ := json.Marshal(aItems)
-		key := string(dataType)
-		if err := json.Unmarshal([]byte(key), &mae.FormatParam.KeysItems); err != nil {
-			log.Println("关键词格式化失败", aItems)
-			return false
-		}
-	}
 	return
 }
-
 func Items(aItems []interface{}) bool {
 	if aItems != nil && len(aItems) > 0 {
 		for _, v := range aItems {

+ 5 - 5
entity/search/customizedAnalysis.go

@@ -11,11 +11,11 @@ import (
 
 var Analysis = []string{"<10万", "10万-50万", "50万-100万", "100万-500万", "500万-1000万", "1000万-1亿", "≥1亿"}
 
-func PotentialCustomizeAnalysis(userid string) (map[string]interface{}, error) {
+func PotentialCustomizeAnalysis(userid, keyWord string, types int) map[string]interface{} {
 	mae := new(MarketAnalysisEntity)
-	if !mae.KeyWordFormat(userid) {
+	if !mae.KeyWordFormat(userid, keyWord, types) {
 		log.Printf("关键词格式化化失败 userid:%s", userid)
-		return nil, nil
+		return nil
 	}
 	var aggs []string
 	aggs = append(aggs, aggs_buyerclass, buyer_procurement_scale, winner_procurement_scale)
@@ -25,7 +25,7 @@ func PotentialCustomizeAnalysis(userid string) (map[string]interface{}, error) {
 	log.Println("定制化分析报告es查询:", finalSql)
 	res, _, _ := public.GetAggs("projectset", "projectset", finalSql)
 	if res == nil || len(res) == 0 {
-		return nil, nil
+		return nil
 	}
 	thisRow := Aggregation{}
 	for name, object := range res {
@@ -55,7 +55,7 @@ func PotentialCustomizeAnalysis(userid string) (map[string]interface{}, error) {
 	CustomerDistribute(thisRow, rMap) //客户分布
 	BuyerAnalysis(thisRow, rMap)      //采购单位分布
 	WinningAnalysis(thisRow, rMap)    //中标单位分布
-	return rMap, nil
+	return rMap
 }
 
 // CustomerDistribute 客户分布