config.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. package util
  2. import (
  3. "qfw/mongodb"
  4. qu "qfw/util"
  5. "qfw/util/elastic"
  6. mgo "util/mgodb"
  7. )
  8. var (
  9. Sysconfig map[string]interface{} //配置文件
  10. Mgo *mongodb.MongodbSim
  11. MgoCus *mongodb.MongodbSim //企业服务库
  12. MgoEn *mongodb.MongodbSim
  13. EsIndex, EsType string
  14. MgoEnC string
  15. Subday float64
  16. PreviewHref string //数据预览地址
  17. CustomerApi string
  18. LatestId = "" //起始id
  19. MgoTag *mgo.MongodbSim //标签库连接
  20. MgoSave *mgo.MongodbSim //数据保存库连接
  21. MgoBuyer *mgo.MongodbSim //医院等级信息
  22. MgoEnps *mgo.MongodbSim //企业信息
  23. SaveColl string
  24. HospColl string
  25. BuyerEntColl string
  26. EnpsColl string
  27. Es *elastic.Elastic //es
  28. Index string
  29. Itype string
  30. TaskTime int64 //定时任务时间
  31. //历史数据
  32. SId string
  33. EId string
  34. CustomerName string
  35. SaveCollProject string
  36. SaveCollbid string
  37. SaveUserMail string
  38. )
  39. var (
  40. TopTypeArr []string //公告一级分类
  41. SubTypeArr []string //公告二级分类
  42. Province []string //省
  43. ProvinceCitys map[string][]string //省:[市1,市2]
  44. CityDistricts map[string][]string //市:[区1,区2]
  45. BuyerClass []string //采购单位行业
  46. MatchTypeMap *[]map[string]interface{} //匹配方式
  47. MatchTypeMap2 map[string]interface{} //匹配方式
  48. MatchTypeMap3 *[]map[string]interface{} //匹配方式
  49. ExistFiled *[]map[string]interface{} //存在的字段
  50. ScopeClassMap *[]map[string]interface{} //公告行业
  51. TagFieldMap *[]map[string]interface{} //标签属性值
  52. TaskTypeMap *[]map[string]interface{} //任务类型
  53. )
  54. func InitMgoPool() {
  55. Mgo = &mongodb.MongodbSim{
  56. MongodbAddr: qu.ObjToString(Sysconfig["mgodb"]),
  57. Size: qu.IntAll(Sysconfig["dbsize"]),
  58. DbName: qu.ObjToString(Sysconfig["dbname"]),
  59. }
  60. Mgo.InitPool()
  61. customer := Sysconfig["customer"].(map[string]interface{})
  62. CustomerApi = qu.ObjToString(customer["api"])
  63. MgoCus = &mongodb.MongodbSim{
  64. MongodbAddr: qu.ObjToString(customer["mgodb"]),
  65. Size: qu.IntAll(customer["dbsize"]),
  66. DbName: qu.ObjToString(customer["dbname"]),
  67. }
  68. MgoCus.InitPool()
  69. }
  70. func initMgoEn() {
  71. MgoEn = &mongodb.MongodbSim{
  72. MongodbAddr: qu.ObjToString(Sysconfig["mgodben"]),
  73. Size: qu.IntAll(Sysconfig["dbsize"]),
  74. DbName: qu.ObjToString(Sysconfig["dbnameen"]),
  75. }
  76. MgoEnC = qu.ObjToString(Sysconfig["mongoenc"])
  77. MgoEn.InitPool()
  78. }
  79. func InitOther() {
  80. initCitys()
  81. initInfoType()
  82. initBuyerClass()
  83. initMatchType()
  84. initExitField()
  85. initScopeClass()
  86. initTaskType()
  87. initEs()
  88. initMgoEn()
  89. Subday = qu.Float64All(Sysconfig["subday"])
  90. PreviewHref = qu.ObjToString(Sysconfig["preview_href"])
  91. initTagField()
  92. initdb()
  93. }
  94. func initCitys() {
  95. //map初始化
  96. if ProvinceCitys == nil {
  97. ProvinceCitys = make(map[string][]string)
  98. }
  99. if CityDistricts == nil {
  100. CityDistricts = make(map[string][]string)
  101. }
  102. datas, _ := Mgo.Find("code_city", `{}`, `{"_id":1}`, `{}`, false, -1, -1)
  103. for _, data := range *datas {
  104. brief := data["brief"].(string)
  105. Province = append(Province, brief)
  106. citys := data["citys"].([]interface{})
  107. citytmp := []string{}
  108. for _, city := range citys {
  109. cityMap := city.(map[string]interface{})
  110. for cname, districts := range cityMap {
  111. citytmp = append(citytmp, cname)
  112. tmp := districts.([]interface{})
  113. districtarr := qu.ObjArrToStringArr(tmp)
  114. CityDistricts[cname] = districtarr
  115. }
  116. }
  117. ProvinceCitys[brief] = citytmp
  118. }
  119. }
  120. func initInfoType() {
  121. datas, _ := Mgo.Find("code_infotype", `{}`, `{"_id":1}`, `{}`, false, -1, -1)
  122. for _, data := range *datas {
  123. name := data["name"].(string)
  124. TopTypeArr = append(TopTypeArr, name)
  125. child := qu.ObjArrToStringArr(data["child"].([]interface{}))
  126. SubTypeArr = append(SubTypeArr, child...)
  127. }
  128. //qu.Debug(InfoTypeArr, InfoTypeMap)
  129. }
  130. func initBuyerClass() {
  131. datas, _ := Mgo.Find("code_buyerclass", `{}`, `{"_id":1}`, `{}`, false, -1, -1)
  132. for _, data := range *datas {
  133. name := data["name"].(string)
  134. BuyerClass = append(BuyerClass, name)
  135. }
  136. }
  137. func initMatchType() {
  138. //map初始化
  139. if MatchTypeMap2 == nil {
  140. MatchTypeMap2 = make(map[string]interface{})
  141. }
  142. MatchTypeMap, _ = Mgo.Find("code_matchtype", `{}`, `{"_id":1}`, `{}`, false, -1, -1)
  143. MatchTypeMap3, _ = Mgo.Find("code_matchtype", `{"type": 1}`, nil, nil, false, -1, -1)
  144. for _, d := range *MatchTypeMap {
  145. code := qu.ObjToString(d["code"])
  146. name := qu.ObjToString(d["name"])
  147. MatchTypeMap2[code] = name
  148. }
  149. }
  150. func initExitField() {
  151. ExistFiled, _ = Mgo.Find("code_field", `{}`, `{"_id":1}`, `{}`, false, -1, -1)
  152. //for _, data := range *datas {
  153. // name := data["name"].(string)
  154. // ExistFiled = append(ExistFiled, name)
  155. //}
  156. }
  157. func initScopeClass() {
  158. ScopeClassMap, _ = Mgo.Find("code_scopeclass", `{}`, `{"_id": 1}`, `{}`, false, -1, -1)
  159. }
  160. func initTaskType() {
  161. TaskTypeMap, _ = Mgo.Find("code_task", `{}`, `{"_id": 1}`, `{}`, false, -1, -1)
  162. }
  163. func initEs() {
  164. EsIndex, EsType = qu.ObjToString(Sysconfig["elasticsearch_index"]), qu.ObjToString(Sysconfig["elasticsearch_type"])
  165. elastic.InitElasticSize(qu.ObjToString(Sysconfig["elasticsearch"]), qu.IntAllDef(qu.Int64All(Sysconfig["elasticPoolSize"]), 30))
  166. }
  167. func initTagField() {
  168. TagFieldMap, _ = Mgo.Find("code_tagfield", `{}`, `{"_id": 1}`, `{}`, false, -1, -1)
  169. }
  170. func initdb() {
  171. //mgo save
  172. save := Sysconfig["save"].(map[string]interface{})
  173. SaveColl = qu.ObjToString(save["coll"])
  174. SaveCollProject = qu.ObjToString(save["coll_project"])
  175. SaveCollbid = qu.ObjToString(save["coll_bid"])
  176. SaveUserMail = qu.ObjToString(save["coll_usermail"])
  177. MgoSave = &mgo.MongodbSim{
  178. MongodbAddr: qu.ObjToString(save["addr"]),
  179. DbName: qu.ObjToString(save["db"]),
  180. Size: qu.IntAllDef(save["size"], 15),
  181. }
  182. MgoSave.InitPool()
  183. //mgo buyerinfo
  184. buyerinfo := Sysconfig["buyerinfo"].(map[string]interface{})
  185. HospColl = qu.ObjToString(buyerinfo["hospcoll"])
  186. BuyerEntColl = qu.ObjToString(buyerinfo["buyerentcoll"])
  187. MgoBuyer = &mgo.MongodbSim{
  188. MongodbAddr: qu.ObjToString(buyerinfo["addr"]),
  189. DbName: qu.ObjToString(buyerinfo["db"]),
  190. Size: qu.IntAllDef(buyerinfo["size"], 15),
  191. }
  192. MgoBuyer.InitPool()
  193. //mgo enterprise
  194. enterprise := Sysconfig["enterprise"].(map[string]interface{})
  195. EnpsColl = qu.ObjToString(enterprise["coll"])
  196. MgoEnps = &mgo.MongodbSim{
  197. MongodbAddr: qu.ObjToString(enterprise["addr"]),
  198. DbName: qu.ObjToString(enterprise["db"]),
  199. Size: qu.IntAllDef(enterprise["size"], 15),
  200. }
  201. MgoEnps.InitPool()
  202. //es
  203. es := Sysconfig["es"].(map[string]interface{})
  204. Es = &elastic.Elastic{
  205. S_esurl: qu.ObjToString(es["addr"]),
  206. I_size: qu.IntAllDef(es["pool"], 15),
  207. }
  208. Es.InitElasticSize()
  209. Index = qu.ObjToString(es["index"])
  210. Itype = qu.ObjToString(es["itype"])
  211. }