maxiaoshan 5 년 전
부모
커밋
58af5f882c

+ 4 - 4
src/config.json

@@ -8,11 +8,11 @@
     "elasticsearch_index": "winner_enterprise",
     "elasticsearch_type": "winnerent",
     "elasticsearch_db": "winner_enterprise",
-    "elasticsearch_buyer_index": "localhost_buyer",
-    "elasticsearch_buyer_type": "mytestbuyer",
+    "elasticsearch_buyer_index": "buyer_enterprise",
+    "elasticsearch_buyer_type": "buyerent",
     "elasticsearch_buyer_db": "buyer_enterprise",
-    "elasticsearch_agency_index": "localhost_agency",
-    "elasticsearch_agency_type": "mytestagency",
+    "elasticsearch_agency_index": "agency_enterprise",
+    "elasticsearch_agency_type": "agencyent",
     "elasticsearch_agency_db": "agency_enterprise",
     "redis_qyk": "qyk_redis",
     "redis_winner_db": "1",

+ 1 - 0
src/jy/admin/admin.go

@@ -2,6 +2,7 @@ package admin
 
 import (
 	"html/template"
+	. "jy/front"
 	. "jy/mongodbutil"
 	. "jy/router"
 	qu "qfw/util"

+ 1 - 1
src/jy/admin/audit/agencyinfo.go

@@ -196,7 +196,7 @@ func init() {
 		_id := c.PostForm("_id")
 		agency_name := c.PostForm("agency_name")
 		if bson.IsObjectIdHex(_id) {
-			delisok := Mgo.Del(util.ElasticClientDB, bson.M{"_id": bson.ObjectIdHex(_id)})
+			delisok := Mgo.Del(util.ElasticClientAgencyDB, bson.M{"_id": bson.ObjectIdHex(_id)})
 			if !delisok {
 				c.JSON(200, gin.H{"rep": 500, "err": "删除mongo错误"})
 				return

+ 1 - 1
src/jy/admin/audit/buyerinfo.go

@@ -200,7 +200,7 @@ func init() {
 		_id := c.PostForm("_id")
 		buyer_name := c.PostForm("buyer_name")
 		if bson.IsObjectIdHex(_id) {
-			delisok := Mgo.Del(util.ElasticClientDB, bson.M{"_id": bson.ObjectIdHex(_id)})
+			delisok := Mgo.Del(util.ElasticClientBuyerDB, bson.M{"_id": bson.ObjectIdHex(_id)})
 			if !delisok {
 				c.JSON(200, gin.H{"rep": 500, "err": "删除mongo错误"})
 				return

+ 21 - 0
src/jy/front/front.go

@@ -85,3 +85,24 @@ func GetUserMenu(role string) []map[string]interface{} {
 	}
 	return list
 }
+
+func AuthMiddleWare() gin.HandlerFunc {
+	return func(c *gin.Context) {
+		session := sessions.Default(c)
+		user := session.Get("user")
+		if user != nil {
+			if u, ok := user.(*map[string]interface{}); ok {
+				if len(UserMenu[qu.ObjToString((*u)["email"])]) < 1 {
+					UserMenu[qu.ObjToString((*u)["email"])] = GetUserMenu(qu.ObjToString((*u)["role"]))
+				}
+			}
+			c.Next()
+			return
+		}
+		c.JSON(http.StatusUnauthorized, gin.H{
+			"error": "Unauthorized",
+		})
+		c.Abort()
+		return
+	}
+}

+ 1 - 16
src/jy/router/router.go

@@ -2,11 +2,11 @@ package router
 
 import (
 	"encoding/gob"
-	"net/http"
 	"time"
 
 	"github.com/gin-contrib/sessions"
 	"github.com/gin-contrib/sessions/cookie"
+
 	//"github.com/gin-contrib/sessions/memstore"
 	"github.com/gin-gonic/gin"
 	"gopkg.in/mgo.v2/bson"
@@ -22,18 +22,3 @@ func init() {
 	gob.Register(&time.Time{})
 	gob.Register(bson.ObjectIdHex("518781f5904a2ea61544f852"))
 }
-
-func AuthMiddleWare() gin.HandlerFunc {
-	return func(c *gin.Context) {
-		session := sessions.Default(c)
-		if session.Get("user") != nil {
-			c.Next()
-			return
-		}
-		c.JSON(http.StatusUnauthorized, gin.H{
-			"error": "Unauthorized",
-		})
-		c.Abort()
-		return
-	}
-}

+ 10 - 9
src/web/templates/admin/agencyinfo.html

@@ -159,11 +159,11 @@
     function AddAgencyHTML() {
         $("#infos").html("");
         $("#info_title").html("新增代理机构信息");
-        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">代理机构名称:</label>" +
+        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">机构名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_agency_name\" must=\"true\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" placeholder=\"多个;隔开\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\" ></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_type\"></div></div>" +
@@ -175,9 +175,9 @@
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_city\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">区县:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_district\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">代理机构地址:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">机构地址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_address\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">公众号:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">网址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_website\"></div></div>" +
@@ -289,11 +289,11 @@
     function editdata(_obj) {
         $("#infos").html("");
         $("#info_title").html("编辑采购单位信息");
-        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">采购单位名称:</label>" +
-            "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_agency_name\" must=\"true\" value='" + _obj.agency_name + "'></div></div>" +
+        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">机构名称:</label>" +
+            "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_agency_name\" must=\"true\" readonly=\"true\" value='" + _obj.agency_name + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" value='" + _obj.history_name + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\"  value='" + _obj.area_code + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_type\" value='" + _obj.type + "'></div></div>" +
@@ -305,9 +305,9 @@
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_city\" value='" + _obj.city + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">区县:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_district\" value='" + _obj.district + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">代理机构地址:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">机构地址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_address\" value='" + _obj.address + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">公众号:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\" value='"+_obj.wechat_accounts.join(";")+"'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">网址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_website\" value='" + _obj.website + "'></div></div>" +
@@ -375,6 +375,7 @@
             "address": address,
             "wechat_accounts": wechat_accounts,
             "website": website,
+            "contact":contact,
 
         }, function (data) {
             if (data && data.rep) {

+ 13 - 12
src/web/templates/admin/buyerinfo.html

@@ -159,11 +159,11 @@
     function AddBuyerHTML() {
         $("#infos").html("");
         $("#info_title").html("新增采购单位信息");
-        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">采购单位名称:</label>" +
+        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">单位名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_buyer_name\" must=\"true\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" placeholder=\"多个;隔开\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\" ></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_type\"></div></div>" +
@@ -175,11 +175,11 @@
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_city\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">区县:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_district\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">采购单位类型:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_buyerclass\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">采购单位地址:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位地址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_address\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">公众号:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">网址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_website\"></div></div>" +
@@ -293,11 +293,11 @@
     function editdata(_obj) {
         $("#infos").html("");
         $("#info_title").html("编辑采购单位信息");
-        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">采购单位名称:</label>" +
-            "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_buyer_name\" must=\"true\" value='" + _obj.buyer_name + "'></div></div>" +
+        com ="<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\" style=\"color: red;\">单位名称:</label>" +
+            "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_buyer_name\" must=\"true\" readonly=\"true\" value='" + _obj.buyer_name + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" value='" + _obj.history_name + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\"  value='" + _obj.area_code + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_type\" value='" + _obj.type + "'></div></div>" +
@@ -309,11 +309,11 @@
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_city\" value='" + _obj.city + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">区县:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_district\" value='" + _obj.district + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">采购单位类型:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位类型:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_buyerclass\" value='" + _obj.buyerclass + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">采购单位地址:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">单位地址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_address\" value='" + _obj.address + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">公众号:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\" value='"+_obj.wechat_accounts.join(";")+"'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-2 control-label\">网址:</label>" +
             "<div class=\"col-sm-10\"><input type=\"text\" class=\"form-control\" id=\"s_website\" value='" + _obj.website + "'></div></div>" +
@@ -347,7 +347,7 @@
         var address = $("#s_address").val();                    //采购单位地址
         var wechat_accounts = $("#s_wechat_accounts").val();    //微信公众号
         var website = $("#s_website").val();                    //网址
-        var contact = editor_update.getText();//联系人
+        var contact = editor_update.getText();                  //联系人
         if (typeof contact == 'string') {
             try {
                 var obj=JSON.parse(contact);
@@ -382,6 +382,7 @@
             "address": address,
             "wechat_accounts": wechat_accounts,
             "website": website,
+            "contact":contact,
 
         }, function (data) {
             if (data && data.rep) {

+ 4 - 4
src/web/templates/admin/qiyekuinfo.html

@@ -251,7 +251,7 @@
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_alias\" ></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" placeholder=\"多个;隔开\" ></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\" ></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">省份:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_province\"></div></div>" +
@@ -265,7 +265,7 @@
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_company_address\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">经营范围:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_business_scope\"></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">公众号:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\"></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">网址:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_website\"></div></div>" +
@@ -547,7 +547,7 @@
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_alias\" value='" + _obj.alias + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">历史名称:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_history_name\" placeholder=\"多个;隔开\" value='" + _obj.history_name + "'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">行政区划代码:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">行政区划:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_area_code\" value='"+_obj.area_code+"' ></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">省份:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_province\" value='" + _obj.province + "'></div></div>" +
@@ -561,7 +561,7 @@
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_company_address\" value='" + _obj.company_address + "'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">经营范围:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_business_scope\" value='"+_obj.business_scope+"'></div></div>" +
-            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">微信公众号:</label>" +
+            "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">公众号:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_wechat_accounts\" placeholder=\"多个;隔开\" value='"+_obj.wechat_accounts.join(";")+"'></div></div>" +
             "<div class=\"row form-group\"><label for=\"lastname\" class=\"col-sm-3 control-label\">网址:</label>" +
             "<div class=\"col-sm-9\"><input type=\"text\" class=\"form-control\" id=\"s_website\" value='"+_obj.website+"'></div></div>" +

+ 20 - 19
udp_winner/config.json

@@ -1,29 +1,30 @@
 {
-  "elasticsearch": "http://127.0.0.1:9800",
-  "elasticsearch_index": "localhost_winner",
-  "elasticsearch_type": "mytestwinner",
-  "elasticsearch_buyer_index": "localhost_buyer",
-  "elasticsearch_buyer_type": "mytestbuyer",
-  "elasticsearch_agency_index": "localhost_agency",
-  "elasticsearch_agency_type": "mytestagency",
-  "udpport": "127.0.0.1:12311",
-  "port": "12311",
+  "elasticsearch": "http://172.17.145.170:9800",
+  "elasticsearch_index": "winner_enterprise",
+  "elasticsearch_type": "winnerent",
+  "elasticsearch_buyer_index": "buyer_enterprise",
+  "elasticsearch_buyer_type": "buyerent",
+  "elasticsearch_agency_index": "agency_enterprise",
+  "elasticsearch_agency_type": "agencyent",
+  "udpport": "127.0.0.1:12678",
+  "port": "12678",
   "pool_size": "10",
-  "mgoinit": "127.0.0.1:27017",
-  "mgodb_bidding": "qfw",
-  "mgodb_mgoinit_c": "bidding",
+  "mgoinit": "172.17.145.163:27082",
+  "mgodb_bidding": "extract_v3",
+  "mgodb_mgoinit_c": "buyer",
   "mgodb_enterprise": "enterprise",
   "mgodb_enterprise_c": "qyxy",
   "mgourl2": "192.168.3.207:27092",
-  "mgourl": "127.0.0.1:27017",
-  "mgodb_extract_kf": "extract_kf",
-  "mgo_qyk_c": "enterprise_qyxy",
-  "mgo_qyk_buyer": "buyer_qyxy",
-  "mgo_qyk_agency": "agency_qyxy",
-  "redis": "127.0.0.1:6379",
+  "mgourl": "172.17.145.163:27082",
+  "mgodb_extract_kf": "extract_v3",
+  "mgo_qyk_c": "winner_enterprise",
+  "mgo_qyk_buyer": "buyer_enterprise",
+  "mgo_qyk_agency": "agency_enterprise",
+  "mgo_qyk_reg": "rc_rule",
+  "redis": "172.17.148.44:1479",
   "redis_winner_db": "1",
   "redis_buyer_db": "2",
   "redis_agency_db": "3",
   "chan_pool_num": "10",
-  "mongo_reg_c": "rc_rule"
+  "his_redis": "172.17.148.44:2579"
 }

+ 50 - 3
udp_winner/main.go

@@ -34,6 +34,10 @@ var (
 	EsConn                                *es.Client
 	Updport                               int
 	CPool                                 chan bool
+	//his_redis db
+	redis_winner_db, redis_buyer_db, redis_agency_db int
+	//异常表正则匹配处理
+	WinnerRegOk, WinnerRegErr, AgencyRegOk, AgencyRegErr, BuerRegOk, BuyerRegErr []regexp.Regexp
 )
 
 /**
@@ -54,7 +58,7 @@ func init() {
 		"capital", "establish_date", "legal_person", "company_type",
 		"district", "city", "province", "area_code", "credit_no",
 		"company_name", "history_name", "wechat_accounts",
-		"alias", "website", "report_websites","industry"}
+		"alias", "website", "report_websites", "industry"}
 
 	BuyerFields = []string{"_id", "contact", "type", "ranks", "buyerclass",
 		"address", "district", "city", "province", "area_code", "credit_no", "buyer_name",
@@ -79,7 +83,7 @@ func init() {
 	FClient.DbName = Config["mgodb_extract_kf"]
 	//mongodbSim.DbName = "qfw"
 	FClient.InitPool()
-	FClientmgoConn := FClient.GetMgoConn(86400)
+	FClientmgoConn := FClient.GetMgoConn()
 	defer FClient.DestoryMongoConn(FClientmgoConn)
 	//加载省市县代码
 	cursor2 := FClientmgoConn.DB(Config["mgodb_extract_kf"]).C("address").Find(bson.M{}).Select(bson.M{"province": 1, "code": 1, "city": 1, "district": 1}).Iter()
@@ -121,7 +125,7 @@ func init() {
 	}
 	c.Close()
 	HisRedisPool = hisRedis.NewClient(&hisRedis.Options{
-		Addr:         "127.0.0.1:6380",
+		Addr:         Config["his_redis"],
 		DB:           1,
 		DialTimeout:  10 * time.Second,
 		ReadTimeout:  30 * time.Second,
@@ -130,6 +134,49 @@ func init() {
 		MinIdleConns: 20,
 		PoolTimeout:  30 * time.Second,
 	})
+	redis_winner_db, _ = strconv.Atoi(Config["redis_winner_db"])
+	redis_buyer_db, _ = strconv.Atoi(Config["redis_buyer_db"])
+	redis_agency_db, _ = strconv.Atoi(Config["redis_agency_db"])
+	iniReg()
+
+}
+
+func iniReg() {
+	FClientmgoConnReg := FClient.GetMgoConn()
+	defer FClient.DestoryMongoConn(FClientmgoConnReg)
+	findReg, b := FClient.Find(Config["mgo_qyk_reg"], bson.M{"delete": false, "isuse": true}, bson.M{"_id": 1}, nil, false, -1, 0)
+	if !b {
+		log.Fatalln("查询正则失败")
+	}
+	for _, v := range (*findReg) {
+		s_field, ok := v["s_field"].(string) //字段
+		s_rule, ok2 := v["s_rule"].(string)  //正则
+		s_type, ok3 := v["s_type"].(string)  //ok or err
+		if !ok || !ok2 || !ok3 || s_field == "" || s_rule == "" || s_type == "" {
+			continue
+		}
+		regtmp := regexp.MustCompile(s_rule)
+		if s_field == "winner" {
+			if s_type=="ok"{
+				WinnerRegOk = append(WinnerRegOk, *regtmp)
+			}else if s_type=="err"{
+				WinnerRegErr = append(WinnerRegErr, *regtmp)
+			}
+		} else if s_field == "buyer" {
+			if s_type=="ok"{
+				BuerRegOk = append(BuerRegOk, *regtmp)
+			}else if s_type=="err"{
+				BuyerRegErr = append(BuyerRegErr, *regtmp)
+			}
+		} else if s_field == "agency" {
+			if s_type=="ok"{
+				AgencyRegOk = append(AgencyRegOk, *regtmp)
+			}else if s_type=="err"{
+				AgencyRegErr = append(AgencyRegErr, *regtmp)
+			}
+		}
+	}
+	log.Println(len(WinnerRegOk), len(WinnerRegErr), len(BuerRegOk), len(BuyerRegErr), len(AgencyRegOk), len(AgencyRegErr))
 }
 
 func main() {

+ 67 - 0
udp_winner/text.md

@@ -13,6 +13,73 @@
   "redis": "172.17.148.44:1479"
 }
 
+//本地
+{
+  "elasticsearch": "http://127.0.0.1:9800",
+  "elasticsearch_index": "localhost_winner",
+  "elasticsearch_type": "mytestwinner",
+  "elasticsearch_buyer_index": "localhost_buyer",
+  "elasticsearch_buyer_type": "mytestbuyer",
+  "elasticsearch_agency_index": "localhost_agency",
+  "elasticsearch_agency_type": "mytestagency",
+  "udpport": "127.0.0.1:12311",
+  "port": "12311",
+  "pool_size": "10",
+  "mgoinit": "127.0.0.1:27017",
+  "mgodb_bidding": "qfw",
+  "mgodb_mgoinit_c": "bidding",
+  "mgodb_enterprise": "enterprise",
+  "mgodb_enterprise_c": "qyxy",
+  "mgourl2": "192.168.3.207:27092",
+  "mgourl": "127.0.0.1:27017",
+  "mgodb_extract_kf": "extract_kf",
+  "mgo_qyk_c": "enterprise_qyxy",
+  "mgo_qyk_buyer": "buyer_qyxy",
+  "mgo_qyk_agency": "agency_qyxy",
+  "mgo_qyk_reg": "rc_rule",
+  "redis": "127.0.0.1:6379",
+  "redis_winner_db": "1",
+  "redis_buyer_db": "2",
+  "redis_agency_db": "3",
+  "chan_pool_num": "10",
+  "his_redis": "127.0.0.1:6380"
+}
+
+
+//线上
+{
+  "elasticsearch": "http://172.17.145.170:9800",
+  "elasticsearch_index": "winner_enterprise",
+  "elasticsearch_type": "winnerent",
+  "elasticsearch_buyer_index": "localhost_buyer",
+  "elasticsearch_buyer_type": "mytestbuyer",
+  "elasticsearch_agency_index": "localhost_agency",
+  "elasticsearch_agency_type": "mytestagency",
+  "udpport": "127.0.0.1:1486",
+  "port": "12311",
+  "pool_size": "10",
+  "mgoinit": "10.30.94.175:27081,10.81.232.246:27082,10.172.242.243:27080",
+  "mgodb_bidding": "qfw",
+  "mgodb_mgoinit_c": "bidding",
+  "mgodb_enterprise": "enterprise",
+  "mgodb_enterprise_c": "qyxy",
+  "mgourl2": "192.168.3.207:27092",
+  "mgourl": "172.17.145.163:27082",
+  "mgodb_extract_kf": "extract_v3",
+  "mgo_qyk_c": "winner_enterprise",
+  "mgo_qyk_buyer": "buyer_enterprise",
+  "mgo_qyk_agency": "agency_enterprise",
+  "mgo_qyk_reg": "rc_rule",
+  "redis": "172.17.148.44:1479",
+  "redis_winner_db": "1",
+  "redis_buyer_db": "2",
+  "redis_agency_db": "3",
+  "chan_pool_num": "10",
+  "his_redis": "127.0.0.1:6380"
+}
+
+
+
 中标单位企业库
 /file/udpwinnerent_1486
 172.17.145.163 

+ 40 - 28
udp_winner/timedTaskAgency.go

@@ -10,7 +10,6 @@ import (
 	"net"
 	"qfw/util"
 	"sort"
-	"strconv"
 	"strings"
 	"time"
 	"unicode/utf8"
@@ -57,14 +56,13 @@ func TaskAgency(mapinfo *map[string]interface{}) {
 		conn := HisRedisPool.Conn()
 		defer conn.Close()
 		//选择redis db
-		redis_agency_db, _ := strconv.Atoi(Config["redis_agency_db"])
 		conn.Select(redis_agency_db)
 		//遍历bidding表保存到redis
 		//key:企业名  value:json结构体{"agency": 1, "agencytel": 1, "agencyperson": 1,"topscopeclass": 1, "agencyaddr": 1,"_id":1}
 		tmp := make(map[string]interface{})
 		for cursor.Next(&tmp) {
 			agency, ok := tmp["agency"].(string)
-			if !ok ||utf8.RuneCountInString(agency)<4{
+			if !ok || utf8.RuneCountInString(agency) < 4 {
 				continue
 			}
 			//判断redis key是否存在
@@ -103,14 +101,14 @@ func TaskAgency(mapinfo *map[string]interface{}) {
 				json.Unmarshal(redisvalueBytes, &rValuesMaps)
 				//redis查询是否存在
 				rdb := RedisPool.Get()
-				rdb.Do("SELECT", Config["redis_agency_db"])
+				rdb.Do("SELECT", redis_agency_db)
 				if reply, err := redis.String(rdb.Do("GET", redisCName)); err != nil {
 					//redis不存在,存到临时表,定时任务处理
 					FClient.DbName = Config["mgodb_extract_kf"]
 					for _, vmap := range rValuesMaps {
 						vmap["_id"] = bson.ObjectIdHex(vmap["_id"].(string))
 						if err = FClient.SaveForOld("agency_new", vmap); err != nil {
-							log.Println("存量 FClient.Save err", err,vmap)
+							log.Println("存量 FClient.Save err", err, vmap)
 						}
 					}
 					//log.Println("get redis id err:定时任务处理", err, tmp)
@@ -126,7 +124,7 @@ func TaskAgency(mapinfo *map[string]interface{}) {
 					//拿到合并后的qyk
 					FClient.DbName = Config["mgodb_extract_kf"]
 					oldTmp, b := FClient.FindById(Config["mgo_qyk_agency"], reply, nil)
-					if !b || oldTmp == nil {
+					if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
 						log.Println(redisCName, "存量 redis id 不存在", reply)
 						continue
 					}
@@ -214,17 +212,17 @@ func TaskAgency(mapinfo *map[string]interface{}) {
 			overid = tmp["_id"].(bson.ObjectId).Hex()
 			//log.Println(tmp["_id"])
 			agency, ok := tmp["agency"].(string)
-			if !ok ||utf8.RuneCountInString(agency)<4{
+			if !ok || utf8.RuneCountInString(agency) < 4 {
 				continue
 			}
 			//redis查询是否存在
 			rdb := RedisPool.Get()
-			rdb.Do("SELECT", Config["redis_agency_db"])
+			rdb.Do("SELECT", redis_agency_db)
 			if reply, err := redis.String(rdb.Do("GET", agency)); err != nil {
 				//redis不存在存到临时表,定时任务处理
 				FClient.DbName = Config["mgodb_extract_kf"]
-				if err := FClient.SaveForOld("agency_new", tmp); err!=nil {
-					log.Println("FClient.Save err", err,tmp)
+				if err := FClient.SaveForOld("agency_new", tmp); err != nil {
+					log.Println("FClient.Save err", err, tmp)
 				}
 				//log.Println("get redis id err:定时任务处理", err, tmp)
 				if err := rdb.Close(); err != nil {
@@ -238,7 +236,7 @@ func TaskAgency(mapinfo *map[string]interface{}) {
 				//拿到合并后的qyk
 				FClient.DbName = Config["mgodb_extract_kf"]
 				oldTmp, b := FClient.FindById(Config["mgo_qyk_agency"], reply, bson.M{})
-				if !b || oldTmp == nil {
+				if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
 					log.Println("redis id 不存在")
 					continue
 				}
@@ -340,7 +338,7 @@ func TimedTaskAgency() {
 			if !iter.Next(&tmpLast) {
 				//临时表无数据
 				log.Println("临时表无数据:")
-				t2.Reset(time.Second * 15)
+				t2.Reset(time.Minute * 5)
 				FClient.DestoryMongoConn(Fcconn)
 				continue
 			} else {
@@ -361,10 +359,14 @@ func TimedTaskAgency() {
 				tmp := make(map[string]interface{})
 				for cursor.Next(&tmp) {
 					tmpId := tmp["_id"].(bson.ObjectId).Hex()
+					erragency, ok := tmp["agency"].(string)
+					if !ok || erragency == "" {
+						continue
+					}
 					//再重新查找redis,存在发udp处理,不存在走新增合并
 					rdb := RedisPool.Get()
-					rdb.Do("SELECT", Config["redis_agency_db"])
-					if _, err := redis.String(rdb.Do("GET", tmp["agency"])); err == nil {
+					rdb.Do("SELECT", redis_agency_db)
+					if _, err := redis.String(rdb.Do("GET", erragency)); err == nil {
 						//redis存在发送udp进行处理
 						by, _ := json.Marshal(map[string]interface{}{
 							"gtid":      tmpId,
@@ -396,11 +398,24 @@ func TimedTaskAgency() {
 					//查询redis不存在新增
 					FClient.DbName = Config["mgodb_enterprise"]
 
-					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": tmp["agency"]})
+					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": erragency})
 					if !b || (*resulttmp)["_id"] == nil {
 						//log.Println(r)
+						//人工审核正则
+						var isok bool
+						for _, v := range AgencyRegOk {
+							isok = v.MatchString(erragency)
+							if isok {
+								tmp["agency_ok"] = 1
+								break
+							}
+						}
+						if tmp["agency_ok"] == nil{
+							tmp["agency_err"] =1
+						}
 						//匹配不到原始库,存入异常表删除临时表
 						FClient.DbName = Config["mgodb_extract_kf"]
+						//winner_err winner_ok buyer_err buyer_err agency_err agency_ok
 						if err := FClient.SaveForOld("agency_err", tmp); err != nil {
 							log.Println("存入异常表错误", err, tmp)
 						}
@@ -472,16 +487,16 @@ func TimedTaskAgency() {
 						//添加临时表匹配到的联系人
 						vvv := make(map[string]interface{})
 						vvv["infoid"] = tmp["_id"].(bson.ObjectId).Hex()
-						if tmp["agencyperson"] != nil{
+						if tmp["agencyperson"] != nil {
 							vvv["contact_person"] = tmp["agencyperson"]
-						}else {
+						} else {
 							vvv["contact_person"] = ""
 						}
 						vvv["contact_type"] = "项目联系人"
 						//	"agency": 1, "agencytel": 1, "agencyperson": 1, "topscopeclass": 1
-						if tmp["agencytel"] != nil{
+						if tmp["agencytel"] != nil {
 							vvv["phone"] = tmp["agencytel"]
-						}else {
+						} else {
 							vvv["phone"] = ""
 						}
 						tmpclass := make([]string, 0)
@@ -528,23 +543,22 @@ func TimedTaskAgency() {
 							} else if sk == "wechat_accounts" {
 								savetmp[sk] = []interface{}{}
 								continue
-							}else if sk=="agency_name" {
+							} else if sk == "agency_name" {
 								if (*resulttmp)["company_name"] == nil {
 									savetmp[sk] = ""
-								}else {
+								} else {
 									savetmp[sk] = (*resulttmp)["company_name"]
 								}
 								continue
-							}else if sk=="address"{
+							} else if sk == "address" {
 								if (*resulttmp)["company_address"] == nil {
 									savetmp[sk] = ""
-								}else {
+								} else {
 									savetmp[sk] = (*resulttmp)["company_address"]
 								}
 								continue
 							}
 
-
 							if (*resulttmp)[sk] == nil && sk != "history_name" && sk != "wechat_accounts" &&
 								sk != "agency_name" && sk != "address" &&
 								sk != "contact" && sk != "report_websites" {
@@ -558,13 +572,11 @@ func TimedTaskAgency() {
 						//保存mongo
 						FClient.DbName = Config["mgodb_extract_kf"]
 
-
-
 						saveid := FClient.Save(Config["mgo_qyk_agency"], savetmp)
 						if saveid != "" {
 							//保存redis
 							rc := RedisPool.Get()
-							rc.Do("SELECT", Config["redis_agency_db"])
+							rc.Do("SELECT", redis_agency_db)
 							//var _id string
 							//if v, ok := saveid.(primitive.ObjectID); ok {
 							//	_id = v.Hex()
@@ -599,10 +611,10 @@ func TimedTaskAgency() {
 					}
 				}
 				FClient.DestoryMongoConn(fconn)
+				log.Println("buyer_new,遍历完成")
 			}
 		}
 		FClient.DestoryMongoConn(Fcconn)
 		t2.Reset(time.Minute)
 	}
 }
-

+ 57 - 36
udp_winner/timedTaskBuyer.go

@@ -10,7 +10,6 @@ import (
 	"net"
 	"qfw/util"
 	"sort"
-	"strconv"
 	"strings"
 	"time"
 	"unicode/utf8"
@@ -45,7 +44,7 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 			"$lte": LtId,
 		},
 	}).Select(bson.M{"buyer": 1, "buyertel": 1, "buyerperson": 1, "topscopeclass": 1,
-		"buyeraddr": 1,"buyerclass":1}).Iter()
+		"buyeraddr": 1, "buyerclass": 1}).Iter()
 	if cursor.Err() != nil {
 		SourceClient.DestoryMongoConn(SourceClientcc)
 		log.Println(cursor.Err())
@@ -57,14 +56,13 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 		conn := HisRedisPool.Conn()
 		defer conn.Close()
 		//选择redis db
-		redis_buyer_db, _ := strconv.Atoi(Config["redis_buyer_db"])
 		conn.Select(redis_buyer_db)
 		//遍历bidding表保存到redis
 		//key:企业名  value:json结构体{"buyer": 1, "buyertel": 1, "buyerperson": 1,"topscopeclass": 1, "buyeraddr": 1,"_id":1}
 		tmp := make(map[string]interface{})
 		for cursor.Next(&tmp) {
 			buyer, ok := tmp["buyer"].(string)
-			if !ok || utf8.RuneCountInString(buyer)<4{
+			if !ok || utf8.RuneCountInString(buyer) < 4 {
 				continue
 			}
 			//判断redis key是否存在
@@ -103,14 +101,14 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 				json.Unmarshal(redisvalueBytes, &rValuesMaps)
 				//redis查询是否存在
 				rdb := RedisPool.Get()
-				rdb.Do("SELECT", Config["redis_buyer_db"])
+				rdb.Do("SELECT", redis_buyer_db)
 				if reply, err := redis.String(rdb.Do("GET", redisCName)); err != nil {
 					//redis不存在,存到临时表,定时任务处理
 					FClient.DbName = Config["mgodb_extract_kf"]
 					for _, vmap := range rValuesMaps {
 						vmap["_id"] = bson.ObjectIdHex(vmap["_id"].(string))
 						if err = FClient.SaveForOld("buyer_new", vmap); err != nil {
-							log.Println("存量 FClient.Save err", err,vmap)
+							log.Println("存量 FClient.Save err", err, vmap)
 						}
 					}
 					//log.Println("get redis id err:定时任务处理", err, tmp)
@@ -126,8 +124,8 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 					//拿到合并后的qyk
 					FClient.DbName = Config["mgodb_extract_kf"]
 					oldTmp, b := FClient.FindById(Config["mgo_qyk_buyer"], reply, nil)
-					if !b || oldTmp == nil {
-						log.Println(redisCName, "存量 redis id 不存在", reply)
+					if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
+						log.Println(redisCName, "存量 redis id 不存在", reply,"数据:",oldTmp)
 						continue
 					}
 					tmpTopscopeclass := []string{}
@@ -148,20 +146,19 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 					sort.Strings(tmpTopscopeclass)
 					esId := (*oldTmp)["_id"].(bson.ObjectId).Hex()
 
-
 					//更新buyerclass合并
 					if tmp["buyerclass"] == nil || tmp["buyerclass"] == "" {
 						//无值,不更新
-					}else {
-						var buyerclass_new,buyerclass_old string
+					} else {
+						var buyerclass_new, buyerclass_old string
 						buyerclass_new = tmp["buyerclass"].(string)
 						buyerclass_old = (*oldTmp)["buyerclass"].(string)
-						if buyerclass_old=="" {
+						if buyerclass_old == "" {
 							(*oldTmp)["buyerclass"] = buyerclass_new
-						}else {
-							if buyerclass_new!=buyerclass_old {
+						} else {
+							if buyerclass_new != buyerclass_old {
 								if !strings.Contains(buyerclass_old, buyerclass_new) {
-									(*oldTmp)["buyerclass"] = buyerclass_old + ","+buyerclass_new //采购单位类型
+									(*oldTmp)["buyerclass"] = buyerclass_old + "," + buyerclass_new //采购单位类型
 								}
 							}
 						}
@@ -233,17 +230,17 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 			overid = tmp["_id"].(bson.ObjectId).Hex()
 			//log.Println(tmp["_id"])
 			buyer, ok := tmp["buyer"].(string)
-			if !ok || utf8.RuneCountInString(buyer)<4{
+			if !ok || utf8.RuneCountInString(buyer) < 4 {
 				continue
 			}
 			//redis查询是否存在
 			rdb := RedisPool.Get()
-			rdb.Do("SELECT", Config["redis_buyer_db"])
+			rdb.Do("SELECT", redis_buyer_db)
 			if reply, err := redis.String(rdb.Do("GET", buyer)); err != nil {
 				//redis不存在存到临时表,定时任务处理
 				FClient.DbName = Config["mgodb_extract_kf"]
-				if err := FClient.SaveForOld("buyer_new", tmp); err!=nil {
-					log.Println("FClient.Save err", err,tmp)
+				if err := FClient.SaveForOld("buyer_new", tmp); err != nil {
+					log.Println("FClient.Save err", err, tmp)
 				}
 				//log.Println("get redis id err:定时任务处理", err, tmp)
 				if err := rdb.Close(); err != nil {
@@ -257,7 +254,7 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 				//拿到合并后的qyk
 				FClient.DbName = Config["mgodb_extract_kf"]
 				oldTmp, b := FClient.FindById(Config["mgo_qyk_buyer"], reply, bson.M{})
-				if !b || oldTmp == nil {
+				if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
 					log.Println("redis id 不存在")
 					continue
 				}
@@ -281,20 +278,19 @@ func TaskBuyer(mapinfo *map[string]interface{}) {
 				sort.Strings(tmpTopscopeclass)
 				esId := (*oldTmp)["_id"].(bson.ObjectId).Hex()
 
-
 				//更新buyerclass合并
 				if tmp["buyerclass"] == nil || tmp["buyerclass"] == "" {
 					//无值,不更新
-				}else {
-					var buyerclass_new,buyerclass_old string
+				} else {
+					var buyerclass_new, buyerclass_old string
 					buyerclass_new = tmp["buyerclass"].(string)
 					buyerclass_old = (*oldTmp)["buyerclass"].(string)
-					if buyerclass_old=="" {
+					if buyerclass_old == "" {
 						(*oldTmp)["buyerclass"] = buyerclass_new
-					}else {
-						if buyerclass_new!=buyerclass_old {
+					} else {
+						if buyerclass_new != buyerclass_old {
 							if !strings.Contains(buyerclass_old, buyerclass_new) {
-								(*oldTmp)["buyerclass"] = buyerclass_old + ","+buyerclass_new //采购单位类型
+								(*oldTmp)["buyerclass"] = buyerclass_old + "," + buyerclass_new //采购单位类型
 							}
 						}
 					}
@@ -379,7 +375,7 @@ func TimedTaskBuyer() {
 			if !iter.Next(&tmpLast) {
 				//临时表无数据
 				log.Println("临时表无数据:")
-				t2.Reset(time.Second * 15)
+				t2.Reset(time.Minute * 5)
 				FClient.DestoryMongoConn(Fcconn)
 				continue
 			} else {
@@ -392,7 +388,7 @@ func TimedTaskBuyer() {
 				}).Sort("_id").Iter()
 				if cursor == nil {
 					log.Println("查询失败")
-					t2.Reset(time.Second * 15)
+					t2.Reset(time.Second * 5)
 					FClient.DestoryMongoConn(fconn)
 					continue
 				}
@@ -400,10 +396,14 @@ func TimedTaskBuyer() {
 				tmp := make(map[string]interface{})
 				for cursor.Next(&tmp) {
 					tmpId := tmp["_id"].(bson.ObjectId).Hex()
+					errbuyer, ok := tmp["buyer"].(string)
+					if !ok || errbuyer == "" {
+						continue
+					}
 					//再重新查找redis,存在发udp处理,不存在走新增合并
 					rdb := RedisPool.Get()
-					rdb.Do("SELECT", Config["redis_buyer_db"])
-					if _, err := redis.String(rdb.Do("GET", tmp["buyer"])); err == nil {
+					rdb.Do("SELECT", redis_buyer_db)
+					if _, err := redis.String(rdb.Do("GET", errbuyer)); err == nil {
 						//redis存在发送udp进行处理
 						by, _ := json.Marshal(map[string]interface{}{
 							"gtid":      tmpId,
@@ -435,9 +435,21 @@ func TimedTaskBuyer() {
 					//查询redis不存在新增
 					FClient.DbName = Config["mgodb_enterprise"]
 
-					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": tmp["buyer"]})
+					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": errbuyer})
 					if !b || (*resulttmp)["_id"] == nil {
 						//log.Println(r)
+						//人工审核
+						var isok bool
+						for _, v := range BuerRegOk {
+							isok = v.MatchString(errbuyer)
+							if isok {
+								tmp["buyer_ok"] = 1
+								break
+							}
+						}
+						if tmp["buyer_ok"] == nil {
+							tmp["buyer_err"] = 1
+						}
 						//匹配不到原始库,存入异常表删除临时表
 						FClient.DbName = Config["mgodb_extract_kf"]
 						if err := FClient.SaveForOld("buyer_err", tmp); err != nil {
@@ -449,7 +461,7 @@ func TimedTaskBuyer() {
 						continue
 					} else {
 						//log.Println(123)
-						//匹配到原始库,新增 resulttmp
+						//匹配到原始库,新增 resulttmp    buyer
 						if (*resulttmp)["credit_no"] != nil {
 							if credit_no, ok := (*resulttmp)["credit_no"].(string); ok && strings.TrimSpace(credit_no) != "" &&
 								len(strings.TrimSpace(credit_no)) > 8 {
@@ -581,10 +593,18 @@ func TimedTaskBuyer() {
 									savetmp[sk] = (*resulttmp)["company_address"]
 								}
 								continue
+							}else if sk == "buyerclass" {
+								if tmp["buyerclass"]==nil {
+									savetmp[sk] = ""
+								}else {
+									savetmp[sk] = tmp["buyerclass"]
+								}
+								continue
 							}
 
+
 							if (*resulttmp)[sk] == nil && sk != "history_name" && sk != "wechat_accounts" &&
-								sk != "buyer_name" && sk != "address" &&
+								sk != "buyer_name" && sk != "address" && sk != "buyerclass"&&
 								sk != "contact" && sk != "report_websites" {
 								savetmp[sk] = ""
 							} else {
@@ -600,7 +620,7 @@ func TimedTaskBuyer() {
 						if saveid != "" {
 							//保存redis
 							rc := RedisPool.Get()
-							rc.Do("SELECT", Config["redis_buyer_db"])
+							rc.Do("SELECT", redis_buyer_db)
 							//var _id string
 							//if v, ok := saveid.(primitive.ObjectID); ok {
 							//	_id = v.Hex()
@@ -636,9 +656,10 @@ func TimedTaskBuyer() {
 
 				}
 				FClient.DestoryMongoConn(fconn)
+				log.Println("buyer_new,遍历完成")
 			}
 		}
 		FClient.DestoryMongoConn(Fcconn)
 		t2.Reset(time.Minute)
 	}
-}
+}

+ 27 - 11
udp_winner/timedTaskWinner.go

@@ -10,7 +10,6 @@ import (
 	"net"
 	"qfw/util"
 	"sort"
-	"strconv"
 	"strings"
 	"time"
 	"unicode/utf8"
@@ -57,14 +56,13 @@ func TaskWinner(mapinfo *map[string]interface{}) {
 		conn := HisRedisPool.Conn()
 		defer conn.Close()
 		//选择redis db
-		redis_winner_db, _ := strconv.Atoi(Config["redis_winner_db"])
 		conn.Select(redis_winner_db)
 		//遍历bidding表保存到redis
 		//key:企业名  value:json结构体{"winner": 1, "winnertel": 1, "winnerperson": 1,"topscopeclass": 1, "winneraddr": 1,"_id":1}
 		tmp := make(map[string]interface{})
 		for cursor.Next(&tmp) {
 			winner, ok := tmp["winner"].(string)
-			if !ok ||utf8.RuneCountInString(winner)<4 {
+			if !ok || utf8.RuneCountInString(winner) < 4 {
 				continue
 			}
 			//判断redis key是否存在
@@ -101,7 +99,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
 				json.Unmarshal(redisvalueBytes, &rValuesMaps)
 				//redis查询是否存在
 				rdb := RedisPool.Get()
-				rdb.Do("SELECT", Config["redis_winner_db"])
+				rdb.Do("SELECT", redis_winner_db)
 				if reply, err := redis.String(rdb.Do("GET", redisCName)); err != nil {
 					//redis不存在,存到临时表,定时任务处理
 					FClient.DbName = Config["mgodb_extract_kf"]
@@ -127,7 +125,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
 					//拿到合并后的qyk
 					FClient.DbName = Config["mgodb_extract_kf"]
 					oldTmp, b := FClient.FindById(Config["mgo_qyk_c"], reply, nil)
-					if !b || oldTmp == nil {
+					if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
 						log.Println(redisCName, "存量 redis id 不存在", reply)
 						continue
 					}
@@ -229,7 +227,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
 			}
 			//redis查询是否存在
 			rdb := RedisPool.Get()
-			rdb.Do("SELECT", Config["redis_winner_db"])
+			rdb.Do("SELECT", redis_winner_db)
 			if reply, err := redis.String(rdb.Do("GET", winner)); err != nil {
 				//redis不存在存到临时表,定时任务处理
 				FClient.DbName = Config["mgodb_extract_kf"]
@@ -248,7 +246,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
 				//拿到合并后的qyk
 				FClient.DbName = Config["mgodb_extract_kf"]
 				oldTmp, b := FClient.FindById(Config["mgo_qyk_c"], reply, bson.M{})
-				if !b || oldTmp == nil {
+				if !b || (*oldTmp) == nil|| reply==""||(*oldTmp)["_id"]==nil{
 					log.Println("redis id 不存在")
 					continue
 				}
@@ -380,10 +378,14 @@ func TimedTaskWinner() {
 				tmp := make(map[string]interface{})
 				for cursor.Next(&tmp) {
 					tmpId := tmp["_id"].(bson.ObjectId).Hex()
+					errwinner, ok := tmp["winner"].(string)
+					if !ok || errwinner == "" {
+						continue
+					}
 					//再重新查找redis,存在发udp处理,不存在走新增合并
 					rdb := RedisPool.Get()
-					rdb.Do("SELECT", Config["redis_winner_db"])
-					if _, err := redis.String(rdb.Do("GET", tmp["winner"])); err == nil {
+					rdb.Do("SELECT", redis_winner_db)
+					if _, err := redis.String(rdb.Do("GET", errwinner)); err == nil {
 						//redis存在发送udp进行处理
 						by, _ := json.Marshal(map[string]interface{}{
 							"gtid":      tmpId,
@@ -415,9 +417,22 @@ func TimedTaskWinner() {
 					//查询redis不存在新增
 					FClient.DbName = Config["mgodb_enterprise"]
 
-					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": tmp["winner"]})
+					resulttmp, b := FClient.FindOne(Config["mgodb_enterprise_c"], bson.M{"company_name": errwinner})
 					if !b || (*resulttmp)["_id"] == nil {
 						//log.Println(r)
+						//人工审核正则
+						var isok bool
+						for _, v := range WinnerRegOk {
+							isok = v.MatchString(errwinner)
+							if isok {
+								tmp["winner_ok"] = 1
+								break
+							}
+						}
+						if tmp["winner_ok"] == nil {
+							tmp["winner_err"] = 1
+						}
+
 						//匹配不到原始库,存入异常表删除临时表
 						FClient.DbName = Config["mgodb_extract_kf"]
 						if err := FClient.SaveForOld("winner_err", tmp); err != nil {
@@ -601,7 +616,7 @@ func TimedTaskWinner() {
 						if saveid != "" {
 							//保存redis
 							rc := RedisPool.Get()
-							rc.Do("SELECT", Config["redis_winner_db"])
+							rc.Do("SELECT", redis_winner_db)
 							//var _id string
 							//if v, ok := saveid.(primitive.ObjectID); ok {
 							//	_id = v.Hex()
@@ -636,6 +651,7 @@ func TimedTaskWinner() {
 					}
 				}
 				FClient.DestoryMongoConn(fconn)
+				log.Println("winner_new,遍历完成")
 			}
 		}
 		FClient.DestoryMongoConn(Fcconn)

+ 11 - 0
udpcreateindex/src/projectindex.go

@@ -54,7 +54,18 @@ func projectTask(data []byte, mapInfo map[string]interface{}) {
 					}
 				}
 			}
+		} else {
+			winner := util.ObjToString(tmp["winner"])
+			bidamount := util.Float64All(tmp["bidamount"])
+			if len(winner) > 4 && bidamount > 0 {
+				p := map[string]interface{}{
+					"winner":    winner,
+					"bidamount": bidamount,
+				}
+				pp[winner] = p
+			}
 		}
+
 		pk1 := []map[string]interface{}{}
 		for _, v := range pp {
 			pk1 = append(pk1, v)

+ 0 - 0
dbutil/mongo/mgo.go → util/src/dbutil/mongo/mgo.go


+ 0 - 0
dbutil/redis/redis.go → util/src/dbutil/redis/redis.go