Ver Fonte

增加新旧buyset merge方法

wangkaiyue há 5 anos atrás
pai
commit
77e1531bfc

+ 40 - 0
src/jfw/modules/subscribepay/src/entity/subscribeVip.go

@@ -406,6 +406,46 @@ func subvipBuySetFulsh(userId string, areaCount, buyerclasscount int, oldCitys *
 	}
 }
 
+//newFiled []int  oldFiled map
+func (this *vipSubscribeStruct) GetMergeNewBuyset(o_buyset map[string]interface{}) *SubvipBuySet {
+	if o_buyset["newcitys"] != nil { //新buyset
+		log.Println("GetMergeNewBuyset==新buyset")
+		return &SubvipBuySet{
+			qutil.IntAll(o_buyset["areacount"]),
+			util.ConfirmIntArr(o_buyset["newcitys"].([]interface{})),
+			qutil.IntAll(o_buyset["buyerclasscount"]),
+		}
+	} else { //旧buyset
+		log.Println("GetMergeNewBuyset==旧buyset")
+		areaCount := qutil.IntAll(o_buyset["areacount"])
+		buyerclasscount := qutil.IntAll(o_buyset["buyerclasscount"])
+		oldCitys := qutil.ObjToMap(o_buyset["citys"])
+		newCitys := []int{}
+		for _, v := range *oldCitys {
+			thisNum := qutil.IntAll(v)
+			if thisNum > SubVipPrice.CityMaxCount {
+				areaCount++
+			} else {
+				newCitys = append(newCitys, thisNum)
+			}
+		}
+		//省份数量自动转换全国
+		if areaCount > SubVipPrice.ProvinceMaxCount {
+			areaCount = -1
+			newCitys = []int{}
+		}
+		//行业数量自动转换全行业
+		if buyerclasscount > SubVipPrice.BuyerClassMaxCount {
+			buyerclasscount = -1
+		}
+		return &SubvipBuySet{
+			areaCount,
+			newCitys,
+			buyerclasscount,
+		}
+	}
+}
+
 //保存筛选日志
 func (this *vipSubscribeStruct) SaveSelectLog(userId, openId string, msg *VipSimpleMsg) string {
 	return util.MQFW.Save("subvip_select", map[string]interface{}{

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

@@ -410,11 +410,8 @@ func getUpgradeDetail(userId string, newBuySet, oldBuySet *entity.SubvipBuySet,
 			thisObj := qutil.ObjToMap((*rResult)[i])
 			thisStartTime := qutil.Int64All((*thisObj)["l_validtime"])
 			buySetMap := qutil.ObjToMap((*thisObj)["o_buyset"])
-			thisBuyset := &entity.SubvipBuySet{
-				qutil.IntAll((*buySetMap)["areacount"]),
-				util.ConfirmIntArr((*buySetMap)["newcitys"].([]interface{})),
-				qutil.IntAll((*buySetMap)["buyerclasscount"]),
-			}
+			thisBuyset := entity.JyVipSubStruct.GetMergeNewBuyset(*buySetMap)
+
 			this_price := getSubtotalPrice(thisBuyset, newBuySet, qutil.Int64All((*thisObj)["l_validtime"]), nowEndTime)
 			if this_price < 0 {
 				return -1, nil

+ 6 - 5
src/web/staticres/vipsubscribe/js/UpgradePrice.js

@@ -219,11 +219,12 @@ function getUpgradeFinalStatus(newBuyset, oldBuyset, t, endUnix, renewList, isTr
         for (var i = renewList.length - 1; i >= 0; i--) {
             var thisBuyset = renewList[i].o_buyset;
             var thisStartTime = renewList[i].l_validtime;
-            var old = {
-                "areacount": thisBuyset.areacount,  //省份数量
-                "buyerclasscount": thisBuyset.buyerclasscount,
-                "citys": thisBuyset.newcitys //购买省份中城市数量
-            }
+            // var old = {
+            //     "areacount": thisBuyset.areacount,  //省份数量
+            //     "buyerclasscount": thisBuyset.buyerclasscount,
+            //     "citys": thisBuyset.newcitys //购买省份中城市数量
+            // }
+            var old = getMergeNewBuyset(thisBuyset);
             var this_price = getSubPrice(old, Upgrade, thisStartTime, nowEndTime);
             if (this_price < 0) {
                 return [-2, false, false, []]

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

@@ -183,6 +183,51 @@ function checkPrice(price) {
     return price
 }
 
+//新旧buyset
+function getMergeNewBuyset(buyset, price) {
+    price = checkPrice(price);
+    if (buyset["newcitys"]) { //新buyset
+        console.log("GetMergeNewBuyset==新buyset");
+        return {
+            "areacount": buyset.areacount,  //省份数量
+            "buyerclasscount": buyset.buyerclasscount,
+            "citys": buyset.newcitys //购买省份中城市数量
+        }
+    } else { //旧buyset
+        console.log("GetMergeNewBuyset==旧buyset");
+        var areaCount = buyset.areacount;
+        var buyerclasscount = buyset.buyerclasscount;
+        var oldCitys = buyset.citys;
+        var newCitys = [];
+
+        if (!$.isEmptyObject(oldCitys)) {
+            for (var i in oldCitys) {
+                var thisLen = oldCitys[i];
+                if (thisLen === 0 || thisLen > price.cityMaxCount) {
+                    areaCount++
+                } else {
+                    newCitys.push(thisLen)
+                }
+            }
+        }
+
+        //省份数量自动转换全国
+        if (areaCount > price.provinceMaxCount) {
+            areaCount = -1;
+            newCitys = [];
+        }
+        //行业数量自动转换全行业
+        if (buyerclasscount > price.buyerClassMaxCount) {
+            buyerclasscount = -1
+        }
+        return {
+            "areacount": areaCount,  //省份数量
+            "buyerclasscount": buyerclasscount,
+            "citys": newCitys //购买省份中城市数量
+        }
+    }
+}
+
 //根据购买设置 获取支付金额
 function getsubVipOrderPriceBybuyset(buyset, t, price) {
     price = checkPrice(price);
@@ -343,7 +388,7 @@ function getVipEndDate(flag, value, endtime) {
         }
     }
     //获取当月最后一天
-    var lastDay = new Date(yearNum, monthNum+1, 0).getDate();
+    var lastDay = new Date(yearNum, monthNum + 1, 0).getDate();
     if (startDay < lastDay) {
         return new Date(yearNum, monthNum, startDay, 23, 59, 59).getTime() / 1000;
     } else {