|
@@ -26,33 +26,30 @@ func ExtractUdp() {
|
|
|
Udpclient = UdpClient{Local: ":" + ObjToString(Config["udpport"]), BufSize: 1024}
|
|
|
log.Println("udp start ", Config["udpport"])
|
|
|
Udpclient.Listen(processUdpMsg)
|
|
|
- /*//临时测试
|
|
|
+ //临时测试
|
|
|
sid := "1fffffffffffffffffffffff"
|
|
|
eid := "9fffffffffffffffffffffff"
|
|
|
- QuerySensitiveWords(sid,eid )*/
|
|
|
+ QuerySensitiveWords(sid,eid )
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
var syc sync.WaitGroup
|
|
|
+
|
|
|
+//处理方法
|
|
|
func QuerySensitiveWords(sid, eid string) {
|
|
|
- log.Println("QuerySensitiveWords:", sid, eid)
|
|
|
- objSid, err := primitive.ObjectIDFromHex(sid)
|
|
|
- if err != nil {
|
|
|
- log.Println("转换sid err", err)
|
|
|
- return
|
|
|
- }
|
|
|
- objEid, err := primitive.ObjectIDFromHex(eid)
|
|
|
- if err != nil {
|
|
|
- log.Println("转换eid err", err)
|
|
|
- return
|
|
|
+ log.Println("SensitiveWords:", sid, eid)
|
|
|
+ q := map[string]interface{}{
|
|
|
+ "_id": map[string]interface{}{
|
|
|
+ "$gt": StringTOBsonId(sid),
|
|
|
+ "$lte": StringTOBsonId(eid),
|
|
|
+ },
|
|
|
}
|
|
|
var num, unum int
|
|
|
mgoSess := QfwMgo85.GetMgoConn()
|
|
|
defer QfwMgo85.DestoryMongoConn(mgoSess)
|
|
|
- iter := mgoSess.DB(QfwMgo85.DbName).C(Collection).Find(map[string]interface{}{
|
|
|
- "_id": map[string]interface{}{
|
|
|
- "$gte": objSid,
|
|
|
- "$lte": objEid,
|
|
|
- },
|
|
|
- }).Select(Fields).Iter()
|
|
|
+ iter := mgoSess.DB(QfwMgo85.DbName).C(Collection).Find(&q).Select(Fields).Iter()
|
|
|
+
|
|
|
c := make(chan struct{}, 1)
|
|
|
for tmp := map[string]interface{}{}; iter.Next(&tmp); tmp = map[string]interface{}{} {
|
|
|
c <- struct{}{}
|
|
@@ -61,54 +58,80 @@ func QuerySensitiveWords(sid, eid string) {
|
|
|
num++
|
|
|
}
|
|
|
syc.Wait()
|
|
|
- log.Printf("%s--->%s 处理完成:%d,更新数:%d\n", sid, eid, num, unum)
|
|
|
+ log.Printf("处理完成:%d,更新数:%d\n", num, unum)
|
|
|
}
|
|
|
func handletmp(tmp map[string]interface{}, unum *int, c <-chan struct{}) {
|
|
|
defer func() {
|
|
|
<-c
|
|
|
syc.Done()
|
|
|
}()
|
|
|
- up := make(map[string]string)
|
|
|
- if win, isok := tmp["winner"].(string); isok {
|
|
|
- if fok, flog, fname := cheakname(win); fok && flog != "" && flog != "tremQuery" {
|
|
|
- tmp["winner"] = fname
|
|
|
- up["winner"] = fmt.Sprintf("%s_%s", flog, win)
|
|
|
+ up := make(map[string]interface{})
|
|
|
+ id := tmp["_id"].(primitive.ObjectID).Hex()
|
|
|
+ buyer := ObjToString(tmp["buyer"])
|
|
|
+ agency := ObjToString(tmp["agency"])
|
|
|
+ winner := ObjToString(tmp["winner"])
|
|
|
+ s_winner := ObjToString(tmp["s_winner"])
|
|
|
+
|
|
|
+
|
|
|
+ if buyer != "" {
|
|
|
+ if fok, flog, fname := cheakname(buyer); fok && flog != "" && flog != "termQuery"&& flog != "queryScore"&& flog != "queryString" {
|
|
|
+ tmp["buyer"] = fname
|
|
|
+ up["log"] =map[string]interface{}{
|
|
|
+ "buyer":fmt.Sprintf("%s_%s", flog, buyer),
|
|
|
+ }
|
|
|
+ up["buyer"] = fname
|
|
|
}
|
|
|
- }
|
|
|
- if win, isok := tmp["s_winner"].(string); isok {
|
|
|
- if fok, flog, fname := cheakname(win); fok && flog != "" && flog != "tremQuery" {
|
|
|
- tmp["s_winner"] = fname
|
|
|
- up["s_winner"] = fmt.Sprintf("%s_%s", flog, win)
|
|
|
+ }else {
|
|
|
+ if fok, flog, fname := cheakbuyername(buyer,id); fok&&fname!=""{
|
|
|
+ tmp["buyer_sensitive"] = fname
|
|
|
+ up["log"] =map[string]interface{}{
|
|
|
+ "buyer":fmt.Sprintf("%s", flog),
|
|
|
+ }
|
|
|
+ up["buyer_test"] = fname
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if agency, isok := tmp["agency"].(string); isok {
|
|
|
- if fok, flog, fname := cheakname(agency); fok && flog != "" && flog != "tremQuery" {
|
|
|
+ if agency !="" {
|
|
|
+ if fok, flog, fname := cheakname(agency); fok && flog != "" && flog != "termQuery" {
|
|
|
tmp["agency"] = fname
|
|
|
- up["agency"] = fmt.Sprintf("%s_%s", flog, agency)
|
|
|
+ up["log"] =map[string]interface{}{
|
|
|
+ "agency":fmt.Sprintf("%s_%s", flog, agency),
|
|
|
+ }
|
|
|
+ up["agency"] = fname
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if buyer, isok := tmp["buyer"].(string); isok {
|
|
|
- if fok, flog, fname := cheakname(buyer); fok && flog != "" && flog != "tremQuery"&& flog != "queryScore"&& flog != "queryString" {
|
|
|
- tmp["buyer"] = fname
|
|
|
- up["buyer"] = fmt.Sprintf("%s_%s", flog, buyer)
|
|
|
+ if winner != "" {
|
|
|
+ if fok, flog, fname := cheakname(winner); fok && flog != "" && flog != "termQuery" {
|
|
|
+ tmp["winner"] = fname
|
|
|
+ up["log"] =map[string]interface{}{
|
|
|
+ "winner":fmt.Sprintf("%s_%s", flog, winner),
|
|
|
+ }
|
|
|
+ up["winner"] = fname
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if s_winner != "" {
|
|
|
+ if fok, flog, fname := cheakname(s_winner); fok && flog != "" && flog != "termQuery" {
|
|
|
+ tmp["s_winner"] = fname
|
|
|
+ up["log"] =map[string]interface{}{
|
|
|
+ "s_winner":fmt.Sprintf("%s_%s", flog, s_winner),
|
|
|
+ }
|
|
|
+ up["s_winner"] = fname
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
if len(up) > 0 {
|
|
|
*unum++
|
|
|
- tmp["log"] = up
|
|
|
- id := tmp["_id"].(primitive.ObjectID).Hex()
|
|
|
- //log.Println(tmp)
|
|
|
- QfwMgo85.UpdateById(Collection, id, map[string]interface{}{"$set": tmp})
|
|
|
+ QfwMgo85.UpdateById(Collection, id, map[string]interface{}{"$set": up})
|
|
|
}
|
|
|
}
|
|
|
func cheakname(name string) (up bool, log, rname string) {
|
|
|
filter := sensitive.New()
|
|
|
var cheaklog string
|
|
|
//更新,匹配
|
|
|
- if tremQuery(name) {
|
|
|
- cheaklog = "tremQuery"
|
|
|
+ if termQuery(name) {
|
|
|
+ cheaklog = "termQuery"
|
|
|
return true, cheaklog, name
|
|
|
}
|
|
|
|
|
@@ -133,8 +156,7 @@ func cheakname(name string) (up bool, log, rname string) {
|
|
|
|
|
|
return false, "", name
|
|
|
}
|
|
|
-
|
|
|
-func tremQuery(name string) bool {
|
|
|
+func termQuery(name string) bool {
|
|
|
query := `{"query":{"bool":{"must":[{"term":{"` + es_index + `.name":"` + name + `"}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"facets":{}}`
|
|
|
tmp := make(map[string]interface{})
|
|
|
json.Unmarshal([]byte(query), &tmp)
|
|
@@ -196,7 +218,6 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
|
|
|
log.Println(string(data))
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
func handleData(datas []string) string {
|
|
|
dataslen := len(datas)
|
|
|
del := map[int]bool{}
|
|
@@ -295,7 +316,6 @@ func AddTaskSensitiveWordsData() {
|
|
|
log.Println("tick ok", cronData)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//处理是否新增es
|
|
|
func dealWithEsData(name string, tmpid string) {
|
|
|
query := `{"query":{"bool":{"must":[{"term":{"` + es_index + `.name":"` + name + `"}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"facets":{}}`
|
|
@@ -328,6 +348,28 @@ func dealWithEsData(name string, tmpid string) {
|
|
|
|
|
|
|
|
|
|
|
|
+//处理敏感采购
|
|
|
+func cheakbuyername(name string,tmpid string) (up bool, log, rname string) {
|
|
|
+
|
|
|
+ tmp := QfwMgo163.FindById("zk_sensitive_test_data",tmpid)
|
|
|
+ title:=ObjToString(tmp["title"])
|
|
|
+ //detail:=ObjToString(tmp["detail"])
|
|
|
+
|
|
|
+ dataArr := BuyerFilter.FindAll(title)
|
|
|
+ if dataArr!=nil && len(dataArr)>0 {
|
|
|
+ new_name := ObjToString(dataArr[0])
|
|
|
+ return true,"buyer sensitive",new_name
|
|
|
+ }
|
|
|
+
|
|
|
+ //dataArr = BuyerFilter.FindAll(detail)
|
|
|
+ //if dataArr!=nil && len(dataArr)>0 {
|
|
|
+ // new_name := ObjToString(dataArr[0])
|
|
|
+ // return true,"buyer sensitive",new_name
|
|
|
+ //}
|
|
|
+
|
|
|
+ return false, "", name
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
|