package com.yeshi.fanli.util.suning;
|
|
import java.math.BigDecimal;
|
|
import org.yeshi.utils.BigDecimalUtil;
|
import org.yeshi.utils.NumberUtil;
|
|
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
|
import org.yeshi.utils.MoneyBigDecimalUtil;
|
import com.yeshi.fanli.util.StringUtil;
|
|
public class SuningUtil {
|
public static BigDecimal getGoodsFanLiMoney(SuningGoodsInfo goods, BigDecimal rate) {
|
|
BigDecimal hundred = new BigDecimal(100);
|
rate = MoneyBigDecimalUtil.div(rate, hundred);
|
|
BigDecimal afterUseCouponPrice = getCouponPrice(goods);
|
|
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);
|
}
|
|
/**
|
* 获取券后价
|
*
|
* @param goods
|
* @return
|
*/
|
|
public static BigDecimal getCouponPrice(SuningGoodsInfo goods) {
|
String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
|
if (StringUtil.isNullOrEmpty(commodityPrice)) {
|
commodityPrice = goods.getCommodityInfo().getSnPrice();
|
}
|
|
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()));
|
}
|
}
|
return afterUseCouponPrice;
|
}
|
|
/**
|
* 获取拼接的商品ID
|
*
|
* @param supplierCode
|
* @param goodsId
|
* @return String 返回类型
|
* @throws
|
* @Title: getConcatGoodsIId
|
* @Description:
|
*/
|
public static String getConcatGoodsIId(String supplierCode, String goodsId) {
|
|
return supplierCode + "-" + goodsId;
|
}
|
|
public static String getFullSupplierCode(String supplierCode) {
|
for (int i = 0; i < 10; i++) {
|
if (supplierCode.length() < 10)
|
supplierCode = "0" + supplierCode;
|
}
|
|
return supplierCode;
|
}
|
|
/**
|
* 通过拼接的商品ID解析出来正确的商品ID
|
*
|
* @param concatGoodsId
|
* @return String[] 返回类型
|
* @throws
|
* @Title: getGoodsIdDetail
|
* @Description:
|
*/
|
public static String[] getGoodsIdDetail(String concatGoodsId) {
|
String[] sts = concatGoodsId.split("-");
|
String supplierCode = sts[0];
|
for (int i = 0; i < 10; i++) {
|
if (supplierCode.length() < 10)
|
supplierCode = "0" + supplierCode;
|
}
|
return new String[]{supplierCode, sts[1]};
|
}
|
|
public static String getProductUrl(String supplierCode, String goodsId) {
|
|
return String.format("https://product.suning.com/%s/%s.html", supplierCode, goodsId);
|
}
|
|
public static boolean isSuningLink(String url) {
|
return (url.contains(".suning.com/")
|
&& (url.contains(".suning.com/product/") || url.contains("product.suning.com/")));
|
}
|
|
public static String parseGoodsIdByUrl(String url) {
|
try {
|
if (isSuningLink(url)) {
|
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;
|
}
|
|
}
|