admin
2020-06-10 271ae63c20fcbe28d29c47f1881138ff6551a2a1
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;
   }
}