|
@@ -9,6 +9,7 @@ import (
|
|
"sfbase/utils"
|
|
"sfbase/utils"
|
|
"sfis/db"
|
|
"sfis/db"
|
|
"sfis/model"
|
|
"sfis/model"
|
|
|
|
+
|
|
"strconv"
|
|
"strconv"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
@@ -19,7 +20,7 @@ import (
|
|
var (
|
|
var (
|
|
pjt_count = 100
|
|
pjt_count = 100
|
|
pjt_field = `"_id","jgtime","zbtime","projectname","buyer","buyerclass"`
|
|
pjt_field = `"_id","jgtime","zbtime","projectname","buyer","buyerclass"`
|
|
- pjt_fields = `"_id","area","city","bidamount","budget","zbtime","jgtime","projectname","projectcode","s_winner","buyer","buyerclass","buyerperson","buyertel","sourceinfourl"`
|
|
|
|
|
|
+ pjt_fields = `"_id","area","city","bidamount","budget","zbtime","jgtime","projectname","projectcode","s_winner","buyer","buyerclass","buyerperson","buyertel","package1","list","bidstatus"`
|
|
pjt_sort = `{"jgtime":-1}`
|
|
pjt_sort = `{"jgtime":-1}`
|
|
query = `{"query": {"bool": {"must":[%s],"should":[%s],"minimum_should_match": 1}}}`
|
|
query = `{"query": {"bool": {"must":[%s],"should":[%s],"minimum_should_match": 1}}}`
|
|
query_string = `{"constant_score": {"boost": 2,"query": {"match_phrase": {"projectname.pname": {"analyzer": "my_ngram","query": "%s","slop": 6}}}}},{"multi_match": {"query": "%s","fields": ["projectname.pname"],"analyzer": "ik","minimum_should_match": "100%%"}}`
|
|
query_string = `{"constant_score": {"boost": 2,"query": {"match_phrase": {"projectname.pname": {"analyzer": "my_ngram","query": "%s","slop": 6}}}}},{"multi_match": {"query": "%s","fields": ["projectname.pname"],"analyzer": "ik","minimum_should_match": "100%%"}}`
|
|
@@ -86,10 +87,82 @@ func ProjectListData(productId int, appid, projectName, winner, times string, is
|
|
err = errors.New("查询失败")
|
|
err = errors.New("查询失败")
|
|
return
|
|
return
|
|
} else if repl != nil && len(*repl) > 0 {
|
|
} else if repl != nil && len(*repl) > 0 {
|
|
- data = *repl
|
|
|
|
- for _, i := range data {
|
|
|
|
- i["project_id"] = SE.EncodeString(utils.ObjToString(i["_id"]))
|
|
|
|
- delete(i, "_id")
|
|
|
|
|
|
+ for _, i := range *repl {
|
|
|
|
+ if isDetail {
|
|
|
|
+ if i["list"] != nil {
|
|
|
|
+ bidStatusStr := "中标、成交、流标、废标、合同"
|
|
|
|
+ subStr := "中标、成交、合同"
|
|
|
|
+ subStrs := "招标、邀标、询价、竞谈、竞价、单一"
|
|
|
|
+ publish := int64(0)
|
|
|
|
+ if listArr, ok := i["list"].([]interface{}); ok {
|
|
|
|
+ if utils.ObjToString(i["bidstatus"]) == "招标" {
|
|
|
|
+ for _, v := range listArr {
|
|
|
|
+ if vs, oks := v.(map[string]interface{}); oks {
|
|
|
|
+ if strings.Contains(subStrs, utils.ObjToString(vs["subrtype"])) {
|
|
|
|
+ publishs := publish
|
|
|
|
+ publish = utils.Int64All(vs["publishtime"])
|
|
|
|
+ if publishs > publish {
|
|
|
|
+ publish = publishs
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else if strings.Contains(bidStatusStr, utils.ObjToString(i["bidstatus"])) {
|
|
|
|
+ for _, v := range listArr {
|
|
|
|
+ if vs, oks := v.(map[string]interface{}); oks {
|
|
|
|
+ if strings.Contains(subStr, utils.ObjToString(vs["subrtype"])) {
|
|
|
|
+ publishs := publish
|
|
|
|
+ publish = utils.Int64All(vs["publishtime"])
|
|
|
|
+ if publishs > publish {
|
|
|
|
+ publish = publishs
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for _, v := range listArr {
|
|
|
|
+ if vs, oks := v.(map[string]interface{}); oks {
|
|
|
|
+ publishs := utils.Int64All(vs["publishtime"])
|
|
|
|
+ if publishs == publish {
|
|
|
|
+ i["url"] = vs["href"]
|
|
|
|
+ infoid := utils.ObjToString(vs["infoid"])
|
|
|
|
+ i["jyUrl"] = `https://www.jianyu360.com/article/content/` + utils.CommonEncodeArticle("content", infoid) + `.html`
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ dataMap := map[string]interface{}{
|
|
|
|
+ "projectId": SE.EncodeString(utils.ObjToString(i["_id"])),
|
|
|
|
+ "projectName": i["projectname"],
|
|
|
|
+ "winner": i["s_winner"],
|
|
|
|
+ "projectCode": i["projectcode"],
|
|
|
|
+ "buyer": i["buyer"],
|
|
|
|
+ "buyerPerson": i["buyerperson"],
|
|
|
|
+ "buyerTel": i["buyertel"],
|
|
|
|
+ "buyerClass": i["buyerclass"],
|
|
|
|
+ "tenderDate": i["zbtime"],
|
|
|
|
+ "bidDate": i["jgtime"],
|
|
|
|
+ "bidAmount": i["bidamount"],
|
|
|
|
+ "budget": i["budget"],
|
|
|
|
+ "province": i["area"],
|
|
|
|
+ "city": i["city"],
|
|
|
|
+ "package": i["package1"],
|
|
|
|
+ "url": i["url"],
|
|
|
|
+ "jyUrl": i["jyUrl"],
|
|
|
|
+ }
|
|
|
|
+ data = append(data, dataMap)
|
|
|
|
+ } else {
|
|
|
|
+ dataMap := map[string]interface{}{
|
|
|
|
+ "projectId": SE.EncodeString(utils.ObjToString(i["_id"])),
|
|
|
|
+ "projectName": i["projectname"],
|
|
|
|
+ "buyer": i["buyer"],
|
|
|
|
+ "buyerClass": i["buyerclass"],
|
|
|
|
+ "tenderDate": i["zbtime"],
|
|
|
|
+ "bidDate": i["jgtime"],
|
|
|
|
+ }
|
|
|
|
+ data = append(data, dataMap)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return
|
|
return
|