package util import ( "qfw/mongodb" qu "qfw/util" "qfw/util/elastic" mgo "util/mgodb" ) var ( Sysconfig map[string]interface{} //配置文件 Mgo *mongodb.MongodbSim MgoCus *mongodb.MongodbSim //企业服务库 MgoEn *mongodb.MongodbSim EsIndex, EsType string MgoEnC string Subday float64 PreviewHref string //数据预览地址 CustomerApi string LatestId = "" //起始id MgoTag *mgo.MongodbSim //标签库连接 MgoSave *mgo.MongodbSim //数据保存库连接 MgoBuyer *mgo.MongodbSim //医院等级信息 MgoEnps *mgo.MongodbSim //企业信息 SaveColl string HospColl string BuyerEntColl string EnpsColl string Es *elastic.Elastic //es Index string Itype string TaskTime int64 //定时任务时间 //历史数据 SId string EId string CustomerName string SaveCollProject string SaveCollbid string SaveUserMail string ) var ( TopTypeArr []string //公告一级分类 SubTypeArr []string //公告二级分类 Province []string //省 ProvinceCitys map[string][]string //省:[市1,市2] CityDistricts map[string][]string //市:[区1,区2] BuyerClass []string //采购单位行业 MatchTypeMap *[]map[string]interface{} //匹配方式 MatchTypeMap2 map[string]interface{} //匹配方式 MatchTypeMap3 *[]map[string]interface{} //匹配方式 ExistFiled *[]map[string]interface{} //存在的字段 ScopeClassMap *[]map[string]interface{} //公告行业 TagFieldMap *[]map[string]interface{} //标签属性值 TaskTypeMap *[]map[string]interface{} //任务类型 ) func InitMgoPool() { Mgo = &mongodb.MongodbSim{ MongodbAddr: qu.ObjToString(Sysconfig["mgodb"]), Size: qu.IntAll(Sysconfig["dbsize"]), DbName: qu.ObjToString(Sysconfig["dbname"]), } Mgo.InitPool() customer := Sysconfig["customer"].(map[string]interface{}) CustomerApi = qu.ObjToString(customer["api"]) MgoCus = &mongodb.MongodbSim{ MongodbAddr: qu.ObjToString(customer["mgodb"]), Size: qu.IntAll(customer["dbsize"]), DbName: qu.ObjToString(customer["dbname"]), } MgoCus.InitPool() } func initMgoEn() { MgoEn = &mongodb.MongodbSim{ MongodbAddr: qu.ObjToString(Sysconfig["mgodben"]), Size: qu.IntAll(Sysconfig["dbsize"]), DbName: qu.ObjToString(Sysconfig["dbnameen"]), } MgoEnC = qu.ObjToString(Sysconfig["mongoenc"]) MgoEn.InitPool() } func InitOther() { initCitys() initInfoType() initBuyerClass() initMatchType() initExitField() initScopeClass() initTaskType() initEs() initMgoEn() Subday = qu.Float64All(Sysconfig["subday"]) PreviewHref = qu.ObjToString(Sysconfig["preview_href"]) initTagField() initdb() } func initCitys() { //map初始化 if ProvinceCitys == nil { ProvinceCitys = make(map[string][]string) } if CityDistricts == nil { CityDistricts = make(map[string][]string) } datas, _ := Mgo.Find("code_city", `{}`, `{"_id":1}`, `{}`, false, -1, -1) for _, data := range *datas { brief := data["brief"].(string) Province = append(Province, brief) citys := data["citys"].([]interface{}) citytmp := []string{} for _, city := range citys { cityMap := city.(map[string]interface{}) for cname, districts := range cityMap { citytmp = append(citytmp, cname) tmp := districts.([]interface{}) districtarr := qu.ObjArrToStringArr(tmp) CityDistricts[cname] = districtarr } } ProvinceCitys[brief] = citytmp } } func initInfoType() { datas, _ := Mgo.Find("code_infotype", `{}`, `{"_id":1}`, `{}`, false, -1, -1) for _, data := range *datas { name := data["name"].(string) TopTypeArr = append(TopTypeArr, name) child := qu.ObjArrToStringArr(data["child"].([]interface{})) SubTypeArr = append(SubTypeArr, child...) } //qu.Debug(InfoTypeArr, InfoTypeMap) } func initBuyerClass() { datas, _ := Mgo.Find("code_buyerclass", `{}`, `{"_id":1}`, `{}`, false, -1, -1) for _, data := range *datas { name := data["name"].(string) BuyerClass = append(BuyerClass, name) } } func initMatchType() { //map初始化 if MatchTypeMap2 == nil { MatchTypeMap2 = make(map[string]interface{}) } MatchTypeMap, _ = Mgo.Find("code_matchtype", `{}`, `{"_id":1}`, `{}`, false, -1, -1) MatchTypeMap3, _ = Mgo.Find("code_matchtype", `{"type": 1}`, nil, nil, false, -1, -1) for _, d := range *MatchTypeMap { code := qu.ObjToString(d["code"]) name := qu.ObjToString(d["name"]) MatchTypeMap2[code] = name } } func initExitField() { ExistFiled, _ = Mgo.Find("code_field", `{}`, `{"_id":1}`, `{}`, false, -1, -1) //for _, data := range *datas { // name := data["name"].(string) // ExistFiled = append(ExistFiled, name) //} } func initScopeClass() { ScopeClassMap, _ = Mgo.Find("code_scopeclass", `{}`, `{"_id": 1}`, `{}`, false, -1, -1) } func initTaskType() { TaskTypeMap, _ = Mgo.Find("code_task", `{}`, `{"_id": 1}`, `{}`, false, -1, -1) } func initEs() { EsIndex, EsType = qu.ObjToString(Sysconfig["elasticsearch_index"]), qu.ObjToString(Sysconfig["elasticsearch_type"]) elastic.InitElasticSize(qu.ObjToString(Sysconfig["elasticsearch"]), qu.IntAllDef(qu.Int64All(Sysconfig["elasticPoolSize"]), 30)) } func initTagField() { TagFieldMap, _ = Mgo.Find("code_tagfield", `{}`, `{"_id": 1}`, `{}`, false, -1, -1) } func initdb() { //mgo save save := Sysconfig["save"].(map[string]interface{}) SaveColl = qu.ObjToString(save["coll"]) SaveCollProject = qu.ObjToString(save["coll_project"]) SaveCollbid = qu.ObjToString(save["coll_bid"]) SaveUserMail = qu.ObjToString(save["coll_usermail"]) MgoSave = &mgo.MongodbSim{ MongodbAddr: qu.ObjToString(save["addr"]), DbName: qu.ObjToString(save["db"]), Size: qu.IntAllDef(save["size"], 15), } MgoSave.InitPool() //mgo buyerinfo buyerinfo := Sysconfig["buyerinfo"].(map[string]interface{}) HospColl = qu.ObjToString(buyerinfo["hospcoll"]) BuyerEntColl = qu.ObjToString(buyerinfo["buyerentcoll"]) MgoBuyer = &mgo.MongodbSim{ MongodbAddr: qu.ObjToString(buyerinfo["addr"]), DbName: qu.ObjToString(buyerinfo["db"]), Size: qu.IntAllDef(buyerinfo["size"], 15), } MgoBuyer.InitPool() //mgo enterprise enterprise := Sysconfig["enterprise"].(map[string]interface{}) EnpsColl = qu.ObjToString(enterprise["coll"]) MgoEnps = &mgo.MongodbSim{ MongodbAddr: qu.ObjToString(enterprise["addr"]), DbName: qu.ObjToString(enterprise["db"]), Size: qu.IntAllDef(enterprise["size"], 15), } MgoEnps.InitPool() //es es := Sysconfig["es"].(map[string]interface{}) Es = &elastic.Elastic{ S_esurl: qu.ObjToString(es["addr"]), I_size: qu.IntAllDef(es["pool"], 15), } Es.InitElasticSize() Index = qu.ObjToString(es["index"]) Itype = qu.ObjToString(es["itype"]) }