config.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /**
  2. *读取基本配置到内存
  3. **/
  4. package util
  5. import (
  6. mgo "mongodb"
  7. qu "qfw/util"
  8. "sort"
  9. )
  10. //系统配置
  11. type config struct {
  12. Port string `json:"port"`
  13. Dbaddress string `json:"dbaddress"`
  14. Dbname string `json:"dbname"`
  15. Size int `json:"size"`
  16. Fromtable string `json:"fromtable"`
  17. Totablel string `json:"totablel"`
  18. Biaozhu map[string]interface{} `json:"biaozhu"`
  19. InfluxdbUrl string `json:"influxdbUrl"`
  20. Redis string `json:"redis"`
  21. RedisTimeout int `json:"redistimeout"`
  22. Bidding map[string]interface{} `json:"bidding"`
  23. Extract map[string]interface{} `json:"extract"`
  24. Elas map[string]interface{} `json:"es"`
  25. TopSubType map[string]interface{} `json:"topsubtype"`
  26. CustomerField map[string]string `json:"customerfield"`
  27. Fields map[string]bool `json:"fields"`
  28. }
  29. const JYHREFPRE = "https://www.jianyu360.cn/article/content/"
  30. const SPECIALTYPE = "二级不存在"
  31. const BIDDINGSTARTID = "5a862f0640d2d9bbe88e3cec"
  32. var (
  33. Config config
  34. MgoB *mgo.MongodbSim //bidding
  35. BidColl1 string
  36. BidColl2 string
  37. MgoE *mgo.MongodbSim //extract
  38. ExtColl1 string
  39. ExtColl2 string
  40. MgoM *mgo.MongodbSim //标注
  41. Es *Elastic //es
  42. Index string
  43. Itype string
  44. //
  45. AllFieldArr []map[string]string
  46. PurchasinglistField []map[string]string
  47. PackageField []map[string]string
  48. WinnerorderField []map[string]string
  49. TopSubStypeArr []string
  50. TopSubStypeArr2 []string
  51. )
  52. func InitConfig() {
  53. //标注
  54. MgoM = &mgo.MongodbSim{
  55. MongodbAddr: Config.Dbaddress,
  56. DbName: Config.Dbname,
  57. Size: Config.Size,
  58. }
  59. MgoM.InitPool()
  60. //bid
  61. bid := Config.Bidding
  62. BidColl1 = qu.ObjToString(bid["coll1"])
  63. BidColl2 = qu.ObjToString(bid["coll2"])
  64. MgoB = &mgo.MongodbSim{
  65. MongodbAddr: qu.ObjToString(bid["addr"]),
  66. DbName: qu.ObjToString(bid["db"]),
  67. Size: qu.IntAll(bid["size"]),
  68. UserName: qu.ObjToString(bid["username"]),
  69. Password: qu.ObjToString(bid["password"]),
  70. }
  71. MgoB.InitPool()
  72. //ext
  73. ext := Config.Extract
  74. ExtColl1 = qu.ObjToString(ext["coll1"])
  75. ExtColl2 = qu.ObjToString(ext["coll2"])
  76. MgoE = &mgo.MongodbSim{
  77. MongodbAddr: qu.ObjToString(ext["addr"]),
  78. DbName: qu.ObjToString(ext["db"]),
  79. Size: qu.IntAll(ext["size"]),
  80. }
  81. MgoE.InitPool()
  82. //es
  83. es := Config.Elas
  84. Index = qu.ObjToString(es["index"])
  85. Itype = qu.ObjToString(es["itype"])
  86. Es = &Elastic{
  87. S_esurl: qu.ObjToString(es["addr"]),
  88. I_size: qu.IntAll(es["pool"]),
  89. Username: qu.ObjToString(es["user"]),
  90. Password: qu.ObjToString(es["password"]),
  91. }
  92. Es.InitElasticSize()
  93. //
  94. tmpAllField := Arr{}
  95. AllFieldMap := map[string]string{}
  96. AllFieldArr = []map[string]string{}
  97. common, _ := Config.Biaozhu["common"].([]interface{})
  98. timeplace, _ := Config.Biaozhu["timeplace"].([]interface{})
  99. other, _ := Config.Biaozhu["other"].([]interface{})
  100. for _, com := range common {
  101. tmp := com.(map[string]interface{})
  102. key := qu.ObjToString(tmp["key"])
  103. if key == "" {
  104. continue
  105. }
  106. descript := qu.ObjToString(tmp["descript"])
  107. tmpAllField = append(tmpAllField, descript)
  108. AllFieldMap[descript] = key
  109. }
  110. for _, tp := range timeplace {
  111. tmp := tp.(map[string]interface{})
  112. key := qu.ObjToString(tmp["key"])
  113. descript := qu.ObjToString(tmp["descript"])
  114. tmpAllField = append(tmpAllField, descript)
  115. AllFieldMap[descript] = key
  116. }
  117. for _, o := range other {
  118. tmp := o.(map[string]interface{})
  119. key := qu.ObjToString(tmp["key"])
  120. descript := qu.ObjToString(tmp["descript"])
  121. tmpAllField = append(tmpAllField, descript)
  122. AllFieldMap[descript] = key
  123. }
  124. tmpAllField = append(tmpAllField, "标的物列表")
  125. tmpAllField = append(tmpAllField, "多包")
  126. tmpAllField = append(tmpAllField, "中标候选人")
  127. AllFieldMap["标的物列表"] = "purchasinglist"
  128. AllFieldMap["多包"] = "package"
  129. AllFieldMap["中标候选人"] = "winnerorder"
  130. sort.Sort(tmpAllField)
  131. for _, f := range tmpAllField {
  132. AllFieldArr = append(AllFieldArr, map[string]string{AllFieldMap[f]: f})
  133. }
  134. //
  135. PurchasinglistField = []map[string]string{}
  136. pcls, _ := Config.Biaozhu["purchasinglist"].([]interface{})
  137. for _, pcl := range pcls {
  138. tmp := pcl.(map[string]interface{})
  139. key := qu.ObjToString(tmp["key"])
  140. descript := qu.ObjToString(tmp["descript"])
  141. PurchasinglistField = append(PurchasinglistField, map[string]string{key: descript})
  142. }
  143. PackageField = []map[string]string{}
  144. pkgs, _ := Config.Biaozhu["package"].([]interface{})
  145. for _, pkg := range pkgs {
  146. tmp := pkg.(map[string]interface{})
  147. key := qu.ObjToString(tmp["key"])
  148. descript := qu.ObjToString(tmp["descript"])
  149. PackageField = append(PackageField, map[string]string{key: descript})
  150. }
  151. WinnerorderField = []map[string]string{}
  152. wods, _ := Config.Biaozhu["winnerorder"].([]interface{})
  153. for _, wod := range wods {
  154. tmp := wod.(map[string]interface{})
  155. key := qu.ObjToString(tmp["key"])
  156. descript := qu.ObjToString(tmp["descript"])
  157. WinnerorderField = append(WinnerorderField, map[string]string{key: descript})
  158. }
  159. //qu.Debug(PurchasinglistField, PackageField, WinnerorderField)
  160. //公告类型
  161. for top, v := range Config.TopSubType {
  162. tmp := v.([]interface{})
  163. for _, sub := range tmp {
  164. TopSubStypeArr = append(TopSubStypeArr, top+"-"+qu.ObjToString(sub))
  165. }
  166. }
  167. TopSubStypeArr2 = TopSubStypeArr
  168. TopSubStypeArr = append(TopSubStypeArr, SPECIALTYPE)
  169. }