package com.ks.lijin.utils.taobao;
|
|
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
|
import org.yeshi.utils.StringUtil;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
|
public class TaoBaoCouponUtil {
|
|
|
/**
|
* 获取券后价--(无券可用返回的是在售价)
|
* @param goodsBrief
|
* @return
|
*/
|
public static BigDecimal getCouplePrice(TaoBaoGoodsBrief goodsBrief) {
|
if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo()) || "无".equals(goodsBrief.getCouponInfo())) {
|
return goodsBrief.getZkPrice();
|
} else {
|
List<BigDecimal> list = getCouponInfo(goodsBrief.getCouponInfo());
|
BigDecimal startFee = list.get(0);
|
BigDecimal couponAccount = list.get(1);
|
if (startFee.compareTo(goodsBrief.getZkPrice()) <= 0
|
&& goodsBrief.getZkPrice().compareTo(couponAccount) > 0) {
|
BigDecimal finalPrice = goodsBrief.getZkPrice().subtract(couponAccount);
|
return finalPrice;
|
} else {// 不能用券
|
return goodsBrief.getZkPrice();
|
}
|
}
|
}
|
|
|
public static List<BigDecimal> getCouponInfo(String info) {
|
Pattern p = Pattern.compile("满\\d+(\\.\\d+)?元减\\d+(\\.\\d+)?元");
|
Matcher matcher = p.matcher(info);
|
Pattern p2 = Pattern.compile("\\d+元无条件券");
|
Matcher matcher2 = p2.matcher(info);
|
List<BigDecimal> list = new ArrayList<BigDecimal>();
|
if (matcher.matches()) {
|
String[] sts = info.split("元减");
|
list.add(new BigDecimal(sts[0].replace("满", "").trim()));
|
list.add(new BigDecimal(sts[1].replace("元", "").trim()));
|
} else if (matcher2.matches()) {
|
String[] split = info.split("元无条件券");
|
list.add(new BigDecimal(0));
|
list.add(new BigDecimal(split[0]));
|
} else {
|
list.add(new BigDecimal(0));
|
list.add(new BigDecimal(0));
|
}
|
return list;
|
}
|
|
|
|
}
|