Kaynağa Gözat

判重~新增竞品模式

zhengkun 2 yıl önce
ebeveyn
işleme
f09a411e62
4 değiştirilmiş dosya ile 61 ekleme ve 11 silme
  1. 1 1
      src/config.json
  2. 35 0
      src/dataMethod.go
  3. 11 0
      src/datamap.go
  4. 14 10
      src/main.go

+ 1 - 1
src/config.json

@@ -6,7 +6,7 @@
         "pool": 10,
         "db": "zhengkun",
         "extract": "repeat_test",
-        "extract_back": "repeat_test_back",
+        "extract_back": "repeat_test",
         "extract_log": "result_replace_log",
         "site": {
             "dbname": "zhengkun",

+ 35 - 0
src/dataMethod.go

@@ -445,3 +445,38 @@ func confrimBiddingData(source_id string, info_id string) (bool, map[string]inte
 	}
 	return isvalid, info_data, source_data
 }
+
+func IsJingPinData(s_href string, i_href string) bool {
+	if strings.Contains(s_href, "www.jianyu360") ||
+		strings.Contains(i_href, "www.jianyu360") {
+		return true
+	}
+	return false
+}
+
+func confirmJingPinIsRepeatData(v *Info, info *Info) bool {
+	//先验证标题
+	if (strings.Contains(info.title, v.title) || strings.Contains(v.title, info.title)) &&
+		v.title != "" && info.title != "" {
+		if !isTheSameDay(v.publishtime, info.publishtime) {
+			return false
+		}
+		if v.budget != info.budget && v.budget != 0 && info.budget != 0 {
+			return false
+		}
+		if isBidWinningAmount(v.bidamount, info.bidamount) && v.bidamount != 0 && info.bidamount != 0 {
+			return false
+		}
+		if deleteExtraSpace(v.winner) != deleteExtraSpace(info.winner) && v.winner != "" && info.winner != "" {
+			return false
+		}
+		if v.contractnumber != "" && info.contractnumber != "" && v.contractnumber != info.contractnumber {
+			return false
+		}
+		if v.projectcode != "" && info.projectcode != "" && v.projectcode != info.projectcode {
+			return false
+		}
+		return true
+	}
+	return false
+}

+ 11 - 0
src/datamap.go

@@ -266,6 +266,17 @@ L:
 				if v.id == info.id { //正常重复
 					return false, v, ""
 				}
+
+				// 竞品判重模式
+				if IsJingPinData(v.href, info.href) {
+					if confirmJingPinIsRepeatData(v, info) {
+						reason = "竞品模式~重复"
+						b = true
+						source = v
+						reasons = reason
+						break L
+					}
+				}
 				//buyer 优先级高,有值且不相等过滤
 				if info.buyer != "" && v.buyer != "" && info.buyer != v.buyer {
 					if v.title != info.title && v.title != "" && info.title != "" {

+ 14 - 10
src/main.go

@@ -99,16 +99,21 @@ func initOther() {
 	Update = newUpdatePool()
 	go Update.updateData()
 
-	var err error
-	nspdata_1, err = nsqdata.NewProducer("172.17.4.232:4150", "bidding_id", true)
-	if err != nil {
-		log.Fatal("通道配置异常~", err)
-	}
-	nspdata_2, err = nsqdata.NewProducer("172.17.4.232:4150", "project_id", true)
-	if err != nil {
-		log.Fatal("通道配置异常~", err)
+	if !IsFull {
+		var err error
+		nspdata_1, err = nsqdata.NewProducer("172.17.4.232:4150", "bidding_id", true)
+		if err != nil {
+			log.Fatal("通道配置异常~", err)
+		} else {
+			log.Println("通道配置正常")
+		}
+		nspdata_2, err = nsqdata.NewProducer("172.17.4.232:4150", "project_id", true)
+		if err != nil {
+			log.Fatal("通道配置异常~", err)
+		} else {
+			log.Println("通道配置正常~")
+		}
 	}
-
 	c := cron.New()
 	c.AddFunc("0 0 1 ? * WED", func() {
 		isUpdateSite = true
@@ -146,7 +151,6 @@ func init() {
 	initMgo()
 	initOther()
 	initSite()
-
 }
 
 func mainT() {