فهرست منبع

feat:补正文

wangchuanjin 1 سال پیش
والد
کامیت
7e4d341397
1فایلهای تغییر یافته به همراه34 افزوده شده و 36 حذف شده
  1. 34 36
      jyBXSubscribe/rpc/model/push.go

+ 34 - 36
jyBXSubscribe/rpc/model/push.go

@@ -3,7 +3,6 @@ package model
 import (
 	"encoding/json"
 	"fmt"
-	"go.mongodb.org/mongo-driver/bson"
 	IC "jyBXSubscribe/rpc/init"
 	ms "jyBXSubscribe/rpc/model/service"
 	"jyBXSubscribe/rpc/type/bxsubscribe"
@@ -14,6 +13,8 @@ import (
 	"sync"
 	"time"
 
+	"go.mongodb.org/mongo-driver/bson"
+
 	"github.com/gogf/gf/v2/util/gconv"
 
 	"app.yhyue.com/moapp/jybase/common"
@@ -346,7 +347,7 @@ func (s *subscribePush) Datas(spqp *SubPushQueryParam, bsp *ViewCondition) (hasN
 		// 返回信息补正文
 		if subPush != nil && len(subPush.Datas) > 0 {
 			if strings.Contains(strings.Join(bsp.SelectType, ","), "detail") {
-				getDetail(subPush)
+				getDetail(spqp.Mgo_bidding, spqp.Bidding, spqp.Bidding_back, subPush)
 			} else {
 				for _, data := range subPush.Datas {
 					data.Detail = "" // 删掉正文
@@ -391,7 +392,7 @@ func (s *subscribePush) Datas(spqp *SubPushQueryParam, bsp *ViewCondition) (hasN
 		// 返回信息补正文
 		if allCache != nil && len(allCache.Datas) > 0 {
 			if strings.Contains(strings.Join(bsp.SelectType, ","), "detail") {
-				getDetail(allCache)
+				getDetail(spqp.Mgo_bidding, spqp.Bidding, spqp.Bidding_back, allCache)
 			} else {
 				for _, data := range allCache.Datas {
 					data.Detail = "" // 删掉正文
@@ -938,6 +939,35 @@ func (s *subscribePush) GetInfoByIds(Mgo_bidding mongodb.MongodbSim, bidding, bi
 		m[v.InfoId] = true
 		ids = append(ids, v.InfoId)
 	}
+	infos := getInfosByIds(Mgo_bidding, bidding, bidding_back, isDetail, ids)
+	for k, v := range pushCas {
+		info := infos[v.InfoId]
+		if info == nil {
+			info = map[string]interface{}{}
+		}
+		array[k] = s.InfoFormat(v, &info, isPay, isDetail)
+	}
+	return array
+}
+
+func getDetail(Mgo_bidding mongodb.MongodbSim, bidding, bidding_back string, subPush *SubPush) {
+	var ids []string
+	for _, data := range subPush.Datas {
+		id := encrypt.DecodeArticleId2ByCheck(data.XId)
+		ids = append(ids, id[0])
+	}
+	infos := getInfosByIds(Mgo_bidding, bidding, bidding_back, true, ids)
+	for _, data := range subPush.Datas {
+		id := encrypt.DecodeArticleId2ByCheck(data.XId)
+		if infos[id[0]] == nil {
+			continue
+		}
+		data.Detail = common.ObjToString(infos[id[0]]["detail"])
+	}
+}
+
+//
+func getInfosByIds(Mgo_bidding mongodb.MongodbSim, bidding, bidding_back string, isDetail bool, ids []string) map[string]map[string]interface{} {
 	infos := map[string]map[string]interface{}{}
 	//redis
 	pool := make(chan bool, 3)
@@ -966,8 +996,6 @@ func (s *subscribePush) GetInfoByIds(Mgo_bidding mongodb.MongodbSim, bidding, bi
 		}(vv)
 	}
 	wait.Wait()
-
-	log.Println("ESSSS")
 	//elasticsearch
 	if len(es_ids) > 0 {
 		list := elastic.Get("bidding", "bidding", fmt.Sprintf(common.If(isDetail, query1, query).(string), strings.Join(es_ids, `","`), len(es_ids)))
@@ -978,7 +1006,6 @@ func (s *subscribePush) GetInfoByIds(Mgo_bidding mongodb.MongodbSim, bidding, bi
 			}
 		}
 	}
-	log.Println("mongodb")
 	//mongodb bidding
 	mgo_ids := []primitive.ObjectID{}
 	for _, v := range es_ids {
@@ -997,7 +1024,6 @@ func (s *subscribePush) GetInfoByIds(Mgo_bidding mongodb.MongodbSim, bidding, bi
 			}
 		}
 	}
-	log.Println("bidding_back")
 	//mongodb bidding_back
 	mgo_back_ids := []primitive.ObjectID{}
 	for _, v := range mgo_ids {
@@ -1015,35 +1041,7 @@ func (s *subscribePush) GetInfoByIds(Mgo_bidding mongodb.MongodbSim, bidding, bi
 			}
 		}
 	}
-	for k, v := range pushCas {
-		info := infos[v.InfoId]
-		if info == nil {
-			info = map[string]interface{}{}
-		}
-		array[k] = s.InfoFormat(v, &info, isPay, isDetail)
-	}
-	return array
-}
-
-func getDetail(subPush *SubPush) {
-	var ids []string
-	rmap := make(map[string]*bxsubscribe.SubscribeInfo, len(subPush.Datas))
-	for _, data := range subPush.Datas {
-		id := encrypt.DecodeArticleId2ByCheck(data.XId)
-		ids = append(ids, id[0])
-		rmap[id[0]] = data
-	}
-	list := elastic.Get("bidding", "bidding", fmt.Sprintf(query2, strings.Join(ids, `","`), len(ids)))
-	if list != nil {
-		for _, v := range *list {
-			_id := common.ObjToString(v["_id"])
-			rmap[_id].Detail = common.ObjToString(v["detail"])
-		}
-	}
-	subPush.Datas = nil
-	for _, info := range rmap {
-		subPush.Datas = append(subPush.Datas, info)
-	}
+	return infos
 }
 
 // 获取历史推送