admin
2020-04-21 0b57cfd62e842b309d03467b96a331c673ecad7c
fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java
File was renamed from fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImplV2.java
@@ -22,7 +22,6 @@
import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.exception.order.InviteOrderSubsidyException;
import com.yeshi.fanli.exception.order.OrderTeamRewardException;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
@@ -33,12 +32,13 @@
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.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
@Service
public class InviteOrderSubsidyServiceImplV2 implements InviteOrderSubsidyService {
public class InviteOrderSubsidyServiceImpl implements InviteOrderSubsidyService {
   @Resource
   private InviteOrderSubsidyMapper inviteOrderSubsidyMapper;
@@ -84,9 +84,8 @@
      return inviteOrderSubsidyMapper.listByOrderNoAndType(orderNo, type);
   }
   @Transactional(rollbackFor = Exception.class)
   private void addOrderSubsidy(InviteOrderSubsidy orderSubsidy)
         throws InviteOrderSubsidyException, OrderTeamRewardException, CommonOrderException {
         throws InviteOrderSubsidyException, CommonOrderException {
      if (orderSubsidy.getMoney() == null || StringUtil.isNullOrEmpty(orderSubsidy.getOrderNo())
            || orderSubsidy.getSourceType() == null || orderSubsidy.getUid() == null)
         throw new InviteOrderSubsidyException(1, "数据不完整");
@@ -121,19 +120,19 @@
         // 必须是自购订单才返利
         HongBaoV2 parent = hongBaoV2Service.selectByPrimaryKey(list.get(0).getHongBaoV2().getId());
         if (parent != null
               && (parent.getType() == HongBaoV2.TYPE_SHARE_GOODS || parent.getType() == HongBaoV2.TYPE_ZIGOU)) {// 不是超级会员的自购/分享才补贴
               && (parent.getType() == HongBaoV2.TYPE_SHARE_GOODS || parent.getType() == HongBaoV2.TYPE_ZIGOU)) {//
            List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderId);
            if (orderList == null || orderList.size() == 0)
               throw new InviteOrderSubsidyException(10, "订单为空");
            CommonOrder firstOrder = orderList.get(0);
            Date placeOrderTime = firstOrder.getThirdCreateTime();
            int urank = firstOrder.getUrank();
            UserLevelEnum buyerUserLevel = null;
            for (UserLevelEnum level : UserLevelEnum.values())
               if (level.getOrderRank() == urank)
                  buyerUserLevel = level;
            if (placeOrderTime.getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME)
               return;
            int urank = firstOrder.getUrank();
            UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
            if (buyerUserLevel == null)
               throw new InviteOrderSubsidyException(11, "用户等级为空");
@@ -154,7 +153,7 @@
               }
               List<HongBaoV2> hbList = hongBaoV2Service.listByIds(idList);
               Integer state = null;
               Integer state = InviteOrderSubsidy.STATE_UNKNOWN;
               // 产生改订单的返利总金额
               BigDecimal totalBuyFanLiMoney = new BigDecimal(0);
@@ -163,15 +162,8 @@
                  if (v2.getState() == HongBaoV2.STATE_BUKELINGQU || v2.getState() == HongBaoV2.STATE_KELINGQU
                        || v2.getState() == HongBaoV2.STATE_YILINGQU)
                     totalBuyFanLiMoney = totalBuyFanLiMoney.add(v2.getMoney());
                  if (state == null && (v2.getState() == HongBaoV2.STATE_KELINGQU
                        || v2.getState() == HongBaoV2.STATE_YILINGQU)) {// 红包状态为已领取或者是待领取,则设置为补贴有效
                     state = InviteOrderSubsidy.STATE_VALID;
                  }
               }
               if (state == null)
                  state = InviteOrderSubsidy.STATE_UNKNOWN;
               // 计算奖励金
               for (Iterator<Long> its = uidHongBaoMap.keySet().iterator(); its.hasNext();) {
                  Long uid = its.next();
@@ -205,12 +197,23 @@
                     try {
                        addOrderSubsidy(orderSubsidy);
                     } catch (OrderTeamRewardException e) {
                        throw new InviteOrderSubsidyException(e.getCode(), e.getMsg());
                     } catch (CommonOrderException e) {
                        throw new InviteOrderSubsidyException(e.getCode(), e.getMsg());
                     }
                  }
               }
               boolean isSettle = false;
               if (orderList != null)
                  for (CommonOrder commonOrder : orderList) {
                     if (commonOrder.getState() == CommonOrder.STATE_JS
                           || commonOrder.getState() == CommonOrder.STATE_WQ) {
                        isSettle = true;
                        break;
                     }
                  }
               if (isSettle) {
                  validByOrderIdAndSourceType(orderId, sourceType);
               }
            }
         }
@@ -308,4 +311,9 @@
      return money;
   }
   @Override
   public List<InviteOrderSubsidy> listByOrderNoAndTypeAndUid(String orderNo, Integer type, Long uid) {
      return inviteOrderSubsidyMapper.listByOrderNoAndTypeAndUid(orderNo, type, uid);
   }
}