yujian
2019-11-05 a980ade25b3dc1a7da482e37113f2935a2719c0b
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java
@@ -20,7 +20,7 @@
   @Resource
   private RedPackBalanceMapper redPackBalanceMapper;
   @Resource
   private RedPackDetailService redPackDetailService;
@@ -40,8 +40,7 @@
      
      return new BigDecimal(0);
   }
   @Override
   public void addRedPack(Long uid, BigDecimal money) {
      if (uid == null || uid == 0 || money == null)
@@ -58,12 +57,11 @@
         redPackBalanceMapper.addRedPack(uid, money);
      }
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void addRedPack(Long uid, BigDecimal money, RedPackDetail detail) throws RedPackBalanceException {
      if (uid == null || uid == 0 || money == null ||  detail == null)
      if (uid == null || uid == 0 || money == null || detail == null)
         throw new RedPackBalanceException(1, "参数传递不完整");
      // 加入明细
      redPackDetailService.insertSelective(detail);
@@ -80,15 +78,22 @@
         redPackBalanceMapper.addRedPack(uid, money);
      }
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void subRedPack(Long uid, BigDecimal money, RedPackDetail detail) throws RedPackBalanceException {
      if (uid == null || uid == 0 || money == null ||  detail == null)
      if (uid == null || uid == 0 || money == null || detail == null)
         throw new RedPackBalanceException(1, "参数传递不完整");
      // 加入明细
      redPackDetailService.insertSelective(detail);
      RedPackBalance balance = redPackBalanceMapper.selectForUpdate(uid);
      if (balance.getMoney() == null)
         throw new RedPackBalanceException(2, "红包余额不足");
      if (balance.getMoney().compareTo(money) < 0)
         throw new RedPackBalanceException(2, "红包余额不足");
      // 减少红包
      redPackBalanceMapper.subRedPack(uid, money);
   }