123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- package util
- import (
- "go.mongodb.org/mongo-driver/mongo"
- "mongodb"
- qu "qfw/util"
- "sort"
- "sync"
- )
- //const JYDATAFROMDB = "jyqyfw"
- //const JYDATAFROMCOLL = "usermail_history"
- //const JYDATATODB = "jyqyfw"
- var (
- Sysconfig map[string]interface{} //配置文件
- Quaconfig map[string]interface{} //质量配置文件
- Es *Elastic
- Mgo *mongodb.MongodbSim
- AllToColl string //所有标注数据汇总表
- Password string //默认登陆密码
- MgoB *mongodb.MongodbSim //bidding
- BidColl1 string
- BidColl2 string
- MgoE *mongodb.MongodbSim //extract
- ExtColl1 string
- ExtColl2 string
- ProjectColl string
- MgoJy *mongodb.MongodbSim //jy
- JyHistory string
- JyUser string
- CustomerFieldMap_EH map[string]string
- CustomerFieldMap_HE map[string]string
- BiaoZhu map[string]interface{}
- PurchasinglistField []map[string]string
- PurchasinglistField1 []map[string]string
- PackageField []map[string]string
- WinnerorderField []map[string]string
- AllFieldArr []map[string]string
- TopSubStypeArr []string
- TopSubStypeArr2 []string
- FieldsMap map[string]interface{}
- DataTypeArr []string
- DataTypeMap map[string]interface{} //项目中数据类型
- )
- var (
- Mgo_QY *mongodb.MongodbSim //企业mgo
- Qy_Lock sync.Mutex //锁-多线程备用
- Ext_Type, Ext_From map[string]interface{} //抽取来源,方式分
- Buyer_Score, S_Winner_Score map[string]interface{} //字段规则分
- Budget_Score, Bidamount_Score map[string]interface{}
- Projectname_Score, Projectcode_Score map[string]interface{}
- )
- var SE = qu.SimpleEncrypt{Key: "topJYBX2019"}
- var SourceInfoIndexArr = []mongo.IndexModel{
- {Keys: map[string]interface{}{"s_grouptaskid": 1}}, //独立索引
- {Keys: map[string]interface{}{"s_usertaskid": 1}},
- {Keys: map[string]interface{}{"s_grouptaskid": 1, "b_istag": 1}}, //联合索引
- {Keys: map[string]interface{}{"s_grouptaskid": 1, "s_isgiveuser": 1}},
- {Keys: map[string]interface{}{"s_usertaskid": 1, "b_istag": 1}},
- {Keys: map[string]interface{}{"s_usertaskid": 1, "b_check": 1}},
- {Keys: map[string]interface{}{"b_istagging": 1}},
- {Keys: map[string]interface{}{"b_istagging": 1, "b_istag": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "b_istagging": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istag": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "b_istagging": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1}},
- {Keys: map[string]interface{}{"b_isgivegroup": 1, "s_isgiveuser": 1, "i_ckdata": 1, "b_istagging": 1}},
- }
- const JYHREFPRE = "https://www.jianyu360.cn/article/content/"
- const BIDDINGSTARTID = "5a862f0640d2d9bbe88e3cec"
- const PROJECTCOLLNAME = "f_project"
- const TASKCOLLNAME = "f_task"
- const LOGCOLLNAME = "l_taglog"
- const SPECIALTYPE = "二级不存在"
- func InitConfig() {
- Mgo = &mongodb.MongodbSim{
- MongodbAddr: qu.ObjToString(Sysconfig["mgodb"]),
- Size: qu.IntAll(Sysconfig["dbsize"]),
- DbName: qu.ObjToString(Sysconfig["dbname"]),
- }
- Mgo.InitPool()
- AllToColl = qu.ObjToString(Sysconfig["alltocoll"])
- Password = qu.ObjToString(Sysconfig["defaultpwd"])
- //bid
- bid := Sysconfig["bidding"].(map[string]interface{})
- BidColl1 = qu.ObjToString(bid["coll1"])
- BidColl2 = qu.ObjToString(bid["coll2"])
- MgoB = &mongodb.MongodbSim{
- MongodbAddr: qu.ObjToString(bid["addr"]),
- DbName: qu.ObjToString(bid["db"]),
- Size: qu.IntAll(bid["size"]),
- UserName: qu.ObjToString(bid["username"]),
- Password: qu.ObjToString(bid["password"]),
- }
- MgoB.InitPool()
- esConf := Sysconfig["es"].(map[string]interface{})
- Es = &Elastic{
- S_esurl: qu.ObjToString(esConf["addr"]), //http://172.17.145.170:9800
- I_size: qu.IntAllDef(esConf["pool"], 10),
- Username: qu.ObjToString(esConf["user"]),
- Password: qu.ObjToString(esConf["password"]),
- }
- Es.InitElasticSize()
- //ext
- ext := Sysconfig["extract"].(map[string]interface{})
- ExtColl1 = qu.ObjToString(ext["coll1"])
- ExtColl2 = qu.ObjToString(ext["coll2"])
- ProjectColl = qu.ObjToString(ext["projectcoll"])
- MgoE = &mongodb.MongodbSim{
- MongodbAddr: qu.ObjToString(ext["addr"]),
- DbName: qu.ObjToString(ext["db"]),
- Size: qu.IntAll(ext["size"]),
- }
- MgoE.InitPool()
- //jy
- jy := Sysconfig["jy"].(map[string]interface{})
- JyHistory = qu.ObjToString(jy["history"])
- JyUser = qu.ObjToString(jy["user"])
- MgoJy = &mongodb.MongodbSim{
- MongodbAddr: qu.ObjToString(jy["addr"]),
- DbName: qu.ObjToString(jy["db"]),
- Size: qu.IntAll(jy["size"]),
- }
- MgoJy.InitPool()
- Mgo_QY = &mongodb.MongodbSim{
- MongodbAddr: qu.ObjToString(bid["addr"]),
- DbName: "mixdata",
- Size: qu.IntAll(bid["size"]),
- UserName: qu.ObjToString(bid["username"]),
- Password: qu.ObjToString(bid["password"]),
- }
- Mgo_QY.InitPool()
- //other
- CustomerFieldMap_EH = map[string]string{}
- CustomerFieldMap_HE = map[string]string{}
- for k, v := range Sysconfig["customerfield"].(map[string]interface{}) {
- val := v.(string)
- CustomerFieldMap_HE[k] = val
- CustomerFieldMap_EH[val] = k
- }
- BiaoZhu = Sysconfig["biaozhu"].(map[string]interface{})
- tmpAllField := Arr{}
- AllFieldMap := map[string]string{}
- AllFieldArr = []map[string]string{}
- common := BiaoZhu["common"].([]interface{})
- timeplace := BiaoZhu["timeplace"].([]interface{})
- other := BiaoZhu["other"].([]interface{})
- for _, com := range common {
- tmp := com.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- if key == "" {
- continue
- }
- descript := qu.ObjToString(tmp["descript"])
- tmpAllField = append(tmpAllField, descript)
- AllFieldMap[descript] = key
- }
- for _, tp := range timeplace {
- tmp := tp.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- tmpAllField = append(tmpAllField, descript)
- AllFieldMap[descript] = key
- }
- for _, o := range other {
- tmp := o.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- tmpAllField = append(tmpAllField, descript)
- AllFieldMap[descript] = key
- }
- tmpAllField = append(tmpAllField, "标的物列表")
- tmpAllField = append(tmpAllField, "多包")
- tmpAllField = append(tmpAllField, "中标候选人")
- AllFieldMap["标的物列表"] = "purchasinglist"
- AllFieldMap["多包"] = "package"
- AllFieldMap["中标候选人"] = "winnerorder"
- sort.Sort(tmpAllField)
- for _, f := range tmpAllField {
- AllFieldArr = append(AllFieldArr, map[string]string{AllFieldMap[f]: f})
- }
- PurchasinglistField = []map[string]string{}
- pcls, _ := BiaoZhu["purchasinglist"].([]interface{})
- for _, pcl := range pcls {
- tmp := pcl.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- PurchasinglistField = append(PurchasinglistField, map[string]string{key: descript})
- }
- PurchasinglistField1 = []map[string]string{}
- pcls1, _ := BiaoZhu["procurementlist"].([]interface{})
- for _, pcl := range pcls1 {
- tmp := pcl.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- PurchasinglistField1 = append(PurchasinglistField1, map[string]string{key: descript})
- }
- PackageField = []map[string]string{}
- pkgs, _ := BiaoZhu["package"].([]interface{})
- for _, pkg := range pkgs {
- tmp := pkg.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- PackageField = append(PackageField, map[string]string{key: descript})
- }
- WinnerorderField = []map[string]string{}
- wods, _ := BiaoZhu["winnerorder"].([]interface{})
- for _, wod := range wods {
- tmp := wod.(map[string]interface{})
- key := qu.ObjToString(tmp["key"])
- descript := qu.ObjToString(tmp["descript"])
- WinnerorderField = append(WinnerorderField, map[string]string{key: descript})
- }
- //公告类型
- types := Sysconfig["topsubtype"].(map[string]interface{})
- for top, v := range types {
- tmp := v.([]interface{})
- for _, sub := range tmp {
- TopSubStypeArr = append(TopSubStypeArr, top+"-"+qu.ObjToString(sub))
- }
- }
- TopSubStypeArr2 = TopSubStypeArr
- DataTypeMap = Sysconfig["dataType"].(map[string]interface{})
- for k := range DataTypeMap {
- DataTypeArr = append(DataTypeArr, k)
- }
- info, _ := Mgo.Find("v_field", nil, nil, nil, false, -1, -1)
- FieldsMap = make(map[string]interface{})
- purMap := make(map[string]interface{})
- proMap := make(map[string]interface{})
- pkgMap := make(map[string]interface{})
- wnMap := make(map[string]interface{})
- for _, m := range *info {
- if qu.IntAll(m["f_level"]) == 1 {
- FieldsMap[qu.ObjToString(m["s_code"])] = m["s_name"]
- } else {
- pstr := qu.ObjToString(m["s_parent"])
- if pstr == "purchasinglist" {
- purMap[qu.ObjToString(m["s_code"])] = m["s_name"]
- } else if pstr == "procurementlist" {
- proMap[qu.ObjToString(m["s_code"])] = m["s_name"]
- } else if pstr == "package" {
- pkgMap[qu.ObjToString(m["s_code"])] = m["s_name"]
- } else if pstr == "winnerorder" {
- wnMap[qu.ObjToString(m["s_code"])] = m["s_name"]
- }
- }
- }
- FieldsMap["purchasinglist"] = purMap
- FieldsMap["procurementlist"] = proMap
- FieldsMap["package"] = pkgMap
- FieldsMap["winnerorder"] = wnMap
- initQuaConfig()
- }
- // 质量相关初始化配置
- func initQuaConfig() {
- Ext_Type = Quaconfig["ext_type"].(map[string]interface{})
- Ext_From = Quaconfig["ext_from"].(map[string]interface{})
- Buyer_Score = Quaconfig["buyer_score"].(map[string]interface{})
- S_Winner_Score = Quaconfig["s_winner_score"].(map[string]interface{})
- Budget_Score = Quaconfig["budget_score"].(map[string]interface{})
- Bidamount_Score = Quaconfig["bidamount_score"].(map[string]interface{})
- Projectname_Score = Quaconfig["projectname_score"].(map[string]interface{})
- Projectcode_Score = Quaconfig["projectcode_score"].(map[string]interface{})
- }
|