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