admin
2020-04-17 fed386fafac07d40fa3f3627b8fcef13e2d2ec4f
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -581,6 +581,15 @@
         userLevel = UserLevelEnum.daRen;
      UserLevelEnum upperLevel =  UserLevelEnum.superVIP;
         
      CommonOrder commonOrder1 = hoList.get(0).getCommonOrder();
      Date downTime = commonOrder1.getThirdCreateTime();
      Integer urank = commonOrder1.getUrank();
      UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
      boolean direct = false;
      if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
         direct = true;
      }
      BigDecimal upperTotalMoney = new BigDecimal(0);
      List<GoodsRebateVO> voList = new ArrayList<>();
      for (HongBaoOrder hongBaoOrder : hoList) {
@@ -626,11 +635,11 @@
            upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel));
         } else if (type == 2) {
            upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, upperLevel));
         } else if (type == 3) {
            upperTotalMoney = upperTotalMoney.add(hongBao);
         }
      }
         
      CommonOrder commonOrder = hoList.get(0).getCommonOrder();
      Date downTime = commonOrder.getThirdCreateTime();
      
      // 团队补贴
      if (type == 3) {
@@ -639,13 +648,7 @@
         InviteOrderSubsidy inviteOrderSubsidy = inviteOrderSubsidyServiceV2.getByOrderNoAndType(uid, orderNo, sourceType);
         if (inviteOrderSubsidy != null) {
            teamSubsidy = inviteOrderSubsidy.getMoney();
            Integer urank = commonOrder.getUrank();
            UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
            boolean direct = false;
            if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
               direct = true;
            }
            // 计算原比例
            BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,buyerUserLevel, userLevel, direct);
            
            // 计算达人补贴
@@ -655,12 +658,13 @@
               lowerSubsidy = MoneyBigDecimalUtil.div(teamSubsidy.multiply(daRenRate), originRate);
            }
            
            if (userLevel != UserLevelEnum.superVIP && userLevel != UserLevelEnum.superVIP) {
            // 计算超级会员补贴
            if (userLevel != UserLevelEnum.superVIP && userLevel != UserLevelEnum.tearcher) {
               BigDecimal vipRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,   buyerUserLevel, 
                     UserLevelEnum.superVIP, direct);
               upperTotalMoney = upperTotalMoney.add(MoneyBigDecimalUtil.div(teamSubsidy.multiply(vipRate), originRate));
               System.out.println(upperTotalMoney);
            }
         } else {
            teamSubsidy = BigDecimal.valueOf(0.00);
            lowerSubsidy =  BigDecimal.valueOf(0.00);
@@ -687,9 +691,8 @@
         orderRebateVO.setUserLevel(userLevel.name());
      }
      
      // 上级返利
      // 超级会员返利
      if (upperLevel != null) {
         upperTotalMoney = upperTotalMoney.add(hongBao);
         orderRebateVO.setUpperFanLi("¥" + upperTotalMoney);
         orderRebateVO.setJumpLink(upperLevel.getDetailLink());
      }
@@ -746,14 +749,14 @@
         }
      } else {
         Date accountTime = hongBaoV2.getGetTime();
         if (accountTime != null) {
         // 到账时间 -红包金额限制
         if (accountTime != null && hongBao.compareTo(Constant.REWARD_COUPON_LIMIT_MONEY) <= 0) {
            boolean vip = userInviteService.verifyVIP(uid);
            Date endDay = DateUtil.plusDayDate(Constant.COUPON_REWARD_LIMIT_DAY, accountTime);
            long currentTime = java.lang.System.currentTimeMillis();
            if (endDay.getTime() > currentTime && !vip) {
               UserSystemCouponRecord couponRecord = userSystemCouponRecordService.getRecordByOrderNo(orderNo, null);
               if (couponRecord == null
                     || (couponRecord.getCouponType() == CouponTypeEnum.rebatePercentCoupon.name() && couponRecord.getState() != UserSystemCouponRecord.STATE_SUCCESS)) {
               if (couponRecord == null) {
                  orderRebateVO.setCoupon(true);
                  orderRebateVO.setCouponType(1);
                  orderRebateVO.setCouponText("立即使用");