Răsfoiți Sursa

拆包历史数据

xuzhiheng 4 ani în urmă
părinte
comite
caba29bde8
5 a modificat fișierele cu 140 adăugiri și 6 ștergeri
  1. 29 1
      src/config.json
  2. 1 0
      src/history/datamodel.go
  3. 97 5
      src/history/util_history.go
  4. 3 0
      src/main.go
  5. 10 0
      src/util/config.go

+ 29 - 1
src/config.json

@@ -51,6 +51,12 @@
         "coll_usermail": "usermail",
 		"coll_project": "usermail_history_projectid"
 	},
+	"extract": {
+    	"addr": "192.168.3.128:27080",
+    	"coll": "result_20200917",
+    	"db": "qfw",
+    	"size": 15
+    },
 	"es": {
 		"addr": "http://192.168.3.128:9800",
 		"index": "bidding_v5",
@@ -97,5 +103,27 @@
 	],
 	"checkbidhref_appid": [
 		"jyMDBXQQIDCQBeSUdBITNf"
-	]
+	],
+	"dis_package_appid":[
+	    "111",
+	    "222",
+	    "jyPB1XQgsGBQNbQElICQNW"
+	],
+	"dis_package_config": {
+		"yidong":{
+			"name":"移动",
+			"keyWord":"移动,中移,铁通",
+			"exclued":""
+		},
+		"liantong":{
+			"name":"联通",
+			"keyWord":"联通,联合网络通信",
+			"exclued":""
+		},
+		"dianxin":{
+			"name":"电信",
+			"keyWord":"电信,天翼视讯",
+			"exclued":"电信营业厅,电信店,汇通电信工程技术有限公司,电信专营店,电信营业部"
+		}
+	}
 }

+ 1 - 0
src/history/datamodel.go

@@ -79,6 +79,7 @@ var (
 	FileTextAppidMap     = map[string]bool{}
 	CheckBidOpenAppidMap = map[string]bool{}
 	CheckBidHrefAppidMap = map[string]bool{}
+	DisPackageAppidMap   = map[string]bool{}
 )
 
 //客户模型

+ 97 - 5
src/history/util_history.go

@@ -11,6 +11,7 @@ import (
 	"strings"
 	"time"
 	. "util"
+	"util/mgodb"
 
 	"github.com/tealeg/xlsx"
 
@@ -62,7 +63,7 @@ func GetNotkeyAndKeyAddWord(list []map[string]interface{}, fieldMap map[string]i
 					tmp_nkw := nkw_addArr[0]
 					if tmp_nkw != "" {
 						cr := &CommonReg{}
-						cr.CsVal = tmp_nkw //记录原值
+						cr.CsVal = tmp_nkw                   //记录原值
 						if LetterCase.MatchString(tmp_nkw) { //判断附加词中是否有英文
 							tmp_nkw = strings.ToUpper(tmp_nkw) //附加词中有英文全部转为大写
 							cr.IsLetter = true                 //含字母
@@ -114,7 +115,7 @@ func GetNotkeyAndKeyAddWord(list []map[string]interface{}, fieldMap map[string]i
 				tmp_aw := aw_addArr[0]
 				if tmp_aw != "" {
 					cr := &CommonReg{}
-					cr.CsVal = tmp_aw //记录原值
+					cr.CsVal = tmp_aw                   //记录原值
 					if LetterCase.MatchString(tmp_aw) { //判断附加词中是否有英文
 						tmp_aw = strings.ToUpper(tmp_aw) //附加词中有英文全部转为大写
 						cr.IsLetter = true               //含字母
@@ -493,6 +494,98 @@ func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, h
 			tmp["projectId"] = projectId
 		}
 	}
+	if DisPackageAppidMap[appid] {
+		querys := map[string]interface{}{
+			"_id": mongodb.StringTOBsonId(id),
+		}
+		datas := MgoExtract.FindOne(ExtractColl, querys)
+		if datas != nil && len(datas) > 0 {
+			indexdata := []map[string]interface{}{}
+			index := 0
+			if (datas)["package"] != nil {
+				packages := (datas)["package"].(map[string]interface{})
+				for _, vv := range packages {
+					vs := vv.(map[string]interface{})
+					if qu.ObjToString(tmp["toptype"]) == "结果" || qu.ObjToString(tmp["toptype"]) == "其它" {
+						if vs["winner"] != nil && qu.ObjToString(vs["winner"]) != "" {
+							winner := strings.Split(qu.ObjToString(vs["winner"]), ",")
+							for _, w := range winner {
+								// if MactchWinner(w) {
+								if index > 1 {
+									s_data := map[string]interface{}{}
+									for ks, vks := range tmp {
+										s_data[ks] = vks
+									}
+									s_data["s_winner"] = w
+									if vs["bidamount"] != nil {
+										s_data["bidamount"] = vs["bidamount"]
+									}
+									if vs["budget"] != nil {
+										s_data["budget"] = vs["budget"]
+									}
+									SearchEnterpriseInfo(s_data)
+									indexdata = append(indexdata, s_data)
+									log.Println("index", index, " ", id, " ", w)
+									log.Println("indexdata", len(indexdata))
+								} else {
+									if vs["bidamount"] != nil {
+										tmp["bidamount"] = vs["bidamount"]
+									}
+									if vs["budget"] != nil {
+										tmp["budget"] = vs["budget"]
+									}
+									log.Println("index", index, " ", id, " ", w)
+								}
+								index++
+								// }
+							}
+						}
+					} else {
+						if vs["budget"] != nil {
+							s_data := map[string]interface{}{}
+							for ks, vks := range tmp {
+								s_data[ks] = vks
+							}
+							s_data["budget"] = vs["budget"]
+							indexdata = append(indexdata, s_data)
+						}
+					}
+				}
+			}
+			if len(indexdata) > 0 {
+				for _, v := range indexdata {
+					s_winner := qu.ObjToString(v["s_winner"])
+					isMatch := false
+					for _, vs := range Sysconfig["dis_package_config"].(map[string]interface{}) {
+						vvs := vs.(map[string]interface{})
+						keyWord := qu.ObjToString(vvs["keyWord"])
+						exclued := qu.ObjToString(vvs["exclued"])
+						name := qu.ObjToString(vvs["name"])
+						for _, key := range strings.Split(keyWord, ",") {
+							if strings.Contains(s_winner, key) {
+								isMatch = true
+								if exclued != "" {
+									for _, keys := range strings.Split(exclued, ",") {
+										if strings.Contains(s_winner, keys) {
+											isMatch = false
+										}
+									}
+								}
+							}
+						}
+						if isMatch {
+							v["winner_type"] = name
+							break
+						}
+					}
+					if !isMatch {
+						v["winner_type"] = "集成商"
+					}
+					MgoSaveCache <- v
+				}
+			}
+		}
+	}
 	if isDup == 1 {
 		ok := checkBidId(appid, id)
 		if !ok {
@@ -501,7 +594,6 @@ func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, h
 			MgoSave.Save(SaveCollbid, tmp)
 		}
 	}
-
 	if isOk {
 		MgoSaveCache <- tmp
 		xlsxArr = append(xlsxArr, tmp)
@@ -1054,13 +1146,13 @@ func GetXlsxs(mMap []map[string]interface{}, fn, email, id string, isfile, isHen
 				for _, v := range mMap {
 					row := sh.AddRow()
 					// row.AddCell().SetInt(i + 1)
-					row.AddCell().SetValue(v["matchkey"]) //信息匹配词
+					row.AddCell().SetValue(v["matchkey"])    //信息匹配词
 					row.AddCell().SetValue(v["city"])        //城市
 					row.AddCell().SetValue(v["district"])    //县区
 					row.AddCell().SetValue(v["projectname"]) //项目名称
 					row.AddCell().SetValue(v["buyer"])       //采购单位
 					row.AddCell().SetValue(v[""])            //采购单位类别---私有标签tagname
-					if v["bidamount"] != nil { //中标金额
+					if v["bidamount"] != nil {               //中标金额
 						row.AddCell().SetFloat(qu.Float64All(v["bidamount"]))
 					} else {
 						row.AddCell()

+ 3 - 0
src/main.go

@@ -71,6 +71,9 @@ func init() {
 	for _, v := range util.Sysconfig["checkbidhref_appid"].([]interface{}) {
 		history.CheckBidHrefAppidMap[v.(string)] = true
 	}
+	for _, v := range util.Sysconfig["dis_package_appid"].([]interface{}) {
+		history.DisPackageAppidMap[v.(string)] = true
+	}
 }
 
 func main() {

+ 10 - 0
src/util/config.go

@@ -22,6 +22,7 @@ var (
 	MgoSave         *mgo.MongodbSim //数据保存库连接
 	MgoBuyer        *mgo.MongodbSim //医院等级信息
 	MgoEnps         *mgo.MongodbSim //企业信息
+	MgoExtract      *mgo.MongodbSim //抽取
 	SaveColl        string
 	HospColl        string
 	BuyerEntColl    string
@@ -37,6 +38,7 @@ var (
 	SaveCollProject string
 	SaveCollbid     string
 	SaveUserMail    string
+	ExtractColl     string
 )
 
 var (
@@ -218,6 +220,14 @@ func initdb() {
 		Size:        qu.IntAllDef(enterprise["size"], 15),
 	}
 	MgoEnps.InitPool()
+	extract := Sysconfig["extract"].(map[string]interface{})
+	ExtractColl = qu.ObjToString(enterprise["coll"])
+	MgoExtract = &mgo.MongodbSim{
+		MongodbAddr: qu.ObjToString(extract["addr"]),
+		DbName:      qu.ObjToString(extract["db"]),
+		Size:        qu.IntAllDef(extract["size"], 15),
+	}
+	MgoExtract.InitPool()
 
 	//es
 	es := Sysconfig["es"].(map[string]interface{})