From 009e25b40c04d0a66d6d6554c19e542f0e6f9d18 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 23 七月 2019 10:49:58 +0800 Subject: [PATCH] 根据粘贴板推荐修改 --- fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java | 87 +++++++++++++++++++++++++------------------ 1 files changed, 50 insertions(+), 37 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java index ea48da6..fc0d0cc 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java @@ -1,6 +1,8 @@ package com.yeshi.fanli.util.pinduoduo; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -12,9 +14,11 @@ import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.yeshi.utils.BigDecimalUtil; +import org.yeshi.utils.HttpUtil; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.util.MoneyBigDecimalUtil; +import com.yeshi.fanli.util.StringUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -31,30 +35,25 @@ */ public static BigDecimal getGoodsFanLiMoney(PDDGoodsDetail goods, BigDecimal rate) { BigDecimal money = null; - BigDecimal price = new BigDecimal(goods.getMinNormalPrice()); - BigDecimal promotionRate = new BigDecimal(goods.getPromotionRate()); + BigDecimal hundred = new BigDecimal(100); + rate = MoneyBigDecimalUtil.div(rate, hundred); + BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred).setScale(2); + BigDecimal promotionRate = MoneyBigDecimalUtil.div(new BigDecimal(goods.getPromotionRate()), new BigDecimal(1000)); Boolean hasCoupon = goods.getHasCoupon(); if (hasCoupon == null || !hasCoupon) { - money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul( - MoneyBigDecimalUtil.mul(price, promotionRate),new BigDecimal("0.001")), - MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); + money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(price, promotionRate), rate); } else { - BigDecimal amount = new BigDecimal(goods.getCouponDiscount()); - BigDecimal startFree = new BigDecimal(goods.getCouponMinOrderAmount()); + BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred); + BigDecimal startFree = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponMinOrderAmount()), hundred); if (startFree.compareTo(price) <= 0 && price.compareTo(amount) > 0) { BigDecimal finalPrice = price.subtract(amount); - money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil - .mul(MoneyBigDecimalUtil.mul(finalPrice, promotionRate), new BigDecimal("0.001")), - MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); - + money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(finalPrice, promotionRate),rate); } else {// 涓嶈兘鐢ㄥ埜 - money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul( - MoneyBigDecimalUtil.mul(price,promotionRate), new BigDecimal("0.001")), - MoneyBigDecimalUtil.div(rate, new BigDecimal(100))); + money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(price,promotionRate), rate); } } - return BigDecimalUtil.getWithNoZera(money); + return BigDecimalUtil.getWithNoZera(money).setScale(2); } @@ -65,42 +64,28 @@ * @return */ public static BigDecimal getQuanPrice(PDDGoodsDetail goods) { - BigDecimal price = new BigDecimal(goods.getMinNormalPrice()); + BigDecimal hundred = new BigDecimal(100); + BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred); Boolean hasCoupon = goods.getHasCoupon(); if (hasCoupon == null || !hasCoupon) { - return price; + return price.setScale(2); } - BigDecimal amount = new BigDecimal(goods.getCouponDiscount()); - BigDecimal startFree = new BigDecimal(goods.getCouponMinOrderAmount()); + BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred); + BigDecimal startFree = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponMinOrderAmount()), hundred); if (startFree.compareTo(price) <= 0) { BigDecimal quanPrice = MoneyBigDecimalUtil.sub(price, amount); - return quanPrice; + return quanPrice.setScale(2); } else { - return price; + return price.setScale(2); } } - public static String getSaleCount(long count) { - String salesCountMidea = null; - if (count < 10000) { - salesCountMidea = count + ""; - } else { - double sales = count; - salesCountMidea = String.format("%.1f", sales / 10000); - salesCountMidea = salesCountMidea + "涓�"; - } - return salesCountMidea; - } - - - - public static List<String> getDetailImages(Long id) { List<String> imgList = new ArrayList<>(); try { - Document doc = Jsoup.connect("http://yangkeduo.com/goods.html?goods_id="+id) + Document doc = Jsoup.connect("http://yangkeduo.com/goods.html?goods_id=" + id) .userAgent( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36") .get(); @@ -138,4 +123,32 @@ } + public static List<String> suggestSearch(String key) { + List<String> list = new ArrayList<>(); + if (StringUtil.isNullOrEmpty(key)) + return list; + String url = null; + try { + url = String.format("http://apiv3.yangkeduo.com/search_suggest?query=%s&pdduid=0", + URLEncoder.encode(key, "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + if (url == null) + return list; + try { + String result = HttpUtil.get(url); + JSONObject dataJSON = JSONObject.fromObject(result); + JSONArray array = dataJSON.optJSONArray("suggest_list"); + for (int i = 0; i < array.size(); i++) { + String sk = array.optJSONObject(i).optJSONObject("item_data").optString("suggestion"); + if (!StringUtil.isNullOrEmpty(sk)) + list.add(sk); + } + } catch (Exception e) { + } + return list; + } + } -- Gitblit v1.8.0