package service import ( "fmt" "sfbase/core" "sfbase/utils" "sfis/db" "strings" ) var SE = utils.SimpleEncrypt{Key: "topJYBX2019"} func ProjectDetailData(id string) (data []map[string]interface{}, httpStatus int, err error) { httpStatus = 200 _query := `{"query":{"bool":{"must":[{"term":{"id":"%s"}}],"must_not":[],"should":[]}},"_source":[%s]}` fields := `"_id","s_winner","projectname","projectcode","buyer","buyertel","buyerperson","jgtime","zbtime","bidamount","budget","buyerclass","area","city","bidstatus","package1","list"` query := fmt.Sprintf(_query, id, fields) INDEX := core.GetStringConf("es.project.index") TYPE := core.GetStringConf("es.project.itype") infos, err := db.Es.Get(INDEX, TYPE, query) if err != nil { return nil, 200, err } if infos != nil && len(*infos) > 0 { for _, i := range *infos { 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) } } return data, httpStatus, nil } func ProjectInfo() (data []map[string]interface{}, httpStatus int, err error) { return nil, 200, nil }