|
@@ -32,7 +32,7 @@ const (
|
|
|
bidSearch_field = ``
|
|
|
|
|
|
forecastQuery = `{"query":{"bool":{"must":[%s],"should":[%s],"minimum_should_match":1}}}`
|
|
|
- filter_must_time = `{"bool":{"should":[{"bool":{"must":[{"range":{"yucetime":{"gte":%d}}}],"must_not":[{"constant_score":{"filter":{"exists":{"field":"yuceendtime"}}}}]}},{"bool":{"must":[{"constant_score":{"filter":{"exists":{"field":"yuceendtime"}}}},{"range":{"yuceendtime":{"gte":%d}}}]}}]}}`
|
|
|
+ filter_must_time = `{"bool":{"%s":[{"exists":{"field":"top_category"}}]}},{"bool":{"should":[{"bool":{"must":[{"range":{"yucetime":{"gte":%d}}}],"must_not":[{"constant_score":{"filter":{"exists":{"field":"yuceendtime"}}}}]}},{"bool":{"must":[{"constant_score":{"filter":{"exists":{"field":"yuceendtime"}}}},{"range":{"yuceendtime":{"gte":%d,"lte":%d}}}]}}]}}`
|
|
|
filter_must_area_city = `{"bool":{"should":[%s]}}`
|
|
|
query_should_keys = `{"bool":{"must":[%s],"must_not":[%s]}}`
|
|
|
query_should_multi_match = `{"multi_match":{"query":"%s","type":"phrase","fields":["results.purchasing.mypurchasing"]}}`
|
|
@@ -50,13 +50,17 @@ const (
|
|
|
|
|
|
*
|
|
|
*/
|
|
|
-func getForecastProjectSql(scd *util.ViewCondition, startTime, endTime int) string {
|
|
|
+func getForecastProjectSql(scd *util.ViewCondition, startTime, endTime int, dataType string) string {
|
|
|
musts := []string{}
|
|
|
bools := []string{}
|
|
|
if endTime == 0 {
|
|
|
endTime = int(time.Now().Unix())
|
|
|
}
|
|
|
- musts = append(musts, fmt.Sprintf(filter_must_time, startTime, endTime))
|
|
|
+ if dataType == "nj" {
|
|
|
+ musts = append(musts, fmt.Sprintf(filter_must_time, "must", startTime, startTime, endTime))
|
|
|
+ } else {
|
|
|
+ musts = append(musts, fmt.Sprintf(filter_must_time, "must_not", startTime, startTime, endTime))
|
|
|
+ }
|
|
|
//省份
|
|
|
areaCity := []string{}
|
|
|
if len(scd.Area) > 0 {
|
|
@@ -240,6 +244,7 @@ func (this *Analysis) ForPList() {
|
|
|
pageSize, _ := this.GetInteger("pageSize")
|
|
|
startTime, _ := this.GetInteger("startTime")
|
|
|
endTime, _ := this.GetInteger("endTime")
|
|
|
+ dataType := this.GetString("dataType")
|
|
|
if pageSize == 0 {
|
|
|
pageSize = 10
|
|
|
}
|
|
@@ -250,7 +255,7 @@ func (this *Analysis) ForPList() {
|
|
|
if (*o_mb)["o_member_jy"] != nil {
|
|
|
o_member_jy = qutil.ObjToMap((*o_mb)["o_member_jy"])
|
|
|
//项目预测检索库
|
|
|
- flist, fcount = getNewForecast(main_userId, pageNum, *o_member_jy, pageSize, startTime, endTime)
|
|
|
+ flist, fcount = getNewForecast(main_userId, pageNum, *o_member_jy, pageSize, startTime, endTime, dataType)
|
|
|
if pageNum == 1 {
|
|
|
if (*o_member_jy)["a_items"] != nil {
|
|
|
a_items := qutil.ObjArrToMapArr((*o_member_jy)["a_items"].([]interface{}))
|
|
@@ -344,7 +349,7 @@ func forecastMerge(r, f []map[string]interface{}) []*ForecastInfo {
|
|
|
|
|
|
var d = &dfa.DFA{}
|
|
|
|
|
|
-func getNewForecast(userId string, pageNum int, o_member_jy map[string]interface{}, pageSize int, startTime, endTime int) (list []map[string]interface{}, count int64) {
|
|
|
+func getNewForecast(userId string, pageNum int, o_member_jy map[string]interface{}, pageSize int, startTime, endTime int, dataType string) (list []map[string]interface{}, count int64) {
|
|
|
if userId == "" {
|
|
|
return
|
|
|
}
|
|
@@ -372,7 +377,7 @@ func getNewForecast(userId string, pageNum int, o_member_jy map[string]interface
|
|
|
return
|
|
|
}
|
|
|
// qstr := GetMemberForecastSql(sql)
|
|
|
- qstr := getForecastProjectSql(sql, startTime, endTime)
|
|
|
+ qstr := getForecastProjectSql(sql, startTime, endTime, dataType)
|
|
|
count = elastic.Count(INDEX, TYPE, qstr)
|
|
|
list = *elastic.GetAllByNgram(INDEX, TYPE, qstr, findfields, bidSearch_sort, bidSearch_field, (pageNum-1)*pageSize, pageSize, 0, false)
|
|
|
if list != nil {
|