From 1c23d47c352ef57bbd4a59e00d4d5b4585853f1e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 15 十月 2020 09:53:25 +0800
Subject: [PATCH] 拼多多搜索bug
---
fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 12 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..99327b3 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,9 +3,10 @@
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;
+import org.yeshi.utils.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
public class SuningUtil {
@@ -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