123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- 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
- }
|