admin
2019-11-05 e021e32a6ff0ec216f69c24f7ea929798bdce4c5
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java
@@ -20,7 +20,7 @@
   @Resource
   private RedPackBalanceMapper redPackBalanceMapper;
   @Resource
   private RedPackDetailService redPackDetailService;
@@ -36,12 +36,10 @@
      
      RedPackBalance redPackBalance = redPackBalanceMapper.selectByPrimaryKey(uid);
      if (redPackBalance != null)
         return redPackBalance.getMoney();
         return redPackBalance.getMoney();
      return new BigDecimal(0);
   }
   @Override
   public void addRedPack(Long uid, BigDecimal money) {
      if (uid == null || uid == 0 || money == null)
@@ -58,12 +56,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 +77,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);
   }