| | |
| | | import java.io.InputStreamReader;
|
| | | import java.io.UnsupportedEncodingException;
|
| | | import java.math.BigDecimal;
|
| | | import java.net.URLDecoder;
|
| | | import java.net.URLEncoder;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Collections;
|
| | | import java.util.Comparator;
|
| | | import java.util.HashMap;
|
| | | import java.util.Iterator;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | |
| | | import org.jsoup.select.Elements;
|
| | | import org.yeshi.utils.BigDecimalUtil;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | | import org.yeshi.utils.NumberUtil;
|
| | |
|
| | | import com.yeshi.fanli.dto.GoodsClassDTO;
|
| | | import com.yeshi.fanli.dto.jd.JDCommissionInfo;
|
| | |
| | | import com.yeshi.fanli.dto.jd.JDSearchResult;
|
| | | import com.yeshi.fanli.dto.jd.JDShopInfo;
|
| | | import com.yeshi.fanli.entity.jd.JDGoods;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | * 通过链接id
|
| | | * |
| | | * @param url
|
| | | * @return
|
| | | */
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | |
|
| | | /**
|
| | | * 根据 u.jd短连接获取真实的商品id
|
| | | * |
| | | * @param url
|
| | | * @return
|
| | | */
|
| | |
| | | Invocable in = (Invocable) engine;
|
| | | String data = in.invokeFunction("getData").toString();
|
| | | String link = data.substring(1, data.length()-1);
|
| | | |
| | | // 将链接中未encode的参数encode
|
| | | String param = link.split("\\?")[1];
|
| | | String host = link.split("\\?")[0];
|
| | | String[] params = param.split("&");
|
| | | String paramStr = "";
|
| | | for (String p : params) {
|
| | | String value = p.substring(p.indexOf("=") + 1);
|
| | | String key = p.substring(0, p.indexOf("="));
|
| | | if (URLDecoder.decode(value, "UTF-8").equalsIgnoreCase(value)) {
|
| | | value = URLEncoder.encode(value, "UTF-8");
|
| | | }
|
| | | paramStr += key + "=" + value + "&";
|
| | | }
|
| | | link = host + "?" + paramStr;
|
| | | String realLink = HttpUtil.getLocation(link);
|
| | | realLink = realLink.substring(realLink.indexOf("sku=") + 4, realLink.length());
|
| | | return realLink.substring(0, realLink.indexOf("&"));
|
| | | Map<String, String> paramsMap = new HashMap<>();
|
| | |
|
| | | param = realLink.split("\\?")[1];
|
| | | params = param.split("&");
|
| | | for (String p : params) {
|
| | | String value = p.substring(p.indexOf("=") + 1);
|
| | | String key = p.substring(0, p.indexOf("="));
|
| | | paramsMap.put(key, value);
|
| | | }
|
| | | if (!StringUtil.isNullOrEmpty(paramsMap.get("sku"))) {
|
| | | return paramsMap.get("sku");
|
| | | }
|
| | |
|
| | | if (!StringUtil.isNullOrEmpty(paramsMap.get("wareId"))) {
|
| | | return paramsMap.get("wareId");
|
| | | }
|
| | |
|
| | | // 判断纯数字大于4位的返回
|
| | | for (Iterator<String> its = paramsMap.keySet().iterator(); its.hasNext();) {
|
| | | String key = its.next();
|
| | | String value = paramsMap.get(key);
|
| | | if (NumberUtil.isNumeric(value) && value.length() >= 4) {
|
| | | return value;
|
| | | }
|
| | | }
|
| | | String id = JDUtil.getJDGoodsId(realLink);
|
| | | if (!StringUtil.isNullOrEmpty(id)) {
|
| | | return id;
|
| | | }
|
| | | LogHelper.error("京东短接解析失败:" + url);
|
| | | return null;
|
| | | }
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | LogHelper.errorDetailInfo(e, "京东短链获取商品ID失败:", url);
|
| | | }
|
| | | return null;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | /**
|
| | | * 查询天猫商品图片、标题
|
| | |
| | | }
|
| | | return getShowCouponInfo(goods.getCouponInfoList(), price);
|
| | | }
|
| | | |
| | | |
| | | |
| | | |
| | |
|
| | | }
|