config.go 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. package util
  2. import (
  3. "go.mongodb.org/mongo-driver/mongo"
  4. "mongodb"
  5. qu "qfw/util"
  6. "sort"
  7. "sync"
  8. )
  9. //const JYDATAFROMDB = "jyqyfw"
  10. //const JYDATAFROMCOLL = "usermail_history"
  11. //const JYDATATODB = "jyqyfw"
  12. var (
  13. Sysconfig map[string]interface{} //配置文件
  14. Quaconfig map[string]interface{} //质量配置文件
  15. Es *Elastic
  16. Mgo *mongodb.MongodbSim
  17. AllToColl string //所有标注数据汇总表
  18. Password string //默认登陆密码
  19. MgoB *mongodb.MongodbSim //bidding
  20. BidColl1 string
  21. BidColl2 string
  22. MgoE *mongodb.MongodbSim //extract
  23. ExtColl1 string
  24. ExtColl2 string
  25. ProjectColl string
  26. MgoJy *mongodb.MongodbSim //jy
  27. JyHistory string
  28. JyUser string
  29. CustomerFieldMap_EH map[string]string
  30. CustomerFieldMap_HE map[string]string
  31. BiaoZhu map[string]interface{}
  32. PurchasinglistField []map[string]string
  33. PurchasinglistField1 []map[string]string
  34. PackageField []map[string]string
  35. WinnerorderField []map[string]string
  36. AllFieldArr []map[string]string
  37. TopSubStypeArr []string
  38. TopSubStypeArr2 []string
  39. FieldsMap map[string]interface{}
  40. DataTypeArr []string
  41. DataTypeMap map[string]interface{} //项目中数据类型
  42. )
  43. var (
  44. Mgo_QY *mongodb.MongodbSim //企业mgo
  45. Qy_Lock sync.Mutex //锁-多线程备用
  46. Ext_Type, Ext_From map[string]interface{} //抽取来源,方式分
  47. Buyer_Score, S_Winner_Score map[string]interface{} //字段规则分
  48. Budget_Score, Bidamount_Score map[string]interface{}
  49. Projectname_Score, Projectcode_Score map[string]interface{}
  50. )
  51. var SE = qu.SimpleEncrypt{Key: "topJYBX2019"}
  52. var SourceInfoIndexArr = []mongo.IndexModel{
  53. {Keys: map[string]interface{}{"s_grouptaskid": 1}}, //独立索引
  54. {Keys: map[string]interface{}{"s_usertaskid": 1}},
  55. {Keys: map[string]interface{}{"s_grouptaskid": 1, "b_istag": 1}}, //联合索引
  56. {Keys: map[string]interface{}{"s_grouptaskid": 1, "s_isgiveuser": 1}},
  57. {Keys: map[string]interface{}{"s_usertaskid": 1, "b_istag": 1}},
  58. {Keys: map[string]interface{}{"s_usertaskid": 1, "b_check": 1}},
  59. {Keys: map[string]interface{}{"b_istagging": 1}},
  60. {Keys: map[string]interface{}{"b_istagging": 1, "b_istag": 1}},
  61. {Keys: map[string]interface{}{"b_isgivegroup": 1, "b_istagging": 1}},
  62. {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1}},
  63. {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istag": 1}},
  64. {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istagging": 1}},
  65. {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1}},
  66. {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1, "b_istagging": 1}},
  67. }
  68. const JYHREFPRE = "https://www.jianyu360.cn/article/content/"
  69. const BIDDINGSTARTID = "5a862f0640d2d9bbe88e3cec"
  70. const PROJECTCOLLNAME = "f_project"
  71. const TASKCOLLNAME = "f_task"
  72. const LOGCOLLNAME = "l_taglog"
  73. const SPECIALTYPE = "二级不存在"
  74. func InitConfig() {
  75. Mgo = &mongodb.MongodbSim{
  76. MongodbAddr: qu.ObjToString(Sysconfig["mgodb"]),
  77. Size: qu.IntAll(Sysconfig["dbsize"]),
  78. DbName: qu.ObjToString(Sysconfig["dbname"]),
  79. }
  80. Mgo.InitPool()
  81. AllToColl = qu.ObjToString(Sysconfig["alltocoll"])
  82. Password = qu.ObjToString(Sysconfig["defaultpwd"])
  83. //bid
  84. bid := Sysconfig["bidding"].(map[string]interface{})
  85. BidColl1 = qu.ObjToString(bid["coll1"])
  86. BidColl2 = qu.ObjToString(bid["coll2"])
  87. MgoB = &mongodb.MongodbSim{
  88. MongodbAddr: qu.ObjToString(bid["addr"]),
  89. DbName: qu.ObjToString(bid["db"]),
  90. Size: qu.IntAll(bid["size"]),
  91. UserName: qu.ObjToString(bid["username"]),
  92. Password: qu.ObjToString(bid["password"]),
  93. }
  94. MgoB.InitPool()
  95. esConf := Sysconfig["es"].(map[string]interface{})
  96. Es = &Elastic{
  97. S_esurl: qu.ObjToString(esConf["addr"]), //http://172.17.145.170:9800
  98. I_size: qu.IntAllDef(esConf["pool"], 10),
  99. Username: qu.ObjToString(esConf["user"]),
  100. Password: qu.ObjToString(esConf["password"]),
  101. }
  102. Es.InitElasticSize()
  103. //ext
  104. ext := Sysconfig["extract"].(map[string]interface{})
  105. ExtColl1 = qu.ObjToString(ext["coll1"])
  106. ExtColl2 = qu.ObjToString(ext["coll2"])
  107. ProjectColl = qu.ObjToString(ext["projectcoll"])
  108. MgoE = &mongodb.MongodbSim{
  109. MongodbAddr: qu.ObjToString(ext["addr"]),
  110. DbName: qu.ObjToString(ext["db"]),
  111. Size: qu.IntAll(ext["size"]),
  112. }
  113. MgoE.InitPool()
  114. //jy
  115. jy := Sysconfig["jy"].(map[string]interface{})
  116. JyHistory = qu.ObjToString(jy["history"])
  117. JyUser = qu.ObjToString(jy["user"])
  118. MgoJy = &mongodb.MongodbSim{
  119. MongodbAddr: qu.ObjToString(jy["addr"]),
  120. DbName: qu.ObjToString(jy["db"]),
  121. Size: qu.IntAll(jy["size"]),
  122. }
  123. MgoJy.InitPool()
  124. Mgo_QY = &mongodb.MongodbSim{
  125. MongodbAddr: qu.ObjToString(bid["addr"]),
  126. DbName: "mixdata",
  127. Size: qu.IntAll(bid["size"]),
  128. UserName: qu.ObjToString(bid["username"]),
  129. Password: qu.ObjToString(bid["password"]),
  130. }
  131. Mgo_QY.InitPool()
  132. //other
  133. CustomerFieldMap_EH = map[string]string{}
  134. CustomerFieldMap_HE = map[string]string{}
  135. for k, v := range Sysconfig["customerfield"].(map[string]interface{}) {
  136. val := v.(string)
  137. CustomerFieldMap_HE[k] = val
  138. CustomerFieldMap_EH[val] = k
  139. }
  140. BiaoZhu = Sysconfig["biaozhu"].(map[string]interface{})
  141. tmpAllField := Arr{}
  142. AllFieldMap := map[string]string{}
  143. AllFieldArr = []map[string]string{}
  144. common := BiaoZhu["common"].([]interface{})
  145. timeplace := BiaoZhu["timeplace"].([]interface{})
  146. other := BiaoZhu["other"].([]interface{})
  147. for _, com := range common {
  148. tmp := com.(map[string]interface{})
  149. key := qu.ObjToString(tmp["key"])
  150. if key == "" {
  151. continue
  152. }
  153. descript := qu.ObjToString(tmp["descript"])
  154. tmpAllField = append(tmpAllField, descript)
  155. AllFieldMap[descript] = key
  156. }
  157. for _, tp := range timeplace {
  158. tmp := tp.(map[string]interface{})
  159. key := qu.ObjToString(tmp["key"])
  160. descript := qu.ObjToString(tmp["descript"])
  161. tmpAllField = append(tmpAllField, descript)
  162. AllFieldMap[descript] = key
  163. }
  164. for _, o := range other {
  165. tmp := o.(map[string]interface{})
  166. key := qu.ObjToString(tmp["key"])
  167. descript := qu.ObjToString(tmp["descript"])
  168. tmpAllField = append(tmpAllField, descript)
  169. AllFieldMap[descript] = key
  170. }
  171. tmpAllField = append(tmpAllField, "标的物列表")
  172. tmpAllField = append(tmpAllField, "多包")
  173. tmpAllField = append(tmpAllField, "中标候选人")
  174. AllFieldMap["标的物列表"] = "purchasinglist"
  175. AllFieldMap["多包"] = "package"
  176. AllFieldMap["中标候选人"] = "winnerorder"
  177. sort.Sort(tmpAllField)
  178. for _, f := range tmpAllField {
  179. AllFieldArr = append(AllFieldArr, map[string]string{AllFieldMap[f]: f})
  180. }
  181. PurchasinglistField = []map[string]string{}
  182. pcls, _ := BiaoZhu["purchasinglist"].([]interface{})
  183. for _, pcl := range pcls {
  184. tmp := pcl.(map[string]interface{})
  185. key := qu.ObjToString(tmp["key"])
  186. descript := qu.ObjToString(tmp["descript"])
  187. PurchasinglistField = append(PurchasinglistField, map[string]string{key: descript})
  188. }
  189. PurchasinglistField1 = []map[string]string{}
  190. pcls1, _ := BiaoZhu["procurementlist"].([]interface{})
  191. for _, pcl := range pcls1 {
  192. tmp := pcl.(map[string]interface{})
  193. key := qu.ObjToString(tmp["key"])
  194. descript := qu.ObjToString(tmp["descript"])
  195. PurchasinglistField1 = append(PurchasinglistField1, map[string]string{key: descript})
  196. }
  197. PackageField = []map[string]string{}
  198. pkgs, _ := BiaoZhu["package"].([]interface{})
  199. for _, pkg := range pkgs {
  200. tmp := pkg.(map[string]interface{})
  201. key := qu.ObjToString(tmp["key"])
  202. descript := qu.ObjToString(tmp["descript"])
  203. PackageField = append(PackageField, map[string]string{key: descript})
  204. }
  205. WinnerorderField = []map[string]string{}
  206. wods, _ := BiaoZhu["winnerorder"].([]interface{})
  207. for _, wod := range wods {
  208. tmp := wod.(map[string]interface{})
  209. key := qu.ObjToString(tmp["key"])
  210. descript := qu.ObjToString(tmp["descript"])
  211. WinnerorderField = append(WinnerorderField, map[string]string{key: descript})
  212. }
  213. //公告类型
  214. types := Sysconfig["topsubtype"].(map[string]interface{})
  215. for top, v := range types {
  216. tmp := v.([]interface{})
  217. for _, sub := range tmp {
  218. TopSubStypeArr = append(TopSubStypeArr, top+"-"+qu.ObjToString(sub))
  219. }
  220. }
  221. TopSubStypeArr2 = TopSubStypeArr
  222. DataTypeMap = Sysconfig["dataType"].(map[string]interface{})
  223. for k := range DataTypeMap {
  224. DataTypeArr = append(DataTypeArr, k)
  225. }
  226. info, _ := Mgo.Find("v_field", nil, nil, nil, false, -1, -1)
  227. FieldsMap = make(map[string]interface{})
  228. purMap := make(map[string]interface{})
  229. proMap := make(map[string]interface{})
  230. pkgMap := make(map[string]interface{})
  231. wnMap := make(map[string]interface{})
  232. for _, m := range *info {
  233. if qu.IntAll(m["f_level"]) == 1 {
  234. FieldsMap[qu.ObjToString(m["s_code"])] = m["s_name"]
  235. } else {
  236. pstr := qu.ObjToString(m["s_parent"])
  237. if pstr == "purchasinglist" {
  238. purMap[qu.ObjToString(m["s_code"])] = m["s_name"]
  239. } else if pstr == "procurementlist" {
  240. proMap[qu.ObjToString(m["s_code"])] = m["s_name"]
  241. } else if pstr == "package" {
  242. pkgMap[qu.ObjToString(m["s_code"])] = m["s_name"]
  243. } else if pstr == "winnerorder" {
  244. wnMap[qu.ObjToString(m["s_code"])] = m["s_name"]
  245. }
  246. }
  247. }
  248. FieldsMap["purchasinglist"] = purMap
  249. FieldsMap["procurementlist"] = proMap
  250. FieldsMap["package"] = pkgMap
  251. FieldsMap["winnerorder"] = wnMap
  252. initQuaConfig()
  253. }
  254. // 质量相关初始化配置
  255. func initQuaConfig() {
  256. Ext_Type = Quaconfig["ext_type"].(map[string]interface{})
  257. Ext_From = Quaconfig["ext_from"].(map[string]interface{})
  258. Buyer_Score = Quaconfig["buyer_score"].(map[string]interface{})
  259. S_Winner_Score = Quaconfig["s_winner_score"].(map[string]interface{})
  260. Budget_Score = Quaconfig["budget_score"].(map[string]interface{})
  261. Bidamount_Score = Quaconfig["bidamount_score"].(map[string]interface{})
  262. Projectname_Score = Quaconfig["projectname_score"].(map[string]interface{})
  263. Projectcode_Score = Quaconfig["projectcode_score"].(map[string]interface{})
  264. }