admin
2019-07-31 f253c6f0ce5e708850f8e3c84a6a9008fc37df5f
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -101,9 +101,9 @@
      System.out.println(result);
   }
   /**
    * 搜索网页
    *
    * @param searchFilter
    * @return
    */
@@ -200,9 +200,9 @@
      return searchResult;
   }
   
   /**
    * 搜索网页
    *
    * @param searchFilter
    * @return
    */
@@ -270,7 +270,6 @@
      return null;
   }
   private static JDGoods parseGoods(String data) {
      JDGoods goods = new JDGoods();
      JSONObject json = JSONObject.fromObject(data);
@@ -314,7 +313,6 @@
         goods.setPinGouInfo(jdPinGouInfo);
      } 
      
      String finalPrice = json.optString("finalPrice");
      if (!StringUtil.isNullOrEmpty(finalPrice)) {
         // 券信息
@@ -329,13 +327,12 @@
         } 
      }
      
      return goods;
   }
   
   /**
    * 商品佣金计算
    *
    * @param goods
    * @param rate
    * @return
@@ -358,29 +355,29 @@
      
      JDCouponInfo couponInfo = goods.getCouponInfo();
      if (couponInfo == null) {
         money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
               MoneyBigDecimalUtil.mul(price,commissionInfo.getCommissionShare()),
               new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
         money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
               .mul(MoneyBigDecimalUtil.mul(price, commissionInfo.getCommissionShare()), new BigDecimal("0.01")),
               MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
      } else {
         BigDecimal quota = couponInfo.getQuota();
         BigDecimal discount = couponInfo.getDiscount();
         if (quota.compareTo(price) <= 0 && price.compareTo(discount) > 0) {
         
            BigDecimal finalPrice = price.subtract(discount);
            money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
                  .mul(MoneyBigDecimalUtil.mul(finalPrice, commissionInfo.getCommissionShare()), new BigDecimal("0.01")),
                  MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
            money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
                  MoneyBigDecimalUtil.mul(finalPrice, commissionInfo.getCommissionShare()),
                  new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
         } else {// 不能用券
            money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
                  MoneyBigDecimalUtil.mul(price,commissionInfo.getCommissionShare()),
                  new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
            money = MoneyBigDecimalUtil.mul(
                  MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(price, commissionInfo.getCommissionShare()),
                        new BigDecimal("0.01")),
                  MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
         }
         
      }
      return BigDecimalUtil.getWithNoZera(money);
   }
   
   /**
    * 计算商品券后价,没有券则返回原价
@@ -412,9 +409,9 @@
      }
   }
   
   /**
    * 销量处理
    *
    * @param count
    * @return
    */
@@ -432,6 +429,7 @@
   
   /** 
    * 搜索候选词
    *
    * @param key
    * @return
    */
@@ -464,4 +462,23 @@
      return list;
   }
   /**
    * 根据链接提取商品ID
    * @param url
    * @return
    */
   public static String parseJDSkuIdByUrl(String url) {
      try {
         if (url.startsWith("https://item.m.jd.com/product/") || url.startsWith("http://item.m.jd.com/product/")
               || url.startsWith("https://item.jd.com/") || url.startsWith("http://item.jd.com/")) {
            String preUrl = url.split("\\?")[0];
            String index = preUrl.split("/")[preUrl.split("/").length - 1];
            index = index.split("\\.")[0];
            return index.trim();
         }
      } catch (Exception e) {
      }
      return null;
   }
}