浏览代码

fix:redis缓存修改

duxin 2 年之前
父节点
当前提交
ecbb547edf
共有 2 个文件被更改,包括 80 次插入4 次删除
  1. 77 0
      src/jfw/front/classificationTag.go
  2. 3 4
      src/jfw/front/searchOptimize.go

+ 77 - 0
src/jfw/front/classificationTag.go

@@ -2,13 +2,19 @@ package front
 
 import (
 	qu "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
+	"app.yhyue.com/moapp/jybase/redis"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
 	"app.yhyue.com/moapp/jypkg/public"
+	"encoding/json"
 	"fmt"
 	"jy/src/jfw/config"
 	"jy/src/jfw/jyutil"
 	"jy/src/jfw/paging"
+	"log"
 	"math"
 	"math/rand"
+	"sync"
 	"time"
 )
 
@@ -19,10 +25,22 @@ type KeyType struct {
 
 // RegionAndInformationAndTender 1地域 2信息类型 3热门招标
 func RegionAndInformationAndTender() map[string]interface{} {
+	if bytes, err := redis.GetBytes(RedisNameNew, "regionAndInformationAndTender"); err == nil && bytes != nil {
+		rData := map[string]interface{}{}
+		log.Println()
+		if err := json.Unmarshal(*bytes, &rData); err != nil {
+			log.Printf("[MANAGER-ERR]RegionAndInformationAndTender  GetData Error %v \n", err)
+			return nil
+		}
+		return rData
+	}
 	data := make(map[string]interface{})
 	for _, v := range []int{1, 2, 3} {
 		data[fmt.Sprintf("labUrl_%d", v)] = GetLabUrl(v) //1地域 2信息类型 3热门招标
 	}
+	if bytes, err := json.Marshal(data); err == nil && bytes != nil {
+		_ = redis.PutBytes(RedisNameNew, "regionAndInformationAndTender", &bytes, 2*60*60)
+	}
 	return data
 }
 
@@ -44,6 +62,15 @@ func HotSubjectMatter() []map[string]interface{} {
 
 // ContentRecommendation 实用内容推荐
 func ContentRecommendation() map[KeyType][]KeyType {
+	if bytes, err := redis.GetBytes(RedisNameNew, "contentRecommendation"); err == nil && bytes != nil {
+		rData := make(map[KeyType][]KeyType)
+		log.Println()
+		if err := json.Unmarshal(*bytes, &rData); err != nil {
+			log.Printf("[MANAGER-ERR]contentRecommendation  GetData Error %v \n", err)
+			return nil
+		}
+		return rData
+	}
 	columnCode, _ := config.Sysconfig["columnCode"].(map[string]interface{})
 	jySchoolCode := qu.InterfaceToStr(columnCode["招投标攻略"])
 	industryInfoCode := qu.InterfaceToStr(columnCode["行业资讯"])
@@ -75,6 +102,56 @@ func ContentRecommendation() map[KeyType][]KeyType {
 			data[v2] = append(data[v2], v1)
 		}
 	}
+	if bytes, err := json.Marshal(data); err == nil && bytes != nil {
+		_ = redis.PutBytes(RedisNameNew, "contentRecommendation", &bytes, 2*60*60)
+	}
+	return data
+}
+
+// 推荐标讯
+func RecommendationBeacon() map[string]interface{} {
+	if bytes, err := redis.GetBytes(RedisNameNew, "recommendationBeacon"); err == nil && bytes != nil {
+		rData := make(map[string]interface{})
+		log.Println()
+		if err := json.Unmarshal(*bytes, &rData); err != nil {
+			log.Printf("[MANAGER-ERR]recommendationBeacon  GetData Error %v \n", err)
+			return nil
+		}
+		return rData
+	}
+	data := make(map[string]interface{})
+	sy := sync.RWMutex{}
+	wg := sync.WaitGroup{}
+	for _, v := range []string{"招标预告,招标公告,招标结果,招标信用信息"} {
+		wg.Add(1)
+		go func(vst string) {
+			defer wg.Done()
+			var list []map[string]interface{}
+			_, _, lists := bidsearch.GetPcBidSearchData("", "", "", "", vst, "", "", "", "", "", "", "", "", 1, false, nil, bidSearch_field_1, "", false, false, "", 8, "")
+			if lists != nil {
+				for _, v1 := range *lists {
+					v1["_id"] = encrypt.CommonEncodeArticle("content", v1["_id"].(string))
+					delete(v1, "toptype")
+					delete(v1, "s_subscopeclass")
+					tmpdate := v1["publishtime"]
+					v1["publishtime"] = qu.Int64All(tmpdate.(float64))
+					if v1["budget"] != nil {
+						v1["budget"] = ConversionMoeny(v1["budget"])
+					} else if v1["bidamount"] != nil {
+						v1["budget"] = ConversionMoeny(v1["bidamount"])
+					}
+				}
+				list = *lists
+			}
+			sy.Lock()
+			data[v] = list
+			sy.Unlock()
+		}(v)
+	}
+	wg.Wait()
+	if bytes, err := json.Marshal(data); err == nil && bytes != nil {
+		_ = redis.PutBytes(RedisNameNew, "recommendationBeacon", &bytes, 5*60)
+	}
 	return data
 }
 

+ 3 - 4
src/jfw/front/searchOptimize.go

@@ -681,7 +681,7 @@ func (so *SearchOptimize) GetBidSearchQuery() string {
 }
 
 // GetBidSearchListByCache   查询缓存数据
-//未登录用户默认搜索和关键词搜索改成500条和免费用户保持一致--需求调整P260来自产品经理杨蘭20220116
+// 未登录用户默认搜索和关键词搜索改成500条和免费用户保持一致--需求调整P260来自产品经理杨蘭20220116
 func (so *SearchOptimize) GetBidSearchListByCache() (list []*map[string]interface{}, count, total int64) {
 	//缓存数据 最大量是5000条  100页数据
 	l, c, t := func(so *SearchOptimize) (list []*map[string]interface{}, count, total int64) {
@@ -710,10 +710,10 @@ func (so *SearchOptimize) GetBidSearchListByCache() (list []*map[string]interfac
 		//缓存数据
 		count, total, list = so.GetBidSearchList(true)
 		if len(list) > 0 {
-			redis.Put(RedisNameNew, redisCountKey, total, 16*60*60)
+			redis.Put(RedisNameNew, redisCountKey, total, 10*60)
 			b, err := json.Marshal(list)
 			if err == nil {
-				if err = redis.PutBytes(RedisNameNew, redisDataKey, &b, 16*60*60); err != nil {
+				if err = redis.PutBytes(RedisNameNew, redisDataKey, &b, 10*60); err != nil {
 					log.Println("默认搜索查询结果保存redis缓存异常")
 				}
 			} else {
@@ -773,7 +773,6 @@ func (e *SearchByES) GetAllByNgramWithCount() (int64, *[]map[string]interface{})
 	}
 }
 
-//
 // SearchListFormat  格式化数据
 func SearchListFormat(industry string, repl []map[string]interface{}, b bool) (list []*map[string]interface{}) {
 	for _, v := range repl {