浏览代码

Merge branch 'dev/v4.8.46_wh' of qmx/jy into feature/v4.8.46

zhangxinlei1996 2 年之前
父节点
当前提交
5cd6d3adde
共有 1 个文件被更改,包括 11 次插入6 次删除
  1. 11 6
      src/jfw/modules/bigmember/src/service/analysis/forecastproject.go

+ 11 - 6
src/jfw/modules/bigmember/src/service/analysis/forecastproject.go

@@ -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 {