|
@@ -14,7 +14,6 @@ import (
|
|
|
"util"
|
|
|
|
|
|
"github.com/go-xweb/xweb"
|
|
|
- "gopkg.in/mgo.v2/bson"
|
|
|
)
|
|
|
|
|
|
type IndexSearch struct {
|
|
@@ -300,110 +299,10 @@ func getPushHistory(userId string) (result []*jy.SubPushList) {
|
|
|
findSQL := "select * from pushsubscribe where userid = '" + userId + "' and date >= %d order by id desc limit 50"
|
|
|
list := util.PushMysql.SelectBySql(fmt.Sprintf(findSQL, time.Now().AddDate(0, 0, -7).Unix()))
|
|
|
if len(*list) > 0 {
|
|
|
- pushCas := getJyPushs(*list)
|
|
|
- result = getInfoByIds(pushCas)
|
|
|
+ pushCas := jy.SubscribePush.GetJyPushs(*list)
|
|
|
+ result = jy.SubscribePush.GetInfoByIds(util.MQFW, pushCas)
|
|
|
} else {
|
|
|
result = []*jy.SubPushList{}
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
-func getJyPushs(datas []map[string]interface{}) (pushCas []*jy.PushCa) {
|
|
|
- pushCas = []*jy.PushCa{}
|
|
|
- for _, v := range datas {
|
|
|
- pushCas = append(pushCas, &jy.PushCa{
|
|
|
- Date: qutil.Int64All(v["date"]),
|
|
|
- InfoId: qutil.ObjToString(v["infoid"]),
|
|
|
- Visit: qutil.IntAll(v["isvisit"]),
|
|
|
- Index: 1,
|
|
|
- Keys: strings.Split(qutil.ObjToString(v["matchkeys"]), " "),
|
|
|
- Type: qutil.IntAll(v["type"]),
|
|
|
- })
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-//根据id取内容
|
|
|
-func getInfoByIds(pushCas []*jy.PushCa) []*jy.SubPushList {
|
|
|
- array := make([]*jy.SubPushList, len(pushCas))
|
|
|
- if len(pushCas) == 0 {
|
|
|
- return array
|
|
|
- }
|
|
|
- m := map[string]bool{}
|
|
|
- ids := []string{}
|
|
|
- for _, v := range pushCas {
|
|
|
- if m[v.InfoId] {
|
|
|
- continue
|
|
|
- }
|
|
|
- m[v.InfoId] = true
|
|
|
- ids = append(ids, v.InfoId)
|
|
|
- }
|
|
|
- infos := map[string]map[string]interface{}{}
|
|
|
- //redis
|
|
|
- es_ids := []string{}
|
|
|
- // log.Println("---:", ids)
|
|
|
- for _, v := range ids {
|
|
|
- info_i := redis.Get("pushcache_1", fmt.Sprintf("info_%s", v))
|
|
|
- if info_i != nil {
|
|
|
- info_m, _ := info_i.(map[string]interface{})
|
|
|
- info_m["_id"] = v
|
|
|
- infos[v] = info_m
|
|
|
- } else {
|
|
|
- es_ids = append(es_ids, v)
|
|
|
- }
|
|
|
- }
|
|
|
- // log.Println(es_ids)
|
|
|
- //elasticsearch
|
|
|
- if len(es_ids) > 0 {
|
|
|
- list := elastic.Get("bidding", "bidding", fmt.Sprintf(query_ids, strings.Join(es_ids, `","`), len(es_ids)))
|
|
|
- if list != nil {
|
|
|
- for _, v := range *list {
|
|
|
- _id := qutil.ObjToString(v["_id"])
|
|
|
- infos[_id] = v
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //mongodb bidding
|
|
|
- mgo_ids := []bson.ObjectId{}
|
|
|
- for _, v := range es_ids {
|
|
|
- if infos[v] == nil {
|
|
|
- mgo_ids = append(mgo_ids, bson.ObjectIdHex(v))
|
|
|
- }
|
|
|
- }
|
|
|
- if len(mgo_ids) > 0 {
|
|
|
- list, ok := util.MQFW.Find("bidding", map[string]interface{}{"_id": map[string]interface{}{"$in": mgo_ids}}, nil, mongodb_fields, false, -1, -1)
|
|
|
- if ok && *list != nil {
|
|
|
- for _, v := range *list {
|
|
|
- _id := qutil.BsonIdToSId(v["_id"])
|
|
|
- v["_id"] = _id
|
|
|
- infos[_id] = v
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //mongodb bidding_back
|
|
|
- mgo_back_ids := []bson.ObjectId{}
|
|
|
- for _, v := range mgo_ids {
|
|
|
- if infos[qutil.BsonIdToSId(v)] == nil {
|
|
|
- mgo_back_ids = append(mgo_back_ids, v)
|
|
|
- }
|
|
|
- }
|
|
|
- if len(mgo_back_ids) > 0 {
|
|
|
- list, ok := util.MQFW.Find("bidding_back", map[string]interface{}{"_id": map[string]interface{}{"$in": mgo_back_ids}}, nil, mongodb_fields, false, -1, -1)
|
|
|
- if ok && *list != nil {
|
|
|
- for _, v := range *list {
|
|
|
- _id := qutil.BsonIdToSId(v["_id"])
|
|
|
- v["_id"] = _id
|
|
|
- infos[_id] = v
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //
|
|
|
- for k, v := range pushCas {
|
|
|
- info := infos[v.InfoId]
|
|
|
- if info == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- array[k] = jy.SubscribePush.InfoFormat(v, &info)
|
|
|
- }
|
|
|
- return array
|
|
|
-}
|