yujian
2019-10-21 d085ca89e39b4cda025a9a53d3797fbe8b242ae7
fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
@@ -39,17 +39,17 @@
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@@ -264,7 +264,8 @@
   private void updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
         Map<Integer, HongBaoOrder> notificationMap) throws HongBaoException {
      System.out.println(commonOrder.getOrderNo());
      HongBaoV2 oldHongBao = hongBaoV2Mapper.selectByPrimaryKey(hongBaoOrder.getHongBaoV2().getId());
      // 锁行
      HongBaoV2 oldHongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBaoOrder.getHongBaoV2().getId());
      if (oldHongBao == null)
         throw new HongBaoException(10, "红包对象不存在");
      // 已经失效,已经领取,新老状态一致的红包不做处理
@@ -942,24 +943,27 @@
               child.setUrank(boss.getRank());
               child.setVersion(2);
               child.setCreateTime(new Date());
               hongBaoV2Mapper.insertSelective(child);
               // 添加通知
               if (notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI) == null) {
                  HongBaoV2 tempHongBao = new HongBaoV2(child.getId());
                  tempHongBao.setUserInfo(child.getUserInfo());
                  tempHongBao.setMoney(child.getMoney());
                  tempHongBao.setBeizhu(hongBao.getUserInfo().getNickName());
                  CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
                  tempCommonOrder.setPayment(commonOrder.getPayment());
                  notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI, new HongBaoOrder(tempCommonOrder, tempHongBao));
               } else {
                  // 增加付款金额与资金
                  HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI);
                  tempHongBaoOrder.getCommonOrder().setPayment(
                        tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
                  tempHongBaoOrder.getHongBaoV2()
                        .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney()));
                  notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI, tempHongBaoOrder);
               if (child.getMoney().compareTo(new BigDecimal(0)) > 0) {
                  hongBaoV2Mapper.insertSelective(child);
                  // 添加通知
                  if (notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI) == null) {
                     HongBaoV2 tempHongBao = new HongBaoV2(child.getId());
                     tempHongBao.setUserInfo(child.getUserInfo());
                     tempHongBao.setMoney(child.getMoney());
                     tempHongBao.setBeizhu(hongBao.getUserInfo().getNickName());
                     CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
                     tempCommonOrder.setPayment(commonOrder.getPayment());
                     notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI,
                           new HongBaoOrder(tempCommonOrder, tempHongBao));
                  } else {
                     // 增加付款金额与资金
                     HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI);
                     tempHongBaoOrder.getCommonOrder().setPayment(
                           tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
                     tempHongBaoOrder.getHongBaoV2()
                           .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney()));
                     notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI, tempHongBaoOrder);
                  }
               }
            }
         }
@@ -1099,4 +1103,16 @@
         return null;
      return hongBaoV2Mapper.listBySourceTypeAndTradeIdListAndUid(sourceType, uid, tradeIdList);
   }
   @Override
   public HongBaoV2 getFirstValidHongBaoByTypeAndUid(List<Integer> typeList, Long uid) {
      List<Integer> stateList = new ArrayList<>();
      stateList.add(HongBaoV2.STATE_BUKELINGQU);
      stateList.add(HongBaoV2.STATE_KELINGQU);
      stateList.add(HongBaoV2.STATE_YILINGQU);
      List<HongBaoV2> hongBaoV2List = hongBaoV2Mapper.listByStateAndTypeAndUid(stateList, typeList, uid, 0, 1);
      if (hongBaoV2List != null && hongBaoV2List.size() > 0)
         return hongBaoV2List.get(0);
      return null;
   }
}