config.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. Mgo *mongodb.MongodbSim
  16. AllToColl string //所有标注数据汇总表
  17. Password string //默认登陆密码
  18. MgoB *mongodb.MongodbSim //bidding
  19. BidColl1 string
  20. BidColl2 string
  21. MgoE *mongodb.MongodbSim //extract
  22. ExtColl1 string
  23. ExtColl2 string
  24. ProjectColl string
  25. MgoJy *mongodb.MongodbSim //jy
  26. JyHistory string
  27. JyUser string
  28. CustomerFieldMap_EH map[string]string
  29. CustomerFieldMap_HE map[string]string
  30. BiaoZhu map[string]interface{}
  31. PurchasinglistField []map[string]string
  32. PackageField []map[string]string
  33. WinnerorderField []map[string]string
  34. AllFieldArr []map[string]string
  35. TopSubStypeArr []string
  36. TopSubStypeArr2 []string
  37. )
  38. var (
  39. Mgo_QY *mongodb.MongodbSim //企业mgo
  40. Qy_Lock sync.Mutex //锁-多线程备用
  41. Ext_Type, Ext_From map[string]interface{} //抽取来源,方式分
  42. Buyer_Score, S_Winner_Score map[string]interface{} //字段规则分
  43. Budget_Score, Bidamount_Score map[string]interface{}
  44. Projectname_Score, Projectcode_Score map[string]interface{}
  45. )
  46. var SE = qu.SimpleEncrypt{Key: "topJYBX2019"}
  47. var SourceInfoIndexArr = []mongo.IndexModel{
  48. mongo.IndexModel{Keys: map[string]interface{}{"s_grouptaskid": 1}}, //独立索引
  49. mongo.IndexModel{Keys: map[string]interface{}{"s_usertaskid": 1}},
  50. mongo.IndexModel{Keys: map[string]interface{}{"s_grouptaskid": 1, "b_istag": 1}}, //联合索引
  51. mongo.IndexModel{Keys: map[string]interface{}{"s_grouptaskid": 1, "s_isgiveuser": 1}},
  52. mongo.IndexModel{Keys: map[string]interface{}{"s_usertaskid": 1, "b_istag": 1}},
  53. mongo.IndexModel{Keys: map[string]interface{}{"s_usertaskid": 1, "b_check": 1}},
  54. mongo.IndexModel{Keys: map[string]interface{}{"b_istagging": 1}},
  55. mongo.IndexModel{Keys: map[string]interface{}{"b_istagging": 1, "b_istag": 1}},
  56. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "b_istagging": 1}},
  57. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1}},
  58. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istag": 1}},
  59. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istagging": 1}},
  60. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1}},
  61. mongo.IndexModel{Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1, "b_istagging": 1}},
  62. }
  63. const JYHREFPRE = "https://www.jianyu360.cn/article/content/"
  64. const BIDDINGSTARTID = "5a862f0640d2d9bbe88e3cec"
  65. const PROJECTCOLLNAME = "f_project"
  66. const TASKCOLLNAME = "f_task"
  67. const LOGCOLLNAME = "l_taglog"
  68. const SPECIALTYPE = "二级不存在"
  69. func InitConfig() {
  70. Mgo = &mongodb.MongodbSim{
  71. MongodbAddr: qu.ObjToString(Sysconfig["mgodb"]),
  72. Size: qu.IntAll(Sysconfig["dbsize"]),
  73. DbName: qu.ObjToString(Sysconfig["dbname"]),
  74. }
  75. Mgo.InitPool()
  76. AllToColl = qu.ObjToString(Sysconfig["alltocoll"])
  77. Password = "123"
  78. //bid
  79. bid := Sysconfig["bidding"].(map[string]interface{})
  80. BidColl1 = qu.ObjToString(bid["coll1"])
  81. BidColl2 = qu.ObjToString(bid["coll2"])
  82. MgoB = &mongodb.MongodbSim{
  83. MongodbAddr: qu.ObjToString(bid["addr"]),
  84. DbName: qu.ObjToString(bid["db"]),
  85. Size: qu.IntAll(bid["size"]),
  86. UserName: qu.ObjToString(bid["username"]),
  87. Password: qu.ObjToString(bid["password"]),
  88. }
  89. MgoB.InitPool()
  90. //ext
  91. ext := Sysconfig["extract"].(map[string]interface{})
  92. ExtColl1 = qu.ObjToString(ext["coll1"])
  93. ExtColl2 = qu.ObjToString(ext["coll2"])
  94. ProjectColl = qu.ObjToString(ext["projectcoll"])
  95. MgoE = &mongodb.MongodbSim{
  96. MongodbAddr: qu.ObjToString(ext["addr"]),
  97. DbName: qu.ObjToString(ext["db"]),
  98. Size: qu.IntAll(ext["size"]),
  99. }
  100. MgoE.InitPool()
  101. //jy
  102. jy := Sysconfig["jy"].(map[string]interface{})
  103. JyHistory = qu.ObjToString(jy["history"])
  104. JyUser = qu.ObjToString(jy["user"])
  105. MgoJy = &mongodb.MongodbSim{
  106. MongodbAddr: qu.ObjToString(jy["addr"]),
  107. DbName: qu.ObjToString(jy["db"]),
  108. Size: qu.IntAll(jy["size"]),
  109. }
  110. MgoJy.InitPool()
  111. Mgo_QY = &mongodb.MongodbSim{
  112. MongodbAddr: qu.ObjToString(bid["addr"]),
  113. DbName: "mixdata",
  114. Size: qu.IntAll(bid["size"]),
  115. UserName: qu.ObjToString(bid["username"]),
  116. Password: qu.ObjToString(bid["password"]),
  117. }
  118. Mgo_QY.InitPool()
  119. //other
  120. CustomerFieldMap_EH = map[string]string{}
  121. CustomerFieldMap_HE = map[string]string{}
  122. for k, v := range Sysconfig["customerfield"].(map[string]interface{}) {
  123. val := v.(string)
  124. CustomerFieldMap_HE[k] = val
  125. CustomerFieldMap_EH[val] = k
  126. }
  127. BiaoZhu = Sysconfig["biaozhu"].(map[string]interface{})
  128. tmpAllField := Arr{}
  129. AllFieldMap := map[string]string{}
  130. AllFieldArr = []map[string]string{}
  131. common := BiaoZhu["common"].([]interface{})
  132. timeplace := BiaoZhu["timeplace"].([]interface{})
  133. other := BiaoZhu["other"].([]interface{})
  134. for _, com := range common {
  135. tmp := com.(map[string]interface{})
  136. key := qu.ObjToString(tmp["key"])
  137. if key == "" {
  138. continue
  139. }
  140. descript := qu.ObjToString(tmp["descript"])
  141. tmpAllField = append(tmpAllField, descript)
  142. AllFieldMap[descript] = key
  143. }
  144. for _, tp := range timeplace {
  145. tmp := tp.(map[string]interface{})
  146. key := qu.ObjToString(tmp["key"])
  147. descript := qu.ObjToString(tmp["descript"])
  148. tmpAllField = append(tmpAllField, descript)
  149. AllFieldMap[descript] = key
  150. }
  151. for _, o := range other {
  152. tmp := o.(map[string]interface{})
  153. key := qu.ObjToString(tmp["key"])
  154. descript := qu.ObjToString(tmp["descript"])
  155. tmpAllField = append(tmpAllField, descript)
  156. AllFieldMap[descript] = key
  157. }
  158. tmpAllField = append(tmpAllField, "标的物列表")
  159. tmpAllField = append(tmpAllField, "多包")
  160. tmpAllField = append(tmpAllField, "中标候选人")
  161. AllFieldMap["标的物列表"] = "purchasinglist"
  162. AllFieldMap["多包"] = "package"
  163. AllFieldMap["中标候选人"] = "winnerorder"
  164. sort.Sort(tmpAllField)
  165. for _, f := range tmpAllField {
  166. AllFieldArr = append(AllFieldArr, map[string]string{AllFieldMap[f]: f})
  167. }
  168. PurchasinglistField = []map[string]string{}
  169. pcls, _ := BiaoZhu["purchasinglist"].([]interface{})
  170. for _, pcl := range pcls {
  171. tmp := pcl.(map[string]interface{})
  172. key := qu.ObjToString(tmp["key"])
  173. descript := qu.ObjToString(tmp["descript"])
  174. PurchasinglistField = append(PurchasinglistField, map[string]string{key: descript})
  175. }
  176. PackageField = []map[string]string{}
  177. pkgs, _ := BiaoZhu["package"].([]interface{})
  178. for _, pkg := range pkgs {
  179. tmp := pkg.(map[string]interface{})
  180. key := qu.ObjToString(tmp["key"])
  181. descript := qu.ObjToString(tmp["descript"])
  182. PackageField = append(PackageField, map[string]string{key: descript})
  183. }
  184. WinnerorderField = []map[string]string{}
  185. wods, _ := BiaoZhu["winnerorder"].([]interface{})
  186. for _, wod := range wods {
  187. tmp := wod.(map[string]interface{})
  188. key := qu.ObjToString(tmp["key"])
  189. descript := qu.ObjToString(tmp["descript"])
  190. WinnerorderField = append(WinnerorderField, map[string]string{key: descript})
  191. }
  192. //公告类型
  193. types := Sysconfig["topsubtype"].(map[string]interface{})
  194. for top, v := range types {
  195. tmp := v.([]interface{})
  196. for _, sub := range tmp {
  197. TopSubStypeArr = append(TopSubStypeArr, top+"-"+qu.ObjToString(sub))
  198. }
  199. }
  200. TopSubStypeArr2 = TopSubStypeArr
  201. initQuaConfig()
  202. }
  203. //质量相关初始化配置
  204. func initQuaConfig() {
  205. Ext_Type = Quaconfig["ext_type"].(map[string]interface{})
  206. Ext_From = Quaconfig["ext_from"].(map[string]interface{})
  207. Buyer_Score = Quaconfig["buyer_score"].(map[string]interface{})
  208. S_Winner_Score = Quaconfig["s_winner_score"].(map[string]interface{})
  209. Budget_Score = Quaconfig["budget_score"].(map[string]interface{})
  210. Bidamount_Score = Quaconfig["bidamount_score"].(map[string]interface{})
  211. Projectname_Score = Quaconfig["projectname_score"].(map[string]interface{})
  212. Projectcode_Score = Quaconfig["projectcode_score"].(map[string]interface{})
  213. }