admin
2020-04-13 dd5b15229cb15459fa7c31ccea77dac28cbfafbd
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java
@@ -163,8 +163,22 @@
      BigDecimal commission = CommonGoodsUtil.getCommission(goods, params.getFanLiRate());
      moneyInfoVO.setFanliMoney("¥" + commission);
      moneyInfoVO.setMaxMoney("¥" + CommonGoodsUtil.getCommission(goods, params.getVipFanLiRate()));
      BigDecimal maxCommission = CommonGoodsUtil.getCommission(goods, params.getVipFanLiRate());
      if (params.getMaxRewardRate() != null)
         moneyInfoVO
               .setMaxMoney("¥" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
      else
         moneyInfoVO.setMaxMoney("¥" + maxCommission);
      moneyInfoVO.setShareMoney(CommonGoodsUtil.getCommissionInfo(goods, params.getShareRate()));
      moneyInfoVO.setRateInfo("返利比 " + MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)),
            CommonGoodsUtil.getAfterUseCouplePrice(goods)) + "%");
      moneyInfoVO.setMaxRateInfo("返利比 " + MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)),
            CommonGoodsUtil.getAfterUseCouplePrice(goods)) + "%");
      goodsInfo.setMoneyInfo(moneyInfoVO);
      // 券信息
@@ -243,6 +257,7 @@
      goodsInfo.setState(goods.getState() == null ? 0 : goods.getState());
      goodsInfo.setSalesCount(goods.getSalesCount());
      goodsInfo.setPicUrl(goods.getPictUrl());
      goodsInfo.setDescription(goods.getDescription());
      Integer shopType = goods.getUserType();
      if (shopType != null && shopType == 1) {
@@ -261,11 +276,19 @@
         TaoBaoHongBaoInfo taoBaoHongBaoInfo = goods.getTaoBaoHongBaoInfo();
         moneyInfoVO.setFanliMoney("¥" + taoBaoHongBaoInfo.getHongbao());
         moneyInfoVO.setShareMoney("¥" + taoBaoHongBaoInfo.getHongbao());
         moneyInfoVO.setMaxMoney("¥" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate()));
         if (params.getMaxRewardRate() != null)
            moneyInfoVO.setMaxMoney("¥" + taoBaoHongBaoInfo.getHongbao()
                  .add(MoneyBigDecimalUtil.mul(taoBaoHongBaoInfo.getHongbao(), params.getMaxRewardRate())));
         else
            moneyInfoVO.setMaxMoney("¥" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate()));
      } else {
         BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate());
         moneyInfoVO.setFanliMoney("¥" + commission);
         moneyInfoVO.setMaxMoney("¥" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate()));
         if (params.getMaxRewardRate() != null)
            moneyInfoVO.setMaxMoney(
                  "¥" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
         else
            moneyInfoVO.setMaxMoney("¥" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate()));
         moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate()));
      }
      goodsInfo.setMoneyInfo(moneyInfoVO);
@@ -286,6 +309,7 @@
         coupon.setStartTime(sdf.format(new Date(Long.parseLong(couponEffectiveStartTime))));
         coupon.setLink(taoBaoQuanInfo.getCouponLink());
         coupon.setStartFee(taoBaoQuanInfo.getCouponStartFee());
         coupon.setShopCoupon(goods.isShopCoupon());
         goodsInfo.setHasCoupon(true);
         goodsInfo.setCouponInfo(coupon);
      }
@@ -342,6 +366,7 @@
      goodsInfo.setTitle(goods.getTitle());
      goodsInfo.setSalesType(1); // 默认月销量
      goodsInfo.setZkPrice(goods.getZkPrice());
      goodsInfo.setDescription(goods.getDescription());
      String provcity = goods.getProvcity();
      if (!StringUtil.isNullOrEmpty(provcity)) {
@@ -387,10 +412,37 @@
      // 资金信息
      MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
      moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
      BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate());
      BigDecimal baseCommisstion = null;
      if (params.getBaseFanliRate() != null)
         baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate());
      moneyInfoVO.setFanliMoney("¥" + commission);
      moneyInfoVO.setMaxMoney("¥" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate()));
      if (params.getMaxRewardRate() != null)
         moneyInfoVO
               .setMaxMoney("¥" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
      else {// 只有有VIP后的版本才会显示返利比
         BigDecimal price = TaoBaoUtil.getAfterUseCouplePrice(goods);
         BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setRateInfo("返利比 " + rate + "%");
         BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate());
         BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setMaxRateInfo("返利比 " + maxRate + "%");
         moneyInfoVO.setMaxMoney("¥" + maxCommission);
         if (baseCommisstion != null) {
            String desc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  commission.subtract(baseCommisstion).setScale(2).toString());
            String maxDesc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  maxCommission.subtract(baseCommisstion).setScale(2).toString());
            moneyInfoVO.setCompositionInfo(desc);
            moneyInfoVO.setMaxCompositionInfo(maxDesc);
         }
      }
      moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate()));
      goodsInfo.setMoneyInfo(moneyInfoVO);
      // 券信息
@@ -416,9 +468,13 @@
            coupon.setStartTime(goods.getCouponEffectiveStartTime().replace("-", "."));
         }
         coupon.setLink(TaoBaoCouponUtil.getCoupleUrl(goods.getCouponActivityId(), null, goods.getAuctionId() + ""));
         if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
            coupon.setLink(goods.getCouponLink());
         else
            coupon.setLink(
                  TaoBaoCouponUtil.getCoupleUrl(goods.getCouponActivityId(), null, goods.getAuctionId() + ""));
         coupon.setStartFee(goods.getCouponStartFee());
         coupon.setShopCoupon(goods.isShopCoupon());
         goodsInfo.setHasCoupon(true);
         goodsInfo.setCouponInfo(coupon);
      }
@@ -552,7 +608,32 @@
      moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
      BigDecimal commission = JDUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
      moneyInfoVO.setFanliMoney("¥" + commission);
      moneyInfoVO.setMaxMoney("¥" + JDUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate()));
      BigDecimal baseCommisstion = null;
      if (params.getBaseFanliRate() != null)
         baseCommisstion = JDUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
      if (params.getMaxRewardRate() != null)
         moneyInfoVO
               .setMaxMoney("¥" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
      else {
         BigDecimal price = JDUtil.getQuanPrice(goods);
         BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setRateInfo("返利比 " + rate + "%");
         BigDecimal maxCommission = JDUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
         BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setMaxRateInfo("返利比 " + maxRate + "%");
         moneyInfoVO.setMaxMoney("¥" + maxCommission);
         if (baseCommisstion != null) {
            String desc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  commission.subtract(baseCommisstion).setScale(2).toString());
            String maxDesc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  maxCommission.subtract(baseCommisstion).setScale(2).toString());
            moneyInfoVO.setCompositionInfo(desc);
            moneyInfoVO.setMaxCompositionInfo(maxDesc);
         }
      }
      moneyInfoVO.setShareMoney("¥" + JDUtil.getGoodsFanLiMoney(goods, params.getShareRate()));
      goodsInfo.setMoneyInfo(moneyInfoVO);
@@ -693,9 +774,7 @@
      moneyInfoVO.setMoneyType(1); // 默认显示:返 ¥6.6
      BigDecimal commission = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
      moneyInfoVO.setFanliMoney("¥" + commission);
      moneyInfoVO.setMaxMoney("¥" + PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate()));
      moneyInfoVO.setShareMoney("¥" + PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getShareRate()));
      goodsInfo.setMoneyInfo(moneyInfoVO);
      moneyInfoVO.setShareMoney("¥" + commission);
      Boolean hasCoupon = goods.getHasCoupon();
      if (hasCoupon != null && hasCoupon) {
@@ -736,6 +815,35 @@
         goodsInfo.setCouponInfo(coupon);
      }
      BigDecimal baseCommisstion = null;
      if (params.getBaseFanliRate() != null)
         baseCommisstion = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
      if (params.getMaxRewardRate() != null)
         moneyInfoVO
               .setMaxMoney("¥" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
      else {
         BigDecimal price = goodsInfo.getCouponPrice() != null ? goodsInfo.getCouponPrice() : goodsInfo.getZkPrice();
         BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setRateInfo("返利比 " + rate + "%");
         BigDecimal maxCommission = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
         BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
         moneyInfoVO.setMaxRateInfo("返利比 " + maxRate + "%");
         moneyInfoVO.setMaxMoney("¥" + maxCommission);
         if (baseCommisstion != null) {
            String desc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  commission.subtract(baseCommisstion).setScale(2).toString());
            String maxDesc = String.format("佣金¥ %s+平台补贴¥ %s", baseCommisstion.setScale(2).toString(),
                  maxCommission.subtract(baseCommisstion).setScale(2).toString());
            moneyInfoVO.setCompositionInfo(desc);
            moneyInfoVO.setMaxCompositionInfo(maxDesc);
         }
      }
      goodsInfo.setMoneyInfo(moneyInfoVO);
      // 店铺信息
      String mallName = goods.getMallName();
      if (!StringUtil.isMobile(mallName)) {