yujian
2020-04-13 a5bc9c4e52f98032b287a42fd243c2ffcb7d58f6
fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java
@@ -23,6 +23,7 @@
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.CommonOrderGoods;
import com.yeshi.fanli.entity.order.HongBaoOrder;
@@ -36,6 +37,7 @@
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.service.manger.user.UserLevelManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
@@ -76,6 +78,9 @@
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Resource
   private UserLevelManager userLevelManager;
   /**
    * 添加红包信息
@@ -129,20 +134,30 @@
                  switch (t) {
                  case HongBaoV2.TYPE_ZIGOU:
                     userOrderMsgNotificationService.orderFanLiStatistic(uid, orderId, orderType,
                           commonOrder.getPayment(), money, goodsCount, state);
                           commonOrder.getPayment(), money, goodsCount, commonOrder.getState(),
                           commonOrder.getThirdCreateTime());
                     break;
                  case HongBaoV2.TYPE_SHARE_GOODS:
                     userOrderMsgNotificationService.orderShareStatistic(uid, orderId, orderType,
                           commonOrder.getPayment(), money, goodsCount, state);
                           commonOrder.getPayment(), money, goodsCount, commonOrder.getState(),
                           commonOrder.getThirdCreateTime());
                     break;
                  case HongBaoV2.TYPE_YIJI:
                     userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType,
                           commonOrder.getPayment(), money, goodsCount, state);
                           commonOrder.getPayment(), money, goodsCount, commonOrder.getState(),
                           commonOrder.getThirdCreateTime());
                     break;
                  case HongBaoV2.TYPE_ERJI:
                     userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType,
                           commonOrder.getPayment(), money, goodsCount, state);
                     userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType,    commonOrder.getPayment(), money,
                           goodsCount,  commonOrder.getState(), commonOrder.getThirdCreateTime());
                     break;
                  case HongBaoV2.TYPE_SHARE_YIJI:
                     userOrderMsgNotificationService.orderShareFirstLevelStatistic(uid, orderId, orderType,
                           commonOrder.getPayment(), money, goodsCount, state, notify.getBeizhu());
@@ -471,7 +486,7 @@
            }
         }
         HongBaoV2 hongBao = createFanLiHongBao(commonOrder, fanliRate, mianDanMoney, vip);
         HongBaoV2 hongBao = createFanLiHongBao(commonOrder, fanliRate, mianDanMoney);
         if (hongBao == null)
            return;
         addFanLiOrShareHongBao(hongBao, commonOrder, notificationMap);
@@ -630,7 +645,8 @@
      UserInfo user = userInfoService.selectAvailableByPrimaryKey(uid);
      if (user == null)
         return null;
      boolean isVIP = userVIPInfoService.isVIP(uid);
      UserLevelEnum level = userLevelManager.getUserLevel(uid);
      HongBaoV2 child = new HongBaoV2();
      child.setParent(parent);
@@ -649,13 +665,11 @@
      }
      child.setUserInfo(user);
      child.setUrank(user.getRank());
      child.setUrank(level.getOrderRank());
      child.setVersion(2);
      child.setCreateTime(new Date());
      child.setOrderType(commonOrder.getSourceType());
      if (child.getMoney() == null)
         return null;
      if (child.getMoney().compareTo(new BigDecimal(0)) <= 0 && !isVIP)
         return null;
      return child;
   }
@@ -668,13 +682,11 @@
    *            -返利比例
    * @param mianDanMoney
    *            免单金额
    * @param isVIP-是否为VIP订单
    * @return
    * @throws HongBaoException
    * @throws UserAccountException
    */
   private HongBaoV2 createFanLiHongBao(CommonOrder commonOrder, BigDecimal fanliRate, BigDecimal mianDanMoney,
         boolean isVIP) throws HongBaoException, UserAccountException {
   private HongBaoV2 createFanLiHongBao(CommonOrder commonOrder, BigDecimal fanliRate, BigDecimal mianDanMoney) throws HongBaoException, UserAccountException {
      HongBaoV2 hongBao = new HongBaoV2();
      hongBao.setUserInfo(commonOrder.getUserInfo());
      hongBao.setCreateTime(new Date());
@@ -704,9 +716,11 @@
      UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
      if (user == null)
         throw new UserAccountException(1001, "用户不存在/被封禁");
      if (isVIP) {
         hongBao.setUrank(100);// VIP的等级设置为100
      } else {
      UserLevelEnum userLevel = userLevelManager.getUserLevel(commonOrder.getUserInfo().getId(),
            commonOrder.getThirdCreateTime());
      if (userLevel != null)
         hongBao.setUrank(userLevel.getOrderRank());
      else {
         hongBao.setUrank(user.getRank());
      }
      hongBao.setOrderType(commonOrder.getSourceType());
@@ -850,8 +864,10 @@
      UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
      if (user == null)
         throw new UserAccountException(1001, "用户不存在/被封禁");
      if (isVip)
         hongBao.setUrank(100);
      UserLevelEnum userLevel = userLevelManager.getUserLevel(commonOrder.getUserInfo().getId(),
            commonOrder.getThirdCreateTime());
      if (userLevel != null)
         hongBao.setUrank(userLevel.getOrderRank());
      else
         hongBao.setUrank(user.getRank());
      hongBao.setUserInfo(user);