wangkaiyue 5 anni fa
parent
commit
0d7b74f8a8

+ 17 - 3
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/UpgradePrice.js

@@ -102,7 +102,7 @@ function needUpgrade(newBuyset, oldBuyset) {
                 UpgradeBuyset.areacount = newBuyset.areacount
             }
 
-            if (p_Diff > 0 || p_Diff + c_2_diff > 0 || p_Diff + c_2_diff + c_1_diff > 0 ) {//需要升级
+            if (p_Diff > 0 || p_Diff + c_2_diff > 0 || p_Diff + c_2_diff + c_1_diff > 0) {//需要升级
                 //有多余未使用名额保留
                 if (p_Diff + c_2_diff + c_1_diff < 0) {
                     if (c_1_diff < 0 && p_Diff + c_2_diff >= 0) {
@@ -311,9 +311,23 @@ function getUpgradeFinalStatus(newBuyset, oldBuyset, t, endUnix, renewList, isTr
 
 //计算差价
 function getSubPrice(oldBuyset, newBuyset, start, end) {
+    var oldCitysBuyTwo = 0;
+    var newCitysBuyTwo = 0;
+    for (var i = 0; i < oldBuyset.citys.length; i++) {
+        if (oldBuyset.citys[i] === 2) {
+            oldCitysBuyTwo++
+        }
+    }
+    for (var i = 0; i < newBuyset.citys.length; i++) {
+        if (newBuyset.citys[i] === 2) {
+            newCitysBuyTwo++
+        }
+    }
     //不能降级
-    if ((oldBuyset.areacount != -1 && newBuyset.areacount != -1 && oldBuyset.areacount > newBuyset.areacount) || (oldBuyset.areacount == -1 && newBuyset.areacount != -1) ||
-        (oldBuyset.buyerclasscount != -1 && newBuyset.buyerclasscount != -1 && oldBuyset.buyerclasscount > newBuyset.buyerclasscount) || (oldBuyset.buyerclasscount == -1 && newBuyset.buyerclasscount != -1)) {
+    if ((oldBuyset.areacount !== -1 && newBuyset.areacount !== -1 && (oldBuyset.areacount > newBuyset.areacount || oldBuyset.citys.length > newBuyset.citys.length || oldCitysBuyTwo > newCitysBuyTwo))  //非全国下 新套餐省份数量小于旧套餐数量
+        || (oldBuyset.areacount === -1 && newBuyset.areacount !== -1)       //旧套餐全国 新套餐非全国
+        || (oldBuyset.buyerclasscount !== -1 && newBuyset.buyerclasscount !== -1 && oldBuyset.buyerclasscount > newBuyset.buyerclasscount)//非全行业下 新套餐行业数量小于旧套餐数量
+        || (oldBuyset.buyerclasscount === -1 && newBuyset.buyerclasscount !== -1)) {  //旧套餐全行业 新套餐非全行业
         return -1
     }
 

+ 7 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/keyWord.html

@@ -901,6 +901,13 @@
                 }
             }
 			a_items_m = a_items
+            //更新vip首页数据
+            var subVipState = sessionStorage.getItem('sub_vip_state')
+            if (subVipState != "") {
+                var reqData = JSON.parse(subVipState);
+                reqData.items = a_items_m;
+                sessionStorage.setItem('sub_vip_state', JSON.stringify(reqData))
+            }
         }
 		//
 		function modalOne(){

+ 6 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/messageType.html

@@ -299,6 +299,12 @@
                 $.post("/subscribepay/afterPay/setUserInfo",{pageType:"infoType",infoTypeArr:_infoType},function(r){
                      if(r.flag){
                         console.log("保存成功")
+                         var subVipState = sessionStorage.getItem('sub_vip_state')
+                         if (subVipState != "") {
+                             var reqData = JSON.parse(subVipState);
+                             reqData.infotype = _infoType == "" ? [] : _infoType.split(",");
+                             sessionStorage.setItem('sub_vip_state', JSON.stringify(reqData))
+                         }
                         window.history.go(-1);
                     }
                  })

+ 244 - 242
src/jfw/modules/app/src/web/templates/vipsubscribe/renew_notice.html

@@ -1,253 +1,255 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
-		<title>VIP订阅</title>
-		<script src="/jyapp/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
-		<link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
-		<link rel="stylesheet" href="/jyapp/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
-		<link rel="stylesheet" href="/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
-		<link rel="stylesheet" href="/jyapp/vipsubscribe/css/vip_service_expire.css?v={{Msg "seo" "version"}}1">
-		<link rel="stylesheet" type="text/css" href="/jyapp/css/layout.css?v={{Msg "seo" "version"}}"/>
-    	<link rel="stylesheet" type="text/css" href="/jyapp/css/font.css?v={{Msg "seo" "version"}}"/>
-	</head>
-	<style type="text/css">
-		body,html {
-			height: 100%;
-		}
-		.aginBuy{
-			height: 0.94rem;
-		    font-size: .34rem;
-		    color: #fff;
-		    background-color: #2cb7ca;
-		    border-radius: .08rem;
-		}
-	</style>
-	<body>
-		<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_service_expire layout_top-bottom">
-			<div class="service_expire_tip layou_top">
-                <div class="tip_title_box">
-                    <img class="nothing" src="/jyapp/vipsubscribe/image/nothing.png?v={{Msg "seo" "version"}}" alt="">
-                    <div class="tip">
-                        <div id="exprie">您的VIP订阅服务,已到期!</div>
-                        <!-- <div>VIP订阅服务即将到期,请及时续费!</div> -->
-                        <div class="validity_date">
-                            <span>有效日期:</span>
-                            <span class="date-span"></span>
-                        </div>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
+    <title>VIP订阅</title>
+    <script src="/jyapp/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" type="text/css" href="/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" href="/jyapp/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="/jyapp/vipsubscribe/css/vip_service_expire.css?v={{Msg "seo" "version"}}1">
+    <link rel="stylesheet" type="text/css" href="/jyapp/css/layout.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" type="text/css" href="/jyapp/css/font.css?v={{Msg "seo" "version"}}"/>
+</head>
+<style type="text/css">
+    body, html {
+        height: 100%;
+    }
+
+    .aginBuy {
+        height: 0.94rem;
+        font-size: .34rem;
+        color: #fff;
+        background-color: #2cb7ca;
+        border-radius: .08rem;
+    }
+</style>
+<body>
+<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_service_expire layout_top-bottom">
+        <div class="service_expire_tip layou_top">
+            <div class="tip_title_box">
+                <img class="nothing" src="/jyapp/vipsubscribe/image/nothing.png?v={{Msg "seo" "version"}}" alt="">
+                <div class="tip">
+                    <div id="exprie">您的VIP订阅服务,已到期!</div>
+                    <!-- <div>VIP订阅服务即将到期,请及时续费!</div> -->
+                    <div class="validity_date">
+                        <span>有效日期:</span>
+                        <span class="date-span"></span>
                     </div>
                 </div>
-                <div class="recommend_box">
-                    <div class="recommend_title">
-                        以下区域、行业的订阅推送已停止,为了不影响您的使用,请立即续费!
+            </div>
+            <div class="recommend_box">
+                <div class="recommend_title">
+                    以下区域、行业的订阅推送已停止,为了不影响您的使用,请立即续费!
+                </div>
+                <div class="recommend_info">
+                    <div class="info_area">
+                        <span>区域:</span>
+                        <span class="text area-list"></span>
                     </div>
-                    <div class="recommend_info">
-                        <div class="info_area">
-                            <span>区域:</span>
-                            <span class="text area-list"></span>
-                        </div>
-                        <div class="info_industry">
-                            <span>行业:</span>
-                            <span class="text industry-list"></span>
-                        </div>
+                    <div class="info_industry">
+                        <span>行业:</span>
+                        <span class="text industry-list"></span>
                     </div>
                 </div>
             </div>
-			<div class="renew_box">
-                <button style="display: none;" class="renew_service">续费</button>
-                <button style="display: none;" class="aginBuy">再次购买</button>
-                <button style="display: none;" class="free_service" onclick="history.back()">使用免费订阅</button>
-            </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"}}"></script>
-		<script src="/jyapp/js/common.js?v={{Msg "seo" "version"}}"></script>
-		<script type="text/javascript">
-			$(function(){ 
-			// 	history.pushState({},"","");
-			// 	window.addEventListener('popstate', function(event){
-			// 		window.location.replace('/jyapp/swordfish/historypush');
-			// 	});
-				// try{
-				// 	JyObj.hiddenBottom("1");
-				// }catch(e){
-				// 	//TODO handle the exception
-				// }
-			});
-			//
-			var orderId = {{.T.orderId}};
-			var starts = {{.T.startTime}};
-			var ends = {{.T.endTime}};
-			var orderCode = "";
-			var nowTime = new Date().getTime();
-			if(orderId !== "" && orderId !== undefined){
-				$DoPost("/subscribepay/renewUpgrade/getExprie", {"orderId":orderId}, function (r) {
-					if(r){
-						var area = r.area
-						var buyerclass = r.buyerclass
-						var exprie = {{.T.exprie}};
-						var vipStatus = Number(r.vipStatus);
-						orderCode = r.orderCode;
-						//
-						var areaHtml = "";
-						var provinceArr = [];
-						var cityArr = [];
-						var buyerclassArr = [];
-						var buyerclassHtml = "";
-						var endstime = new Date(ends).getTime();
-						if (area !== "" && area !== undefined){
-							for(var province in area){
-								var citys = area[province]
-				//	    		console.log(citys);
-								if(citys.length===0){
-									provinceArr.push(province);
-								}else{
-									for(var i in citys){
-										var city = citys[i];
-										cityArr.push(city);
-									}
-								}
-							}
-							var provinceLen = provinceArr.length;
-							var cityLen = cityArr.length;
-							areaHtml = provinceLen+"个省级区域、"+cityLen+"个市";
-							
-							if(checkObj(area)){
-								areaHtml = "全国";
-							}
-							$(".area-list").text(areaHtml);
-						}
-						if(buyerclass !== "" && buyerclass !== undefined){
-							for(var i in buyerclass){
-								var industry = buyerclass[i];
-								buyerclassArr.push(industry);
-								buyerclassHtml = buyerclassArr.length+"个行业";
-							}
-							if(checkObj(buyerclass)){
-								buyerclassHtml = "全行业";
-							}
-							$('.industry-list').text(buyerclassHtml);
-						}
-						if(starts !== "" && ends !== ""){
-							let start = starts.toString().replace(/-/g, ".");
-							let end = ends.toString().replace(/-/g, ".");
-							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;
-							let c = endstime/1000;
-							if(a < b&&b < c){
-								$(".renew_service").show();
-								$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-								$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
-							}
-						}else{
+        </div>
+        <div class="renew_box">
+            <button style="display: none;" class="renew_service">续费</button>
+            <button style="display: none;" class="aginBuy">再次购买</button>
+            <button style="display: none;" class="free_service" onclick="history.back()">使用免费订阅</button>
+        </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"}}"></script>
+<script src="/jyapp/js/common.js?v={{Msg "seo" "version"}}"></script>
+<script type="text/javascript">
+    $(function () {
+        // 	history.pushState({},"","");
+        // 	window.addEventListener('popstate', function(event){
+        // 		window.location.replace('/jyapp/swordfish/historypush');
+        // 	});
+        // try{
+        // 	JyObj.hiddenBottom("1");
+        // }catch(e){
+        // 	//TODO handle the exception
+        // }
+    });
+    //
+    var orderId = {{.T.orderId}};
+    var starts = {{.T.startTime}};
+    var ends = {{.T.endTime}};
+    var orderCode = "";
+    var nowTime = new Date().getTime();
+    if (orderId !== "" && orderId !== undefined) {
+        $DoPost("/subscribepay/renewUpgrade/getExprie", {"orderId": orderId}, function (r) {
+            if (r) {
+                var area = r.area
+                var buyerclass = r.buyerclass
+                var exprie = {{.T.exprie}};
+                var vipStatus = Number(r.vipStatus);
+                orderCode = r.orderCode;
+                //
+                var areaHtml = "";
+                var provinceArr = [];
+                var cityArr = [];
+                var buyerclassArr = [];
+                var buyerclassHtml = "";
+                var endstime = new Date(ends).getTime();
+                if (area !== "" && area !== undefined) {
+                    for (var province in area) {
+                        var citys = area[province]
+                        //	    		console.log(citys);
+                        if (citys.length === 0) {
+                            provinceArr.push(province);
+                        } else {
+                            for (var i in citys) {
+                                var city = citys[i];
+                                cityArr.push(city);
+                            }
+                        }
+                    }
+                    var provinceLen = provinceArr.length;
+                    var cityLen = cityArr.length;
+                    areaHtml = provinceLen + "个省级区域、" + cityLen + "个市";
+
+                    if (checkObj(area)) {
+                        areaHtml = "全国";
+                    }
+                    $(".area-list").text(areaHtml);
+                }
+                if (buyerclass !== "" && buyerclass !== undefined) {
+                    for (var i in buyerclass) {
+                        var industry = buyerclass[i];
+                        buyerclassArr.push(industry);
+                        buyerclassHtml = buyerclassArr.length + "个行业";
+                    }
+                    if (checkObj(buyerclass)) {
+                        buyerclassHtml = "全行业";
+                    }
+                    $('.industry-list').text(buyerclassHtml);
+                }
+                if (starts !== "" && ends !== "") {
+                    let start = starts.toString().replace(/-/g, ".");
+                    let end = ends.toString().replace(/-/g, ".");
+                    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;
+                    let c = endstime / 1000;
+                    if (a < b && b < c) {
+                        $(".renew_service").show();
+                        $("#exprie").text("VIP订阅服务即将到期,请及时续费")
+                        $(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+                    }
+                } else {
 //					    	$(".renew_service").show();
-							$(".aginBuy").show();
-							$(".free_service").show();
-						}
-					}
-				},false);
-			}else{
-				$DoPost("/subscribepay/renewUpgrade/getBuyMsg", {}, function (data) {
-					if(data.success){
-						var startTime = data.data.start;
-						var endTime = data.data.end;
-						var exprie = {{.T.exprie}};
-						var vipStatus = Number(data.data.vipStatus);
-						orderCode = data.data.orderCode;
-						//
-						var areaHtml = "";
-						var provinceArr = [];
-						var cityArr = [];
-						var buyerclassArr = [];
-						var buyerclassHtml = "";
-				//	    var dateName = "";
-						var dateHtml = "";
-						var oldBuyset = data.data.buyset;
-				
-						if(oldBuyset!==""&&oldBuyset!==undefined){
-							let provinceLen = 0;
-							provinceLen = oldBuyset.areacount
-							let citys = oldBuyset.citys
-							let cityLen = 0;
-							let areaHtml = "";
-							for(let i in citys){
-								cityLen += citys[i];
-							}
-							if(provinceLen === -1){
-								areaHtml = "全国";
-							}else{
-								if(provinceLen !== 0 && cityLen!==0){
-									areaHtml = provinceLen+"个省级区域、"+cityLen+"个市";
-								}else if(provinceLen !== 0 && cityLen === 0){
-									areaHtml = provinceLen+"个省级区域";
-								}else if(provinceLen === 0 && cityLen !== 0){
-									areaHtml = cityLen+"个市";
-								}
-							}
-							$(".area-list").text(areaHtml);
-							let industryLen = 0;
-							industryLen = oldBuyset.buyerclasscount;
-							if(industryLen === -1){
-								buyerclassHtml = "全行业";
-							}else{
-								buyerclassHtml = industryLen+"个行业";
-							}
-							$(".industry-list").text(buyerclassHtml);
-						}
-						if(startTime !== "" && endTime !== ""){
-							var start = startTime.toString().replace(/-/g, ".");
-							var end = endTime.toString().replace(/-/g, ".");
-							dateHtml = start + " - " + end;
-							$(".date-span").text(dateHtml);
-						}
-						if(exprie === "will"){
-							$(".renew_service").show();
-							$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-							$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
-						}else{
+                    $(".aginBuy").show();
+                    $(".free_service").show();
+                }
+            }
+        }, false);
+    } else {
+        $DoPost("/subscribepay/vipsubscribe/getSubBuyMsg", {}, function (data) {
+            if (data.success) {
+                var startTime = data.data.startTime;
+                var endTime = data.data.endTime;
+                var exprie = {{.T.exprie}};
+                var vipStatus = Number(data.data.vipStatus);
+                orderCode = data.data.orderCode;
+                //
+                var areaHtml = "";
+                var provinceArr = [];
+                var cityArr = [];
+                var buyerclassArr = [];
+                var buyerclassHtml = "";
+                //	    var dateName = "";
+                var dateHtml = "";
+                var oldBuyset = data.data.buyset;
+
+                if (oldBuyset !== "" && oldBuyset !== undefined) {
+                    var provinceLen = 0;
+                    provinceLen = oldBuyset.areacount
+                    var citys = oldBuyset.citys
+                    var cityLen = 0;
+                    var areaHtml = "";
+                    for (var i in citys) {
+                        cityLen += citys[i];
+                    }
+                    if (provinceLen === -1) {
+                        areaHtml = "全国";
+                    } else {
+                        if (provinceLen !== 0 && cityLen !== 0) {
+                            areaHtml = provinceLen + "个省级区域、" + cityLen + "个市";
+                        } else if (provinceLen !== 0 && cityLen === 0) {
+                            areaHtml = provinceLen + "个省级区域";
+                        } else if (provinceLen === 0 && cityLen !== 0) {
+                            areaHtml = cityLen + "个市";
+                        }
+                    }
+                    $(".area-list").text(areaHtml);
+                    var industryLen = 0;
+                    industryLen = oldBuyset.buyerclasscount;
+                    if (industryLen === -1) {
+                        buyerclassHtml = "全行业";
+                    } else {
+                        buyerclassHtml = industryLen + "个行业";
+                    }
+                    $(".industry-list").text(buyerclassHtml);
+                }
+                if (startTime !== "" && endTime !== "") {
+                    var start = new Date(startTime * 1000).pattern('yyyy.MM.dd')
+                    var end = new Date(endTime * 1000).pattern('yyyy.MM.dd')
+                    $(".date-span").text(start + "-" + end);
+                }
+                if (exprie === "will") {
+                    $(".renew_service").show();
+                    $("#exprie").text("VIP订阅服务即将到期,请及时续费")
+                    $(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+                } else {
 //					    	$(".renew_service").show();
-							$(".aginBuy").show();
-							$(".free_service").show();
-						}
-					}
-				},false);	
-			}
-			
-			$(".renew_service").on("click",function(){
-				window.location.replace("/jyapp/vipsubscribe/vipsubscribe_renew");
-			});
-			$(".aginBuy").on("click",function(){
-				window.location.replace("/jyapp/vipsubscribe/vipsubscribe_new?orderCode="+orderCode);
-			});
-			//
-			function checkObj(obj) {
-				//检验数组
-				if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
-					return true;
-				}
-				//检验对象
-				if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
-					return true;
-				}
-				return false;
-			}
-			
-		</script>
-	</body>
+                    $(".aginBuy").show();
+                    $(".free_service").show();
+                }
+            }
+        }, false);
+    }
+
+    $(".renew_service").on("click", function () {
+        window.location.replace("/jyapp/vipsubscribe/vipsubscribe_renew");
+    });
+    $(".aginBuy").on("click", function () {
+        window.location.replace("/jyapp/vipsubscribe/vipsubscribe_new?orderCode=" + orderCode);
+    });
+
+    //
+    function checkObj(obj) {
+        //检验数组
+        if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+            return true;
+        }
+        //检验对象
+        if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+            return true;
+        }
+        return false;
+    }
+
+</script>
+</body>
 </html>

+ 8 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_seniorset.html

@@ -211,6 +211,14 @@
 			}
 			param["infotype"] = "app";
 			$.post("/subscribepay/afterPay/setUserInfo",param,function(r){
+				if (r.flag) {
+					var subVipState = sessionStorage.getItem('sub_vip_state')
+					if (subVipState != "") {
+						var reqData = JSON.parse(subVipState);
+						reqData.ratemode = param.ratemode;
+						sessionStorage.setItem('sub_vip_state', JSON.stringify(reqData))
+					}
+				}
 				console.log(r)
 			});
 		}

+ 17 - 2
src/jfw/modules/subscribepay/src/service/vipSubscribeChange.go

@@ -494,8 +494,23 @@ func getUpgradeDetail(userId string, newBuySet, oldBuySet *entity.SubvipBuySet,
 //获取升级小计价格
 func getSubtotalPrice(oldBuyset, newBuyset *entity.SubvipBuySet, startTime, endtime int64) int {
 	//不能降级
-	if (oldBuyset.AreaCount != -1 && newBuyset.AreaCount != -1 && oldBuyset.AreaCount > newBuyset.AreaCount) || (oldBuyset.AreaCount == -1 && newBuyset.AreaCount != -1) ||
-		(oldBuyset.BuyerclassCount != -1 && newBuyset.BuyerclassCount != -1 && oldBuyset.BuyerclassCount > newBuyset.BuyerclassCount) || oldBuyset.BuyerclassCount == -1 && newBuyset.BuyerclassCount != -1 {
+	oldCitysBuyTwo := 0;
+	newCitysBuyTwo := 0;
+	for _, v := range oldBuyset.NewCitys {
+		if v == 2 {
+			oldCitysBuyTwo++
+		}
+	}
+	for _, v := range newBuyset.NewCitys {
+		if v == 2 {
+			newCitysBuyTwo++
+		}
+	}
+
+	if (oldBuyset.AreaCount != -1 && newBuyset.AreaCount != -1 && (oldBuyset.AreaCount > newBuyset.AreaCount || len(oldBuyset.NewCitys) > len(newBuyset.NewCitys) || oldCitysBuyTwo > newCitysBuyTwo)) ||
+		(oldBuyset.AreaCount == -1 && newBuyset.AreaCount != -1) || //旧套餐全国 新套餐非全国
+		(oldBuyset.BuyerclassCount != -1 && newBuyset.BuyerclassCount != -1 && oldBuyset.BuyerclassCount > newBuyset.BuyerclassCount) || //非全行业下 新套餐行业数量小于旧套餐数量
+		oldBuyset.BuyerclassCount == -1 && newBuyset.BuyerclassCount != -1 { //旧套餐全行业 新套餐非全行业
 		return -1
 	}
 	//计价方式为计算差额

+ 17 - 7
src/web/staticres/vipsubscribe/js/UpgradePrice.js

@@ -311,11 +311,26 @@ function getUpgradeFinalStatus(newBuyset, oldBuyset, t, endUnix, renewList, isTr
 
 //计算差价
 function getSubPrice(oldBuyset, newBuyset, start, end) {
+    var oldCitysBuyTwo = 0;
+    var newCitysBuyTwo = 0;
+    for (var i = 0; i < oldBuyset.citys.length; i++) {
+        if (oldBuyset.citys[i] === 2) {
+            oldCitysBuyTwo++
+        }
+    }
+    for (var i = 0; i < newBuyset.citys.length; i++) {
+        if (newBuyset.citys[i] === 2) {
+            newCitysBuyTwo++
+        }
+    }
     //不能降级
-    if ((oldBuyset.areacount != -1 && newBuyset.areacount != -1 && oldBuyset.areacount > newBuyset.areacount) || (oldBuyset.areacount == -1 && newBuyset.areacount != -1) ||
-        (oldBuyset.buyerclasscount != -1 && newBuyset.buyerclasscount != -1 && oldBuyset.buyerclasscount > newBuyset.buyerclasscount) || (oldBuyset.buyerclasscount == -1 && newBuyset.buyerclasscount != -1)) {
+    if ((oldBuyset.areacount !== -1 && newBuyset.areacount !== -1 && (oldBuyset.areacount > newBuyset.areacount || oldBuyset.citys.length > newBuyset.citys.length || oldCitysBuyTwo > newCitysBuyTwo))  //非全国下 新套餐省份数量小于旧套餐数量
+        || (oldBuyset.areacount === -1 && newBuyset.areacount !== -1)       //旧套餐全国 新套餐非全国
+        || (oldBuyset.buyerclasscount !== -1 && newBuyset.buyerclasscount !== -1 && oldBuyset.buyerclasscount > newBuyset.buyerclasscount)//非全行业下 新套餐行业数量小于旧套餐数量
+        || (oldBuyset.buyerclasscount === -1 && newBuyset.buyerclasscount !== -1)) {  //旧套餐全行业 新套餐非全行业
         return -1
     }
+
     var beforePrice = 0;
     var newPrice = 0;
     var t = getDateSub(start, end);
@@ -398,8 +413,3 @@ function getDateSub(start, end) {
     return [finalYearNum, finalMonthNum]
 }
 
-
-
-
-
-

+ 237 - 231
src/web/templates/weixin/vipsubscribe/renew_notice.html

@@ -1,239 +1,245 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
-		<title>VIP订阅</title>
-		<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
-		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
-		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
-		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
-		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_service_expire.css?v={{Msg "seo" "version"}}3">
-		{{include "/common/weixin.html"}}
-		<!--<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>-->
-		<script src="/vipsubscribe/js/share.js?v={{Msg "seo" "version"}}"></script>
-	</head>
-	<style type="text/css">
-		body,html {
-			height: 100%;
-		}
-		.aginBuy{
-			height: 0.94rem;
-		    font-size: .34rem;
-		    color: #fff;
-		    background-color: #2cb7ca;
-		    border-radius: .08rem;
-		}
-	</style>
-	<body>
-		<script type="text/javascript">
-			initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
-		</script>
-		<div class="vip_service_expire layout_top-bottom">
-			<div class="service_expire_tip layou_top">
-                <div class="tip_title_box">
-                    <img class="nothing" src="/vipsubscribe/image/nothing.png?v={{Msg "seo" "version"}}" alt="">
-                    <div class="tip">
-                        <div id="exprie">您的VIP订阅服务,已到期!</div>
-                        <!-- <div>VIP订阅服务即将到期,请及时续费!</div> -->
-                        <div class="validity_date">
-                            <span>有效日期:</span>
-                            <span class="date-span"></span>
-                        </div>
-                    </div>
-                </div>
-                <div class="recommend_box">
-                    <div class="recommend_title">
-                        以下区域、行业的订阅推送已停止,为了不影响您的使用,请立即续费!
-                    </div>
-                    <div class="recommend_info">
-                        <div class="info_area">
-                            <span>区域:</span>
-                            <span class="text area-list"></span>
-                        </div>
-                        <div class="info_industry">
-                            <span>行业:</span>
-                            <span class="text industry-list"></span>
-                        </div>
-                    </div>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
+    <title>VIP订阅</title>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" type="text/css"
+          href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet"
+          href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_service_expire.css?v={{Msg "seo" "version"}}3">
+    {{include "/common/weixin.html"}}
+    <!--<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>-->
+    <script src="/vipsubscribe/js/share.js?v={{Msg "seo" "version"}}"></script>
+</head>
+<style type="text/css">
+    body, html {
+        height: 100%;
+    }
+
+    .aginBuy {
+        height: 0.94rem;
+        font-size: .34rem;
+        color: #fff;
+        background-color: #2cb7ca;
+        border-radius: .08rem;
+    }
+</style>
+<body>
+<script type="text/javascript">
+    initShare({{.T.signature}},{{.T.openid}}, 2, "jy_extend",{{.T.nickname}},{{.T.avatar}});
+</script>
+<div class="vip_service_expire layout_top-bottom">
+    <div class="service_expire_tip layou_top">
+        <div class="tip_title_box">
+            <img class="nothing" src="/vipsubscribe/image/nothing.png?v={{Msg "seo" "version"}}" alt="">
+            <div class="tip">
+                <div id="exprie">您的VIP订阅服务,已到期!</div>
+                <!-- <div>VIP订阅服务即将到期,请及时续费!</div> -->
+                <div class="validity_date">
+                    <span>有效日期:</span>
+                    <span class="date-span"></span>
                 </div>
             </div>
-			<div class="renew_box">
-                <button style="display: none;" class="renew_service">续费</button>
-                <button style="display: none;" class="aginBuy">再次购买</button>
-                <button style="display: none;" class="free_service" onclick="window.location.href='/swordfish/historypush'">使用免费订阅</button>
+        </div>
+        <div class="recommend_box">
+            <div class="recommend_title">
+                以下区域、行业的订阅推送已停止,为了不影响您的使用,请立即续费!
+            </div>
+            <div class="recommend_info">
+                <div class="info_area">
+                    <span>区域:</span>
+                    <span class="text area-list"></span>
+                </div>
+                <div class="info_industry">
+                    <span>行业:</span>
+                    <span class="text industry-list"></span>
+                </div>
             </div>
-		</div>
-		<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js"></script>
-    	<!--<script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
-    	<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
-    	<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}7"></script>
-		<script type="text/javascript">
-			//
-			var orderId = {{.T.orderId}};
-			var starts = {{.T.startTime}};
-			var ends = {{.T.endTime}};
-			var orderCode = "";
-			var nowTime = new Date().getTime();
-			if(orderId !== "" && orderId !== undefined){
-				$DoPost("/subscribepay/renewUpgrade/getExprie", {"orderId":orderId}, function (r) {
-					if(r){
-						var area = r.area
-						var buyerclass = r.buyerclass
-						var exprie = {{.T.exprie}};
-						var vipStatus = Number(r.vipStatus);
-						orderCode = r.orderCode;
-						//
-						var areaHtml = "";
-					    var provinceArr = [];
-					    var cityArr = [];
-					    var buyerclassArr = [];
-					    var buyerclassHtml = "";
-					    var endstime = new Date(ends).getTime();
-						if (area !== "" && area !== undefined){
-					    	for(var province in area){
-					    		var citys = area[province]
-				//	    		console.log(citys);
-					    		if(citys.length===0){
-					    			provinceArr.push(province);
-					    		}else{
-					    			for(var i in citys){
-					    				var city = citys[i];
-					    				cityArr.push(city);
-					    			}
-					    		}
-					    	}
-					    	var provinceLen = provinceArr.length;
-					 		var cityLen = cityArr.length;
-					    	areaHtml = provinceLen+"个省级区域、"+cityLen+"个市";
-					    	
-							if(checkObj(area)){
-								areaHtml = "全国";
-							}
-					    	$(".area-list").text(areaHtml);
-					    }
-					    if(buyerclass !== "" && buyerclass !== undefined){
-					    	for(var i in buyerclass){
-					    		var industry = buyerclass[i];
-					    		buyerclassArr.push(industry);
-					    		buyerclassHtml = buyerclassArr.length+"个行业";
-					    	}
-					    	if(checkObj(buyerclass)){
-					    		buyerclassHtml = "全行业";
-					    	}
-					    	$('.industry-list').text(buyerclassHtml);
-					    }
-					    if(starts !== "" && ends !== ""){
-					    	var start = starts.toString().replace(/-/g, ".");
-					    	var end = ends.toString().replace(/-/g, ".");
-					    	var dateHtml = start + " - " + end;
-					    	$(".date-span").text(dateHtml);
-					    }
-					    if(vipStatus === 2&&nowTime>endstime){
-							return   
-					    }
-					    if(exprie === "will"){
-					    	var a = (endstime/1000) - (86400 * 3);
-					    	var b = nowTime/1000;
-					    	var c = endstime/1000;
-					    	if(a < b&&b < c){
-					    		$(".renew_service").show();
-						    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-						    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
-					    	}
-					    }else{
+        </div>
+    </div>
+    <div class="renew_box">
+        <button style="display: none;" class="renew_service">续费</button>
+        <button style="display: none;" class="aginBuy">再次购买</button>
+        <button style="display: none;" class="free_service" onclick="window.location.href='/swordfish/historypush'">
+            使用免费订阅
+        </button>
+    </div>
+</div>
+<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js"></script>
+<!--<script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
+<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}7"></script>
+<script type="text/javascript">
+    //
+    var orderId = {{.T.orderId}};
+    var starts = {{.T.startTime}};
+    var ends = {{.T.endTime}};
+    var orderCode = "";
+    var nowTime = new Date().getTime();
+    if (orderId !== "" && orderId !== undefined) {
+        $DoPost("/subscribepay/renewUpgrade/getExprie", {"orderId": orderId}, function (r) {
+            if (r) {
+                var area = r.area
+                var buyerclass = r.buyerclass
+                var exprie = {{.T.exprie}};
+                var vipStatus = Number(r.vipStatus);
+                orderCode = r.orderCode;
+                //
+                var areaHtml = "";
+                var provinceArr = [];
+                var cityArr = [];
+                var buyerclassArr = [];
+                var buyerclassHtml = "";
+                var endstime = new Date(ends).getTime();
+                if (area !== "" && area !== undefined) {
+                    for (var province in area) {
+                        var citys = area[province]
+                        //	    		console.log(citys);
+                        if (citys.length === 0) {
+                            provinceArr.push(province);
+                        } else {
+                            for (var i in citys) {
+                                var city = citys[i];
+                                cityArr.push(city);
+                            }
+                        }
+                    }
+                    var provinceLen = provinceArr.length;
+                    var cityLen = cityArr.length;
+                    areaHtml = provinceLen + "个省级区域、" + cityLen + "个市";
+
+                    if (checkObj(area)) {
+                        areaHtml = "全国";
+                    }
+                    $(".area-list").text(areaHtml);
+                }
+                if (buyerclass !== "" && buyerclass !== undefined) {
+                    for (var i in buyerclass) {
+                        var industry = buyerclass[i];
+                        buyerclassArr.push(industry);
+                        buyerclassHtml = buyerclassArr.length + "个行业";
+                    }
+                    if (checkObj(buyerclass)) {
+                        buyerclassHtml = "全行业";
+                    }
+                    $('.industry-list').text(buyerclassHtml);
+                }
+                if (starts !== "" && ends !== "") {
+                    var start = starts.toString().replace(/-/g, ".");
+                    var end = ends.toString().replace(/-/g, ".");
+                    var dateHtml = start + " - " + end;
+                    $(".date-span").text(dateHtml);
+                }
+                if (vipStatus === 2 && nowTime > endstime) {
+                    return
+                }
+                if (exprie === "will") {
+                    var a = (endstime / 1000) - (86400 * 3);
+                    var b = nowTime / 1000;
+                    var c = endstime / 1000;
+                    if (a < b && b < c) {
+                        $(".renew_service").show();
+                        $("#exprie").text("VIP订阅服务即将到期,请及时续费")
+                        $(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+                    }
+                } else {
 //					    	$(".renew_service").show();
-					    	$(".aginBuy").show();
-					  	  	$(".free_service").show();
-					    }
-					}
-				},false);
-			}else{
-				$DoPost("/subscribepay/renewUpgrade/getBuyMsg", {}, function (data) {
-					if(data.success){
-					    var startTime = data.data.start;
-					    var endTime = data.data.end;
-					    var exprie = {{.T.exprie}};
-					    var vipStatus = Number(data.data.vipStatus);
-					    orderCode = data.data.orderCode;
-					    //
-					    var areaHtml = "";
-					    var provinceArr = [];
-					    var cityArr = [];
-					    var buyerclassArr = [];
-					    var buyerclassHtml = "";
-				//	    var dateName = "";
-					    var dateHtml = "";
-						var oldBuyset = data.data.buyset;
-				
-						if(oldBuyset!==""&&oldBuyset!==undefined){
-							var provinceLen = 0;
-							provinceLen = oldBuyset.areacount
-							var citys = oldBuyset.citys
-							var cityLen = 0;
-							var areaHtml = "";
-							for(var i in citys){
-								cityLen += citys[i];
-							}
-							if(provinceLen === -1){
-								areaHtml = "全国";
-							}else{
-								if(provinceLen !== 0 && cityLen!==0){
-									areaHtml = provinceLen+"个省级区域、"+cityLen+"个市";
-								}else if(provinceLen !== 0 && cityLen === 0){
-									areaHtml = provinceLen+"个省级区域";
-								}else if(provinceLen === 0 && cityLen !== 0){
-									areaHtml = cityLen+"个市";
-								}
-							}
-							$(".area-list").text(areaHtml);
-							var industryLen = 0;
-							industryLen = oldBuyset.buyerclasscount;
-							if(industryLen === -1){
-								buyerclassHtml = "全行业";
-							}else{
-								buyerclassHtml = industryLen+"个行业";
-							}
-							$(".industry-list").text(buyerclassHtml);
-						}
-					    if(startTime !== "" && endTime !== ""){
-					    	var start = startTime.toString().replace(/-/g, ".");
-					    	var end = endTime.toString().replace(/-/g, ".");
-					    	dateHtml = start + " - " + end;
-					    	$(".date-span").text(dateHtml);
-					    }
-					    if(exprie === "will"){
-				    		$(".renew_service").show();
-					    	$("#exprie").text("VIP订阅服务即将到期,请及时续费")
-					    	$(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
-					    }else{
+                    $(".aginBuy").show();
+                    $(".free_service").show();
+                }
+            }
+        }, false);
+    } else {
+        $DoPost("/subscribepay/vipsubscribe/getSubBuyMsg", {}, function (data) {
+            if (data.success) {
+                var startTime = data.data.startTime;
+                var endTime = data.data.endTime;
+                var exprie = {{.T.exprie}};
+                var vipStatus = Number(data.data.vipStatus);
+                orderCode = data.data.orderCode;
+                //
+                var areaHtml = "";
+                var provinceArr = [];
+                var cityArr = [];
+                var buyerclassArr = [];
+                var buyerclassHtml = "";
+                //	    var dateName = "";
+                var dateHtml = "";
+                var oldBuyset = data.data.buyset;
+
+                if (oldBuyset !== "" && oldBuyset !== undefined) {
+                    var provinceLen = 0;
+                    provinceLen = oldBuyset.areacount
+                    var citys = oldBuyset.citys
+                    var cityLen = 0;
+                    var areaHtml = "";
+                    for (var i in citys) {
+                        cityLen += citys[i];
+                    }
+                    if (provinceLen === -1) {
+                        areaHtml = "全国";
+                    } else {
+                        if (provinceLen !== 0 && cityLen !== 0) {
+                            areaHtml = provinceLen + "个省级区域、" + cityLen + "个市";
+                        } else if (provinceLen !== 0 && cityLen === 0) {
+                            areaHtml = provinceLen + "个省级区域";
+                        } else if (provinceLen === 0 && cityLen !== 0) {
+                            areaHtml = cityLen + "个市";
+                        }
+                    }
+                    $(".area-list").text(areaHtml);
+                    var industryLen = 0;
+                    industryLen = oldBuyset.buyerclasscount;
+                    if (industryLen === -1) {
+                        buyerclassHtml = "全行业";
+                    } else {
+                        buyerclassHtml = industryLen + "个行业";
+                    }
+                    $(".industry-list").text(buyerclassHtml);
+                }
+                if (startTime !== "" && endTime !== "") {
+                    var start = new Date(startTime * 1000).pattern('yyyy.MM.dd')
+                    var end = new Date(endTime * 1000).pattern('yyyy.MM.dd')
+                    $(".date-span").text(start + "-" + end);
+                }
+                if (exprie === "will") {
+                    $(".renew_service").show();
+                    $("#exprie").text("VIP订阅服务即将到期,请及时续费")
+                    $(".recommend_title").text("以下区域、行业的订阅推送即将停止,为了不影响您的使用,请立即续费!")
+                } else {
 //					    	$(".renew_service").show();
-							$(".aginBuy").show();
-					    	$(".free_service").show();
-					    }
-					}
-				},false);	
-			}
-			
-			$(".renew_service").on("click",function(){
-				window.location.replace("/weixin/pay/vipsubscribe_renew");
-			});
-			$(".aginBuy").on("click",function(){
-				window.location.replace("/weixin/pay/vipsubscribe_new?orderCode="+orderCode);
-			});
-	        //
-		    function checkObj(obj) {
-			    //检验数组
-			    if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
-			        return true;
-			    }
-			    //检验对象
-			    if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
-			        return true;
-			    }
-			    return false;
-			}
-			
-		</script>
-	</body>
+                    $(".aginBuy").show();
+                    $(".free_service").show();
+                }
+            }
+        }, false);
+    }
+
+    $(".renew_service").on("click", function () {
+        window.location.replace("/weixin/pay/vipsubscribe_renew");
+    });
+    $(".aginBuy").on("click", function () {
+        window.location.replace("/weixin/pay/vipsubscribe_new?orderCode=" + orderCode);
+    });
+
+    //
+    function checkObj(obj) {
+        //检验数组
+        if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+            return true;
+        }
+        //检验对象
+        if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+            return true;
+        }
+        return false;
+    }
+
+</script>
+</body>
 </html>