yujian
2019-11-07 3f76ec837b343e5a8538f2ce50010714d16cdeef
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinNewUserServiceImpl.java
@@ -96,7 +96,7 @@
      Date nowTime = new Date();
      Date firstLoginTime = userInfoExtra.getFirstLoginTime();
      int days = DateUtil.daysBetween2(firstLoginTime, nowTime);
      if (days > Constant.RED_PACK_NEW_USER_DAYS)
      if (days >= Constant.RED_PACK_NEW_USER_DAYS)
         return null; // 已经超出设置天数
      
      RedPackWinNewUser redPackWin = redPackWinNewUserDao.getByUid(uid);
@@ -116,7 +116,7 @@
            
      BigDecimal money = null;
      if (redPackWin == null) { // 第一次
         if (days == Constant.RED_PACK_NEW_USER_DAYS) {  // 最后一天
         if (days == Constant.RED_PACK_NEW_USER_DAYS - 1) {  // 最后一天
            money = Constant.RED_PACK_NEW_USER_MONEY;
         } else { // 计算随机奖励
            double randomNum = Constant.RED_PACK_NEW_USER_MIN +  Math.random() * (Constant.RED_PACK_NEW_USER_MAX - Constant.RED_PACK_NEW_USER_MIN);
@@ -124,7 +124,7 @@
            BigDecimal rate = new BigDecimal(randomNum).setScale(2, BigDecimal.ROUND_DOWN);
            money = MoneyBigDecimalUtil.mul(Constant.RED_PACK_NEW_USER_MONEY,rate);
         }
      } else if (days == Constant.RED_PACK_NEW_USER_DAYS) { // 最后一天
      } else if (days == Constant.RED_PACK_NEW_USER_DAYS - 1) { // 最后一天
         money = MoneyBigDecimalUtil.sub(Constant.RED_PACK_NEW_USER_MONEY, redPackWin.getMoney());
      } else { // 计算剩余随机奖励 10%-25% 
         double randomNum = 10 +  Math.random() * (20 - 10);
@@ -132,8 +132,12 @@
         money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.sub(Constant.RED_PACK_NEW_USER_MONEY,redPackWin.getMoney()),rate);
      }
      
      int num = 1;
      money = money.setScale(2);
      // 4、增加红包
      redPackBalanceService.addRedPack(uid, money, RedPackDetailFactory.createNewUserReward(uid, days, money));
      // 插入领取记录
      int num = 1;
      if (redPackWin == null) {
         redPackWin = new RedPackWinNewUser();
         redPackWin.setNum(1);
@@ -143,16 +147,11 @@
         redPackWin.setUpdateTime(nowTime);
      } else {
         num = redPackWin.getNum() + 1;
         redPackWin = new RedPackWinNewUser();
         redPackWin.setUid(uid.toString());
         redPackWin.setNum(num);
         redPackWin.setMoney(MoneyBigDecimalUtil.add(money, redPackWin.getMoney()));
         redPackWin.setUpdateTime(nowTime);
      }
      redPackWinNewUserDao.save(redPackWin);
      // 4、增加红包
      redPackBalanceService.addRedPack(uid, money, RedPackDetailFactory.createNewUserReward(uid,num, money));
      
      RedPackWinDetailVO winDetailVO = new RedPackWinDetailVO();
      winDetailVO.setTitle("新人红包");