From 52bc8ff0de3c7538d1401423c1cba9615c0c2082 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 18 六月 2020 17:22:24 +0800
Subject: [PATCH] 发圈商品来源修改 + 云发单规则调整

---
 fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java |   54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
index df1298c..f0a5d26 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
@@ -3,6 +3,7 @@
 import java.math.BigDecimal;
 
 import org.yeshi.utils.BigDecimalUtil;
+import org.yeshi.utils.NumberUtil;
 
 import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -14,16 +15,28 @@
 		BigDecimal hundred = new BigDecimal(100);
 		rate = MoneyBigDecimalUtil.div(rate, hundred);
 
-		BigDecimal afterUseCouponPrice = new BigDecimal(goods.getCommodityInfo().getCommodityPrice());
-		if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {
-			// 鏈夊埜
-			BigDecimal startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit());
-			if (afterUseCouponPrice.compareTo(startPrice) >= 0) {
-				afterUseCouponPrice = afterUseCouponPrice.subtract(startPrice);
-			}
+		String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
+		if (StringUtil.isNullOrEmpty(commodityPrice)) {
+			commodityPrice = goods.getCommodityInfo().getSnPrice();
 		}
 
-		BigDecimal money = MoneyBigDecimalUtil.mul(afterUseCouponPrice, rate);
+		BigDecimal afterUseCouponPrice = new BigDecimal(commodityPrice);
+		if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {
+			// 鏈夊埜
+			BigDecimal startPrice = null;
+			if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) {
+				startPrice = new BigDecimal(goods.getCouponInfo().getCouponValue());
+			} else
+				startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit());
+			if (afterUseCouponPrice.compareTo(startPrice) >= 0) {
+				afterUseCouponPrice = afterUseCouponPrice.subtract(new BigDecimal(goods.getCouponInfo().getCouponValue()));
+			}
+		}
+		
+		BigDecimal commission=MoneyBigDecimalUtil.mul(afterUseCouponPrice,MoneyBigDecimalUtil.div(new BigDecimal(goods.getCommodityInfo().getRate()), new BigDecimal(100),5));
+
+		BigDecimal money = MoneyBigDecimalUtil.mul(commission,
+				rate);
 		return BigDecimalUtil.getWithNoZera(money).setScale(2);
 	}
 
@@ -41,13 +54,13 @@
 
 		return supplierCode + "-" + goodsId;
 	}
-	
-	public static String getFullSupplierCode(String supplierCode){
+
+	public static String getFullSupplierCode(String supplierCode) {
 		for (int i = 0; i < 10; i++) {
 			if (supplierCode.length() < 10)
 				supplierCode = "0" + supplierCode;
 		}
-		
+
 		return supplierCode;
 	}
 
@@ -75,4 +88,23 @@
 		return String.format("https://product.suning.com/%s/%s.html", supplierCode, goodsId);
 	}
 
+	public static String parseGoodsIdByUrl(String url) {
+		try {
+			if (url.contains(".suning.com/")
+					&& (url.contains(".suning.com/product/") || url.contains("product.suning.com/"))) {
+				String preUrl = url.split("\\?")[0];
+				String[] sts = preUrl.split("/");
+				if (sts.length > 2) {
+					String goodsId = sts[sts.length - 1].replace(".html", "").replace(".htm", "");
+					String supplierCode = sts[sts.length - 2];
+					if (NumberUtil.isNumeric(goodsId) && NumberUtil.isNumeric(supplierCode)) {
+						return supplierCode + "-" + goodsId;
+					}
+				}
+			}
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
 }

--
Gitblit v1.8.0