|
@@ -1925,6 +1925,10 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
if len(*j.Jsondata) > 0 {
|
|
|
tmp["jsondata"] = j.Jsondata
|
|
|
}
|
|
|
+
|
|
|
+ //字段-抽取来源
|
|
|
+ fieldSource := make(map[string]interface{},0)
|
|
|
+ //字段-抽取来源
|
|
|
for k, val := range result {
|
|
|
if k == "qualifies" {
|
|
|
squalifies := make([]interface{}, 0)
|
|
@@ -1960,10 +1964,18 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
//存0是否有效
|
|
|
if (v.Field == "bidamount" || v.Field == "budget") && v.IsTrue && v.Score > -1 {
|
|
|
tmp[v.Field] = v.Value
|
|
|
+ fieldSource[v.Field] = map[string]interface{}{
|
|
|
+ "ext_type":v.Type,
|
|
|
+ "ext_from":v.ExtFrom,
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
if v.Score > -1 && (v.Field != "bidamount" && v.Field != "budget") && len(strings.TrimSpace(fmt.Sprint(v.Value))) > 0 {
|
|
|
tmp[v.Field] = v.Value
|
|
|
+ fieldSource[v.Field] = map[string]interface{}{
|
|
|
+ "ext_type":v.Type,
|
|
|
+ "ext_from":v.ExtFrom,
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
}
|
|
@@ -2003,16 +2015,30 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
}
|
|
|
}
|
|
|
if qu.Float64All(tmp["budget"]) < tmpBudget {
|
|
|
+ fieldSource["budget"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["budget"] = tmpBudget
|
|
|
}
|
|
|
if qu.Float64All(tmp["agencyfee"]) < tmpAgencyfee {
|
|
|
+ fieldSource["agencyfee"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["agencyfee"] = tmpAgencyfee
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
if qu.Float64All(tmp["bidamount"]) > 0 && qu.Float64All(tmp["budget"]) > 0 && (qu.Float64All(tmp["bidamount"])/10 > qu.Float64All(tmp["budget"])) {
|
|
|
+ fieldSource["bidamount"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["bidamount"] = tmpBidamount
|
|
|
} else if qu.Float64All(tmp["bidamount"]) < tmpBidamount {
|
|
|
+ fieldSource["bidamount"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["bidamount"] = tmpBidamount
|
|
|
}
|
|
|
} else {
|
|
@@ -2020,6 +2046,10 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
if tmp["budget"] == nil || tmp["budget"] == 0 {
|
|
|
for _, v := range j.PackageInfo {
|
|
|
if v["budget"] != nil {
|
|
|
+ fieldSource["budget"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["budget"] = v["budget"]
|
|
|
}
|
|
|
}
|
|
@@ -2028,6 +2058,10 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
if tmp["agencyfee"] == nil || tmp["agencyfee"] == 0 {
|
|
|
for _, v := range j.PackageInfo {
|
|
|
if v["agencyfee"] != nil {
|
|
|
+ fieldSource["agencyfee"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["agencyfee"] = v["agencyfee"]
|
|
|
}
|
|
|
}
|
|
@@ -2036,6 +2070,10 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
if tmp["bidamount"] == nil || tmp["bidamount"] == 0 {
|
|
|
for _, v := range j.PackageInfo {
|
|
|
if v["bidamount"] != nil {
|
|
|
+ fieldSource["bidamount"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
tmp["bidamount"] = v["bidamount"]
|
|
|
}
|
|
|
}
|
|
@@ -2053,14 +2091,26 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
}
|
|
|
if (savewinner == nil || len(savewinner) == 0) && tmp["winner"] != nil {
|
|
|
tmp["s_winner"] = tmp["winner"]
|
|
|
+ fieldSource["s_winner"] = fieldSource["winner"]
|
|
|
} else if savewinner != nil {
|
|
|
savewinner = RemoveReplicaSliceString(savewinner)
|
|
|
tmp["s_winner"] = strings.Join(savewinner, ",")
|
|
|
+
|
|
|
+ if len(savewinner)==1 {
|
|
|
+ fieldSource["s_winner"] = fieldSource["winner"]
|
|
|
+ }else if len(savewinner)>1{
|
|
|
+ fieldSource["s_winner"] = map[string]interface{}{
|
|
|
+ "ext_type":"",
|
|
|
+ "ext_from":"package",
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} else if tmp["winner"] != nil && tmp["winner"] != "" {
|
|
|
//没有分包取winner
|
|
|
tmp["s_winner"] = tmp["winner"]
|
|
|
+ fieldSource["s_winner"] = fieldSource["winner"]
|
|
|
}
|
|
|
+
|
|
|
if len(j.Winnerorder) > 0 { //候选人信息
|
|
|
for i, v := range j.Winnerorder {
|
|
|
if v["price"] != nil {
|
|
@@ -2086,10 +2136,18 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
if tmp[v.Field] == nil {
|
|
|
if (v.Field == "bidamount" || v.Field == "budget") && v.IsTrue && v.Value.(float64) > 100 && v.Value.(float64) < 50000000000 {
|
|
|
tmp[v.Field] = v.Value
|
|
|
+ fieldSource[v.Field] = map[string]interface{}{
|
|
|
+ "ext_type":v.Type,
|
|
|
+ "ext_from":"ff",
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
if v.Score > -1 && (v.Field != "bidamount" && v.Field != "budget") && len(strings.TrimSpace(fmt.Sprint(v.Value))) > 0 {
|
|
|
tmp[v.Field] = v.Value
|
|
|
+ fieldSource[v.Field] = map[string]interface{}{
|
|
|
+ "ext_type":v.Type,
|
|
|
+ "ext_from":"ff",
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
}
|
|
@@ -2104,6 +2162,11 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
|
|
|
ffield["winnerorder"] = jf.Winnerorder
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //添加字段来源
|
|
|
+ tmp["field_source"] = fieldSource
|
|
|
+ //添加字段来源
|
|
|
+
|
|
|
for k, v := range *doc {
|
|
|
if utf8.RuneCountInString(qu.ObjToString(v)) > 100000 {
|
|
|
(*doc)[k] = []rune(qu.ObjToString(v))[:100000]
|