Pārlūkot izejas kodu

Merge branch 'develop' of http://192.168.3.17/gitlab/zhanghongbo/qfw into develop

zhanghongbo 9 gadi atpakaļ
vecāks
revīzija
d272b34bf2

+ 2 - 1
common/src/qfw/util/encrypt_test.go

@@ -22,9 +22,10 @@ func Test_sim(t *testing.T) {
 	//s2 := "GyUlIhEDDjcfWCAyIl4xBkgsERYiLAwZLCg9VkkbLj4zMRYDPRs5ATVZOxccPAkzFxw7CCpEFj41QlRAQFdFXlRMQVZcHRIbBgsWBxYcFQwEBwoa"
 
 	//s3 := "RFYoal5bCFdXWQoQB0JuWwlXAQFZCUVfFj4JMFtT"
-	s4 := "oJULtwzXo6EFV1Ah-XeyRBimXGM8,uid,123456,swordfishaction"
+	s4 := "oJULtwzXo6EFV1Ah-XeyRBimXGM8,uid,123456,wxpushlist"
 	se := SimpleEncrypt{Key: "topnet"}
 	log.Println("=====", se.EncodeString(s4))
+	log.Println("=====", se.EncodeString(",1349385977,ASD"))
 	log.Println("---", se.DecodeString("GyUlIhEDDjcfWCAyIl4xBkgsERYiLAwZLCg9VkkBHQtcX1FBR1hJWldCREMHFhUBBwccBxYA"))
 	now := time.Now()
 	tom := time.Date(now.Year(), now.Month(), now.Day(), 18, 0, 0, 0, time.Local)

+ 7 - 1
core/src/qfw/mobile/wxmenu.go

@@ -23,6 +23,9 @@ func init() {
 	se = util.SimpleEncrypt{Key: "topnet"}
 }
 func (m *Mobile) Guide(sign string) error {
+	if m.Session().Get("s_m_openid") == nil {
+		return m.Redirect("/swordfish/share/-1")
+	}
 	m.T["signature"] = GetSignature(m.Url())
 	m.T["shareid"] = cutil.FindMyShareId("topjy", m.Session().Get("s_m_openid").(string))
 	m.T["sign"] = sign
@@ -88,7 +91,7 @@ func (m *Mobile) Wxrssset() error {
 
 		return m.Render("/swordfish/wxrssset.html", &m.T)
 	} else {
-		return m.Render("_err.html")
+		return m.Redirect("/swordfish/share/-1")
 	}
 }
 
@@ -341,6 +344,9 @@ func (m *Mobile) WxpushListInfo(_id string) error {
 		mongodb.Update("message", `{"_id":"`+msgid+`"}`, `{"$set":{"i_status":1}}`, false, false)
 	}()
 	**/
+	if m.Session().Get("s_m_openid") == nil {
+		return m.Redirect("/swordfish/share/-1")
+	}
 	m.T["data"] = *mongodb.FindById("wxpush", _id, `{"s_content":1,"s_words":1,"a_visitedindex":1,"a_publishtime":1,"s_type":1}`)
 	m.T["_id"] = _id
 	m.T["signature"] = GetSignature(m.Url())

+ 1 - 1
core/src/timetask.json

@@ -1 +1 @@
-{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-27 17:58:50"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-27 17:58:50"}},"marketisstart":true,"marketrate":300}
+{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-28 12:54:36"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-28 12:54:36"}},"marketisstart":true,"marketrate":300}

+ 5 - 0
core/src/web/staticres/css/entcommunity.css

@@ -552,6 +552,11 @@ a:focus, a:hover{
 .ent-table td.ent-servicepaging{
 	padding-bottom: 0px !important;
 }
+.ent-serviceintroduction{
+	word-wrap: break-word;
+	word-break: break-all;
+	white-space: normal !important;
+}
 /**************变更信息**********************/
 .ent-alterinfo li{
 	width: 100%;

+ 5 - 0
core/src/web/staticres/css/qfw.css

@@ -484,6 +484,11 @@ a.new_red:hover, a.new_red:active {
 	color: #FF5A5F;
 	box-shadow: none;
 }
+.btn.disabled, .btn.disabled.active, .btn.disabled.focus, .btn.disabled:active, .btn.disabled:focus, .btn.disabled:hover, .btn[disabled], .btn[disabled].active, .btn[disabled].focus, .btn[disabled]:active, .btn[disabled]:focus, .btn[disabled]:hover, fieldset[disabled] .btn, fieldset[disabled] .btn.active, fieldset[disabled] .btn.focus, fieldset[disabled] .btn:active, fieldset[disabled] .btn:focus, fieldset[disabled] .btn:hover{
+	color: #FFFFFF;
+	background-color: #aea79f;
+	border-color: #aea79f;
+}
 .btn-sm, .btn-group-sm > .btn{
 	padding-top: 3px;
 	padding-bottom: 3px;

+ 8 - 2
core/src/web/staticres/js/entportrait.js

@@ -139,7 +139,7 @@ function ServiceList(){
 				}
 				var flag = typeof(r[i].s_isshow) != "undefined" && r[i].s_isshow != null && r[i].s_isshow.indexOf("3")>-1;
 				html += '<tr>'
-						+'<td rowspan="2" width="120"><img src="'+(r[i].s_images==""?"null":r[i].s_images)+'" onerror="this.src=\'/images/services/default.png\'"></td>'
+						+'<td rowspan="2" width="130"><img src="'+(r[i].s_images==""?"null":r[i].s_images)+'" onerror="this.src=\'/images/services/default.png\'"></td>'
 						+'<td class="b-com-name">';
 				if(flag){
 					html += '<a href="/market/detail/'+r[i]._id+'.html">';
@@ -156,11 +156,17 @@ function ServiceList(){
 					html += '<td>&nbsp;</td><td>&nbsp;</td>';
 				}
 				html += '</tr><tr>'
-					+'<td>'+r[i].s_introduction+'</td>'
+					+'<td colspan="3"><div class="ent-serviceintroduction">'+r[i].s_introduction+'</div></td>'
 					+'</tr>';
 			}
 			$("#serviceListPaging").parent().prevAll().remove();
 			$("#serviceListPaging").parent().before(html);
+			/*$(".ent-serviceintroduction").each(function(){
+				console.info($(this).height() +"------"+ $(this).children("div").height());
+				if($(this).height() < $(this).children("div").height()){
+					$(this).parent().append("......");
+				}
+			});*/
 		});
 	});
 }

+ 2 - 2
core/src/web/staticres/wxent/qfw-frontenterprise.js

@@ -310,7 +310,7 @@ if(!$gs){
 if($relationlen>0 ){
   //try{
 	var zoomlevel=1;
-	var w = parseInt($("#gx").css("width").replace("px","")) - 80;
+	var w = parseInt($("#gx").css("width").replace("px","")) - 20;
 	$("#infovis").css("width",w+"px");
 	var h = $("#infovis").height();
 	if($(".controlls").length>0){
@@ -999,7 +999,7 @@ var drag = force.drag()
 	//重绘
 	function redraw(){
 		if(force!=undefined){
-			var w = parseInt($("#gx").css("width").replace("px","")) - 80;
+			var w = parseInt($("#gx").css("width").replace("px","")) - 20;
 			var h = parseInt($("#gx").css("height").replace("px",""))-10;
 			d3.select("svg").attr("width", w).attr("height", h);
 			force.size([w,h]).resume();

BIN
core/src/web/staticres/wxswordfish/images/guide-0.png


BIN
core/src/web/staticres/wxswordfish/images/index.png


+ 1 - 1
core/src/web/templates/common/head.html

@@ -12,7 +12,7 @@
 		       	<ul class="text-center" id="head-navbar-ul">
 			        <li><img src="/images/nav-fwsc.png" class="visible-xs-inline"><a href="/market/0/list.html">服务市场</a></li>
 					<li class="hidden-xs"><img src="/images/nav-jy.png" class="visible-xs-inline"><a href="/front/swordfish">剑鱼</a></li>
-		            <li><img src="/images/nav-qysq.png" class="visible-xs-inline"><a href="/wx/search/enterprise/ent.html">企业社区</a></li>
+		            <li><img src="/images/nav-qysq.png" class="visible-xs-inline"><a href="/search/enterprise/ent.html">企业社区</a></li>
 		            <li><img src="/images/nav-zcfg.png" class="visible-xs-inline"><a href="/front/content_zcfg_list.html">政策法规</a></li>
 		            <li><img src="/images/nav-xwzx.png" class="visible-xs-inline"><a href="/front/content_qykb_list.html">新闻资讯</a></li>
 					<li class="hidden-xs"><img src="/images/nav-wgw.png" class="visible-xs-inline"><a href="/front/wsite.html">微官网</a></li>

+ 3 - 0
core/src/web/templates/swordfish/wxindex.html

@@ -8,6 +8,9 @@
 <script src="/js/jquery.js"></script>
 <script src="/wxswordfish/share.js"></script>
 <script src="/swiper/swiper.min.js"></script>
+<script>
+	initShare({{.T.signature}},{{.T.shareid}});
+</script>
 </head>
 <body>
 <div class="swiper-container">

+ 1 - 0
core/src/web/templates/swordfish/wxpush.html

@@ -7,6 +7,7 @@
 <script src="/js/jquery.js"></script>
 <script src="/wxswordfish/share.js"></script>
 <script>
+initShare({{.T.signature}},{{.T.shareid}});
 $(function(){
 	var hm = document.createElement("script");
 	hm.src = "//hm.baidu.com/hm.js?ed198b177e527bb53684db20bb390e77";

+ 1 - 0
core/src/web/templates/swordfish/wxrssset.html

@@ -11,6 +11,7 @@
 <script src="/wxswordfish/main.js"></script>
 <script>
 	var msgset= {{.T.msgset}};
+	initShare({{.T.signature}},{{.T.shareid}});
 </script>
 </head>
 <body>

+ 124 - 21
core/src/web/templates/swordfish/wxshare.html

@@ -1,34 +1,137 @@
-<html >
+<html>
 <head>
 <title>企明星-剑鱼</title>
-<meta charset="utf-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
-<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="no" />
-<meta name="renderer" content="webkit">
-<link href="/css/bootstrap.min.css" rel="stylesheet">
-
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+<link href="/wxswordfish/style.css" rel="stylesheet">
+<link href="/swiper/swiper.min.css" rel="stylesheet">
 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
 <script src="/js/jquery.js"></script>
-<script src="/js/bootstrap.min.js"></script>
-
 <script src="/wxswordfish/share.js"></script>
+<script src="/swiper/swiper.min.js"></script>
 <script>
 	initShare({{.T.signature}},{{.T.shareid}});
 </script>
 </head>
-<body style="margin:0px; background-color:#C5F7FE;">
-<img src="/wxswordfish/images/share-cj.jpg" class="img-responsive" alt="Cinque Terre">
-<img id="img2" style="position:absolute;" class="img-responsive" src="/front/weixinshare/{{.T.shareid}}" >
-</body>
-<script>
+<body>
+<div class="swiper-container">
+    <div class="swiper-wrapper">
+        <div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-0.png" alt="Cinque Terre">
+			<img id="QRcode" style="position:absolute;z-index: 2;" src="/front/weixinshare/{{.T.shareid}}" >
+		</div>
+       	<div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-2.png">
+		</div>
+       	<div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-3.png">
+		</div>
+		<div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-4.png">
+		</div>
+		<div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-5.png">
+		</div>
+		<div class="swiper-slide">
+			<img src="/wxswordfish/images/guide-0.png">
+		</div>
+    </div>
+    <!-- 如果需要分页器 -->
+   	<div class="swiper-pagination"></div>
+	<div class="guide-bottom">
+		<img class="arrow-up" src="/wxswordfish/images/up.png">
+		<img src="/wxswordfish/images/index.png" class="jumpGuide" onclick="backToIndex()">
+	</div>
+</div>
+<script type="text/javascript">
+var mySwiper = null;
+var currentIndex = 0;
 $(function(){
-	var width=$(window).width();
-	var max=750
-	if(width>max){
-		width=max
+	initShare({{.T.signature}},{{.T.shareid}});
+	var width = $(window).width();
+	var height = $(window).height();
+	var defaultHeight = 416;
+	var max = 750;
+	if(width > max){
+		width = max;
 	}
-	$("#img2").css({"width":width*0.48,"top":width*0.78,"left":width*0.26})
-	
-})
+	width = width*0.48;
+	var top = 330;
+	if(height > defaultHeight){
+		top = top / defaultHeight * height;
+	}
+	$("#QRcode").css({"width":width,"height":width,"top": top-width,"left":"50%","margin-left": -(width/2)});
+	$(".bottom-toolbar,.feedback-dialog").remove();
+	var flag = true;
+	mySwiper = new Swiper('.swiper-container', {
+		loop: true,
+        pagination: '.swiper-pagination',
+        paginationClickable: false,
+        direction: 'vertical',
+		touchMoveStopPropagation: false,
+		virtualTranslate: true,
+		onInit: function(swiper){
+			$("[data-swiper-slide-index='5']>img").attr("src","/wxswordfish/images/guide-6.png");
+		},
+		onSlideChangeStart: function(swiper){
+			if(flag){
+				flag = false;
+				return;
+			}
+			var prevSlide = $(swiper.slides[swiper.previousIndex]);
+			prevSlide.addClass("slide-active");
+			var activeSlide = $(swiper.slides[swiper.activeIndex]);
+			if(currentIndex == 0 && swiper.activeIndex == 0){
+				activeSlide.addClass("slide-down");
+			}else{
+				if(currentIndex > swiper.activeIndex){
+					activeSlide.addClass("slide-down");
+				}else if(currentIndex < swiper.activeIndex){
+					activeSlide.addClass("slide-up");
+				}
+			}
+			currentIndex = swiper.activeIndex;
+			if(currentIndex == 7){
+				currentIndex = 0;
+			}
+			if(swiper.isEnd || swiper.activeIndex == 1){
+				$("#QRcode").show();
+			}else{
+				$("#QRcode").hide();
+			}
+			activeSlide.one("webkitAnimationEnd",function(){
+				$(this).removeClass("slide-up").removeClass("slide-down");
+				prevSlide.removeClass("slide-active");
+			});
+		}
+    });
+	/*
+	var imgHeight = 1159;
+	var imgWidth = 750;
+	var width = document.body.clientWidth;
+	var height = document.body.clientHeight;
+	if(imgWidth > width){
+		var h = width / imgWidth * imgHeight;
+		$(".swiper-slide img").css({width: width,height: h,marginTop: -(h / 2)});
+	}else if(imgHeight > height){
+		$(".swiper-slide img").css({width: height / imgHeight * imgWidth,height: height,marginTop: -(height / 2)});
+	}*/
+});
+function backToIndex(){
+	if(mySwiper == null || mySwiper.activeIndex == 1){
+		return;
+	}
+	currentIndex = 1;
+	var prevSlide = $(mySwiper.slides[mySwiper.activeIndex]);
+	prevSlide.addClass("slide-active");
+	var activeSlide = $(mySwiper.slides[1]);
+	activeSlide.addClass("slide-down");
+	activeSlide.one("webkitAnimationEnd",function(){
+		$(this).removeClass("slide-up").removeClass("slide-down");
+		prevSlide.removeClass("slide-active");
+		mySwiper.slideTo(1, 1000, false);
+		$("#QRcode").show();
+	});
+}
 </script>
+</body>
 </html>

+ 34 - 0
core/src/web/templates/swordfish/wxshare_copy.html

@@ -0,0 +1,34 @@
+<html >
+<head>
+<title>企明星-剑鱼</title>
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
+<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="no" />
+<meta name="renderer" content="webkit">
+<link href="/css/bootstrap.min.css" rel="stylesheet">
+
+<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
+<script src="/js/jquery.js"></script>
+<script src="/js/bootstrap.min.js"></script>
+
+<script src="/wxswordfish/share.js"></script>
+<script>
+	initShare({{.T.signature}},{{.T.shareid}});
+</script>
+</head>
+<body style="margin:0px; background-color:#C5F7FE;">
+<img src="/wxswordfish/images/share-cj.jpg" class="img-responsive" alt="Cinque Terre">
+<img id="img2" style="position:absolute;" class="img-responsive" src="/front/weixinshare/{{.T.shareid}}" >
+</body>
+<script>
+$(function(){
+	var width=$(window).width();
+	var max=750
+	if(width>max){
+		width=max
+	}
+	$("#img2").css({"width":width*0.48,"top":width*0.78,"left":width*0.26})
+	
+})
+</script>
+</html>

+ 29 - 9
core/src/web/templates/swordfish/wxshareguide.html

@@ -1,6 +1,6 @@
 <html>
 <head>
-<title>企明星-剑鱼-演示</title>
+<title>企明星-剑鱼-分享</title>
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
 <link href="/wxswordfish/style.css" rel="stylesheet">
 <link href="/swiper/swiper.min.css" rel="stylesheet">
@@ -8,12 +8,16 @@
 <script src="/js/jquery.js"></script>
 <script src="/wxswordfish/share.js"></script>
 <script src="/swiper/swiper.min.js"></script>
+<script>
+	initShare({{.T.signature}},{{.T.shareid}});
+</script>
 </head>
 <body>
 <div class="swiper-container">
     <div class="swiper-wrapper">
         <div class="swiper-slide">
 			<img src="/wxswordfish/images/share-cj.jpg" alt="Cinque Terre">
+			<img id="QRcode" style="position:absolute;z-index: 2;" src="/front/weixinshare/{{.T.shareid}}" >
 		</div>
        	<div class="swiper-slide">
 			<img src="/wxswordfish/images/guide-2.png">
@@ -35,30 +39,30 @@
    	<div class="swiper-pagination"></div>
 	<div class="guide-bottom">
 		<img class="arrow-up" src="/wxswordfish/images/up.png">
-		<img src="/wxswordfish/images/index.png" class="jumpGuide" onclick="history.go(-1);">
+		<img src="/wxswordfish/images/index.png" class="jumpGuide" onclick="backToIndex()">
 	</div>
 </div>
-<img id="QRcode" style="position:absolute;z-index: 2;" src="/front/weixinshare/{{.T.shareid}}" >
 <script type="text/javascript">
+var mySwiper = null;
+var currentIndex = 0;
 $(function(){
 	initShare({{.T.signature}},{{.T.shareid}});
 	var width = $(window).width();
 	var height = $(window).height();
-	var defaultHeight = 480;
+	var defaultHeight = 416;
 	var max = 750;
 	if(width > max){
 		width = max;
 	}
 	width = width*0.48;
-	var top = 380;
+	var top = 330;
 	if(height > defaultHeight){
-		top = 380 / defaultHeight * height;
+		top = top / defaultHeight * height;
 	}
-	$("#QRcode").css({"width":width,"top": top-width,"left":"50%","margin-left": -(width/2)});
+	$("#QRcode").css({"width":width,"height":width,"top": top-width,"left":"50%","margin-left": -(width/2)});
 	$(".bottom-toolbar,.feedback-dialog").remove();
-	var currentIndex = 0;
 	var flag = true;
-	var mySwiper = new Swiper('.swiper-container', {
+	mySwiper = new Swiper('.swiper-container', {
 		loop: true,
         pagination: '.swiper-pagination',
         paginationClickable: false,
@@ -112,6 +116,22 @@ $(function(){
 		$(".swiper-slide img").css({width: height / imgHeight * imgWidth,height: height,marginTop: -(height / 2)});
 	}*/
 });
+function backToIndex(){
+	if(mySwiper == null || mySwiper.activeIndex == 1){
+		return;
+	}
+	currentIndex = 1;
+	var prevSlide = $(mySwiper.slides[mySwiper.activeIndex]);
+	prevSlide.addClass("slide-active");
+	var activeSlide = $(mySwiper.slides[1]);
+	activeSlide.addClass("slide-down");
+	activeSlide.one("webkitAnimationEnd",function(){
+		$(this).removeClass("slide-up").removeClass("slide-down");
+		prevSlide.removeClass("slide-active");
+		mySwiper.slideTo(1, 1000, false);
+		$("#QRcode").show();
+	});
+}
 </script>
 </body>
 </html>

+ 0 - 2
core/src/web/templates/swordfish/wxtoolbar.html

@@ -102,8 +102,6 @@ $(function(){
 			$("html,body").removeClass("overflow-hidden");
 		}
 	});
-	//
-	initShare({{.T.signature}},{{.T.shareid}});
 });
 //意见反馈
 function Feedback(){

+ 25 - 0
df

@@ -0,0 +1,25 @@
+diff --cc core/src/timetask.json
+index 0eba9db,8be7bc9..0000000
+--- a/core/src/timetask.json
++++ b/core/src/timetask.json
+@@@ -1,1 -1,1 +1,5 @@@
+- {"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-28 09:39:35"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-28 09:39:35"}},"marketisstart":true,"marketrate":300}
+ -{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-28 12:54:36"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-28 12:54:36"}},"marketisstart":true,"marketrate":300}
+++<<<<<<< HEAD
+++{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-28 09:39:35"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-28 09:39:35"}},"marketisstart":true,"marketrate":300}
+++=======
+++{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-01-28 12:54:36"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-01-28 12:54:36"}},"marketisstart":true,"marketrate":300}
+++>>>>>>> e697f24fdd22cbe16dc2ce282d2d1689a6e445a7
+diff --git a/common/src/qfw/util/sq/sq.go b/common/src/qfw/util/sq/sq.go
+index 96ac697..11e2d32 100644
+--- a/common/src/qfw/util/sq/sq.go
++++ b/common/src/qfw/util/sq/sq.go
+@@ -13,7 +13,7 @@ import (
+ const key string = "qmx20150708one_versionV1.0"
+ 
+ func init() {
+-	CheckSq()
++	//CheckSq()
+ }
+ 
+ func CheckSq() bool {

+ 19 - 16
push/src/qfw/push/rpcpush/rpcpush.go

@@ -5,6 +5,7 @@ import (
 	"log"
 	"qfw/push/bid"
 	"qfw/push/dopush"
+	"qfw/util"
 	qrpc "qfw/util/rpc"
 	"time"
 )
@@ -15,22 +16,24 @@ type PushInfo struct {
 var PushInfoScopeDays int
 
 func (p *PushInfo) PushMsg(data *qrpc.PushData, Reply *int) error {
-	log.Println("dddddddd", data)
-	for k, v := range data.PushType {
-		//昨天到今天的数据
-		pj := dopush.Pjob{
-			MaxPushSize: bid.MaxPushSize,
-			Stype:       k,
-			StypeName:   v,
+	log.Println("rpc_data", data)
+	util.Try(func() {
+		for k, v := range data.PushType {
+			//昨天到今天的数据
+			pj := dopush.Pjob{
+				MaxPushSize: bid.MaxPushSize,
+				Stype:       k,
+				StypeName:   v,
+			}
+			now := time.Now()
+			tom := time.Date(now.Year(), now.Month(), now.Day()-PushInfoScopeDays, 0, 0, 0, 0, time.Local)
+			b := pj.DoPush(data.Mopenid, fmt.Sprintf("%d days", PushInfoScopeDays), 2, tom.Unix())
+			if b {
+				*Reply = 1
+			} else {
+				*Reply = 0
+			}
 		}
-		now := time.Now()
-		tom := time.Date(now.Year(), now.Month(), now.Day()-PushInfoScopeDays, 0, 0, 0, 0, time.Local)
-		b := pj.DoPush(data.Mopenid, fmt.Sprintf("%d days", PushInfoScopeDays), 2, tom.Unix())
-		if b {
-			*Reply = 1
-		} else {
-			*Reply = 0
-		}
-	}
+	}, func(e interface{}) {})
 	return nil
 }

+ 8 - 2
spider2/src/client/ecps/ln/downcontent.go

@@ -24,7 +24,7 @@ func downloadContent(param map[string]interface{}) (bool, map[string]interface{}
 		return false, nil
 	}
 	//log.Println(query)
-	//query = "211200004026325"
+	//query = "210200400048103"
 	var checkcode string
 	reg, _ := regexp.Compile("(\\d{4})")
 	var cookies []*http.Cookie
@@ -86,14 +86,20 @@ func downloadContent(param map[string]interface{}) (bool, map[string]interface{}
 	doc, _ := goquery.NewDocumentFromReader(bytes.NewBuffer(listbs))
 	info := getListInfo(doc)
 	if info == nil || info["regno"] == nil {
+		log.Println(query, "无对应查询结果")
 		return false, nil
 	}
 	regno := info["regno"].(string)
 	if regno == "" {
 		return false, nil
 	}
-	pripid := info["pripid"].(string)
+	//查询结果不匹配,用来防止死循环
 	entname := info["entname"].(string)
+	if (entname != query) && (regno != query) {
+		log.Println(query, info, "查询结果不匹配")
+		return false, nil
+	}
+	pripid := info["pripid"].(string)
 	enttype := info["enttype"].(string)
 	optstate := info["optstate"].(string)
 

+ 5 - 1
spider2/src/client/ecps/ln/parse.go

@@ -113,7 +113,11 @@ func addJob(tmplist []interface{}) {
 			} else {
 				cm["query"] = tmp["Inv"]
 			}
-			if cm["query"] != nil && cm["query"] != "" && len(cm["query"].(string)) > 5 {
+			if cm["query"] != nil && cm["query"] != "" && len(cm["query"].(string)) > 6 {
+				//防止死循环
+				if cm["query"] == infoMap["CerNo"] || cm["query"] == infoMap["EntName"] {
+					continue
+				}
 				cms := *new(com.CmdMsg)
 				cms.Nodetype = com.NODE_TYPE_ECPS
 				cms.Param = cm

+ 1 - 11
spider2/src/client/ecps/ln/spider.go

@@ -85,26 +85,16 @@ func downList() {
 			}
 			ent := *mongodb.FindOne("entintime", `{"$and":[{"intime":{"$gt":`+fmt.Sprint(time.Now().Unix()-int64(rate)*24*60*60)+`}},{"$or":[{"RegNo":"`+fmt.Sprint(tmp["query"])+`"},{"EntName":"`+fmt.Sprint(tmp["query"])+`"}]}]}`)
 			if ent != nil {
-<<<<<<< HEAD
 				log.Println(ent["EntName"], ent["RegNo"], ",根据配置频率跳过")
 				putLogs(":"+fmt.Sprint(ent["EntName"])+","+fmt.Sprint(ent["RegNo"])+",根据配置频率跳过", 1)
-=======
-				log.Println(fmt.Sprint(ent["EntName"]) + ",根据配置频率跳过")
-				putLogs(":"+fmt.Sprint(ent["EntName"])+",根据配置频率跳过", 1)
->>>>>>> release
 				Lists.Remove(e)
 				continue
 			}
-			b, info := downloadContent(tmp)
 			Lists.Remove(e)
+			b, info := downloadContent(tmp)
 			if b {
-<<<<<<< HEAD
 				log.Println("成功下载:", info["EntName"], info["RegNo"])
 				putLogs("成功下载:"+fmt.Sprint(info["EntName"])+","+fmt.Sprint(info["RegNo"]), 1)
-=======
-				log.Println("成功下载:", info["EntName"])
-				putLogs("成功下载:"+fmt.Sprint(info["EntName"]), 1)
->>>>>>> release
 			} else {
 				log.Println("下载失败:", tmp)
 				putLogs("下载失败:"+fmt.Sprint(tmp), 1)

+ 14 - 7
spider2/src/server/rpc.go

@@ -23,7 +23,6 @@ const (
 	RUNNING         = iota
 	PASS
 	STOP
-	OFFLINE //掉线
 )
 
 //一个节点
@@ -33,6 +32,7 @@ type Node struct {
 	Descript       string
 	Dtype          string     //节点分类
 	Status         int        //状态
+	IsOnline       bool       //是否在线
 	Logs           *list.List //日志
 	Command        *list.List //命令
 	LastAccesstime int64      //最后访问时间
@@ -59,7 +59,7 @@ func (ss *SpiderServer) Join(p com.JoinMsg, r *com.SimpleReturnMsg) error {
 	Mirror[p.Code] = &Node{Name: p.Name,
 		Code: p.Code, Descript: p.Descript,
 		Dtype: p.Dtype, LastAccesstime: lasttime,
-		Status: RUNNING, Logs: logs, Command: cmd}
+		Status: RUNNING, IsOnline: true, Logs: logs, Command: cmd}
 	lock.Unlock()
 	return nil
 }
@@ -153,13 +153,20 @@ func initRpc(port string) {
 func Gc() {
 	timestamp := time.Now().Unix()
 	lock.Lock()
-	for k, v := range Mirror {
+	for _, v := range Mirror {
 		log.Println(v.Name, "Status:", v.Status)
 		remain := timestamp - v.LastAccesstime
-		if remain > 10 { //5分钟掉线删除
-			delete(Mirror, k)
-		} else if remain > ACTIVECHECKTIME {
-			v.Status = OFFLINE
+		/*
+			if remain > 30 { //30秒钟掉线删除
+				delete(Mirror, k)
+			} else if remain > ACTIVECHECKTIME {
+				v.Status = OFFLINE
+			}
+		*/
+		if remain > ACTIVECHECKTIME {
+			v.IsOnline = false
+		} else {
+			v.IsOnline = true
 		}
 	}
 	lock.Unlock()

+ 8 - 2
spider2/src/server/web/templates/index.html

@@ -75,18 +75,24 @@
 								<!-- <td><input type="checkbox" name="spider" /></td>-->
 								<td><a href="/load/{{$v.Code}}">{{$v.Name}}</a></td>
 								<td align="center">
-									{{if eq $v.Status 3}}
+									{{ if eq $v.IsOnline false}}
+									<span class="u-stop">已掉线</span>
+									{{else if eq $v.Status 3}}
 									<span class="u-stop">未启动</span>
 									{{else if eq $v.Status 1}}
 									<span class="u-process">运行中</span>
 									{{end}}
 								</td>
 								<td align="center">
+								{{if eq $v.IsOnline true}}
 									{{if eq $v.Status 3 }}
 									<a title="启动" href="/acton/{{$v.Code}}"><i class="glyphicon glyphicon-play"></i></a>
-									{{else}}
+									{{else }}
 									<a title="停止" href="/actoff/{{$v.Code}}"><i class="glyphicon glyphicon-stop" ></i></a>
 									{{end}}
+								{{else}}
+									<a title="掉线" >无法操作</a>
+								{{end}}
 								</td>
 							</tr>			
 							{{end}}

+ 3 - 3
weixin/src/qfw/weixin/clickhandler.go

@@ -36,7 +36,7 @@ func ClickHandler(w ResponseWriter, r *Request) {
 					w.ReplyText("您已经提交认证信息,正在审核中,请耐心等待")
 				} else if state == 1 {
 					//w.ReplyText("恭喜您,身份认证已通过,请点击<a href='http://" + wf.SysConfig.Domain + "/ent/wsite/edit/" + r.FromUserName + "'>进入微官网</a>")
-					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth?action=msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
+					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth/action/msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
 					w.ReplyText("恭喜您,身份认证已通过,请点击<a href='" + urlstr + "'>进入微官网</a>")
 				} else {
 					str := "欢迎您进行企业认证"
@@ -56,7 +56,7 @@ func ClickHandler(w ResponseWriter, r *Request) {
 					w.ReplyText("您已经提交认证信息,正在审核中,请耐心等待")
 				} else if state == 1 {
 					//w.ReplyText("恭喜您,身份认证已通过,请点击<a href='http://" + wf.SysConfig.Domain + "/ent/wsite/edit/" + r.FromUserName + "'>进入微官网</a>")
-					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth?action=msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
+					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth/action/msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
 					w.ReplyText("恭喜您,身份认证已通过,请点击<a href='" + urlstr + "'>进入微官网</a>")
 				} else {
 					str := "欢迎您进行个人认证"
@@ -76,7 +76,7 @@ func ClickHandler(w ResponseWriter, r *Request) {
 					w.ReplyText("您已经提交认证信息,正在审核中,请耐心等待")
 				} else if state == 1 {
 					//w.ReplyText("恭喜您,身份认证已通过,请点击<a href='http://" + wf.SysConfig.Domain + "/ent/wsite/edit/" + r.FromUserName + "'>进入微官网</a>")
-					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth?action=msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
+					urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wf.SysConfig.Appid + "&redirect_uri=http://" + wf.SysConfig.Domain + "/weixinoauth/action/msiteaction&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
 					w.ReplyText("恭喜您,身份认证已通过,请点击<a href='" + urlstr + "'>进入微官网</a>")
 				} else {
 					str := "欢迎您进行机构认证"