xuzhiheng 5 лет назад
Родитель
Сommit
b70c35ea8c

+ 59 - 18
src/jfw/modules/subscribepay/src/service/vipRenewUpgrade.go

@@ -72,8 +72,22 @@ func (this *RenewUpgrade) GetBuyMsg() {
 //升级续费
 //创建订单返回支付串
 func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
-	area := qutil.ObjToMap(this.GetString("area"))                 //已购买区域+新增区域
-	industry := strings.Split(this.GetString("industry"), ",")     //已购买行业+新增行业
+	areaArr := this.GetString("area")
+	var area *map[string]interface{}
+	if areaArr != "no" {
+		area = qutil.ObjToMap(this.GetString("area")) //新增区域
+	} else {
+		area = &map[string]interface{}{
+			"no": "no",
+		}
+	}
+	industryArr := this.GetString("industry")
+	var industry []string
+	if industryArr != "no" {
+		industry = strings.Split(this.GetString("industry"), ",") //新增行业
+	} else {
+		industry = append(industry, "no")
+	}
 	areas := qutil.ObjToMap(this.GetString("areas"))               //已购买区域
 	industrys := strings.Split(this.GetString("industryarr"), ",") //已购买行业
 	date := this.GetString("time")                                 //不延长时为空,正常为 年或月
@@ -83,12 +97,16 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 	pay_source := this.GetString("pay_source") //类型  续费-Renew or 升级-Upgrade
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	openId := qutil.ObjToString(this.GetSession("s_m_openid"))
+	log.Println("area", area)
+	log.Println("industry", industry)
 	//	isvalidOk, _ := this.GetBool("isvalidOk")
 	r := func() *entity.FuncResult {
 		now := time.Now()
 		//数据校验
-		if len(industry) == 1 && industry[0] == "" { //去掉[""]
-			industry = []string{}
+		if (industry[0]) != "no" {
+			if len(industry) == 1 && industry[0] == "" { //去掉[""]
+				industry = []string{}
+			}
 		}
 		if len(industrys) == 1 && industrys[0] == "" { //去掉[""]
 			industrys = []string{}
@@ -172,17 +190,43 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 		if pay_source == "Renew" {
 			totalfee = entity.JyVipSubStruct.GetSubVipPrice(area, industry, date_count, date_unit)
 		} else if pay_source == "Upgrade" {
-			upgradeYear, upgradeMonth := MaxUpgradeMonth(end)                             //获取最大升级月数
-			addY := entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeYear, 1)  //已购+新增,以年为单位的价格
-			addM := entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeMonth, 2) //已购+新增,以月为单位的价格
-			addPrice := addM + addY                                                       //已购+新增总价格
-			log.Println("1", addPrice)
-			nowY := entity.JyVipSubStruct.GetSubVipPrice(areas, industrys, upgradeYear, 1)  //已购,以年为单位的价格
-			nowM := entity.JyVipSubStruct.GetSubVipPrice(areas, industrys, upgradeMonth, 2) //已购,以月为单位的价格
-			nowPrice := nowM + nowY                                                         //已购总价格
-			log.Println("2", nowPrice)
-			totalfee = addPrice - nowPrice //已购+新增的总价格 - 已购总价格 = 升级差价
-			if date_unit == 1 {            //升级中的延长时间
+			upgradeYear, upgradeMonth := MaxUpgradeMonth(end) //获取最大升级月数
+			log.Println(upgradeYear)
+			log.Println(upgradeMonth)
+			addAreaY := 0
+			addAreaM := 0
+			oldAreaY := 0
+			oldAreaM := 0
+			addIndustryY := 0
+			addIndustryM := 0
+			if (*area)["no"] != "no" && industry[0] != "no" {
+				log.Println("1")
+				addAreaY = entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeYear, 1)
+				addAreaM = entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeMonth, 2)
+			}
+			if (*area)["no"] != "no" {
+				log.Println("2")
+				oldAreaY = entity.JyVipSubStruct.GetSubVipPrice(area, industrys, upgradeYear, 1)
+				oldAreaM = entity.JyVipSubStruct.GetSubVipPrice(area, industrys, upgradeMonth, 2)
+			}
+			if industry[0] != "no" {
+				log.Println("3")
+				addIndustryY = entity.JyVipSubStruct.GetSubVipPrice(areas, industry, upgradeYear, 1)
+				addIndustryM = entity.JyVipSubStruct.GetSubVipPrice(areas, industry, upgradeMonth, 2)
+			}
+			log.Println("addIndustryY", addIndustryY)
+			log.Println("addIndustryM", addIndustryM)
+			//			addY := entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeYear, 1)  //已购+新增,以年为单位的价格
+			//			addM := entity.JyVipSubStruct.GetSubVipPrice(area, industry, upgradeMonth, 2) //已购+新增,以月为单位的价格
+			//			addPrice := addM + addY                                                       //已购+新增总价格
+			//			log.Println("1", addPrice)
+			//			nowY := entity.JyVipSubStruct.GetSubVipPrice(areas, industrys, upgradeYear, 1)  //已购,以年为单位的价格
+			//			nowM := entity.JyVipSubStruct.GetSubVipPrice(areas, industrys, upgradeMonth, 2) //已购,以月为单位的价格
+			//			nowPrice := nowM + nowY                                                         //已购总价格
+			//			log.Println("2", nowPrice)
+			//			totalfee = addPrice - nowPrice //已购+新增的总价格 - 已购总价格 = 升级差价
+			totalfee = addAreaY + addAreaM + oldAreaY + oldAreaM + addIndustryY + addIndustryM
+			if date_unit == 1 { //升级中的延长时间
 				lengPrice := entity.JyVipSubStruct.GetSubVipPrice(area, industry, date_count, 1) //单位为年的已购+新增延长时间价格
 				totalfee = totalfee + lengPrice                                                  //已购+新增延长时间价格 + 升级差价 = 最终价格
 			} else if date_unit == 2 {
@@ -364,9 +408,6 @@ func MaxUpgradeMonth(endTime int64) (int, int) {
 		}
 	}
 
-	if nowUpgrade == 0 {
-		nowUpgrade = 1
-	}
 	//
 	var nowUpgradeYear = 0
 	if nowUpgrade >= 12 {

+ 15 - 10
src/web/templates/weixin/vipsubscribe/renew_notice.html

@@ -84,39 +84,44 @@
 						var buyerclass = r.buyerclass
 						var exprie = {{.T.exprie}};
 						var vipStatus = Number(r.vipStatus);
-						var areaArr = [];
-					    var areaHtml = "";
+						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);
+				//	    		console.log(citys);
 					    		if(citys.length===0){
-					    			areaArr.push(province);
+					    			provinceArr.push(province);
 					    		}else{
 					    			for(var i in citys){
-					    				areaArr.push(citys[i]);
+					    				var city = citys[i];
+					    				cityArr.push(city);
 					    			}
 					    		}
 					    	}
-					    	areaHtml = areaArr.toString().replace(/,/g, "、");
-					    	if(checkObj(area)){
+					    	var provinceLen = provinceArr.length;
+					 		var cityLen = cityArr.length;
+					    	areaHtml = provinceLen+"个省级区域、"+cityLen+"个市";
+					    	
+							if(checkObj(area)){
 								areaHtml = "全国";
 							}
-					    	$('.area-list').text(areaHtml);
+					    	$(".area-list").text(areaHtml);
 					    }
 					    if(buyerclass !== "" && buyerclass !== undefined){
 					    	for(var i in buyerclass){
 					    		var industry = buyerclass[i];
 					    		buyerclassArr.push(industry);
+					    		buyerclassHtml = buyerclassArr.length+"个行业";
 					    	}
-					    	buyerclassHtml = buyerclassArr.toString().replace(/,/g, "、");
 					    	if(checkObj(buyerclass)){
 					    		buyerclassHtml = "全行业";
 					    	}
-							$('.industry-list').text(buyerclassHtml);
+					    	$('.industry-list').text(buyerclassHtml);
 					    }
 					    if(starts !== "" && ends !== ""){
 					    	let start = starts.toString().replace(/-/g, ".");

+ 182 - 94
src/web/templates/weixin/vipsubscribe/vip_upgrade.html

@@ -980,9 +980,9 @@
         	$(".save_upgrade").attr('disabled','disabled');
 	    	var nowUpgrade = "";
 			//
-			var nowMonth = new Date(startTime).getMonth()+1;
-			var nowYear = new Date(startTime).getFullYear();
-			var nowDay = new Date(startTime).getDate();
+			var nowMonth = new Date().getMonth()+1;
+			var nowYear = new Date().getFullYear();
+			var nowDay = new Date().getDate();
 			//
 			var endMonth = new Date(endTime).getMonth()+1;
 			var endYear = new Date(endTime).getFullYear();
@@ -991,6 +991,7 @@
 			var price = "";
 //			var effect = "";
 			var buyCheck = true;
+			var cPrice = 0;
 			if(sessionStorage.buyCheck!==undefined&&sessionStorage.buyCheck!==""){
 				let bcheck = sessionStorage.buyCheck;
 				if(bcheck === "true"){
@@ -1001,96 +1002,137 @@
 			}
 			if(sessionStorage.vipSubSelectAreaUpgrade!==""&&sessionStorage.vipSubSelectAreaUpgrade!==undefined){
 				var vipArea = JSON.parse(sessionStorage.vipSubSelectAreaUpgrade);
-				if(area !== ""&&area !== undefined){
-					for(let province in area){
-			    		let citys = area[province];
-			    		if(citys.length===0){
-							areasArr[province] = [];
-			    		}else{
-			    			areasArr[province] = citys;
-			    		}
-			    	}
-					for(let province in vipArea){
-						let citys = vipArea[province];
-						if(areasArr[province] === undefined){
-							areasArr[province] = citys
-						}else{
-							let cityArr = [];
-							for(let i in citys){
-								cityArr.push(citys[i]);
-							}
-							for(let i in areasArr[province]){
-								cityArr.push(areasArr[province][i]);
-							}
-							//
-							for (var x = 0; x < cityArr.length; x++) {
-					            for (var j =x+1; j <cityArr.length; ) {
-					                if (cityArr[x] === cityArr[j]){
-					                    cityArr.splice(j, 1);
-					                }
-					                else j++;
-					            }
-					       	}
-							//
-							areasArr[province] = cityArr;
-						}
-						if(province === "全国"){
-							areasArr = {"全国":[]};
-						}
+				for(let province in vipArea){
+		    		let citys = vipArea[province];
+		    		if(citys.length===0){
+						areasArr[province] = [];
+		    		}else{
+		    			areasArr[province] = citys;
+		    		}
+		    	}
+				for(let province in vipArea){
+		    		if(province === "全国"){
+						areasArr = {"全国":[]};
 					}
-				}
-				console.log($(".save_upgrade").attr("disabled"))
+		    	}
 				if(buyCheck){
 					$(".save_upgrade").removeAttr("disabled");
 				}
 			}else{
-				if(area !== ""&&area !== undefined){
-					for(let province in area){
-			    		let citys = area[province];
-			    		if(citys.length===0){
-							areasArr[province] = [];
-			    		}else{
-			    			areasArr[province] = citys;
-			    		}
-			    	}
-				}
+				areasArr = null;
 			}
+//			if(sessionStorage.vipSubSelectAreaUpgrade!==""&&sessionStorage.vipSubSelectAreaUpgrade!==undefined){
+//				var vipArea = JSON.parse(sessionStorage.vipSubSelectAreaUpgrade);
+//				if(area !== ""&&area !== undefined){
+//					for(let province in area){
+//			    		let citys = area[province];
+//			    		if(citys.length===0){
+//							areasArr[province] = [];
+//			    		}else{
+//			    			areasArr[province] = citys;
+//			    		}
+//			    	}
+//					for(let province in vipArea){
+//						let citys = vipArea[province];
+//						if(areasArr[province] === undefined){
+//							areasArr[province] = citys
+//						}else{
+//							let cityArr = [];
+//							for(let i in citys){
+//								cityArr.push(citys[i]);
+//							}
+//							for(let i in areasArr[province]){
+//								cityArr.push(areasArr[province][i]);
+//							}
+//							//
+//							for (var x = 0; x < cityArr.length; x++) {
+//					            for (var j =x+1; j <cityArr.length; ) {
+//					                if (cityArr[x] === cityArr[j]){
+//					                    cityArr.splice(j, 1);
+//					                }
+//					                else j++;
+//					            }
+//					       	}
+//							//
+//							areasArr[province] = cityArr;
+//						}
+//						if(province === "全国"){
+//							areasArr = {"全国":[]};
+//						}
+//					}
+//				}
+//				console.log($(".save_upgrade").attr("disabled"))
+//				if(buyCheck){
+//					$(".save_upgrade").removeAttr("disabled");
+//				}
+//			}else{
+//				if(area !== ""&&area !== undefined){
+//					for(let province in area){
+//			    		let citys = area[province];
+//			    		if(citys.length===0){
+//							areasArr[province] = [];
+//			    		}else{
+//			    			areasArr[province] = citys;
+//			    		}
+//			    	}
+//				}
+//			}
+
 			console.log("areasArr",areasArr)
 			if(sessionStorage.vipSubSelectIndustryUpgrade!==""&&sessionStorage.vipSubSelectIndustryUpgrade!==undefined){
 				var vipIndustry = JSON.parse(sessionStorage.vipSubSelectIndustryUpgrade);
-				if(buyerclass!==""&&buyerclass!==undefined){
-					for(let i in buyerclass){
-			    		let industry = buyerclass[i];
-			    		industrysArr.push(industry);
-			        }
-					for(let i in vipIndustry){
-						let industry = vipIndustry[i];
-						industrysArr.push(industry);
-						if(industry === "全部行业"){
-							industrysArr = ["全部行业"];
-						}
+				for(let i in vipIndustry){
+		    		let industry = vipIndustry[i];
+		    		industrysArr.push(industry);
+		        }
+				for(let i in vipIndustry){
+					if(industry === "全部行业"){
+						industrysArr = ["全部行业"];
 					}
 				}
 				if(buyCheck){
 					$(".save_upgrade").removeAttr("disabled");
 				}
 			}else{
-				if(buyerclass!==""&&buyerclass!==undefined){
-					for(let i in buyerclass){
-			    		let industry = buyerclass[i];
-			    		industrysArr.push(industry);
-			    	}
-			    }
+				industrysArr = null;
 			}
 			
-			for (var x = 0; x < industrysArr.length; x++) {
-	            for (var j =x+1; j <industrysArr.length; ) {
-	                if (industrysArr[x] === industrysArr[j]){
-	                    industrysArr.splice(j, 1);
-	                }
-	                else j++;
-	            }
-	       	}
+//			if(sessionStorage.vipSubSelectIndustryUpgrade!==""&&sessionStorage.vipSubSelectIndustryUpgrade!==undefined){
+//				var vipIndustry = JSON.parse(sessionStorage.vipSubSelectIndustryUpgrade);
+//				if(buyerclass!==""&&buyerclass!==undefined){
+//					for(let i in buyerclass){
+//			    		let industry = buyerclass[i];
+//			    		industrysArr.push(industry);
+//			        }
+//					for(let i in vipIndustry){
+//						let industry = vipIndustry[i];
+//						industrysArr.push(industry);
+//						if(industry === "全部行业"){
+//							industrysArr = ["全部行业"];
+//						}
+//					}
+//				}
+//				if(buyCheck){
+//					$(".save_upgrade").removeAttr("disabled");
+//				}
+//			}else{
+//				if(buyerclass!==""&&buyerclass!==undefined){
+//					for(let i in buyerclass){
+//			    		let industry = buyerclass[i];
+//			    		industrysArr.push(industry);
+//			    	}
+//			    }
+//			}
+			if(industrysArr !== null){
+				for (var x = 0; x < industrysArr.length; x++) {
+		            for (var j =x+1; j <industrysArr.length; ) {
+		                if (industrysArr[x] === industrysArr[j]){
+		                    industrysArr.splice(j, 1);
+		                }
+		                else j++;
+		            }
+		       	}
+			}
 			
 			console.log("industrysArr",industrysArr);
 //			if(sessionStorage.effectiveDate !== ""&&sessionStorage.effectiveDate!==undefined){
@@ -1182,9 +1224,30 @@
 			
 			//
 			if(nowUpgradeYear >= 1){
-				let yearprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgradeYear,1]);
-				let monthprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
-				price = yearprice + monthprice;
+				let addAreaPriceY = 0;
+				let addAreaPriceM = 0;
+				let oldAreaPriceY = 0;
+				let oldAreaPriceM = 0;
+				let addIndustryPriceY = 0;
+				let addIndustryPriceM = 0;
+				if(areasArr !== null&&industrysArr !== null){
+					addAreaPriceY = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgradeYear,1]);
+					addAreaPriceM = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
+				}
+				if(areasArr !== null){
+					oldAreaPriceY = getsubVipOrderPrice(areasArr,buyerclass,[nowUpgradeYear,1]);
+					oldAreaPriceM = getsubVipOrderPrice(areasArr,buyerclass,[nowUpgrade,2]);
+				}
+				if(industrysArr !== null){
+					addIndustryPriceY = getsubVipOrderPrice(area,industrysArr,[nowUpgradeYear,1]);
+					addIndustryPriceM = getsubVipOrderPrice(area,industrysArr,[nowUpgrade,2]);
+				}
+//				let yearprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgradeYear,1]);
+//				let monthprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
+//				price = yearprice + monthprice;
+				price = addAreaPriceY + addAreaPriceM + oldAreaPriceY + oldAreaPriceM + addIndustryPriceY + addIndustryPriceM;
+				let yearprice = addAreaPriceY + oldAreaPriceY + addIndustryPriceY;
+				let monthprice = addAreaPriceM + oldAreaPriceM + addIndustryPriceM;
 				if(monthprice === 0){
 					completeMonth = ((yearprice / nowUpgradeYear) / 10).toFixed(1);
 					completeYear = (yearprice / nowUpgradeYear).toFixed(1);
@@ -1196,7 +1259,20 @@
 				console.log("monthprice",monthprice);
 				console.log(">=1",price);
 			}else{
-				price = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
+				let addAreaPriceM = 0;
+				let oldAreaPriceM = 0;
+				let addIndustryPriceM = 0;
+				if(areasArr !== null&&industrysArr !== null){
+					addAreaPriceM = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
+				}
+				if(areasArr !== null){
+					oldAreaPriceM = getsubVipOrderPrice(areasArr,buyerclass,[nowUpgrade,2]);
+				}
+				if(industrysArr !== null){
+					addIndustryPriceM = getsubVipOrderPrice(area,industrysArr,[nowUpgrade,2]);
+				}
+//				price = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
+				price = addAreaPriceM + oldAreaPriceM + addIndustryPriceM;
 				completeMonth = (price / nowUpgrade).toFixed(1);
 				completeYear = ((price / nowUpgrade)*10).toFixed(1);
 				console.log("<1",price)
@@ -1204,8 +1280,8 @@
 			
 			console.log("oldPrice", oldPrice);
 			if(sessionStorage.vipSubSelectAreaUpgrade===undefined&&sessionStorage.vipSubSelectIndustryUpgrade===undefined){
-				completeMonth = oldMonthPrice
-				completeYear = oldYearPrice
+				completeMonth = oldMonthPrice;
+				completeYear = oldYearPrice;
 			}
 			console.log("completeMonth",completeMonth)
 			console.log("completeYear",completeYear)
@@ -1220,10 +1296,10 @@
 					sessionStorage.proPrice = price;
 				}
 			}
-			var cPrice = 0;
-  			if(price>0){
-  				var cPrice = (price - oldPrice).toFixed(1);
-  			}
+			
+			if(price>0){
+				var cPrice = price;
+			}
 			console.log(cPrice);
 			if(sessionStorage.proPrice!==""&&sessionStorage.proPrice!==undefined){
 				let proPrice = sessionStorage.proPrice;
@@ -1272,12 +1348,24 @@
         	//
         	let areas = areasArr;
         	let industrys = industrysArr;
-        	if(areas["全国"]){
-                areas={};
-            }
-            if(industrys.length==1&&industrys[0]=="全部行业"){
-                industrys=[];
-            }
+        	let industryArr = "";
+        	let areaArr = "";
+        	if(areas !== null){
+        		if(areas["全国"]){
+	                areas={};
+	            }
+        		areaArr = JSON.stringify(areas);
+        	}else{
+        		areaArr = "no";
+        	}
+        	if(industrys !== null){
+        		if(industrys.length==1&&industrys[0]=="全部行业"){
+	                industrys=[];
+	            }
+        		industryArr = industrys.join(",");
+        	}else{
+        		industryArr = "no";
+        	}
             //
             let areaarr = area;
         	let industryarr = buyerclass;
@@ -1290,8 +1378,8 @@
             }
             //
 	    	var param = {
-	    		"area": JSON.stringify(areas),
-	    		"industry": industrys.join(","),
+	    		"area": areaArr,
+	    		"industry": industryArr,
 	    		"areas": JSON.stringify(areaarr),
 	    		"industryarr": industryarr.join(","),
 	    		"payWay": "wx_js",