Bläddra i källkod

Merge branch 'dev2.8.5' of http://192.168.3.207:10080/qmx/jy into dev2.8.5

zhangxinlei1996 5 år sedan
förälder
incheckning
722708c080
38 ändrade filer med 873 tillägg och 699 borttagningar
  1. 2 15
      src/jfw/front/search.go
  2. 2 0
      src/jfw/front/swordfish.go
  3. 10 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/common.js
  4. 5 25
      src/jfw/modules/app/src/web/templates/vipsubscribe/choose_area_upgrade.html
  5. 24 17
      src/jfw/modules/app/src/web/templates/vipsubscribe/renew_notice.html
  6. 82 95
      src/jfw/modules/app/src/web/templates/vipsubscribe/renew_pay.html
  7. 18 5
      src/jfw/modules/app/src/web/templates/vipsubscribe/trial_info.html
  8. 87 102
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_upgrade.html
  9. 1 1
      src/jfw/modules/pushent/src/followpush/push.go
  10. 1 1
      src/jfw/modules/pushproject/src/followpush/push.go
  11. 1 0
      src/jfw/modules/pushsubscribe/src/match/job/job.go
  12. 36 21
      src/jfw/modules/pushsubscribe/src/match/job/matchjob.go
  13. 4 4
      src/jfw/modules/pushsubscribe/src/push/job/movejob.go
  14. 4 2
      src/jfw/modules/pushsubscribe/src/push/pusher/normalpush.go
  15. 173 74
      src/jfw/modules/subscribepay/src/service/afterPay.go
  16. 10 8
      src/jfw/modules/weixin/src/wx/wx.go
  17. 1 1
      src/jfw/public/historypush.go
  18. 3 3
      src/jfw/public/search.go
  19. 41 16
      src/web/staticres/js/wxSupersearch.js
  20. 28 1
      src/web/staticres/vipsubscribe/js/common.js
  21. 5 5
      src/web/staticres/vipsubscribe/js/keyWord.js
  22. 196 182
      src/web/templates/weixin/historypush.html
  23. 2 0
      src/web/templates/weixin/search/mainSearch.html
  24. 5 25
      src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html
  25. 1 1
      src/web/templates/weixin/vipsubscribe/edit_subscribe.html
  26. 1 1
      src/web/templates/weixin/vipsubscribe/edit_subscribe_city.html
  27. 2 2
      src/web/templates/weixin/vipsubscribe/edit_subscribe_industry.html
  28. 1 1
      src/web/templates/weixin/vipsubscribe/edit_subscribe_province.html
  29. 6 6
      src/web/templates/weixin/vipsubscribe/keyWord.html
  30. 14 8
      src/web/templates/weixin/vipsubscribe/messageType.html
  31. 19 19
      src/web/templates/weixin/vipsubscribe/renew_notice.html
  32. 29 20
      src/web/templates/weixin/vipsubscribe/renew_pay.html
  33. 13 3
      src/web/templates/weixin/vipsubscribe/trial_info.html
  34. 8 2
      src/web/templates/weixin/vipsubscribe/vip_index.html
  35. 0 1
      src/web/templates/weixin/vipsubscribe/vip_purchase.html
  36. 3 1
      src/web/templates/weixin/vipsubscribe/vip_seniorset.html
  37. 27 23
      src/web/templates/weixin/vipsubscribe/vip_upgrade.html
  38. 8 7
      src/web/templates/weixin/vipsubscribe/vip_viewPage.html

+ 2 - 15
src/jfw/front/search.go

@@ -34,30 +34,15 @@ func (s *Search) MainSearch() error {
 
 	// 查询用户是否订阅或推送
 	data, ok := mongodb.FindOne("user", bson.M{"_id": bson.ObjectIdHex(userid.(string))})
-	//	log.Println("data", *data)
 	i_applystatus := (*data)["i_applystatus"]
-	//	if i_applystatus != nil {
-	//		log.Println("i_applystatus", i_applystatus)
-	//	}
 
 	var o_jy map[string]interface{}
-	//	var a_key []interface{}
 	if ok && data != nil && len(*data) > 0 {
 		o_jy, _ = (*data)["o_jy"].(map[string]interface{})
 		a_key, _ := o_jy["a_key"]
 		s.SetSession("a_key", a_key)
 	}
 	a_key := s.GetSession("a_key")
-	//	key_type := a_key.([]interface{})[0]
-	//	//	util.ObjArrToMapArr()
-	//	log.Println(key_type)
-	//	log.Println("a_key", a_key)
-
-	//	key := key_type.(map[string]interface{})["key"]
-	//	log.Println("key", key)
-
-	//	keys := key.([]interface{})[0]
-	//	log.Println("keys", keys)
 
 	if len(industrylist) > 0 {
 		s.T["industry"] = industrylist
@@ -81,6 +66,8 @@ func (s *Search) MainSearch() error {
 
 	s.T["a_key"] = a_key
 	s.T["i_applystatus"] = i_applystatus
+	//是否是vip用户
+	s.T["i_vip_status"] = (*data)["i_vip_status"]
 	return s.Render("/weixin/search/mainSearch.html", &s.T)
 }
 

+ 2 - 0
src/jfw/front/swordfish.go

@@ -2350,6 +2350,7 @@ func (f *Front) HasPushHistory() {
 	//获取时间
 	var formatTime string
 	selectTime := f.GetString("selectTime")
+	log.Println(selectTime, "---", f.GetString("area"))
 	lenStr := len([]rune(selectTime))
 	if selectTime != "" {
 		if selectTime != "undefined" && lenStr >= 10 {
@@ -2428,6 +2429,7 @@ func (f *Front) HasPushHistory() {
 		"isPassCount": isPassCount,
 		"isExpire":    isExpire,
 		"isOnTail":    isOnTail,
+		"userId":      util.EncodeArticleId(userId),
 	})
 }
 

+ 10 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/common.js

@@ -47,9 +47,18 @@ function getAreaClassArr(area){
         provinceArr.push(i)
       }
     }
-    return [provinceArr,cityArr]
+    return [SortArr(provinceArr),SortArr(cityArr)]
 }
 
+//对数组进行排序(拼音)
+function SortArr(arr){
+	arr = arr.sort(function compareFunction(item1, item2) {
+	    return item1.localeCompare(item2);
+	});
+	return arr
+}
+
+
 /* vip订阅价格
 	area:地区 {}
 	industry:行业 []

+ 5 - 25
src/jfw/modules/app/src/web/templates/vipsubscribe/choose_area_upgrade.html

@@ -472,7 +472,6 @@
             if (province == $.trim($(dom).text())) {
               $(".checkbox.other").attr("checked", false); //取消全国选中
               $(dom).children('.checkbox').attr({"checked": true,"disabled":!canClick});//选中此省份
-              $(this).parent(".tab:not(.municipality)").next().slideDown(500);
               if(canClick){
               	$(dom).parents().siblings('.tab_content').find(".city").addClass("active").attr({"disabled":!canClick});
               }else{
@@ -487,7 +486,6 @@
 	            	$('.tab_content .city').each(function(){
 	            		$(this).attr("disabled",!canClick);
 	            	});
-	            	$(".tips_d_money").hide();
 	            }
             }
           })
@@ -508,6 +506,7 @@
                             "checked": true,
                             "disabled": "disabled"
                         })
+                        $(dom).parents().slideDown(500);
                     }
                 }
             })
@@ -632,8 +631,6 @@
 //        console.log("this.selectObj:",this.selectObj)
           $('.result_name').append(html)
           AreaChoose.isOpen()
-          //刷新价格
-          AreaChoose.flushPrice();
         },
         submitArea:function(){
           let addCity = $('.result_name').text(); //新增的城市
@@ -655,14 +652,6 @@
         		$(".tips_btn .btns .save-btn").attr("disabled","disabled");
           }
         },
-        getNationwide:function(){/*默认选中全国 */
-//        $('.other').prop('checked', true);
-//        $('.tab_content').slideUp(500)
-//        $('.tab span i').css({
-//            "display":"inline-block",
-//            "transform":"rotate(0)"
-//        });
-        },
         isOpen:function(){
           let pHeight = $('.result_text').height()
           let minHeight = $('.result_text').css('min-height')
@@ -694,9 +683,9 @@
           }
         },
         inintClick:function(){
-        	$('.tab_content').each(function(){
-          		AreaChoose.showSelected(false);
-        	})
+//      	$('.tab_content').each(function(){
+//        		AreaChoose.showSelected(false);
+//      	})
           $('.detail').click(function () {  
                 $('.result_text').removeClass('line_two')
                 $(".result").css("padding-bottom","0.3rem")
@@ -835,14 +824,6 @@
                 $(".tips_btn .btns .reset-btn").attr("disabled","disabled");
             	$(".tips_btn .btns .save-btn").attr("disabled","disabled");
             }
-        },
-        flushPrice:function(){
-          if(this.vipSubisTrial){
-            $('.tips_d_money').css("display","none");
-          }else{
-            var price=getsubVipOrderPrice(this.selectObj,this.selectedIndustryArr,this.timeSelect);
-            $('.tips_d_money').text('¥'+price);
-          }
         }
       }
       
@@ -850,8 +831,7 @@
             AreaChoose.isOpen()
             AreaChoose.inintData(); //初始化 已选择和已购买数据
             AreaChoose.inintPage(); //初始化城市数据
-
-            AreaChoose.getNationwide();//默认选中全国 
+            AreaChoose.showSelected(false);
             AreaChoose.showSelected(true);//回显已选择
             /* 判断已购买的城市 在不在 全部城市里面,在,将按钮置灰,不可点击 */
 

+ 24 - 17
src/jfw/modules/app/src/web/templates/vipsubscribe/renew_notice.html

@@ -47,8 +47,8 @@
                 </div>
             </div>
 			<div class="renew_box">
-                <button class="renew_service" onclick="window.location.href='/jyapp/vipsubscribe/renewPayPage'">续费</button>
-                <button class="free_service" onclick="window.location.href='/jyapp/swordfish/historypush'">使用免费订阅</button>
+                <button style="display: none;" class="renew_service" onclick="window.location.href='/jyapp/vipsubscribe/renewPayPage'">续费</button>
+                <button style="display: none;" class="free_service" onclick="window.location.href='/jyapp/swordfish/historypush'">使用免费订阅</button>
             </div>
 		</div>
 		<script src="/jyapp/vipsubscribe/js/jquery-2.1.4.js"></script>
@@ -63,7 +63,7 @@
 //			console.log("orderId",orderId)
 //			console.log("starts",starts)
 //			console.log("ends",ends)
-			var nowTime = new Date().getTime()/1000;
+			var nowTime = new Date().getTime();
 			if(orderId !== "" && orderId !== undefined){
 				$DoPost("/subscribepay/renewUpgrade/getExprie", {"orderId":orderId}, function (r) {
 					if(r){
@@ -75,6 +75,7 @@
 					    var areaHtml = "";
 					    var buyerclassArr = [];
 					    var buyerclassHtml = "";
+					    var endstime = new Date(ends).getTime();
 						if (area !== "" && area !== undefined){
 					    	for(var province in area){
 					    		var citys = area[province]
@@ -110,17 +111,22 @@
 					    	let dateHtml = start + " - " + end;
 					    	$(".date-span").text(dateHtml);
 					    }
+					    if(vipStatus === 2&&nowTime>endstime){
+							return   
+					    }
 					    if(exprie === "will"){
-					    	$(".free_service").hide();
-					    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-					    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	let a = (endstime/1000) - (86400 * 3);
+					    	let b = nowTime/1000;
+					    	let c = endstime/1000;
+					    	if(a < b&&b < c){
+					    		$(".renew_service").show();
+						    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
+						    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	}
 					    }else{
+					    	$(".renew_service").show();
 					    	$(".free_service").show();
 					    }
-					    if(vipStatus === 2&&nowTime > ends){
-					    	$(".free_service").hide();
-					    	$(".renew_service").hide();
-					    }
 					}
 				});
 			}else{
@@ -183,16 +189,17 @@
 					    	$(".date-span").text(dateHtml);
 					    }
 					    if(exprie === "will"){
-					    	$(".free_service").hide();
-					    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-					    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	let a = (endstime/1000) - (86400 * 3)
+					    	let b = nowTime/1000
+					    	if(b > a){
+					    		$(".renew_service").show();
+						    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
+						    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	}
 					    }else{
+					    	$(".renew_service").show();
 					    	$(".free_service").show();
 					    }
-					    if(vipStatus === 2){
-					    	$(".free_service").hide();
-					    	$(".renew_service").hide();
-					    }
 					}
 				});	
 			}

+ 82 - 95
src/jfw/modules/app/src/web/templates/vipsubscribe/renew_pay.html

@@ -14,7 +14,7 @@
     <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" href="/jyapp/vipsubscribe/css/vip_update.css?v={{Msg "seo" "version"}}5">
-	{{include "/common/weixin.html"}}
+	{{include "/common/js.html"}}
 </head>
 <style type="text/css">
 	body,html {
@@ -25,12 +25,17 @@
 	}
 	.vip_update .fixed-bottom-box, .vip_renew .fixed-bottom-box {
 	    width: 100%;
-	    position: fixed;
+	    position: static;
 	    bottom: 0;
 	    left: 0;
 	}
 </style>
 <body class="no-touch">
+	<div class="app-layout-header">
+        <span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
+        VIP订阅续费
+    </div>
+	<div class="app-layout-content-b">
     <div class="vip_renew">
         <div class="choose_condition">
              <!-- 正常点击vip首页续费进入显示下列提示 -->
@@ -185,7 +190,7 @@
                                 <p><img src="/jyapp/vipsubscribe/image/weixin.png">微信支付</p>
                             </div>
                             <div class="weui-cell__hd">
-                                <input type="radio" class="weui-check" name="way" value="微信支付" id="wx" checked />
+                                <input type="radio" class="weui-check paytypes" name="way" value="微信支付" id="wx" checked />
                                 <i class="weui-icon-checked"></i>
                             </div>
                         </label>
@@ -194,7 +199,7 @@
                                 <p><img src="/jyapp/vipsubscribe/image/zhifubao.png">支付宝支付</p>
                             </div>
                             <div class="weui-cell__hd">
-                                <input type="radio" class="weui-check" name="way" value="支付宝支付" id="zfb" />
+                                <input type="radio" class="weui-check paytypes" name="way" value="支付宝支付" id="zfb" />
                                 <i class="weui-icon-checked"></i>
                             </div>
                         </label>
@@ -207,69 +212,6 @@
     <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}4"></script>
     <!--<script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
     <script src="https://res.wx.qq.com/open/libs/weuijs/1.1.4/weui.min.js?v={{Msg "seo" "version"}}"></script>
-    <script type="text/javascript">
-    	//
-    	try{
-			var signature = {{.T.signature}};
-			var isConfigSuccess = true;
-			var id = {{.T._id}}
-			if(signature && signature.length == 4){
-			  	wx.config({
-			  	    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
-			  	    appId: signature[0], // 必填,公众号的唯一标识
-			  	    timestamp:signature[1], // 必填,生成签名的时间戳
-			  	    nonceStr: signature[2], // 必填,生成签名的随机串
-			  	    signature: signature[3],// 必填,签名,见附录1
-			  	    jsApiList: ['chooseWXPay','hideAllNonBaseMenuItem'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
-			  	});
-			  	wx.ready(function(){
-			  		if(!isConfigSuccess){
-			  			return;
-			  		}
-			  		wx.hideAllNonBaseMenuItem();
-			    });
-			  	wx.error(function(res){
-			  	    //config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
-			  		//alert(res);
-			  		isConfigSuccess = false;
-			  	});
-			}
-			//调用微信支付接口
-  			function onBridgeReady(res,ordercode){
-  			   	WeixinJSBridge.invoke('getBrandWCPayRequest',{
-		    		"appId": res["appId"],
-		          	"timeStamp": res["timestamp"],
-		          	"nonceStr": res["nonceStr"],
-		          	"package": res["prepayId"],
-		          	"signType": res["signType"],
-		         	"paySign": res["sign"]
-  				},
-  				function(r){
-				    if(r.err_msg == "get_brand_wcpay_request:ok"){
-						setTimeout(function(){
-							window.location.replace("/jyapp/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
-						},500)
-					}	
-//					}else if(r.err_msg == "get_brand_wcpay_request:cancel"){               
-////	                	alert("开发环境【支付跳转完成】")
-//		                try{
-////		  					window.location.replace("/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
-////		                    window.location.reload();
-//		                }catch(e){
-//		                  alert(e)
-//		                }
-//	  				}else{
-//	                	weui.toast("系统异常,请稍微再试",{
-//	                  		duration: 2000,
-//	                  		className: 'custom-toast',
-//	                	});
-//	  				}
-  				});
-  			}   
-		}catch(e){
-		  console.log(e)
-		}
-    </script>
     <script>
     	$(function () {    
 			var isPageHide = false;   
@@ -439,6 +381,19 @@
         })
         /* -------- 选择按年订阅  radio触发的事件------- */
         $('#yearly').on('change', function (e) {
+        	if((12+nowUpgrade)>36){
+            	var overtimeWarning = `最长订阅周期不可超过3年<br />当前订阅周期:${nowUpgrade}个月`
+		        weui.toast(overtimeWarning, {
+		            duration: 3000,
+		            className: 'custom-toast',
+		            callback: function() {
+		            }
+		        })
+		        $('#yearly').prop("checked", false);
+		        $('#monthly').prop("checked", true);
+		        $('#number_box_month').addClass('active')
+		        return
+            }
             $('.profit_tips').hide()
             // console.log($(this).is(':checked'))
             let isChecked = $(this).is(':checked')
@@ -530,9 +485,12 @@
 	    	}else if(payType === "alipy"){
 	    		payHtml = "支付宝支付";
 	    	}
-	    	$('input:radio[name="way"]').val(payHtml);
-	    	$('input:radio[name="way"]').prop("checked", true);
-	    	$("#payType").text(payHtml);
+	    	$(".paytypes").each(function(){
+	    		if($(this).attr("value") === payHtml){
+	    			$(this).prop("checked", true);
+	    		}
+	    	});
+	    	$(".weixin_pay").text(payHtml);
 	    }
         
         //
@@ -616,14 +574,10 @@
 			    	$(".item_validity .label_for").text(dateHtml);
 			    }
 			    if(starts !== "" && ends !== ""){
-			    	let end = new Date(ends*1000).toLocaleDateString();
-			    	let endtime = end.split("/");
-			    	let endYear = Number(endtime[0]);
-			    	let endMonth = Number(endtime[1]);
-			    	let start = new Date(starts*1000).toLocaleDateString();
-			    	let starttime = start.split("/");
-			    	let startYear = Number(starttime[0]);
-			    	let startMonth = Number(starttime[1]);
+			    	let endYear = new Date(ends*1000).getFullYear();
+			    	let endMonth = new Date(ends*1000).getMonth()+1;
+			    	let startYear = new Date(starts*1000).getFullYear();
+			    	let startMonth = new Date(starts*1000).getMonth()+1;
 			    	let year = "";
 			    	let month = "";
 			    	if(endYear > startYear){
@@ -671,17 +625,13 @@
 		    }
         }, false);
         //
-        var nowDate = new Date(startTime).toLocaleDateString();
-		nowDate = nowDate.split("/");
-		var nowMonth = Number(nowDate[1]);
-		var nowYear = Number(nowDate[0]);
-		var nowDay = Number(nowDate[2]);
+		var nowMonth = new Date(startTime).getMonth()+1;
+		var nowYear = new Date(startTime).getFullYear();
+		var nowDay = new Date(startTime).getDate();
 		//
-		var endDate = new Date(endTime).toLocaleDateString();
-		endDate = endDate.split("/");
-		var endMonth = Number(endDate[1]);
-		var endYear = Number(endDate[0]);
-		var endDay = Number(endDate[2]);
+		var endMonth = new Date(endTime).getMonth()+1;
+		var endYear = new Date(endTime).getFullYear();
+		var endDay = new Date(endTime).getDate();
 		var nowUpgrade = 0;
 		if(endYear === nowYear){
 			if(endMonth === nowMonth){
@@ -780,23 +730,43 @@
 		        })
 		        return
 	    	}
+	    	//
+	    	let payTypes = sessionStorage.payTypes;
+            let payType = "";
+            if(payTypes === "wx"){
+            	payType = "wx_app";
+            }else if(payTypes === "alipy"){
+            	payType = "alipy_app";
+            }
 	        $(".save_renew").attr("disabled","disabled");
 	    	var param = {
 	    		"area": JSON.stringify(area),
 	    		"industry": buyerclass.toString(),
 	    		"time": $('.choose_item.select_cycle .info').val(),
-	    		"payWay":"wx_js",
+	    		"payWay":payType,
 	    		"pay_source": "Renew",
 	    		"endtime": ends,
 	    	}
 	    	console.log(param)
-	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder",param,function(r){
-                if(r.success){
+	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder", param, function (r) {
+                if (r.success) {
+                    //唤起app支付
+                    try {
+                        if (pay_way == "wx_app") {
+                            JyObj.wxPay(r.data.res);
+                        } else {
+                            JyObj.aliPay(r.data.res)
+                        }
+                        //校验是否支付完成
+                        checkpay(r.data.code);
+                    } catch (e) {
+                        alert(e)
+                    }
                     clearSessionStorage();
-                    onBridgeReady(JSON.parse(r.data.res),r.data.code);
+                } else {
+                    $(".save_renew").removeAttr("disabled")
                 }
-                $(".save_renew").removeAttr("disabled");
-            })
+            });
 	    });
 	    
 	    //
@@ -807,7 +777,24 @@
 	    	sessionStorage.removeItem("renew_finally_price");
 	    	sessionStorage.removeItem("buyChecks");
 	    }
-	    
+	    //
+	    //校验是否支付
+	    var interval;
+	
+	    function checkpay(orderid) {
+	        if (interval) {
+	            clearInterval(interval);
+	        }
+	        interval = setInterval(function () {
+	            $.post("/jypay/isPaySuccess", {code: orderid}, function (r) {
+	                if (r.success) {
+	                    clearInterval(interval);
+	                    clearSessionStorage();
+	                    window.location.replace("/jyapp/vipsubscribe/toPaySuccessPage?orderCode=" + orderid);
+	                }
+	            });
+	        }, 2000)
+	    }
 	    //
 	    function checkObj(obj) {
 		    //检验数组

+ 18 - 5
src/jfw/modules/app/src/web/templates/vipsubscribe/trial_info.html

@@ -49,12 +49,14 @@
                                        onchange="check_tel($(this),$('.code_btn'),true)">
                             </div>
                             <div class="form_item form_item_line">
-                                <input type="number" placeholder="图形验证码" value="" class="code imgcode input" maxlength="4"
+                                <input type="number" placeholder="图形验证码" value="" class="code imgcode input"
+                                       maxlength="4"
                                        onchange="check_imgcode($(this),$('.code_btn'),true)">
                                 <img src="/subscribepay/trial/captcha" class="checkCode">
                             </div>
                             <div class="form_item">
-                                <input type="number" placeholder="手机验证码" value="" class="code phonecode input" maxlength="6"
+                                <input type="number" placeholder="手机验证码" value="" class="code phonecode input"
+                                       maxlength="6"
                                        onchange="check_phonecode($(this),true)">
                                 <button class="code_btn" type="button">获取验证码</button>
                             </div>
@@ -181,21 +183,32 @@
     });
 
     function scrollView(obj) {
-        var view_height = $(document.body).height();
+        var view_height = $(document.body).height()
 
         function change() {
             $(document.body).height(view_height)
         }
+
         change();
         window.addEventListener('resize', change);
-        $('.' + obj).on('blur', function () {
+        $('.' + obj).on('blur', function (e) {
             setTimeout(() => {
-                if (!document.activeElement.className.includes(obj)) {
+                let dom = document.activeElement;
+                // console.dir(dom);
+                if (dom.className.includes(obj)) {
+                    let u = navigator.userAgent, app = navigator.appVersion;
+                    let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
+                    if (isAndroid) {
+                        dom.scrollIntoView({"block": "center"})
+                    }
+
+                } else {
                     window.scroll(0, 0)
                 }
             }, 50)
         })
     }
+    
     {{else}}
     $('#formInfo').submit(function (e) {
         window.location.replace("/jyapp/vipsubscribe/vipsubscribe_trial");

+ 87 - 102
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_upgrade.html

@@ -9,13 +9,13 @@
     <title>VIP订阅升级</title>
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
-    <script src="/jyapp/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <!--<script src="/jyapp/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>-->
     <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" href="/jyapp/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/jyapp/vipsubscribe/css/vip_update.css?v={{Msg "seo" "version"}}4">
-	{{include "/common/weixin.html"}}
+	{{include "/common/js.html"}}
 </head>
 <style type="text/css">
 	body,html {
@@ -26,12 +26,17 @@
 	}
 	.vip_update .fixed-bottom-box, .vip_renew .fixed-bottom-box {
 	    width: 100%;
-	    position: fixed;
+	    position: static;
 	    bottom: 0;
 	    left: 0;
 	}
 </style>
 <body class="no-touch">
+	<div class="app-layout-header">
+        <span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
+        VIP订阅升级
+    </div>
+	<div class="app-layout-content-b">
     <div class="vip_update">
         <div class="choose_condition">
             <p class="update_tip">提示:订阅升级可在已购买的服务基础上,增加区域、行业、以及延长订阅周期!</p>
@@ -282,7 +287,7 @@
                                 <p><img src="/jyapp/vipsubscribe/image/weixin.png">微信支付</p>
                             </div>
                             <div class="weui-cell__hd">
-                                <input type="radio" class="weui-check" name="way" value="微信支付" id="wx" checked />
+                                <input type="radio" class="weui-check paytypes" name="way" value="微信支付" id="wx" checked />
                                 <i class="weui-icon-checked"></i>
                             </div>
                         </label>
@@ -291,7 +296,7 @@
                                 <p><img src="/jyapp/vipsubscribe/image/zhifubao.png">支付宝支付</p>
                             </div>
                             <div class="weui-cell__hd">
-                                <input type="radio" class="weui-check" name="way" value="支付宝支付" id="zfb" />
+                                <input type="radio" class="weui-check paytypes" name="way" value="支付宝支付" id="zfb" />
                                 <i class="weui-icon-checked"></i>
                             </div>
                         </label>
@@ -300,75 +305,11 @@
             </div>
         </div>
     </div>
+    </div>
     <script src="/jyapp/vipsubscribe/js/jquery-2.1.4.js"></script>
     <!--<script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
     <script src="/jyapp/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
     <script src="/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}3"></script>
-    <script type="text/javascript">
-    	//
-    	try{
-			var signature = {{.T.signature}};
-			var isConfigSuccess = true;
-			var id = {{.T._id}}
-			if(signature && signature.length == 4){
-			  	wx.config({
-			  	    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
-			  	    appId: signature[0], // 必填,公众号的唯一标识
-			  	    timestamp:signature[1], // 必填,生成签名的时间戳
-			  	    nonceStr: signature[2], // 必填,生成签名的随机串
-			  	    signature: signature[3],// 必填,签名,见附录1
-			  	    jsApiList: ['chooseWXPay','hideAllNonBaseMenuItem'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
-			  	});
-			  	wx.ready(function(){
-			  		if(!isConfigSuccess){
-			  			return;
-			  		}
-			  		wx.hideAllNonBaseMenuItem();
-			    });
-			  	wx.error(function(res){
-			  	    //config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
-			  		//alert(res);
-			  		isConfigSuccess = false;
-			  	});
-			}
-			//调用微信支付接口
-  			function onBridgeReady(res,ordercode){
-  			   	WeixinJSBridge.invoke('getBrandWCPayRequest',{
-		    		"appId": res["appId"],
-		          	"timeStamp": res["timestamp"],
-		          	"nonceStr": res["nonceStr"],
-		          	"package": res["prepayId"],
-		          	"signType": res["signType"],
-		         	"paySign": res["sign"]
-  				},
-  				function(r){
-				    if(r.err_msg == "get_brand_wcpay_request:ok"){
-				    	//
-                    	clearSessionStorage();
-						setTimeout(function(){
-							window.location.replace("/jyapp/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
-						},500)
-					}
-//					}else if(r.err_msg == "get_brand_wcpay_request:cancel"){               
-////	                	alert("开发环境【支付跳转完成】")
-//		                try{
-////		  					window.location.replace("/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
-////		                	window.location.reload();
-//		                }catch(e){
-//		                  alert(e)
-//		                }
-//	  				}else{
-//	                	weui.toast("系统异常,请稍微再试",{
-//	                  		duration: 2000,
-//	                  		className: 'custom-toast',
-//	                	});
-//	  				}
-  				});
-  			}   
-		}catch(e){
-		  console.log(e)
-		}
-    </script>
     <script>
         $(function () {    
 			var isPageHide = false;   
@@ -444,13 +385,11 @@
          // 选择生效日期
         $('.choose_effect_date > a').click(function () {
             $('#effective_date').show(200);
-            var nowDates = new Date().toLocaleDateString();
-			nowDates = nowDates.split("/");
-			var nowMonths = Number(nowDates[1]);
-			var nowYears = Number(nowDates[0]);
-			var as = nowMonths +1
+			var nowMonths = new Date().getMonth()+1;
+			var nowYears = new Date().getFullYear();
+			var as = nowMonths +1;
 			if(as > 12){
-				as = nowMonths-12;
+				as = as-12;
 				nowYears = nowYears +1;
 			}
 			var bs = nowYears+"/"+as+"/1";
@@ -528,7 +467,6 @@
                 // $('#time_cycle .tips.monthly_tips').hide();
 
                 $('#number_box_month').removeClass('active');
-                $('#number_box_year span:eq(0)').addClass('active');
             }else{
                 $('.computed_price').hide()
                 $('#number_box_month').removeClass('active');
@@ -669,6 +607,19 @@
         })
         /* -------- 选择按年订阅  radio触发的事件------- */
         $('#yearly').on('change', function (e) {
+        	if((12+nowRenew)>36){
+            	var overtimeWarning = `最长订阅周期不可超过3年<br />当前订阅周期:${nowRenew}个月`
+		        weui.toast(overtimeWarning, {
+		            duration: 3000,
+		            className: 'custom-toast',
+		            callback: function() {
+		            }
+		        })
+		        $('#yearly').prop("checked", false);
+		        $('#monthly').prop("checked", true);
+		        $('#number_box_month').addClass('active')
+		        return
+           	}
             $('.profit_tips').hide()
             // console.log($(this).is(':checked'))
             let isChecked = $(this).is(':checked')
@@ -827,9 +778,12 @@
 	    	}else if(payType === "alipy"){
 	    		payHtml = "支付宝支付";
 	    	}
-	    	$('input:radio[name="way"]').val(payHtml);
-	    	$('input:radio[name="way"]').prop("checked", true);
-	    	$("#payType").text(payHtml);
+	    	$(".paytypes").each(function(){
+	    		if($(this).attr("value") === payHtml){
+	    			$(this).prop("checked", true);
+	    		}
+	    	});
+	    	$(".weixin_pay").text(payHtml);
 	    }
 
 		if(sessionStorage.upgrade_cyclecount!==undefined&&sessionStorage.upgrade_cycleunit!==undefined){
@@ -940,17 +894,13 @@
         	$(".save_upgrade").attr('disabled','disabled');
 	    	var nowUpgrade = "";
 			//
-			var nowDate = new Date(startTime).toLocaleDateString();
-			nowDate = nowDate.split("/");
-			var nowMonth = Number(nowDate[1]);
-			var nowYear = Number(nowDate[0]);
-			var nowDay = Number(nowDate[2]);
+			var nowMonth = new Date(startTime).getMonth()+1;
+			var nowYear = new Date(startTime).getFullYear();
+			var nowDay = new Date(startTime).getDate();
 			//
-			var endDate = new Date(endTime).toLocaleDateString();
-			endDate = endDate.split("/");
-			var endMonth = Number(endDate[1]);
-			var endYear = Number(endDate[0]);
-			var endDay = Number(endDate[2]);
+			var endMonth = new Date(endTime).getMonth()+1;
+			var endYear = new Date(endTime).getFullYear();
+			var endDay = new Date(endTime).getDate();
 			var oldPrice = "";
 			var price = "";
 			var effect = "";
@@ -1223,13 +1173,11 @@
         	let effective = $("#effect_date_name").text();
         	var effect = "now";
         	if(effective !== "立即生效,需支付当月费用差价"){
-        		let nowDate = new Date().toLocaleDateString();
-				nowDate = nowDate.split("/");
-				let nowMonth = Number(nowDate[1]);
-				let nowYear = Number(nowDate[0]);
+				let nowMonth = new Date().getMonth()+1;
+				let nowYear = new Date().getFullYear();
 				let a = nowMonth +1
         		if(a > 12){
-        			a = nowMonth-12;
+        			a = a-12;
         			nowYear = nowYear +1;
         		}
         		let b = nowYear+"/"+a+"/1";
@@ -1254,25 +1202,46 @@
             if(renew_time !== "不延长"){
             	times = $('.choose_item.lengthen .info').text();
             }
+            //
+            let payTypes = sessionStorage.payType;
+            let payType = "";
+            if(payTypes === "wx"){
+            	payType = "wx_app";
+            }else if(payTypes === "alipy"){
+            	payType = "alipy_app";
+            }
             //
 	    	var param = {
 	    		"area": JSON.stringify(areas),
 	    		"industry": industrys.join(","),
 	    		"areas": JSON.stringify(areaarr),
 	    		"industryarr": industryarr.join(","),
-	    		"payWay": "wx_js",
+	    		"payWay": payType,
 	    		"effect": effect,
 	    		"pay_source" : "Upgrade",
 	    		"time": times,
 	    		"nowUp": Number(nowRenew),
 	    	}
 	    	console.log(param)
-	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder",param,function(r){
-                if(r.success){
-                    onBridgeReady(JSON.parse(r.data.res),r.data.code);
+	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder", param, function (r) {
+                if (r.success) {
+                    //唤起app支付
+                    try {
+                        if (pay_way == "wx_app") {
+                            JyObj.wxPay(r.data.res);
+                        } else {
+                            JyObj.aliPay(r.data.res)
+                        }
+                        //校验是否支付完成
+                        checkpay(r.data.code);
+                    } catch (e) {
+                        alert(e)
+                    }
+                    clearSessionStorage();
+                } else {
+                    $(".save_upgrade").removeAttr("disabled")
                 }
-                $(".save_upgrade").removeAttr("disabled");
-            })
+            });
 	    });
 	    
 	    //
@@ -1286,8 +1255,24 @@
 	    	sessionStorage.removeItem("effectiveDate");
 	    	sessionStorage.removeItem("buyCheck");
 	    }
-	    
 	    //
+	    //校验是否支付
+	    var interval;
+	
+	    function checkpay(orderid) {
+	        if (interval) {
+	            clearInterval(interval);
+	        }
+	        interval = setInterval(function () {
+	            $.post("/jypay/isPaySuccess", {code: orderid}, function (r) {
+	                if (r.success) {
+	                    clearInterval(interval);
+	                    clearSessionStorage();
+	                    window.location.replace("/jyapp/vipsubscribe/toPaySuccessPage?orderCode=" + orderid);
+	                }
+	            });
+	        }, 2000)
+	    }
 	    //
 	    function checkObj(obj) {
 		    //检验数组

+ 1 - 1
src/jfw/modules/pushent/src/followpush/push.go

@@ -296,7 +296,7 @@ func push(fid, sname, userId string, res *[]map[string]interface{}) {
 				}
 				setMap["a_relationinfo"] = relationinfoTemp
 			} else { //追加
-				(*updateMap)["$pushAll"] = bson.M{"a_relationinfo": pushArray}
+				(*updateMap)["$push"] = bson.M{"a_relationinfo": bson.M{"$each": pushArray}}
 			}
 			updateFlag = tools.MQFW.UpdateById(FOLLOW_COLLECTION, fid, updateMap)
 		}

+ 1 - 1
src/jfw/modules/pushproject/src/followpush/push.go

@@ -394,7 +394,7 @@ func push(fid interface{}, sname, scode, title, userId string, res *[]map[string
 						}
 						setMap["a_relationinfo"] = relationinfoTemp
 					} else { //追加
-						(*updateMap)["$pushAll"] = bson.M{"a_relationinfo": pushArray}
+						(*updateMap)["$push"] = bson.M{"a_relationinfo": bson.M{"$each": pushArray}}
 					}
 					updateFlag = tools.MQFW.Update(FOLLOW_COLLECTION, &bson.M{"_id": fid}, updateMap, false, false)
 				}

+ 1 - 0
src/jfw/modules/pushsubscribe/src/match/job/job.go

@@ -25,5 +25,6 @@ var Jobs = &jobs{
 		savePool:             make(chan bool, Config.SavePoolSize),
 		saveWaitGroup:        &sync.WaitGroup{},
 		userMapLock:          &sync.Mutex{},
+		allProject:           &sync.Map{},
 	},
 }

+ 36 - 21
src/jfw/modules/pushsubscribe/src/match/job/matchjob.go

@@ -32,6 +32,11 @@ const (
 	ProjectQuery = `{"query":{"filtered":{"filter":{"term":{"list.infoid":"%s"}}}},"_source":["_id","list.infoid"],"sort":{"id":"desc"},"from":0,"size":1}`
 )
 
+type Project struct {
+	Id               string
+	List_last_infoid string
+}
+
 type MatchJob struct {
 	matchPool            chan bool
 	matchWaitGroup       *sync.WaitGroup
@@ -43,6 +48,7 @@ type MatchJob struct {
 	savePool             chan bool
 	saveWaitGroup        *sync.WaitGroup
 	userMapLock          *sync.Mutex
+	allProject           *sync.Map
 }
 
 //定时任务,匹配数据,存库
@@ -90,6 +96,7 @@ func (m *MatchJob) Execute() {
 			break
 		}
 	}
+	m.allProject = &sync.Map{}
 	if endTime == nil {
 		endTime = time.Now().Unix()
 	}
@@ -106,7 +113,6 @@ func (m *MatchJob) ToMatch(batchIndex int, matcher Matcher, datas *[]map[string]
 	logger.Info("第", batchIndex, "批开始保存到", Pushspace_temp, "表。。。")
 	index := 0
 	var saveBatch []map[string]interface{}
-	user_infoId := map[string]map[string]bool{}
 	lock := &sync.Mutex{}
 	for u, i := range *userMap {
 		m.savePool <- true
@@ -169,7 +175,6 @@ func (m *MatchJob) ToMatch(batchIndex int, matcher Matcher, datas *[]map[string]
 			}
 			lock.Lock()
 			defer lock.Unlock()
-			user_infoId[user.Id] = infoIdMap
 			saveBatch = append(saveBatch, map[string]interface{}{
 				"s_m_openid":    user.S_m_openid,
 				"a_m_openid":    user.A_m_openid,
@@ -213,11 +218,11 @@ func (m *MatchJob) ToMatch(batchIndex int, matcher Matcher, datas *[]map[string]
 		saveBatch = []map[string]interface{}{}
 	}
 	logger.Info("第", batchIndex, "批保存到", Pushspace_temp, "表结束。。", index)
-	m.ToRelationProject(projectUserMap, user_infoId)
+	m.ToRelationProject(projectUserMap)
 }
 
 //关联项目
-func (m *MatchJob) ToRelationProject(projectUser *sync.Map, user_infoId map[string]map[string]bool) {
+func (m *MatchJob) ToRelationProject(projectUser *sync.Map) {
 	logger.Info("开始关联项目。。。")
 	index := 0
 	var updateproject [][]map[string]interface{}
@@ -232,33 +237,43 @@ func (m *MatchJob) ToRelationProject(projectUser *sync.Map, user_infoId map[stri
 				<-m.savePool
 				m.saveWaitGroup.Done()
 			}()
-			projects := elastic.Get(Projectset, Projectset, fmt.Sprintf(ProjectQuery, _id))
-			if projects == nil || len(*projects) == 0 {
-				return
-			}
-			list := (*projects)[0]["list"].([]interface{})
-			if len(list) == 0 {
-				return
+			list_last_infoid := ""
+			projectId := ""
+			if value, ok := m.allProject.Load(_id); ok {
+				project, _ := value.(*Project)
+				projectId = project.Id
+				list_last_infoid = project.List_last_infoid
+			} else {
+				projects := elastic.Get(Projectset, Projectset, fmt.Sprintf(ProjectQuery, _id))
+				if projects == nil || len(*projects) == 0 {
+					return
+				}
+				list := (*projects)[0]["list"].([]interface{})
+				if len(list) == 0 {
+					return
+				}
+				list_last, _ := list[len(list)-1].(map[string]interface{})
+				list_last_infoid = util.ObjToString(list_last["infoid"])
+				projectId, _ := (*projects)[0]["_id"].(string)
+				m.allProject.Store(_id, &Project{
+					Id:               projectId,
+					List_last_infoid: list_last_infoid,
+				})
 			}
-			list_last, _ := list[len(list)-1].(map[string]interface{})
-			list_last_infoid := util.ObjToString(list_last["infoid"])
-			if list_last_infoid == "" {
+			if projectId == "" || list_last_infoid == "" {
 				return
 			}
 			lock.Lock()
 			defer lock.Unlock()
 			for _, user := range *users {
-				if user_infoId[user.Id] == nil || !user_infoId[user.Id][_id] {
-					continue
-				}
 				updateproject = append(updateproject, []map[string]interface{}{
 					map[string]interface{}{
-						"projectid": (*projects)[0]["_id"],
+						"projectid": projectId,
 						"userid":    user.Id,
 					},
 					map[string]interface{}{
 						"$set": map[string]interface{}{
-							"projectid":  (*projects)[0]["_id"],
+							"projectid":  projectId,
 							"infoid":     _id,
 							"userid":     user.Id,
 							"maxid":      list_last_infoid,
@@ -269,7 +284,7 @@ func (m *MatchJob) ToRelationProject(projectUser *sync.Map, user_infoId map[stri
 				})
 			}
 			if len(updateproject) == BigBulkSize {
-				mongodb.NewUpdateBulk(Pushspace_project, updateproject...)
+				mongodb.NewUpdateBulk(Pushspace_project, true, true, updateproject...)
 				updateproject = [][]map[string]interface{}{}
 			}
 		}(k, v)
@@ -281,7 +296,7 @@ func (m *MatchJob) ToRelationProject(projectUser *sync.Map, user_infoId map[stri
 	})
 	m.saveWaitGroup.Wait()
 	if len(updateproject) > 0 {
-		mongodb.NewUpdateBulk(Pushspace_project, updateproject...)
+		mongodb.NewUpdateBulk(Pushspace_project, true, true, updateproject...)
 		updateproject = [][]map[string]interface{}{}
 	}
 	logger.Info("关联项目结束。。。", index)

+ 4 - 4
src/jfw/modules/pushsubscribe/src/push/job/movejob.go

@@ -2,7 +2,6 @@
 package job
 
 import (
-	"log"
 	. "public"
 	. "push/config"
 	putil "push/util"
@@ -172,7 +171,6 @@ func (m *MoveJob) merge(number *int, nowUnix int64, moveUsers map[string]*MoveUs
 					newList = append(newList, vv)
 				}
 				pLength := len(newList)
-				log.Println(pLength)
 				if pLength == 0 {
 					invalidArray_delete = append(invalidArray_delete, moveUser.ids...)
 					if len(invalidArray_delete) == BigBulkSize {
@@ -193,8 +191,10 @@ func (m *MoveJob) merge(number *int, nowUnix int64, moveUsers map[string]*MoveUs
 					setMap["size"] = maxPushSize
 				} else { //追加
 					setMap["size"] = rLength + pLength
-					upSet["$pushAll"] = map[string]interface{}{
-						"list": newList,
+					upSet["$push"] = map[string]interface{}{
+						"list": map[string]interface{}{
+							"$each": newList,
+						},
 					}
 				}
 				upSet["$set"] = setMap

+ 4 - 2
src/jfw/modules/pushsubscribe/src/push/pusher/normalpush.go

@@ -182,8 +182,10 @@ func (n *NormalPush) vipTempSave(u *UserInfo, pushParam *putil.PushParam) {
 				}
 				set["list"] = oldList
 			} else { //追加
-				upSet["$pushAll"] = map[string]interface{}{
-					"list": pushParam.Infos,
+				upSet["$push"] = map[string]interface{}{
+					"list": map[string]interface{}{
+						"$each": pushParam.Infos,
+					},
 				}
 			}
 		}

+ 173 - 74
src/jfw/modules/subscribepay/src/service/afterPay.go

@@ -20,6 +20,89 @@ type AfterPay struct {
 	setUserInfo    xweb.Mapper `xweb:"/afterPay/setUserInfo"`    //保存用户当前支付后的信息
 	getPushView    xweb.Mapper `xweb:"/afterPay/getPushView"`    //VIP推送预览
 	updateUserTips xweb.Mapper `xweb:"/afterPay/updateUserTips"` //修改用户未分类关键词提醒
+	directSubKWS   xweb.Mapper `xweb:"/afterPay/directSubKWS"`   //搜索列表直接订阅关键词
+}
+
+//
+func (a *AfterPay) DirectSubKWS() error {
+	defer qutil.Catch()
+	userId, _ := a.GetSession("userId").(string)
+	flag := "n"
+	if userId != "" {
+		data, ok := util.MQFW.FindById("user", userId, `{"o_vipjy":1}`)
+		keys := a.GetString("keys")
+		var repleat = false
+		var classify_index = 0
+		var kws_index = 0
+		var kwsCount = 0
+		if ok && data != nil && len(*data) > 0 {
+			o_vipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
+			if o_vipjy["a_items"] != nil {
+				a_items := o_vipjy["a_items"].([]interface{})
+				for k, v := range a_items {
+					tmp := qutil.ObjToMap(v.(map[string]interface{}))
+					a_key := (*tmp)["a_key"].([]interface{})
+					kwsCount = kwsCount + len(a_key)
+					if (*tmp)["s_item"] == "未分类" {
+						classify_index = k
+						kws_index = len(a_key)
+					}
+					for _, n := range a_key {
+						ntmp := qutil.ObjToMap(n.(interface{}))
+						nkey := qutil.ObjArrToStringArr((*ntmp)["key"].([]interface{}))
+						if strings.Join(nkey, " ") == keys {
+							repleat = true
+							break
+						}
+					}
+					if repleat {
+						break
+					}
+				}
+			}
+			if repleat {
+				flag = "o"
+			} else if kwsCount >= 300 {
+				flag = "m"
+			} else {
+				if classify_index == 0 && kws_index == 0 {
+					//首次添加分类和关键词
+					var _key = make(map[string]interface{})
+					var a_key = make([]map[string]interface{}, 1)
+					var o_kws = make(map[string]interface{})
+					classify_name := "未分类"
+					o_kws["s_item"] = classify_name
+					_key["key"] = strings.Split(keys, " ")
+					a_key[0] = _key
+					o_kws["a_key"] = a_key
+					o_kws["i_tips"] = 0
+					if o_kws != nil && len(o_kws) > 0 {
+						ok := util.MQFW.UpdateById("user", userId, bson.M{
+							"$push": bson.M{"o_vipjy.a_items": o_kws},
+							"$set":  bson.M{"o_vipjy.l_modifydate": time.Now().Unix()},
+						})
+						if ok {
+							flag = "y"
+						}
+					}
+				} else {
+					var saveData = make(map[string]interface{})
+					saveData["o_vipjy.a_items."+strconv.Itoa(classify_index)+".a_key."+strconv.Itoa(kws_index)+".key"] = strings.Split(keys, " ")
+					ok := util.MQFW.UpdateById("user", userId, map[string]interface{}{
+						"$set": saveData,
+					})
+					if ok {
+						flag = "y"
+					}
+				}
+			}
+
+		}
+	}
+	a.ServeJson(map[string]interface{}{
+		"flag": flag,
+	})
+	return nil
 }
 
 //
@@ -89,9 +172,9 @@ func (a *AfterPay) SetUserInfo() error {
 			saveData["o_vipjy.i_matchway"] = i_matchway
 		} else if a.GetString("pageType") == "keyWords" {
 			classify_index := a.GetString("classify_index")
-			classify_name := a.GetString("classify_name")
+			classify_name := strings.Trim(a.GetString("classify_name"), " ")
 			kws_index := a.GetString("kws_index")
-			kws_name := a.GetString("kws_name")
+			kws_name := strings.Trim(a.GetString("kws_name"), " ")
 			actionType := a.GetString("actionType")
 			kwscount := a.GetString("kwscount")
 			addtion_kws := a.GetSlice("addition_kws")
@@ -99,59 +182,75 @@ func (a *AfterPay) SetUserInfo() error {
 			if len([]rune(kws_name)) > 20 {
 				kws_name = qutil.SubString(kws_name, 0, 20)
 			}
-			_kws := strings.Split(kws_name, " ")
-			if actionType == "SK" { //保存关键词
-				if kwscount != "0" {
-					//修改关键词
-					saveData["o_vipjy.a_items."+classify_index+".s_item"] = classify_name
-					saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".key"] = _kws
+			if kws_name != "" {
+				_kws := strings.Split(kws_name, " ")
+				if actionType == "SK" { //保存关键词
 					if len(addtion_kws) > 0 {
-						saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".appendkey"] = addtion_kws
+						for _, addval := range addtion_kws {
+							if len([]rune(addval)) > 20 {
+								addval = qutil.SubString(addval, 0, 20)
+							}
+						}
 					}
 					if len(not_kws) > 0 {
-						saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".notkey"] = not_kws
+						for _, notval := range not_kws {
+							if len([]rune(notval)) > 20 {
+								notval = qutil.SubString(notval, 0, 20)
+							}
+						}
 					}
-				} else {
-					//首次添加分类和关键词
-					var _key = make(map[string]interface{})
-					var a_key = make([]map[string]interface{}, 1)
-					var o_kws = make(map[string]interface{})
-					if classify_name == "" {
-						classify_name = "未分类"
+					if kwscount != "0" {
+						//修改关键词
+						saveData["o_vipjy.a_items."+classify_index+".s_item"] = classify_name
+						saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".key"] = _kws
+						if len(addtion_kws) > 0 {
+							saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".appendkey"] = addtion_kws
+						}
+						if len(not_kws) > 0 {
+							saveData["o_vipjy.a_items."+classify_index+".a_key."+kws_index+".notkey"] = not_kws
+						}
+					} else {
+						//首次添加分类和关键词
+						var _key = make(map[string]interface{})
+						var a_key = make([]map[string]interface{}, 1)
+						var o_kws = make(map[string]interface{})
+						if classify_name == "" {
+							classify_name = "未分类"
+						}
+						o_kws["s_item"] = classify_name
+						_key["key"] = _kws
+						_key["appendkey"] = addtion_kws
+						_key["notkey"] = not_kws
+						a_key[0] = _key
+						o_kws["a_key"] = a_key
+						o_kws["i_tips"] = 0
+						if o_kws != nil && len(o_kws) > 0 {
+							flag = util.MQFW.UpdateById("user", userId, bson.M{
+								"$push": bson.M{"o_vipjy.a_items": o_kws},
+								"$set":  bson.M{"o_vipjy.l_modifydate": time.Now().Unix()},
+							})
+						}
 					}
-					o_kws["s_item"] = classify_name
-					_key["key"] = _kws
-					_key["appendkey"] = addtion_kws
-					_key["notkey"] = not_kws
-					a_key[0] = _key
-					o_kws["a_key"] = a_key
-					o_kws["i_tips"] = 0
-					if o_kws != nil && len(o_kws) > 0 {
-						flag = util.MQFW.UpdateById("user", userId, bson.M{
-							"$push": bson.M{"o_vipjy.a_items": o_kws},
-							"$set":  bson.M{"o_vipjy.l_modifydate": time.Now().Unix()},
-						})
-					}
-				}
-			} else if actionType == "DK" { //删除关键词
-				data, ok := util.MQFW.FindById("user", userId, `{"o_vipjy.a_items":1}`)
-				if ok && data != nil && len(*data) > 0 {
-					o_vipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
-					a_items := o_vipjy["a_items"].([]interface{})
-					i, _ := strconv.Atoi(classify_index)
-					classifyArr := a_items[i].(map[string]interface{})
-					if classifyArr != nil && len(classifyArr["a_key"].([]interface{})) == 1 {
-						a_items = append(a_items[:i], a_items[i+1:]...)
-						saveData["o_vipjy.a_items"] = a_items
-					} else if classifyArr != nil && len(classifyArr["a_key"].([]interface{})) > 1 {
-						j, _ := strconv.Atoi(kws_index)
-						a_key := classifyArr["a_key"].([]interface{})
-						a_key = append(a_key[:j], a_key[j+1:]...)
-						saveData["o_vipjy.a_items."+classify_index+".a_key"] = a_key
+				} else if actionType == "DK" { //删除关键词
+					data, ok := util.MQFW.FindById("user", userId, `{"o_vipjy.a_items":1}`)
+					if ok && data != nil && len(*data) > 0 {
+						o_vipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
+						a_items := o_vipjy["a_items"].([]interface{})
+						i, _ := strconv.Atoi(classify_index)
+						classifyArr := a_items[i].(map[string]interface{})
+						if classifyArr != nil && len(classifyArr["a_key"].([]interface{})) == 1 {
+							a_items = append(a_items[:i], a_items[i+1:]...)
+							saveData["o_vipjy.a_items"] = a_items
+						} else if classifyArr != nil && len(classifyArr["a_key"].([]interface{})) > 1 {
+							j, _ := strconv.Atoi(kws_index)
+							a_key := classifyArr["a_key"].([]interface{})
+							a_key = append(a_key[:j], a_key[j+1:]...)
+							saveData["o_vipjy.a_items."+classify_index+".a_key"] = a_key
+						}
 					}
+				} else if actionType == "SC" { //保存分类
+					saveData["o_vipjy.a_items."+classify_index+".s_item"] = classify_name
 				}
-			} else if actionType == "SC" { //保存分类
-				saveData["o_vipjy.a_items."+classify_index+".s_item"] = classify_name
 			}
 		}
 		if len(saveData) > 0 {
@@ -183,33 +282,33 @@ func (a *AfterPay) GetUserInfo() error {
 			data := qutil.ObjToMap((*userData)["o_vipjy"])
 			i_vip_status := qutil.IntAll((*userData)["i_vip_status"])
 			//区域
-			_area := qutil.ObjToMap((*data)["o_area"].(interface{}))
-			var area = ""
-			for k, v := range *_area {
-				if len(v.([]interface{})) == 0 {
-					area += k + "、"
-				} else {
-					for _, _v := range v.([]interface{}) {
-						area += _v.(string) + "、"
-					}
-				}
-			}
-			if area == "" {
-				(*data)["o_area"] = "全国"
-			} else {
-				(*data)["o_area"] = strings.TrimRight(area, "、")
-			}
+			//			_area := qutil.ObjToMap((*data)["o_area"].(interface{}))
+			//			var area = ""
+			//			for k, v := range *_area {
+			//				if len(v.([]interface{})) == 0 {
+			//					area += k + "、"
+			//				} else {
+			//					for _, _v := range v.([]interface{}) {
+			//						area += _v.(string) + "、"
+			//					}
+			//				}
+			//			}
+			//			if area == "" {
+			//				(*data)["o_area"] = "全国"
+			//			} else {
+			//				(*data)["o_area"] = strings.TrimRight(area, "、")
+			//			}
 			//采购行业
-			_buyClass := (*data)["a_buyerclass"].([]interface{})
-			var buyClass = ""
-			for _, v := range _buyClass {
-				buyClass += v.(string) + "、"
-			}
-			if buyClass == "" {
-				(*data)["a_buyerclass"] = "全行业"
-			} else {
-				(*data)["a_buyerclass"] = strings.TrimRight(buyClass, "、")
-			}
+			//			_buyClass := (*data)["a_buyerclass"].([]interface{})
+			//			var buyClass = ""
+			//			for _, v := range _buyClass {
+			//				buyClass += v.(string) + "、"
+			//			}
+			//			if buyClass == "" {
+			//				(*data)["a_buyerclass"] = "全行业"
+			//			} else {
+			//				(*data)["a_buyerclass"] = strings.TrimRight(buyClass, "、")
+			//			}
 			//有效日期
 			var _starttime = (*userData)["l_vip_starttime"]
 			(*userData)["l_vip_starttime"] = strings.Replace(qutil.FormatDateWithObj(&_starttime, qutil.Date_Short_Layout), "-", ".", -1)

+ 10 - 8
src/jfw/modules/weixin/src/wx/wx.go

@@ -1520,7 +1520,7 @@ func vipFastSubscribe(user *map[string]interface{}, keyWord, openId string) (ret
 	var itemHas = false //是否有未分类
 	flag := false
 	//有分类
-	var keysFilter = strings.Split(keyWord, " ")
+	var keysFilter = strings.Split(strings.Replace(keyWord, "+", " ", -1), " ")
 	if o_vipjy != nil && o_vipjy["a_items"] != nil && len(o_vipjy["a_items"].([]interface{})) > 0 {
 		var keysCount = 0 //已订关键词数量
 		hasOldKey = true
@@ -1563,19 +1563,21 @@ func vipFastSubscribe(user *map[string]interface{}, keyWord, openId string) (ret
 			return -3, strings.Replace(keyWord, "+", " ", -1), hasOldKey
 		}
 	}
-	var _key = make([]map[string]interface{}, len(keysFilter))
+	var _key []map[string]interface{}
 	if itemHas {
-		for k, v := range keysFilter {
-			_key[k] = map[string]interface{}{"key": strings.Split(v, " ")}
+		for _, v := range keysFilter {
+			tmp := map[string]interface{}{"key": strings.Split(v, " ")}
+			_key = append(_key, tmp)
 		}
-		flag = tools.MQFW.Update("user", `{"s_m_openid":"`+openId+`"}`, map[string]interface{}{
-			"$pushAll": bson.M{"o_vipjy.a_items." + strconv.Itoa(classify_index) + ".a_key": _key},
+		flag = tools.MQFW.Update("user", `{"s_m_openid":"`+openId+`"}`, bson.M{
+			"$push": bson.M{"o_vipjy.a_items." + strconv.Itoa(classify_index) + ".a_key": bson.M{"$each": _key}},
 		}, false, false)
 	} else {
 		var o_kws = make(map[string]interface{})
 		o_kws["s_item"] = "未分类"
-		for k, v := range keysFilter {
-			_key[k] = map[string]interface{}{"key": strings.Split(v, " ")}
+		for _, v := range keysFilter {
+			tmp := map[string]interface{}{"key": strings.Split(v, " ")}
+			_key = append(_key, tmp)
 		}
 		o_kws["a_key"] = _key
 		o_kws["i_tips"] = 0

+ 1 - 1
src/jfw/public/historypush.go

@@ -426,7 +426,7 @@ func (h *historyPush) getInfoByIds(pushCas []*jy.PushCa) []map[string]interface{
 func (h *historyPush) MakeHistoryDatas(userId, field string) (bool, []map[string]interface{}) {
 	allquery := `{"range":{"publishtime":{"gt":%s}}}`
 	allquery = fmt.Sprintf(allquery, fmt.Sprint(time.Now().AddDate(0, 0, -7).Unix()))
-	allquery = ``
+	//	allquery = ``
 	keys, list := PushView(userId, allquery, field, 1, 50)
 	log.Println(list)
 	if list == nil || len(*list) == 0 {

+ 3 - 3
src/jfw/public/search.go

@@ -632,9 +632,9 @@ func ScreenData(arr *[]map[string]interface{}, dataType string, resultNum int, k
 }
 func countOfTheEmpty(m map[string]interface{}, dataType string) int {
 	MsgType := m["subtype"]
-	if MsgType == "拟建" {
-		return -1
-	}
+	//	if MsgType == "拟建" {
+	//		return -1
+	//	}
 	//计算空字段数量
 	var count int = 0
 	//高级字段包

+ 41 - 16
src/web/staticres/js/wxSupersearch.js

@@ -175,25 +175,50 @@ var SuperSearch = {
 		//订阅
 		$("#supersearchPage #zjdy").on("tap",function(){
 			var rFlag = false;
-			$.ajax({
-				type: "post",
-				url: "/member/swordfish/ajaxReq",
-				data: {keys:SuperSearch.s_words,reqType: "subscribe"},
-				dataType: "json",
-				async: false,
-				success: function(r){
-					if(r.flag=="y"){
+			if(parseInt(i_vip_status)>0){
+				$.ajax({
+					type: "post",
+					url: "/subscribepay/afterPay/directSubKWS",
+					data: {keys:SuperSearch.s_words},
+					dataType: "json",
+					async: false,
+					success: function(r){
+						if(r.flag=="y"){
+							rFlag = true;
+						}else if(r.flag=="o"){
+							EasyAlert.show("您已经订阅过此关键字");
+						}else if(r.flag=="m"){
+							EasyAlert.show("您已经超过订阅<br>关键字上限");
+						}
+					},error: function(){
 						rFlag = true;
-					}else if(r.flag=="o"){
-						EasyAlert.show("您已经超过订阅<br>关键字上限");
 					}
-				},error: function(){
-					rFlag = true;
+				});
+				if(rFlag){
+					SuperSearch.setSessionStorage();
+					window.location.href = "/front/vipsubscribe/toSetKeyWordPage";
+				}
+			}else{
+				$.ajax({
+					type: "post",
+					url: "/member/swordfish/ajaxReq",
+					data: {keys:SuperSearch.s_words,reqType: "subscribe"},
+					dataType: "json",
+					async: false,
+					success: function(r){
+						if(r.flag=="y"){
+							rFlag = true;
+						}else if(r.flag=="o"){
+							EasyAlert.show("您已经超过订阅<br>关键字上限");
+						}
+					},error: function(){
+						rFlag = true;
+					}
+				});
+				if(rFlag){
+					SuperSearch.setSessionStorage();
+					window.location.href = "/wxkeyset/keyset/index";
 				}
-			});
-			if(rFlag){
-				SuperSearch.setSessionStorage();
-				window.location.href = "/wxkeyset/keyset/index";
 			}
 		});
 		//订阅结束==========================================================================

+ 28 - 1
src/web/staticres/vipsubscribe/js/common.js

@@ -31,6 +31,24 @@ function getParam(name) {
   return context == null || context == "" || context == "undefined" ? "" : context;
 }
 
+//省份 城市 分类
+function getAreaClassArr_index(area){
+	let cityArr=[];//城市
+    let provinceArr=[];//省份
+    for(var i in area) {
+      let citys=area[i]
+      if(citys.length>0){
+        cityArr = cityArr.concat(citys);
+        provinceArr.push(i+"("+cityArr.join("、")+")")
+      }else{
+    	if(i=="全国"){
+			continue
+		}
+        provinceArr.push(i)
+      }
+    }
+    return SortArr(provinceArr)
+}
 
 //省份 城市 分类
 function getAreaClassArr(area){
@@ -47,9 +65,18 @@ function getAreaClassArr(area){
         provinceArr.push(i)
       }
     }
-    return [provinceArr,cityArr]
+    return [SortArr(provinceArr),SortArr(cityArr)]
+}
+
+//对数组进行排序(拼音)
+function SortArr(arr){
+	arr = arr.sort(function compareFunction(item1, item2) {
+	    return item1.localeCompare(item2);
+	});
+	return arr
 }
 
+
 /* vip订阅价格
 	area:地区 {}
 	industry:行业 []

+ 5 - 5
src/web/staticres/vipsubscribe/js/keyWord.js

@@ -30,7 +30,7 @@ var reloadFunc = function(){
     // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
     $('.content .addkeyWord input.enterOne').on('input', function () {
         var buttonDOM = $(this).siblings()[1].children[1]
-        if ($(this).val().length >= 1) {
+        if ($.trim($(this).val()).length >= 1) {
             buttonDOM.style.opacity = 1
             buttonDOM.removeAttribute("disabled")
         } else {
@@ -42,7 +42,7 @@ var reloadFunc = function(){
     // 添加 确认按钮的点击事件
     $('.content .addkeyWord .btn button:nth-child(2)').on('click', function () {
 		setTimeout(function(){
-	        var keyWord = $('.addkeyWord input.enterOne').val();
+	        var keyWord = $.trim($('.addkeyWord input.enterOne').val());
 			if(keyWord==""){
 				return
 			}
@@ -71,7 +71,7 @@ var reloadFunc = function(){
 			if($(".showKeyWord li").length>0){
 	        	_index =  Number($(".showKeyWord li:first").find(".editKeyWord").attr("dataIndex")) + Number(1);
 			}
-	        classify_name = $('.classify-r .classify-detail').text();
+	        classify_name = $.trim($('.classify-r .classify-detail').text());
 	        //保存关键词
 	        kws_count = parseInt(kws_count) + 1;
 	        if(kws_count>300){
@@ -162,7 +162,7 @@ var reloadFunc = function(){
     })
     // 编辑
     $(".showKeyWord").on('click', '.editKeyWord', function (e) {
-        kws_name = $(this).parent().find('.key').text();
+        kws_name = $.trim($(this).parent().find('.key').text());
         //当前关键词数组的位置 是数组的总长度-当前所在的位置-1 数组正序索引
         kws_index = $('.showKeyWord li').length - $(this).parent().parent("li").index() -1;
         if($(this).prev('div').find(".addition").text()!=""){
@@ -282,7 +282,7 @@ var reloadFunc = function(){
     })
     // 关键词分类 - 确定按钮点击事件
     $('.classify-edit-pop .dialog__btn_confirm').on('click', function() {
-        classify_name = $('input.classify-keyword').val();
+        classify_name = $.trim($('input.classify-keyword').val());
         // 去空格
         classify_name = classify_name.trim();
         if (classify_name.length === 0) {

+ 196 - 182
src/web/templates/weixin/historypush.html

@@ -35,9 +35,6 @@
 		var wxflag = "";
 		var a_visitedindex = new Array;
 		var closeAdvert=false//是否关闭广告
-		//
-		var selectCity = "";
-		var selectArea = "";
 		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
 		$(function(){
 			var isinitpage = false;
@@ -56,131 +53,65 @@
 				initpage();
 				isinitpage = true;
 			}
+			
+			new FastClick(document.body);
+			$("#normal_set").click(function(){
+				setSessionStorage();
+				window.location.href='/wxkeyset/keyset/index';
+			});
+			//
+			$(window).scroll(function(){
+				scrollTop = $(this).scrollTop();
+			});
 		});
 
 		var isInTSguide=false;//订阅向导
 		var isVipSub=false;//是不是VIP
+		var isPassCount = false;//是否超过最大推送数
+		var haskey = false;//是否有关键词
+		var isOnTail = 0;//是否试用
+		var isExpire = 0;//即将到期的时间
+		var userId = "";
+		var selectCity = "";
+		//
 		var firstTime = {{.T.stime}};
 		if (firstTime!=""){
 			firstTime = firstTime+"000";
 		}
-		if(sessionStorage.date!==undefined){
-			firstTime = sessionStorage.date;
-			sessionStorage.removeItem("date");
-		}
+        //获取当前时间
+        var date = (function(){
+        	var date = new Date();
+        	var year = date.getFullYear();
+        	var month = date.getMonth() + 1;
+        	var day = date.getDate();
+        	month = month < 10 ? '0' + month : month;
+        	day = day < 10 ? '0' + day : day;
+        	return year + '-' + month + '-' + day;
+        })();
 		//初始化数据
 		function initpage(){
-			$.ajax({
-				type: 'post',
-				url: '/front/hasPushHistory?t='+new Date().getTime(),
-				data: {"selectTime":firstTime,"pageNum":pageIndex},
-				async: false,
-				dataType: 'json',
-				success: function(data){
-					pageIndex=2;
-					isInTSguide=data.isInTSguide;
-					hasNextPage=data.hasNextPage;
-					firstPage = data.data;
-					isVipSub = data.isVipSub;
-					if(!firstPage.length>0 && !data.haskey){
-						if(sessionStorage&&(sessionStorage.keysetindexToHistory=="1"||sessionStorage.keysetindexToHistory=="2"||sessionStorage.keysetindexToHistory=="3")){
-							sessionStorage.removeItem("keysetindexToHistory");
-							if(sessionStorage.keysetindexToHistory=="1"){
-								wx.ready(function () {
-									wx.closeWindow();
-								});
-							}else{
-								setTimeout(function(){
-									wx.closeWindow();
-								},2000);
-							}
-						}else{
-							if(!isVipSub){
-								history.pushState({},"","");
-								if(data.isInTSguide){
-									if(localStorage){
-										localStorage.removeItem("tsGuide_status");
-									}
-									window.location.href='/front/tenderSubscribe/guide';
-								}else{
-									window.location.href='/wxkeyset/keyset/index';
-								}
-								return
-							}
-						}
-					}
-					setTimeout(function(){
-						if(firstTime!=""){
-							var _formatDate = formatDate(firstTime/1000,"2");
-							date = formatDate(firstTime/1000,"1");
-							$('#showDatePicker .time_result').html(_formatDate).addClass('current');
-						}
-						$(".tab_left .time").show();
-					},500)
-					if(isVipSub){
-						if(!data.haskey){
-							$(".set_keyword").show();
-							if(data.isPassCount){
-								weuiDialog();
-							}
-						}
-						if(parseInt(data.isOnTail)!=1){
-							$('.free7days_pic').append("<style>.free7days_pic:after{display:none}</style>");
-							if(parseInt(data.isExpire)!=0){
-								$(".isExpire").text(parseInt(data.isExpire));
-								$(".renew_toast").show();
-							}
-						}else{
-							if(parseInt(data.isExpire)!=0){
-								$(".nv_renew_toast").show();
-							}
-						}
-						$(".vip_set").show();
-						$(".tab_left .area").show();
-					}else{
-						$(".vip_banner").show();
-						$(".subscribe").css("margin-top","2rem");
-						if(data.isPassCount){
-							$(".open_remind").show();
-						}
-						$(".normal_set").show();
-						$(".tab_left .area").hide();
-					}
-				},
-				error: function(xhr, type){
-					hasNoData();
-				}
-			});
-			new FastClick(document.body);
-			$("#normal_set").click(function(){
-				setSessionStorage();
-				window.location.href='/wxkeyset/keyset/index';
-			});
-			//console.log(firstPage.length)
-			if(firstPage==null||firstPage.length==0){
-				//最开始没有数据 
-				hasNoData();
-				$(".findnull_").show();
-				return;
-			}else{
-				$(".showType").css("display","flex");
-				$(".showType_bg").show();
-			}
-			$(window).scroll(function(){
-				scrollTop = $(this).scrollTop();
-			});
 			//
 			if(sessionStorage && sessionStorage.historypushScrollTop && sessionStorage.historypushDataCache){
 				pageIndex = sessionStorage.historypushPageIndexCache;
 				hasNextPage = sessionStorage.historypushHasNextPage=="true"?true:false;
 				scrollTop = sessionStorage.historypushScrollTop;
 				dataCache = JSON.parse(sessionStorage.historypushDataCache);
-				selectCity = sessionStorage.selectCity;
+				isVipSub = sessionStorage.isVipSub=="true"?true:false;;
+				isPassCount = sessionStorage.isPassCount=="true"?true:false;;
+				haskey = sessionStorage.haskey=="true"?true:false;;
+				isOnTail = sessionStorage.isOnTail;
+				isExpire = sessionStorage.isExpire;
+				userId = sessionStorage.userId;
+				firstTime = sessionStorage.getItem(userId+"_searchTime");
+				selectCity = sessionStorage.getItem(userId+"_selectCity");
 			    if(sessionStorage.closeAdvert=="true"){
 			      	closeAdvert=true
 			    }
 				$("#list>*").remove();
 				count = 0;
+				if(dataCache.length==0){
+					hasNoData();
+				}
 				structureHtml(dataCache,true);
 				$(window).scrollTop(scrollTop);
 				sessionStorage.removeItem("historypushDataCache");
@@ -188,15 +119,76 @@
 				sessionStorage.removeItem("historypushScrollTop");
 				sessionStorage.removeItem("historypushHasNextPage");
 				sessionStorage.removeItem("historypushCount");
+				showPage();
 			}else{
-				$("#list").css("visibility","hidden");
-				dataCache = dataCache.concat(firstPage);
-				structureHtml(firstPage,true);
-				setTimeout(function(){
-					$(window).scrollTop(0);
-					$("#list").css("visibility","visible");
-				},300);
+				userId = sessionStorage.userId;
+				if(sessionStorage.getItem(userId+"_searchTime")!=null&&sessionStorage.getItem(userId+"_searchTime")!=""){
+					firstTime = sessionStorage.getItem(userId+"_searchTime");
+				}
+				if(sessionStorage.getItem(userId+"_selectCity")!=null&&sessionStorage.getItem(userId+"_selectCity")!=""){
+					selectCity = sessionStorage.getItem(userId+"_selectCity");
+				}
+				$.ajax({
+					type: 'post',
+					url: '/front/hasPushHistory?t='+new Date().getTime(),
+					data: {"selectTime":firstTime,"pageNum":1,"area":selectCity},
+					async: false,
+					dataType: 'json',
+					success: function(data){
+						pageIndex=2;
+						isInTSguide=data.isInTSguide;
+						hasNextPage=data.hasNextPage;
+						firstPage = data.data;
+						isVipSub = data.isVipSub;
+						sessionStorage.isVipSub = isVipSub;
+						userId = data.userId;
+						sessionStorage.userId = userId;
+						isPassCount = data.isPassCount;
+						sessionStorage.isPassCount = isPassCount;
+						haskey = data.haskey;
+						sessionStorage.haskey = haskey;
+						isOnTail = data.isOnTail;
+						sessionStorage.isOnTail = isOnTail;
+						isExpire = data.isExpire;
+						sessionStorage.isExpire = isExpire;
+						sessionStorage.setItem(userId+"_searchTime",firstTime);
+						if(!firstPage.length>0 && !haskey){
+							if(sessionStorage&&(sessionStorage.keysetindexToHistory=="1"||sessionStorage.keysetindexToHistory=="2"||sessionStorage.keysetindexToHistory=="3")){
+								sessionStorage.removeItem("keysetindexToHistory");
+								if(sessionStorage.keysetindexToHistory=="1"){
+									wx.ready(function () {
+										wx.closeWindow();
+									});
+								}else{
+									setTimeout(function(){
+										wx.closeWindow();
+									},2000);
+								}
+								return
+							}
+						}
+						showPage();
+					},
+					error: function(xhr, type){
+						hasNoData();
+					}
+				});
+				if(firstPage!=null&&firstPage.length>0){
+					$("#list").css("visibility","hidden");
+					dataCache = dataCache.concat(firstPage);
+					structureHtml(firstPage,true);
+					setTimeout(function(){
+						$(window).scrollTop(0);
+						$("#list").css("visibility","visible");
+					},300);
+				}else{
+					//最开始没有数据 
+					hasNoData();
+					$(".findnull_").show();
+					return;
+				}
 			}
+			//
 			if(hasNextPage){
 				wxflag = $('.listcontent').dropload({
 			        scrollArea : window,
@@ -207,7 +199,7 @@
 			            $.ajax({
 			                type: 'post',
 			                url: '/swordfish/historypush/paging',
-							data: {"pageNum": pageIndex, "selectTime":firstTime, "area":selectArea},
+							data: {"pageNum": pageIndex, "selectTime":firstTime, "area":selectCity},
 			                dataType: 'json',
 			                success: function(data){
 								//没有数据
@@ -244,7 +236,57 @@
 				noMoreData(wxflag);
 			}
 		}
-
+		//页面渲染处理
+		function showPage(){
+			//时间渲染
+			if(firstTime!=null&&firstTime!=""&&firstTime.length>=10){
+				var _formatDate = formatDate(firstTime/1000,"2");
+				date = formatDate(firstTime/1000,"1");
+				$('#showDatePicker .time_result').html(_formatDate).addClass('current');
+			}
+			$(".tab_left .time").show();
+			//地区渲染
+  			mapData();
+			if(!isVipSub){
+				history.pushState({},"","");
+				if(isInTSguide){
+					if(localStorage){
+						localStorage.removeItem("tsGuide_status");
+					}
+					window.location.href='/front/tenderSubscribe/guide';
+				}else{
+					window.location.href='/wxkeyset/keyset/index';
+				}
+				$(".vip_banner").show();
+				$(".subscribe").css("margin-top","2rem");
+				if(isPassCount){
+					$(".open_remind").show();
+				}
+				$(".normal_set").show();
+				$(".tab_left .area").hide();
+			}else{
+				if(!haskey){
+					$(".set_keyword").show();
+					if(isPassCount){
+						weuiDialog();
+					}
+				}
+				if(parseInt(isOnTail)!=1){
+					$('.free7days_pic').append("<style>.free7days_pic:after{display:none}</style>");
+					if(parseInt(isExpire)!=0){
+						$(".isExpire").text(parseInt(isExpire));
+						$(".renew_toast").show();
+					}
+				}else{
+					if(parseInt(isExpire)!=0){
+						$(".nv_renew_toast").show();
+					}
+				}
+				$(".vip_set").show();
+				$(".tab_left .area").show();
+			}
+		}
+		//
 		function setSessionStorage(){
 			if(sessionStorage){
 		    	sessionStorage.closeAdvert=closeAdvert;
@@ -254,8 +296,6 @@
 				sessionStorage.historypushHasNextPage = hasNextPage;
 				sessionStorage.historypushCount = count;
 				sessionStorage.point="1";
-				sessionStorage.selectCity = selectCity;
-				sessionStorage.date = firstTime;
 			}
 		}
 		//		
@@ -274,8 +314,6 @@
 		function hasNoData(){
 			$(".listcontent").hide();
 			$(".findnull_").css("display","block");
-			$(".showType").hide();
-			$(".showType").next().hide();
 			$(".loading_").hide();
 		}
 
@@ -394,19 +432,19 @@
 				
 				
 			}
-		  if (object.length<=3&&$("#advertscript").html()!=""&&!closeAdvert&&showAd){
-		    appendList($("<div>"+listhtml+"<div class='adv-wxpush-center' id='E1'>"+$("#advertscript").html()+"</div></div>"));
-		    $(".closeadv").css("display","none");
-		  }else{
-		  	appendList($("<div>"+listhtml+"</div>"));
-		  }
-		  if(object.length<=4&&$("#advertscript").html()!=""){
+		  	if (object.length<=3&&$("#advertscript").html()!=""&&!closeAdvert&&showAd){
+		    	appendList($("<div>"+listhtml+"<div class='adv-wxpush-center' id='E1'>"+$("#advertscript").html()+"</div></div>"));
+		    	$(".closeadv").css("display","none");
+		 	}else{
+		  		appendList($("<div>"+listhtml+"</div>"));
+		  	}
+		  	if(object.length<=4&&$("#advertscript").html()!=""){
 				$(".closeadv").css("display","none");
 				$(".closeadv-bg").css("display","none");
 			}else{
-		    $(".closeadv").css("display","");
+		    	$(".closeadv").css("display","");
 				$(".closeadv-bg").css("display","");
-		  }
+		  	}
 		}
 		//
 		function formatDate(date,sl)   { 
@@ -485,11 +523,16 @@
 			newredirect(zbadd,h,eid,"subkey_"+sds,index);
 		}
 		//
+		var ajaxFlag = true;
 		function ajaxFun(time,area){
+			if (!ajaxFlag){
+				return
+			}
+			ajaxFlag = false;
 			$.ajax({
 				type: 'post',
 				url: '/front/hasPushHistory?t=' + new Date().getTime(),
-				data: {"selectTime": time,"area":area},
+				data: {"selectTime": time,"area":area,"pageNum":1},
 				async: false,
 				dataType: 'json',
 				success: function (data) {
@@ -498,26 +541,24 @@
 					firstPage = data.data;
 					hasNextPage = data.hasNextPage;
 					count=0;
-					if(time!=undefined&&time!=""){
-						firstTime = time;
+					if(time==undefined||time==""){
+						sessionStorage.removeItem(userId+"_searchTime");
 					}else{
-						firstTime = ""
+						sessionStorage.setItem(userId+"_searchTime",time);
 					}
-					if(area!=undefined&&area!=""){
-						sessionStorage.selectCity = area;
+					if(area==undefined||area==""){
+						sessionStorage.removeItem(userId+"_selectCity");
+						sessionStorage.removeItem(userId+"_selectCityName");
 					}else{
-						sessionStorage.removeItem("selectCity");
-						sessionStorage.removeItem("selectedCityName");
+						sessionStorage.setItem(userId+"_selectCity",area);
 					}
+					ajaxFlag = true;
 				},
 				error: function(xhr, type){
 					$(".listcontent").hide();
 					$(".findnull_").css("display","block");
-					$(".showType").hide();
-					$(".showType").next().hide();
 				}
 			});
-			bufferFlag = true;
 			dataCache = firstPage;
 			if(firstPage.length==0){
 				if($(".findnull").css("display")=="block"){
@@ -525,13 +566,8 @@
 				}
 				$(".listcontent").css("display","none");
 				$(".findnull_").css("display","block");
-				$(".showType").css("display","none");
-				$(".showType").next().css("display","none");
 				$(".loading_").css("display","none");
 				return;
-			}else{
-				$(".showType").css("display","flex");
-				$(".findnull_").css("display","none");
 			}
 			$("#list").css("visibility","hidden");
 			//dataCache = firstPage;
@@ -556,7 +592,7 @@
 							$.ajax({
 								type: 'post',
 								url: '/swordfish/historypush/paging',
-								data: {"pageNum": pageIndex, "selectTime":time},
+								data: {"pageNum": pageIndex, "selectTime":time,"area":area},
 								dataType: 'json',
 								success: function(data){
 									//没有数据
@@ -673,18 +709,6 @@
 		.adv-wxpush-center a img {
 		    width: 100%;
 		}
-		.showType{
-			display: none;
-			margin-top: 8px;
-		    padding-right: 15px;
-			justify-content: space-around;
-			align-content: center;
-			float:right;
-		}
-		.showType div{
-			padding-left: 30px;
-		}
-
 		.prompt{
 			padding:10px 10px 20px;
 		}
@@ -750,6 +774,7 @@
 		    -webkit-box-orient: vertical;
 		}
 		.overClass{
+			/**/
 			overflow: hidden;
 			height:100vh;
 		}
@@ -890,13 +915,12 @@
   	<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
   	<script src="{{Msg "seo" "cdn"}}/dataExport/js/mapJSON.js?v={{Msg "seo" "version"}}"></script>
   	<script type="text/javascript" charset="UTF-8">
-  		mapData();
   		function mapData(){
   			var _citySessionData = null
   			var _provinceArr = {}
   			var _cityMap = []
-  			if (sessionStorage&&sessionStorage.selectedCityName!=null){
-  				_citySessionData  = JSON.parse(sessionStorage.selectedCityName);
+  			if (sessionStorage&&sessionStorage.getItem(userId+"_selectCityName")!=null){
+  				_citySessionData  = JSON.parse(sessionStorage.getItem(userId+"_selectCityName"));
   				for(var k=0;k<_citySessionData.length;k++){
   					_provinceArr[_citySessionData[k]["province"]] = _citySessionData[k]["selectCity"].length
   					_cityMap = _cityMap.concat(_citySessionData[k]["selectCity"])
@@ -904,11 +928,8 @@
   				if(_cityMap.length>0){
   					 $('#showArea .jymobile-tab-triangle').addClass('current').text(`地区 ${_cityMap.length}`);
   				}
-				//
-				sessionStorage.removeItem("selectedCityName");
+				//sessionStorage.removeItem("selectCityName");
   			}
-  			// console.log(_provinceArr)
-  			// console.log(_cityMap)
 	  		var provinceArr = ["安徽","澳门","北京","重庆","福建","广东","广西","贵州","甘肃","河北","湖北","黑龙江","海南","河南","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山西","陕西","上海","山东","四川","天津","台湾","西藏","新疆","香港","云南","浙江"]
 	  		var provinceHtml = '<div class="province">';
 	  		var cityHtml = '<div class="city" >';
@@ -982,23 +1003,15 @@
 		        ]
 		    });
 		}
-        //获取当前时间
-        var date = (function(){
-        	var date = new Date();
-        	var year = date.getFullYear();
-        	var month = date.getMonth() + 1;
-        	var day = date.getDate();
-        	month = month < 10 ? '0' + month : month;
-        	day = day < 10 ? '0' + day : day;
-        	return year + '-' + month + '-' + day;
-        })();
         //
         function FTAGData(time){
         	if(time!=undefined&&time.toString()!=""){
 				var Time = new Date(time);
 				var timestemp = Time.getTime();
-				ajaxFun(timestemp.toString(),selectCity);
+				firstTime = timestemp.toString();
+				ajaxFun(firstTime,selectCity);
         	}else{
+				firstTime = "";
         		ajaxFun("",selectCity);
         	}
         }
@@ -1012,7 +1025,7 @@
 			document.querySelector('.tab_left').addEventListener('touchmove', stopScroll,  {passive: false});
 			document.querySelector('.tab_right').addEventListener('touchmove', stopScroll,  {passive: false});
 			document.querySelector('.handle_menu').addEventListener('touchmove', stopScroll,  {passive: false});
-			if(firstTime!=""){
+			if(firstTime!=""&&firstTime!=null){
 				date = formatDate(firstTime/1000,"1");
         	}
             // 点击选择时间
@@ -1069,7 +1082,9 @@
             });
             // 选择地区
             $('#showArea').on('click', function (){
-				$(this).find("span").toggleClass("current");
+				if(sessionStorage.getItem(userId+"_selectCityName")==""||sessionStorage.getItem(userId+"_selectCityName")==undefined){
+					$(this).find("span").toggleClass("current");
+				}
             	$('.area_container').slideToggle();
             	$('.screen').toggle();
             	$(".subscribe").toggleClass('overClass');
@@ -1115,13 +1130,12 @@
 
             	if(!cityCount){
             		$('#showArea .jymobile-tab-triangle').removeClass('current').text(`地区`);
-                    sessionStorage.selectedCityName  = JSON.stringify([]);
             		 ajaxFun(firstTime,selectCity);
             		return
             	}
 
                 // cityName对象
-                let selectedCityName = []
+                let selectCityName = []
                 // 判断省份后面的数字是否隐藏来确定该省份下的城市有没有被选择
                 $('.area_wrap .province .p_item').each(function(i, dom){
                 	var f = $(dom).find('.city-count').is(':hidden')
@@ -1147,11 +1161,11 @@
                         }
                         selectCity += cityArr[i];
                     }
-                    selectedCityName.push({
+                    selectCityName.push({
                     	province: provinceName,
                     	selectCity: cityArr
                     });
-                    sessionStorage.selectedCityName  = JSON.stringify(selectedCityName);
+                    sessionStorage.setItem(userId+"_selectCityName", JSON.stringify(selectCityName));
                     ajaxFun(firstTime,selectCity);
                 })
                 // 重写地区text

+ 2 - 0
src/web/templates/weixin/search/mainSearch.html

@@ -34,6 +34,8 @@
 	var pageSize = {{.T.pageSize}};
 	var encode = {{ConEncode "/jylab/mainSearch/"}};
 	var searchWord = {{.T.searchWord}};
+	//是不是VIP
+	var i_vip_status = {{.T.i_vip_status}}
 	initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}},{{.T.keys}},{{.T.i_applystatus}});
 	SuperSearch.ZBADDRESS = {{Msg "seo" "ZBADDRESS"}};
 	SuperSearch.industry = {{.T.industry}};

+ 5 - 25
src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html

@@ -475,7 +475,6 @@
             if (province == $.trim($(dom).text())) {
               $(".checkbox.other").attr("checked", false); //取消全国选中
               $(dom).children('.checkbox').attr({"checked": true,"disabled":!canClick});//选中此省份
-              $(this).parent(".tab:not(.municipality)").next().slideDown(500);
               if(canClick){
               	$(dom).parents().siblings('.tab_content').find(".city").addClass("active").attr({"disabled":!canClick});
               }else{
@@ -490,7 +489,6 @@
 	            	$('.tab_content .city').each(function(){
 	            		$(this).attr("disabled",!canClick);
 	            	});
-	            	$(".tips_d_money").hide();
 	            }
             }
           })
@@ -511,6 +509,7 @@
                             "checked": true,
                             "disabled": "disabled"
                         })
+                        $(dom).parents().slideDown(500);
                     }
                 }
             })
@@ -635,8 +634,6 @@
 //        console.log("this.selectObj:",this.selectObj)
           $('.result_name').append(html)
           AreaChoose.isOpen()
-          //刷新价格
-          AreaChoose.flushPrice();
         },
         submitArea:function(){
           let addCity = $('.result_name').text(); //新增的城市
@@ -658,14 +655,6 @@
         		$(".tips_btn .btns .save-btn").attr("disabled","disabled");
           }
         },
-        getNationwide:function(){/*默认选中全国 */
-//        $('.other').prop('checked', true);
-//        $('.tab_content').slideUp(500)
-//        $('.tab span i').css({
-//            "display":"inline-block",
-//            "transform":"rotate(0)"
-//        });
-        },
         isOpen:function(){
           let pHeight = $('.result_text').height()
           let minHeight = $('.result_text').css('min-height')
@@ -697,9 +686,9 @@
           }
         },
         inintClick:function(){
-        	$('.tab_content').each(function(){
-          		AreaChoose.showSelected(false);
-        	})
+//      	$('.tab_content').each(function(){
+//        		AreaChoose.showSelected(false);
+//      	})
           $('.detail').click(function () {  
                 $('.result_text').removeClass('line_two')
                 $(".result").css("padding-bottom","0.3rem")
@@ -838,14 +827,6 @@
                 $(".tips_btn .btns .reset-btn").attr("disabled","disabled");
             	$(".tips_btn .btns .save-btn").attr("disabled","disabled");
             }
-        },
-        flushPrice:function(){
-          if(this.vipSubisTrial){
-            $('.tips_d_money').css("display","none");
-          }else{
-            var price=getsubVipOrderPrice(this.selectObj,this.selectedIndustryArr,this.timeSelect);
-            $('.tips_d_money').text('¥'+price);
-          }
         }
       }
       
@@ -853,8 +834,7 @@
             AreaChoose.isOpen()
             AreaChoose.inintData(); //初始化 已选择和已购买数据
             AreaChoose.inintPage(); //初始化城市数据
-
-            AreaChoose.getNationwide();//默认选中全国 
+            AreaChoose.showSelected(false);
             AreaChoose.showSelected(true);//回显已选择
             /* 判断已购买的城市 在不在 全部城市里面,在,将按钮置灰,不可点击 */
 

+ 1 - 1
src/web/templates/weixin/vipsubscribe/edit_subscribe.html

@@ -113,7 +113,7 @@
                 $(".edit_item.industry span").text(this.reqData.buyset.buyerclasscount + "个行业");
             }
             if (this.reqData.industry.length > 0) {
-                $(".edit_item.industry .item_bottom").text(this.reqData.industry.join("、"));
+                $(".edit_item.industry .item_bottom").text(SortArr(this.reqData.industry).join("、"));
             }
 
         },

+ 1 - 1
src/web/templates/weixin/vipsubscribe/edit_subscribe_city.html

@@ -475,7 +475,7 @@
             if (selected >= count) {
                 obj.parent().find(".city:not(.active)").attr("disabled", "disabled");
                 if (showtip) {
-                    this.showTip(`<p>当前省份只可选择${count}个城市<br/><span style="white-space: nowrap;">您只购买了${count}个城市,如需更多请升级<span></p>`)
+                    this.showTip(`<span style="white-space: nowrap;">您只购买了${count}个城市,如需更多请升级<span></p>`)
                 }
             } else {
                 obj.parent().find(".city:not(.active)").removeAttr("disabled", "disabled");

+ 2 - 2
src/web/templates/weixin/vipsubscribe/edit_subscribe_industry.html

@@ -310,7 +310,7 @@
                         return
                       }
                       if(EditIndustry.reqData.buyset.buyerclasscount!=-1){ //购买不是全部行业 不能点击
-                        EditIndustry.showTip(`<p>只可选择${EditIndustry.reqData.buyset.buyerclasscount}个行业<br/><span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
+                        EditIndustry.showTip(`<span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
                         return
                       }
                       $('.select-area-box .list button').removeClass('active');
@@ -376,7 +376,7 @@
                   // 显示隐藏优惠tips
                   if (selectedArr.length >= EditIndustry.reqData.buyset.buyerclasscount&& EditIndustry.reqData.buyset.buyerclasscount!=-1) {
                     if(!isInit){
-                      EditIndustry.showTip(`<p>只可选择${EditIndustry.reqData.buyset.buyerclasscount}个行业<br/><span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
+                      EditIndustry.showTip(`<span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
                     }
                     $('.industry_item:not(.active)').attr('disabled','disabled');
                   } else {

+ 1 - 1
src/web/templates/weixin/vipsubscribe/edit_subscribe_province.html

@@ -478,7 +478,7 @@
             //是否还能继续选择
             if (EditProvince.selectedArr.length >= EditProvince.reqData.buyset.areacount) {
                 if (showTip) {
-                    this.showTip(`<p>当前省份只可选择${EditProvince.reqData.buyset.areacount}个省份<br/><span style="white-space: nowrap;">您只购买了${EditProvince.reqData.buyset.areacount}个省份,如需更多请升级<span></p>`);
+                    this.showTip(`<span style="white-space: nowrap;">您只购买了${EditProvince.reqData.buyset.areacount}个省份,如需更多请升级<span></p>`);
                 }
                 $(".province .checkbox:not(:checked)").attr('disabled', 'disabled');
             } else {

+ 6 - 6
src/web/templates/weixin/vipsubscribe/keyWord.html

@@ -575,12 +575,12 @@
                     return
                 }
                 kws_index = -1
-                kws_name = $('.addkeyWord input.enterOne').val();
+                kws_name = $.trim($('.addkeyWord input.enterOne').val());
             }else{
                if($(th).parent(".modify").find("textarea").val()==""){
                  return
                }
-                kws_name = $(th).parent(".modify").find("textarea").val();
+                kws_name = $.trim($(th).parent(".modify").find("textarea").val());
             }
 			history.replaceState("","","/front/vipsubscribe/toSetKeyWordPage?page=243")
             setSesstion();
@@ -593,12 +593,12 @@
                     return
                 }
                 kws_index = -1
-                kws_name = $('.addkeyWord input.enterOne').val();
+                kws_name = $.trim($('.addkeyWord input.enterOne').val());
             }else{
                if($(th).parent(".modify").find("textarea").val()==""){
                  return
                }
-                kws_name = $(th).parent(".modify").find("textarea").val();
+                kws_name = $.trim($(th).parent(".modify").find("textarea").val());
             }
 			history.replaceState("","","/front/vipsubscribe/toSetKeyWordPage?page=243")
             setSesstion();
@@ -638,7 +638,7 @@
         function saveK(th){
 			setTimeout(function(){
 	            var $this = $(th);
-	            kws_name = $(th).siblings('textarea').val();
+	            kws_name =  $.trim($(th).siblings('textarea').val());
 				if(kws_name==""){
 	                weui.toast('您设置的关键词不能为空,请调整后再添加。', {
 	                    duration: 2000,
@@ -855,7 +855,7 @@
             $('.classify-list').on('click', '.classify-item', function() {
                 // 添加一条空历史记录
                 history.pushState({id:1}, "","");
-                classify_name = $(this).find('.classify-item-l').text();
+                classify_name = $.trim($(this).find('.classify-item-l').text());
                 classify_index = $(this).index();
 				kws_index = 0;
                 //展示此关键词信息

+ 14 - 8
src/web/templates/weixin/vipsubscribe/messageType.html

@@ -27,7 +27,7 @@
 </head>
 <body>
 	<div class="result">
-        <p class="result_text line_two">
+        <p class="result_text line_two" style="color: #888888;">
           已选择:<span class="result_name"></span>
         </p>
     </div>
@@ -136,7 +136,7 @@
                     arr = arr + "," + $(this).attr("dataValue")
 					if($(this).text()=="招标预告"||$(this).text()=="拟建项目"){
 						if (hasStr!=""){
-							hasStr += " "
+							hasStr += ""
 						}
 						hasStr += $(this).text();
 					}
@@ -169,17 +169,23 @@
 		function getChecked(){
 			hasActive();
 			if (hasZBGG!=""||hasZBJG!=""|hasZBXYXX!=""){
-				if(hasStr != ""){
-					hasStr +=" "
-				}
 				if(hasZBGG!=""){
-					hasStr+=" 招标公告 ("+hasZBGG+")"
+					if(hasStr != ""){
+						hasStr +="、"
+					}
+					hasStr+="招标公告 ("+hasZBGG+")"
 				}
 				if(hasZBJG!=""){
-					hasStr+=" 招标结果 ("+hasZBJG+")"
+					if(hasStr != ""){
+						hasStr +="、"
+					}
+					hasStr+="招标结果 ("+hasZBJG+")"
 				}
 				if(hasZBXYXX!=""){
-					hasStr+=" 招标信用信息 ("+hasZBXYXX+")"
+					if(hasStr != ""){
+						hasStr +="、"
+					}
+					hasStr+="招标信用信息 ("+hasZBXYXX+")"
 				}
 			}
 			if(hasStr!=""){

+ 19 - 19
src/web/templates/weixin/vipsubscribe/renew_notice.html

@@ -50,8 +50,8 @@
                 </div>
             </div>
 			<div class="renew_box">
-                <button class="renew_service" onclick="window.location.href='/weixin/pay/renewPayPage'">续费</button>
-                <button class="free_service" onclick="window.location.href='/swordfish/historypush'">使用免费订阅</button>
+                <button style="display: none;" class="renew_service" onclick="window.location.href='/weixin/pay/renewPayPage'">续费</button>
+                <button style="display: none;" class="free_service" onclick="window.location.href='/swordfish/historypush'">使用免费订阅</button>
             </div>
 		</div>
 		<script src="/vipsubscribe/js/jquery-2.1.4.js"></script>
@@ -114,23 +114,22 @@
 					    	let dateHtml = start + " - " + end;
 					    	$(".date-span").text(dateHtml);
 					    }
+					    if(vipStatus === 2&&nowTime>endstime){
+							return   
+					    }
 					    if(exprie === "will"){
-					    	let a = (endstime/1000) - (86400 * 3)
-					    	let b = nowTime/1000
-					    	if(b > a){
-					    		$(".free_service").hide();
+					    	let a = (endstime/1000) - (86400 * 3);
+					    	let b = nowTime/1000;
+					    	let c = endstime/1000;
+					    	if(a < b&&b < c){
+					    		$(".renew_service").show();
 						    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
 						    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
 					    	}
 					    }else{
+					    	$(".renew_service").show();
 					    	$(".free_service").show();
 					    }
-					    if(vipStatus === 2&&nowTime>endstime){
-					    	if(exprie === "exprie"){
-					    		$(".free_service").hide();
-					    		$(".renew_service").hide();
-					    	}
-					    }
 					}
 				});
 			}else{
@@ -193,16 +192,17 @@
 					    	$(".date-span").text(dateHtml);
 					    }
 					    if(exprie === "will"){
-					    	$(".free_service").hide();
-					    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-					    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	let a = (endstime/1000) - (86400 * 3)
+					    	let b = nowTime/1000
+					    	if(b > a){
+					    		$(".renew_service").show();
+						    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
+						    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+					    	}
 					    }else{
+					    	$(".renew_service").show();
 					    	$(".free_service").show();
 					    }
-					    if(vipStatus === 2){
-					    	$(".free_service").hide();
-					    	$(".renew_service").hide();
-					    }
 					}
 				});	
 			}

+ 29 - 20
src/web/templates/weixin/vipsubscribe/renew_pay.html

@@ -476,6 +476,19 @@
         })
         /* -------- 选择按年订阅  radio触发的事件------- */
         $('#yearly').on('change', function (e) {
+        	if((12+nowUpgrade)>36){
+            	var overtimeWarning = `最长订阅周期不可超过3年<br />当前订阅周期:${nowUpgrade}个月`
+		        weui.toast(overtimeWarning, {
+		            duration: 3000,
+		            className: 'custom-toast',
+		            callback: function() {
+		            }
+		        })
+		        $('#yearly').prop("checked", false);
+		        $('#monthly').prop("checked", true);
+		        $('#number_box_month').addClass('active')
+		        return
+            }
             $('.profit_tips').hide()
             // console.log($(this).is(':checked'))
             let isChecked = $(this).is(':checked')
@@ -541,8 +554,12 @@
         	}else{
         		$("#buy").attr("checked", true);
         		sessionStorage.buyChecks = true;
-        		if(sessionStorage.renew_cycleunit!==undefined&&sessionStorage.renew_cycleunit!==""){
-        			$(".save_renew").removeAttr("disabled");
+        		if(sessionStorage.renew_cycleunit!==undefined&&sessionStorage.renew_cycleunit!==""&&sessionStorage.renew_cyclecount!==""&&sessionStorage.renew_cyclecount!==undefined){
+        			let cycleunit = Number(sessionStorage.renew_cycleunit);
+        			let cyclecount = Number(sessionStorage.renew_cyclecount);
+ 	 	      		if(cycleunit>0&&cyclecount>0){
+ 	 	      			$(".save_renew").removeAttr("disabled");
+ 	 	      		}
         		}
         	}
         });
@@ -639,14 +656,10 @@
 			    	$(".item_validity .label_for").text(dateHtml);
 			    }
 			    if(starts !== "" && ends !== ""){
-			    	let end = new Date(ends*1000).toLocaleDateString();
-			    	let endtime = end.split("/");
-			    	let endYear = Number(endtime[0]);
-			    	let endMonth = Number(endtime[1]);
-			    	let start = new Date(starts*1000).toLocaleDateString();
-			    	let starttime = start.split("/");
-			    	let startYear = Number(starttime[0]);
-			    	let startMonth = Number(starttime[1]);
+			    	let endYear = new Date(ends*1000).getFullYear();
+			    	let endMonth = new Date(ends*1000).getMonth()+1;
+			    	let startYear = new Date(starts*1000).getFullYear();
+			    	let startMonth = new Date(starts*1000).getMonth()+1;
 			    	let year = "";
 			    	let month = "";
 			    	if(endYear > startYear){
@@ -694,17 +707,13 @@
 		    }
         }, false);
         //
-        var nowDate = new Date(startTime).toLocaleDateString();
-		nowDate = nowDate.split("/");
-		var nowMonth = Number(nowDate[1]);
-		var nowYear = Number(nowDate[0]);
-		var nowDay = Number(nowDate[2]);
+		var nowMonth = new Date(startTime).getMonth()+1;
+		var nowYear = new Date(startTime).getFullYear();
+		var nowDay = new Date(startTime).getDate();
 		//
-		var endDate = new Date(endTime).toLocaleDateString();
-		endDate = endDate.split("/");
-		var endMonth = Number(endDate[1]);
-		var endYear = Number(endDate[0]);
-		var endDay = Number(endDate[2]);
+		var endMonth = new Date(endTime).getMonth();
+		var endYear = new Date(endTime).getFullYear();
+		var endDay = new Date(endTime).getDate();
 		var nowUpgrade = 0;
 		if(endYear === nowYear){
 			if(endMonth === nowMonth){

+ 13 - 3
src/web/templates/weixin/vipsubscribe/trial_info.html

@@ -187,16 +187,26 @@
 
     // 解决移动端软键盘弹起遮挡输入框及ios下软键盘关闭后底部留白问题
     function scrollView(obj) {
-        var view_height = $(document.body).height();
+        var view_height = $(document.body).height()
 
         function change() {
             $(document.body).height(view_height)
         }
+
         change();
         window.addEventListener('resize', change);
-        $('.' + obj).on('blur', function () {
+        $('.' + obj).on('blur', function (e) {
             setTimeout(() => {
-                if (!document.activeElement.className.includes(obj)) {
+                let dom = document.activeElement;
+                // console.dir(dom);
+                if (dom.className.includes(obj)) {
+                    let u = navigator.userAgent, app = navigator.appVersion;
+                    let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
+                    if (isAndroid) {
+                        dom.scrollIntoView({"block": "center"})
+                    }
+
+                } else {
                     window.scroll(0, 0)
                 }
             }, 50)

+ 8 - 2
src/web/templates/weixin/vipsubscribe/vip_index.html

@@ -11,6 +11,7 @@
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
     <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
@@ -288,8 +289,13 @@
 							}else{
 				                $('.switch').removeClass('checked')
 				            }
-	                        $("._area").text(_vipData["o_area"]);
-	                        $("._buyerClass").text(_vipData["a_buyerclass"]);
+							//地区
+							var area = _vipData["o_area"];
+							var _area = getAreaClassArr_index(area)
+	                        $("._area").text(_area.join("、"));
+							//行业
+							var buyerclass =  SortArr(_vipData["a_buyerclass"]);
+	                        $("._buyerClass").text(buyerclass.join("、"));
 	                        $("._cycleCount").text(_vipData["cycle"]);
 	                        $("._activeDate").text(_userData["l_vip_starttime"]+" - "+_userData["l_vip_endtime"]);
 	                        if(_vipData["a_infotype"]==""){

+ 0 - 1
src/web/templates/weixin/vipsubscribe/vip_purchase.html

@@ -772,7 +772,6 @@
 		};
 
     </script>
-
 </div>
 </body>
 

+ 3 - 1
src/web/templates/weixin/vipsubscribe/vip_seniorset.html

@@ -72,7 +72,9 @@
                      	$("#wxtip .turn-on").hide();
                     }
                     var i_mailpush = _vipData["i_mailpush"]
-                    s_email = _vipData["s_email"]
+					if(_vipData["s_email"]!=undefined){
+                    	s_email = _vipData["s_email"]
+					}
                     $("#email").val(s_email);
 					$(".emailset>span").css("max-width",$("#emailtip").width()-80).text(s_email);
                     if (i_mailpush!=undefined&&i_mailpush=="1"){

+ 27 - 23
src/web/templates/weixin/vipsubscribe/vip_upgrade.html

@@ -448,13 +448,11 @@
          // 选择生效日期
         $('.choose_effect_date > a').click(function () {
             $('#effective_date').show(200);
-            var nowDates = new Date().toLocaleDateString();
-			nowDates = nowDates.split("/");
-			var nowMonths = Number(nowDates[1]);
-			var nowYears = Number(nowDates[0]);
-			var as = nowMonths +1
+			var nowMonths = new Date().getMonth()+1;
+			var nowYears = new Date().getFullYear();
+			var as = nowMonths +1;
 			if(as > 12){
-				as = nowMonths-12;
+				as = as-12;
 				nowYears = nowYears +1;
 			}
 			var bs = nowYears+"/"+as+"/1";
@@ -541,7 +539,6 @@
                 // $('#time_cycle .tips.monthly_tips').hide();
 
                 $('#number_box_month').removeClass('active');
-                $('#number_box_year span:eq(0)').addClass('active');
             }else{
                 $('.computed_price').hide()
                 $('#number_box_month').removeClass('active');
@@ -682,6 +679,19 @@
         })
         /* -------- 选择按年订阅  radio触发的事件------- */
         $('#yearly').on('change', function (e) {
+        	if((12+nowRenew)>36){
+            	var overtimeWarning = `最长订阅周期不可超过3年<br />当前订阅周期:${nowRenew}个月`
+		        weui.toast(overtimeWarning, {
+		            duration: 3000,
+		            className: 'custom-toast',
+		            callback: function() {
+		            }
+		        })
+		        $('#yearly').prop("checked", false);
+		        $('#monthly').prop("checked", true);
+		        $('#number_box_month').addClass('active')
+		        return
+           	}
             $('.profit_tips').hide()
             // console.log($(this).is(':checked'))
             let isChecked = $(this).is(':checked')
@@ -963,17 +973,13 @@
         	$(".save_upgrade").attr('disabled','disabled');
 	    	var nowUpgrade = "";
 			//
-			var nowDate = new Date(startTime).toLocaleDateString();
-			nowDate = nowDate.split("/");
-			var nowMonth = Number(nowDate[1]);
-			var nowYear = Number(nowDate[0]);
-			var nowDay = Number(nowDate[2]);
+			var nowMonth = new Date(startTime).getMonth()+1;
+			var nowYear = new Date(startTime).getFullYear();
+			var nowDay = new Date(startTime).getDate();
 			//
-			var endDate = new Date(endTime).toLocaleDateString();
-			endDate = endDate.split("/");
-			var endMonth = Number(endDate[1]);
-			var endYear = Number(endDate[0]);
-			var endDay = Number(endDate[2]);
+			var endMonth = new Date(endTime).getMonth()+1;
+			var endYear = new Date(endTime).getFullYear();
+			var endDay = new Date(endTime).getDate();
 			var oldPrice = "";
 			var price = "";
 			var effect = "";
@@ -1246,13 +1252,11 @@
         	let effective = $("#effect_date_name").text();
         	var effect = "now";
         	if(effective !== "立即生效,需支付当月费用差价"){
-        		let nowDate = new Date().toLocaleDateString();
-				nowDate = nowDate.split("/");
-				let nowMonth = Number(nowDate[1]);
-				let nowYear = Number(nowDate[0]);
-				let a = nowMonth +1
+				let nowMonth = new Date().getMonth()+1;
+				let nowYear = new Date().getFullYear();
+				let a = nowMonth +1;
         		if(a > 12){
-        			a = nowMonth-12;
+        			a = a-12;
         			nowYear = nowYear +1;
         		}
         		let b = nowYear+"/"+a+"/1";

+ 8 - 7
src/web/templates/weixin/vipsubscribe/vip_viewPage.html

@@ -74,6 +74,7 @@
 				type: 'post',
 				url: '/subscribepay/afterPay/getPushView',
 				data: reqParam,
+				async: false,
 				dataType: 'json',
 				success: function(data){
 					if(data["list"] == null || data["list"].length == 0){
@@ -187,14 +188,14 @@
 						var keysTemp = keys[n];
 						var isReplace = true;
 						var titleTemp = title;
-						for(var m=0;m<keysTemp.length;m++){
-							var _titleTemp = keyWordHighlight(titleTemp,keysTemp[m],'<font class="keyword">$1</font>');
-							if(titleTemp == _titleTemp){
-								isReplace = false;
-								break;
-							}
-							titleTemp = _titleTemp;
+						//for(var m=0;m<keysTemp.length;m++){
+						var _titleTemp = keyWordHighlight(titleTemp,keysTemp,'<font class="keyword">$1</font>');
+						if(titleTemp == _titleTemp){
+							isReplace = false;
+							//break;
 						}
+						titleTemp = _titleTemp;
+						//}
 						if(isReplace){
 							title = titleTemp;
 						}