package com.yeshi.fanli.util.vipshop;
|
|
import java.math.BigDecimal;
|
|
import org.yeshi.utils.BigDecimalUtil;
|
import org.yeshi.utils.NumberUtil;
|
|
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
|
import org.yeshi.utils.MoneyBigDecimalUtil;
|
import com.yeshi.fanli.util.StringUtil;
|
|
public class VipShopUtil {
|
|
private static String getBase64Str(String str) {
|
try {
|
return StringUtil.getBase64String(str);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
return null;
|
}
|
|
/**
|
* 获取分享的渠道标识
|
*
|
* @param uid
|
* @return String 返回类型
|
* @throws
|
* @Title: getShareChanTag
|
* @Description:
|
*/
|
public static String getShareChanTag(Long uid) {
|
return getBase64Str("share#" + uid);
|
}
|
|
/**
|
* 获取自购的渠道标识
|
*
|
* @param uid
|
* @return String 返回类型
|
* @throws
|
* @Title: getBuyChanTag
|
* @Description:
|
*/
|
public static String getBuyChanTag(Long uid) {
|
return getBase64Str("buy#" + uid);
|
|
}
|
|
public static String getCouponChanTag() {
|
return getBase64Str("coupon");
|
|
}
|
|
public static String getUidFromChanTag(String tag) {
|
String decodeTag = StringUtil.getFromBase64(tag);
|
return decodeTag.split("#")[1];
|
}
|
|
public static String getTypeFromChanTag(String tag) {
|
String decodeTag = StringUtil.getFromBase64(tag);
|
return decodeTag.split("#")[0];
|
}
|
|
public static BigDecimal getGoodsFanLiMoney(VIPGoodsInfo goods, BigDecimal rate) {
|
BigDecimal money = null;
|
BigDecimal hundred = new BigDecimal(100);
|
rate = MoneyBigDecimalUtil.div(rate, hundred);
|
money = MoneyBigDecimalUtil.mul(new BigDecimal(goods.getCommission()), rate);
|
return BigDecimalUtil.getWithNoZera(money).setScale(2);
|
}
|
|
public static BigDecimal getCouponPrice(VIPGoodsInfo goods) {
|
return new BigDecimal(goods.getVipPrice());
|
}
|
|
/**
|
* 获取订单详情的唯一标识
|
*
|
* @param orderSn
|
* @param goodsId
|
* @param sizeId
|
* @return String 返回类型
|
* @throws
|
* @Title: getOrderDetailIdentifyCode
|
* @Description:
|
*/
|
public static String getOrderDetailIdentifyCode(String orderSn, String goodsId, String sizeId) {
|
|
return StringUtil.Md5(orderSn + "#" + goodsId + "#" + sizeId);
|
}
|
|
public static boolean isVIPShopLink(String url) {
|
return url.contains(".vip.com/");
|
}
|
|
public static String parseGoodsIdByUrl(String url) {
|
try {
|
if (isVIPShopLink(url)) {
|
if (url.contains("detail-") || url.contains("product-")) {
|
String preUrl = url.split("\\?")[0];
|
String goodsId = preUrl.split("-")[preUrl.split("-").length - 1].replace(".html", "").replace(".htm",
|
"");
|
if (NumberUtil.isNumeric(goodsId))
|
return goodsId;
|
} else {
|
if (url.split("\\?").length > 1) {
|
String param = url.split("\\?")[1];
|
String[] params = param.split("&");
|
for (String p : params) {
|
String[] ps = p.split("=");
|
if (ps.length > 1 && ps[0].trim().equalsIgnoreCase("goodsId")) {
|
return ps[1].trim();
|
}
|
}
|
}
|
}
|
// 通过订单侠接口解析
|
return DingDanXiaApiUtil.parseGoodsIdFromLink(url);
|
}
|
} catch (Exception e) {
|
}
|
return null;
|
}
|
|
public static void main(String[] args) {
|
|
System.out.print(parseGoodsIdByUrl("https://mst.vip.com/x6M88WQc9Abq5h0CHNg1uw.php?wapid=mst_100099181&_src=mst&extra_banner=115099181&nova=1&nova_platform=1&mst_page_type=guide&goodsId=6920553939593155215&brandId=1712199535&actType=normal&launchId=&nmsns=shop_android-9.10.2-link&nst=product&nsbc=&nct=link&ncid=9ab423d2-932f-3916-b913-4ddf57e809ed&nabtid=13&nuid=59508964&nchl_param=share:9ab423d2-932f-3916-b913-4ddf57e809ed:1697182347995&mars_cid_a=9ab423d2-932f-3916-b913-4ddf57e809ed&chl_type=share"));
|
}
|
}
|