|
@@ -7,6 +7,7 @@ import (
|
|
"qfw/util/elastic"
|
|
"qfw/util/elastic"
|
|
"qfw/util/jy"
|
|
"qfw/util/jy"
|
|
"qfw/util/redis"
|
|
"qfw/util/redis"
|
|
|
|
+ "sort"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
@@ -428,11 +429,31 @@ func (h *historyPush) getInfoByIds(pushCas []*jy.PushCa) []map[string]interface{
|
|
return array
|
|
return array
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+type resultData struct {
|
|
|
|
+ Area string `json:"area"`
|
|
|
|
+ Id string `json:"_id"`
|
|
|
|
+ Publishtime int64 `json:"publishtime"`
|
|
|
|
+ Type string `json:"stype"`
|
|
|
|
+ S_subscopeclass string `json:"s_subscopeclass"`
|
|
|
|
+ Title string `json:"title"`
|
|
|
|
+ Ca_isvip int `json:"ca_isvip"`
|
|
|
|
+ Ca_date int64 `json:"ca_date"`
|
|
|
|
+ Ca_isvisit int `json:"ca_isvisit"`
|
|
|
|
+ Ca_index int `json:"ca_index"`
|
|
|
|
+ Matchkeys []string `json:"matchkeys"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type resultSort []*resultData
|
|
|
|
+
|
|
|
|
+func (p resultSort) Len() int { return len(p) }
|
|
|
|
+func (p resultSort) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
|
|
|
|
+func (p resultSort) Less(i, j int) bool { return p[i].Ca_index > p[j].Ca_index }
|
|
|
|
+
|
|
//保存最近7天的数据到历史记录
|
|
//保存最近7天的数据到历史记录
|
|
-func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []map[string]interface{}) {
|
|
|
|
|
|
+func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []*resultData) {
|
|
allquery := `{"range":{"publishtime":{"gt":%s}}}`
|
|
allquery := `{"range":{"publishtime":{"gt":%s}}}`
|
|
allquery = fmt.Sprintf(allquery, fmt.Sprint(time.Now().AddDate(0, 0, -7).Unix()))
|
|
allquery = fmt.Sprintf(allquery, fmt.Sprint(time.Now().AddDate(0, 0, -7).Unix()))
|
|
- // allquery = ``
|
|
|
|
|
|
+ allquery = ``
|
|
keys, list := PushView(userId, allquery, field, 1, 50)
|
|
keys, list := PushView(userId, allquery, field, 1, 50)
|
|
log.Println(list)
|
|
log.Println(list)
|
|
if list == nil || len(*list) == 0 {
|
|
if list == nil || len(*list) == 0 {
|
|
@@ -446,13 +467,12 @@ func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []map[string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- result := []map[string]interface{}{}
|
|
|
|
- fields := []string{"userid", "infoid", "date", "matchkeys", "area", "city", "type", "subscopeclass"}
|
|
|
|
- values := []interface{}{}
|
|
|
|
publishTitle := map[string]bool{}
|
|
publishTitle := map[string]bool{}
|
|
now := time.Now()
|
|
now := time.Now()
|
|
keystr := strings.Join(matchkeys, " ")
|
|
keystr := strings.Join(matchkeys, " ")
|
|
- for k, v := range *list {
|
|
|
|
|
|
+ var resultList []*resultData
|
|
|
|
+ for _, v := range *list {
|
|
|
|
+ var myInsert = make(map[string]interface{})
|
|
title := strings.Replace(v["title"].(string), "\n", "", -1)
|
|
title := strings.Replace(v["title"].(string), "\n", "", -1)
|
|
area_check := util.ObjToString(v["area"])
|
|
area_check := util.ObjToString(v["area"])
|
|
city_check := util.ObjToString(v["city"])
|
|
city_check := util.ObjToString(v["city"])
|
|
@@ -461,38 +481,34 @@ func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []map[string
|
|
} else {
|
|
} else {
|
|
publishTitle[area_check+title] = true
|
|
publishTitle[area_check+title] = true
|
|
}
|
|
}
|
|
- values = append(values, userId, util.ObjToString(v["_id"]), now.Unix(), keystr, area_check, city_check, 0, v["s_subscopeclass"])
|
|
|
|
|
|
+ myInsert["userid"] = userId
|
|
|
|
+ myInsert["infoid"] = util.ObjToString(v["_id"])
|
|
|
|
+ myInsert["date"] = now.Unix()
|
|
|
|
+ myInsert["matchkeys"] = keystr
|
|
|
|
+ myInsert["area"] = area_check
|
|
|
|
+ myInsert["city"] = city_check
|
|
|
|
+ myInsert["type"] = 0
|
|
|
|
+ myInsert["isvisit"] = 0
|
|
|
|
+ myInsert["isvip"] = 0
|
|
|
|
+ myInsert["buyerclass"] = v["buyerclass"]
|
|
|
|
+ id := Mysql.Insert("pushsubscribe", myInsert)
|
|
info := map[string]interface{}{
|
|
info := map[string]interface{}{
|
|
- "area": area_check,
|
|
|
|
- "_id": util.EncodeArticleId2ByCheck(util.ObjToString(v["_id"])),
|
|
|
|
- "publishtime": v["publishtime"],
|
|
|
|
- "stype": v["type"],
|
|
|
|
- "toptype": v["toptype"],
|
|
|
|
- "subtype": v["subtype"],
|
|
|
|
- "s_subscopeclass": v["s_subscopeclass"],
|
|
|
|
- "buyer": v["buyer"],
|
|
|
|
- "projectname": v["projectname"],
|
|
|
|
- "budget": v["budget"],
|
|
|
|
- "bidopentime": v["bidopentime"],
|
|
|
|
- "winner": v["winner"],
|
|
|
|
- "bidamount": v["bidamount"],
|
|
|
|
- "title": title,
|
|
|
|
- "ca_isvisit_index": k + 1,
|
|
|
|
- "ca_date": now.Unix(),
|
|
|
|
- "ca_isvisit": 0,
|
|
|
|
- "matchkeys": matchkeys,
|
|
|
|
|
|
+ "area": area_check,
|
|
|
|
+ "_id": util.EncodeArticleId2ByCheck(util.ObjToString(v["_id"])),
|
|
|
|
+ "publishtime": v["publishtime"],
|
|
|
|
+ "stype": v["type"],
|
|
|
|
+ "toptype": v["toptype"],
|
|
|
|
+ "subtype": v["subtype"],
|
|
|
|
+ "s_subscopeclass": v["s_subscopeclass"],
|
|
|
|
+ "title": title,
|
|
|
|
+ "ca_isvip": 0,
|
|
|
|
+ "ca_date": now.Unix(),
|
|
|
|
+ "ca_isvisit": 0,
|
|
|
|
+ "ca_index": id,
|
|
}
|
|
}
|
|
area := util.ObjToString(info["area"])
|
|
area := util.ObjToString(info["area"])
|
|
if area == "A" {
|
|
if area == "A" {
|
|
- area = "全国"
|
|
|
|
- }
|
|
|
|
- budget, _ := info["budget"].(float64)
|
|
|
|
- if budget == 0 || strings.TrimSpace(fmt.Sprint(info["budget"])) == "" {
|
|
|
|
- delete(info, "budget")
|
|
|
|
- }
|
|
|
|
- bidamount, _ := info["bidamount"].(float64)
|
|
|
|
- if bidamount == 0 || strings.TrimSpace(fmt.Sprint(info["bidamount"])) == "" {
|
|
|
|
- delete(info, "bidamount")
|
|
|
|
|
|
+ info["area"] = "全国"
|
|
}
|
|
}
|
|
industry := util.ObjToString(info["s_subscopeclass"])
|
|
industry := util.ObjToString(info["s_subscopeclass"])
|
|
scs := strings.Split(industry, ",")
|
|
scs := strings.Split(industry, ",")
|
|
@@ -522,15 +538,22 @@ func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []map[string
|
|
delete(info, "subtype")
|
|
delete(info, "subtype")
|
|
delete(info, "toptype")
|
|
delete(info, "toptype")
|
|
|
|
|
|
- result = append(result, info)
|
|
|
|
|
|
+ resultList = append(resultList, &resultData{
|
|
|
|
+ util.ObjToString(info["area"]),
|
|
|
|
+ util.ObjToString(info["_id"]),
|
|
|
|
+ util.Int64All(info["publishtime"]),
|
|
|
|
+ util.ObjToString(info["stype"]),
|
|
|
|
+ util.ObjToString(info["s_subscopeclass"]),
|
|
|
|
+ util.ObjToString(info["title"]),
|
|
|
|
+ util.IntAll(info["ca_isvip"]),
|
|
|
|
+ util.Int64All(info["ca_date"]),
|
|
|
|
+ util.IntAll(info["ca_isvisit"]),
|
|
|
|
+ util.IntAll(info["ca_index"]),
|
|
|
|
+ matchkeys,
|
|
|
|
+ })
|
|
}
|
|
}
|
|
- go func(fields []string, values []interface{}) {
|
|
|
|
- count := Mysql.InsertBatch("pushsubscribe", fields, values)
|
|
|
|
- if int(count) == len(values) {
|
|
|
|
- log.Println("mysql insert true")
|
|
|
|
- }
|
|
|
|
- }(fields, values)
|
|
|
|
- return true, result
|
|
|
|
|
|
+ sort.Sort(resultSort(resultList))
|
|
|
|
+ return true, resultList
|
|
}
|
|
}
|
|
|
|
|
|
//获取用户信息
|
|
//获取用户信息
|