// demodata package main import ( "jy/mongodbutil" "log" "qfw/util" ) //30个网站,10个信息分类,共计5000条样例数据 var sitenums = map[string]int{ "中国政府采购网": 1006, "中国招标投标公共服务平台": 674, "国家公共资源交易平台": 371, "广东省政府采购网": 282, "机电产品招标投标电子交易平台": 189, "中国山东政府采购网": 183, "中国华能集团公司": 177, "湖北省政府采购网": 173, "基建云采购": 166, "浙江政府采购网": 141, "中国大唐集团公司电子商务平台": 140, "中国华电集团公司电子商务平台": 129, "中国电力设备信息网": 122, "安徽省政府采购网": 116, "中国电信阳光采购网": 100, "河北省政府采购网": 98, "四川政府采购": 92, "安徽省招标投标信息网": 85, "中国山西政府采购网": 74, "浙江省公共资源交易服务平台": 73, "新疆维吾尔自治区政府采购网": 73, "阿里巴巴大企业采购平台": 70, "中国冶金科工集团有限公司采购电子商务平台": 64, "广东省电子化采购执行平台": 62, "河南省政府采购网": 60, "国家能源e购": 57, "铁路物资采购与招商平台": 57, "兵器工业集团公司采购电子商务平台": 57, "安徽合肥公共资源交易中心": 55, "河北省公共资源交易信息网": 55, } var bidtypesP = map[string]float64{ "招标": 0.25, "邀标": 0.03, "询价": 0.10, "竞谈": 0.06, "单一": 0.03, "竞价": 0.03, "合同": 0.09, "验收": 0.03, "中标": 0.23, "成交": 0.15, } var bidtypes = map[string]bool{ "招标": true, "邀标": true, "询价": true, "竞价": true, "竞谈": true, "单一": true, "中标": true, "成交": true, "合同": true, "验收": true, } var sitebidtypesNum = map[string]int{} func mainT() { ext := mongodbutil.MgoFactory(1, 3, 120, "192.168.3.207:27092", "extract_kf") // ls, _ := ext.Find("demo_data", nil, nil, nil, false, -1, -1) // bidnum := map[string]int{} // for _, v := range *ls { // subtype, _ := v["subtype"].(string) // bidnum[subtype] += 1 // } // for k, v := range bidnum { // log.Println(k, v) // } // os.Exit(0) var total = 0 for site, num := range sitenums { tt := 0 for stype, _ := range bidtypes { n := bidtypesP[stype] * float64(num) sitebidtypesNum[site+"-"+stype] = int(n) total += int(n) tt += int(n) log.Println(site+"-"+stype, int(n)) } log.Println(site, tt) } log.Println(total) db := mongodbutil.MgoFactory(1, 3, 120, "192.168.3.207:27083", "qfw") it := db.Get().DB("qfw").C("bidding").Find(map[string]interface{}{ "_id": map[string]interface{}{ "$gt": util.StringTOBsonId("5df507000000000000000000"), "$lt": util.StringTOBsonId("5e0a1f000000000000000000"), }, }).Iter() index := 0 datanum := 0 for tmp := make(map[string]interface{}); it.Next(&tmp); index++ { if index%1000 == 0 { log.Println(index, datanum) } site, _ := tmp["site"].(string) subtype, _ := tmp["subtype"].(string) if !bidtypes[subtype] { continue } tp := site + "-" + subtype if sitebidtypesNum[tp] > 0 { sitebidtypesNum[tp] -= 1 } else { continue } datanum++ ext.Update("demo_data", map[string]interface{}{"_id": tmp["_id"]}, tmp, true, false) tmp = map[string]interface{}{} } log.Println("datanum", datanum) ls, _ := ext.Find("demo_data", nil, nil, nil, false, -1, -1) snum := map[string]int{} for _, v := range *ls { site, _ := v["site"].(string) snum[site] += 1 } for k, v := range snum { log.Println(k, v) } }