yujian
2019-12-18 89cc8f054c27f70fcfe16f14554a8a12e0c19e23
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -93,13 +93,45 @@
   public BigDecimal getRewardMoney(Long uid) {
      return redPackWinInviteMapper.getRewardMoney(uid);
   }
   @Override
   @RequestSerializableByKeyService(key = "#teamUid")
   @Transactional(rollbackFor = Exception.class)
   public void initCreateRedPackWin(Long bossId, Long teamUid) {
      UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
      if (activeLog == null)
         return;
      // 小于2.0.5版本不增加
      if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
            activeLog.getVersionCode()))
         return;
      // 同一队员只记录一次
      int totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
            RedPackWinInviteTypeEnum.oneStageReward.name());
      if (totalReward > 0)
         return;
      // 获得红包
      RedPackWinInvite winInvite = new RedPackWinInvite();
      winInvite.setUid(bossId);
      winInvite.setTeamUid(teamUid);
      winInvite.setMoney(new BigDecimal(0));
      winInvite.setType(RedPackWinInviteTypeEnum.zeroStageReward);
      winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.oneStageReward.name() + ":" + teamUid));
      winInvite.setCreateTime(new Date());
      winInvite.setUpdateTime(new Date());
      redPackWinInviteMapper.insertSelective(winInvite);
   }
   @Override
   @RequestSerializableByKeyService(key = "#teamUid")
   @Transactional(rollbackFor = Exception.class)
   public void inviteSucceedReward(Long teamUid) throws Exception {
      // 是否在上线之后的邀请关系
      ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME));
      ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
      if (threeSale == null)
         return;
@@ -190,7 +222,7 @@
         return;
      // 验证上下级关系
      ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME));
      ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
      if (threeSale == null || threeSale.getBoss().getId().longValue() != uid.longValue())
         return;
@@ -346,9 +378,6 @@
      if (userInfo == null) 
         return listVO;
      
      listVO.add(new RedPackWinProgressVO("成功注册", TimeUtil.formatDate(userInfo.getCreatetime())));
      listVO.add(new RedPackWinProgressVO("确立邀请", TimeUtil.formatDate(threeSale.getSucceedTime())));
      // 奖励记录
      List<RedPackWinInvite> listWin = redPackWinInviteMapper.getWinListByBossIdAndTeamUid(uid, tid);
      if (listWin == null || listWin.size() == 0) 
@@ -356,6 +385,10 @@
      
      int month = 1;
      for (RedPackWinInvite win: listWin) {
         if (win.getType() == RedPackWinInviteTypeEnum.zeroStageReward) {
            listVO.add(new RedPackWinProgressVO("成功注册", TimeUtil.formatDate(userInfo.getCreatetime())));
            listVO.add(new RedPackWinProgressVO("确立邀请", TimeUtil.formatDate(threeSale.getSucceedTime())));
         }
         String time = TimeUtil.formatDate(win.getCreateTime());
         BigDecimal money = win.getMoney().setScale(2);
         if (win.getType() == RedPackWinInviteTypeEnum.oneStageReward) {
@@ -368,7 +401,7 @@
            continue;
         } 
         
         if (win.getType() == RedPackWinInviteTypeEnum.twoStageReward) {
         if (win.getType() == RedPackWinInviteTypeEnum.threeStageReward) {
            listVO.add(new RedPackWinProgressVO("第三阶段第" + month + "个月", time, money.toString()));
            month ++;
            continue;
@@ -389,4 +422,9 @@
      return redPackWinInviteMapper.countWinTopListByBossId(uid);
   }
   
   @Override
   public long countTeamNumByTid(Long uid, Long teamUid) {
      return redPackWinInviteMapper.countTeamNumByTid(uid, teamUid);
   }
}