project.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package es
  2. import (
  3. elastic "app.yhyue.com/moapp/jybase/esv1"
  4. "fmt"
  5. "strings"
  6. "time"
  7. )
  8. //项目信息 项目id
  9. func GetProjectInfo(id string) map[string]interface{} {
  10. projectInfos := elastic.GetById(IndexProjectSet, TypeProjectSet, id)
  11. if projectInfos != nil && len(*projectInfos) > 0 {
  12. return (*projectInfos)[0]
  13. }
  14. return nil
  15. }
  16. //招标信息 招标信息id
  17. func GetBiddingInfo(id string) map[string]interface{} {
  18. biddingInfos := elastic.GetById(INDEX, TYPE, id)
  19. if biddingInfos != nil && len(*biddingInfos) > 0 {
  20. return (*biddingInfos)[0]
  21. }
  22. return nil
  23. }
  24. // GetValidProjectByInfoId 根据查询有效的参标项目id(未到开标时间及开标时间不存在的)
  25. func GetValidProjectByInfoId(infoIds []string) *[]map[string]interface{} {
  26. if len(infoIds) == 0 {
  27. return nil
  28. }
  29. nowTime := time.Now().Unix()
  30. query := `{"_source":["_id","list.infoid"],"query": {"bool": {"must": [{"terms": {"list.infoid": ["` + strings.Join(infoIds, "\",\"") + `"]}},
  31. {"bool": {"should": [{"range": {"bidopentime": {"gte": ` + fmt.Sprint(nowTime) + `}}},
  32. {"constant_score": {"filter": {"missing": {"field": "bidopentime"
  33. } } } }] }}]}}}`
  34. projectResult := elastic.Get(IndexProjectSet, TypeProjectSet, query)
  35. return projectResult
  36. }
  37. // GetProjectByInfoId 根据信息id查询项目id
  38. func GetProjectByInfoId(infoIds []string) *[]map[string]interface{} {
  39. if len(infoIds) == 0 {
  40. return nil
  41. }
  42. query := `{"_source":["_id","list.infoid","ids","bidopentime"],"query":{"bool":{"must":[{"terms":{"list.infoid":["` + strings.Join(infoIds, "\",\"") + `"]}}]}}}`
  43. projectResult := elastic.Get(IndexProjectSet, TypeProjectSet, query)
  44. return projectResult
  45. }