123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- package util
- import (
- "go.mongodb.org/mongo-driver/bson"
- "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{} //配置文件
- 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
- JYPushColl string
- JyUser string
- CustomerFieldMap_EH map[string]string
- CustomerFieldMap_HE map[string]string
- AllFieldArr []map[string]string
- TopSubStypeArr []string
- TopSubStypeArr2 []string
- FieldsArr []map[string]interface{}
- MgoHM *mongodb.MongodbSim //高质量库
- MgoBulkSize = 200
- )
- 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 DATACOLLNAME = "f_data"
- 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()
- //biddingHConf := Sysconfig["high_mark"].(map[string]interface{})
- //if biddingHConf == nil || len(biddingHConf) == 0 {
- // qu.Debug("high_mark 配置项为空,请配置高质量库参数")
- //}
- //高质量库
- //MgoHM = &mongodb.MongodbSim{
- // MongodbAddr: biddingHConf["addr"].(string),
- // Size: qu.IntAllDef(biddingHConf["size"], 5),
- // DbName: biddingHConf["db"].(string),
- // UserName: biddingHConf["username"].(string),
- // Password: biddingHConf["password"].(string),
- //}
- //MgoHM.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"])
- JYPushColl = qu.ObjToString(jy["pushcoll"])
- 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
- }
- //公告类型
- 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
- info, _ := Mgo.Find("v_field", nil, nil, nil, false, -1, -1)
- AllFieldMap := map[string]string{}
- AllFieldArr = []map[string]string{}
- var bArr []map[string]interface{}
- var purArr []map[string]interface{}
- var proArr []map[string]interface{}
- var pkgArr []map[string]interface{}
- var wnArr []map[string]interface{}
- for _, m := range *info {
- m1 := make(map[string]interface{})
- if qu.IntAll(m["f_level"]) == 1 {
- m1["key"] = m["s_code"]
- m1["descript"] = m["s_name"]
- m1["enable"] = false
- m1["ftype"] = m["s_ftype"]
- m1["stype"] = m["s_type"]
- AllFieldMap[qu.ObjToString(m["s_name"])] = qu.ObjToString(m["s_code"])
- bArr = append(bArr, m1)
- } else {
- pstr := qu.ObjToString(m["s_parent"])
- if pstr == "purchasinglist" {
- m1["key"] = m["s_code"]
- m1["descript"] = m["s_name"]
- m1["enable"] = false
- m1["ftype"] = m["s_ftype"]
- m1["stype"] = m["s_type"]
- purArr = append(purArr, m1)
- } else if pstr == "procurementlist" {
- m1["key"] = m["s_code"]
- m1["descript"] = m["s_name"]
- m1["enable"] = false
- m1["ftype"] = m["s_ftype"]
- m1["stype"] = m["s_type"]
- proArr = append(proArr, m1)
- } else if pstr == "package" {
- m1["key"] = m["s_code"]
- m1["descript"] = m["s_name"]
- m1["enable"] = false
- m1["ftype"] = m["s_ftype"]
- m1["stype"] = m["s_type"]
- pkgArr = append(pkgArr, m1)
- } else if pstr == "winnerorder" {
- m1["key"] = m["s_code"]
- m1["descript"] = m["s_name"]
- m1["enable"] = false
- m1["ftype"] = m["s_ftype"]
- m1["stype"] = m["s_type"]
- wnArr = append(wnArr, m1)
- }
- }
- }
- FieldsArr = append(FieldsArr, bson.M{"descript": "基本字段", "child": bArr})
- FieldsArr = append(FieldsArr, bson.M{"descript": "标的物信息", "key": "purchasinglist", "child": purArr})
- FieldsArr = append(FieldsArr, bson.M{"descript": "采购意向信息", "key": "procurementlist", "child": proArr})
- FieldsArr = append(FieldsArr, bson.M{"descript": "多包信息", "key": "package", "child": pkgArr})
- FieldsArr = append(FieldsArr, bson.M{"descript": "中标候选信息", "key": "winnerorder", "child": wnArr})
- AllFieldMap["标的物列表"] = "purchasinglist"
- AllFieldMap["多包"] = "package"
- AllFieldMap["中标候选人"] = "winnerorder"
- tmpAllField := Arr{}
- tmpAllField = append(tmpAllField, "标的物列表")
- tmpAllField = append(tmpAllField, "多包")
- tmpAllField = append(tmpAllField, "中标候选人")
- sort.Sort(tmpAllField)
- for _, f := range tmpAllField {
- AllFieldArr = append(AllFieldArr, map[string]string{AllFieldMap[f]: f})
- }
- }
|