admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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"));
    }
}