admin
2019-11-13 221b5c8d0de3f6b17a00d543503a79c13b28ba12
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -14,6 +14,7 @@
import com.yeshi.fanli.dao.mybatis.redpack.RedPackWinInviteMapper;
import com.yeshi.fanli.dto.msg.MsgRedPackAddContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.order.CommonOrder;
@@ -24,6 +25,7 @@
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
@@ -31,6 +33,7 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit;
import com.yeshi.fanli.util.factory.RedPackDetailFactory;
@@ -66,6 +69,9 @@
   @Resource   
   private IntegralTaskRecordService integralTaskRecordService;
   
   @Resource
   private UserActiveLogService userActiveLogService;
   
   @Override
   public List<RedPackWinInvite> getRewardList(int start, int count, Long uid) {
@@ -78,6 +84,12 @@
      return redPackWinInviteMapper.countRewardRecord(uid);
   }
   
   @Override
   public BigDecimal getRewardMoney(Long uid) {
      return redPackWinInviteMapper.getRewardMoney(uid);
   }
   @RedPackGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Transactional(rollbackFor = Exception.class)
@@ -89,6 +101,15 @@
      // 上一级的奖励
      UserInfo boss = threeSaleSerivce.getBoss(uid);
      if(boss != null) {
         UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(boss.getId());
         if (activeLog == null)
            return;
         // 小于2.0.2版本不增加
         if (!VersionUtil.greaterThan_2_0_2("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
               activeLog.getVersionCode()))
            return;
         bossReward(boss.getId(), uid, source, orderNo);
      }
   }
@@ -160,7 +181,8 @@
      dto.setTitle("红包增加");
      dto.setMoney("¥" + money.setScale(2));
      dto.setBalance("¥" + redPackBalanceService.getBalance(uid).setScale(2));
      userMoneyMsgNotificationService.redPackMsg(uid, MsgTypeMoneyTypeEnum.redPackFirstSharedOrder, new Gson().toJson(dto), "红包可用于购买会员");
      userMoneyMsgNotificationService.redPackMsg(uid, MsgTypeMoneyTypeEnum.redPackFirstSharedOrder,
            new Gson().toJson(dto), "请到“我的-红包”中查看");
   }
   
   
@@ -219,19 +241,30 @@
      dto.setTitle("红包增加");
      dto.setMoney("¥" + money.setScale(2));
      dto.setBalance("¥" + redPackBalanceService.getBalance(uid).setScale(2));
      userMoneyMsgNotificationService.redPackMsg(uid, MsgTypeMoneyTypeEnum.redPackMonthSharedOrder, new Gson().toJson(dto), "红包可用于购买会员");
      userMoneyMsgNotificationService.redPackMsg(uid, MsgTypeMoneyTypeEnum.redPackMonthSharedOrder,
            new Gson().toJson(dto), "请到“我的-红包”中查看");
   }
   
   
   @RequestSerializableByKeyService(key = "#uid")
   @Override
   @Transactional
   @RedPackGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Transactional(rollbackFor = Exception.class)
   public void inviteSucceedReward(Long uid) throws Exception{
      // 验证是否存在上级
      UserInfo boss = threeSaleSerivce.getBoss(uid);
      if(boss == null) 
         return;
      
      UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(boss.getId());
      if (activeLog == null)
         return;
      // 小于2.0.2版本不增加
      if (!VersionUtil.greaterThan_2_0_2("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
            activeLog.getVersionCode()))
         return;
      // 同一队员奖励一次
      long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(boss.getId(), uid, RedPackWinInviteTypeEnum.inviteSucceed.name());
      if (totalReward > 0)
@@ -290,7 +323,8 @@
         dto.setTitle("红包增加");
         dto.setMoney("¥" + money.setScale(2));
         dto.setBalance("¥" + redPackBalanceService.getBalance(boss.getId()).setScale(2));
         userMoneyMsgNotificationService.redPackMsg(boss.getId(), MsgTypeMoneyTypeEnum.redPackInviteSucceed, new Gson().toJson(dto), "红包可用于购买会员");
         userMoneyMsgNotificationService.redPackMsg(boss.getId(), MsgTypeMoneyTypeEnum.redPackInviteSucceed,
               new Gson().toJson(dto), "请到“我的-红包”中查看");
      }
   }