| | |
| | | public BigDecimal getRewardMoney(Long uid) {
|
| | | return redPackWinInviteMapper.getRewardMoney(uid);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#teamUid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | |
| | | if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | activeLog.getVersionCode()))
|
| | | return;
|
| | | |
| | |
|
| | | // 同一队员只记录一次
|
| | | int totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.zeroStageReward.name());
|
| | | if (totalReward > 0)
|
| | | return;
|
| | | |
| | |
|
| | | // 获得红包
|
| | | RedPackWinInvite winInvite = new RedPackWinInvite();
|
| | | winInvite.setUid(bossId);
|
| | |
| | | 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.RED_PACK_ONLINE_TIME));
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid,
|
| | | TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
|
| | | if (threeSale == null)
|
| | | return;
|
| | |
|
| | |
| | | // 小于2.0.2版本不增加
|
| | | if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | activeLog.getVersionCode()))
|
| | | return;
|
| | |
|
| | | int totalRewardZero = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.zeroStageReward.name());
|
| | | if (totalRewardZero <= 0)
|
| | | return;
|
| | |
|
| | | // 同一队员奖励一次
|
| | |
| | | return;
|
| | |
|
| | | // 验证上下级关系
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid,
|
| | | TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
|
| | | if (threeSale == null || threeSale.getBoss().getId().longValue() != uid.longValue())
|
| | | return;
|
| | |
|
| | |
| | | * @param orderNo
|
| | | * @param bossId
|
| | | */
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void twoStageRewardToBoss(Long bossId, Long teamUid, Date oneStageTime, Integer source, String orderNo)
|
| | | throws Exception {
|
| | | // 第一阶段完成之后的90天内 ; 队友产生的订单中(自购+分享),邀请人累计产生≥1 元奖金
|
| | |
| | | * @param orderNo
|
| | | * @param bossId
|
| | | */
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void threeStageRewardToBoss(Long bossId, Long teamUid, Date twoStageTime, Integer source, String orderNo)
|
| | | throws Exception {
|
| | | // 二、三阶段不可同月
|
| | |
| | | money, "粉丝(好友)完成第三阶段连续[第" + monthSpace + "个月]", new Gson().toJson(dto));
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public List<RedPackWinProgressVO> getInviteProgressByWorkerId(Long uid, Long tid) {
|
| | | List<RedPackWinProgressVO> listVO = new ArrayList<RedPackWinProgressVO>();
|
| | | ThreeSale threeSale = threeSaleSerivce.getNearRelationByBossIdAndWorkerId(uid, tid);
|
| | | if (threeSale == null || threeSale.getSucceedTime() == null)
|
| | | return listVO;
|
| | | |
| | |
|
| | | UserInfo userInfo = userInfoService.selectByPKey(tid);
|
| | | if (userInfo == null) |
| | | if (userInfo == null)
|
| | | return listVO;
|
| | | |
| | |
|
| | | // 奖励记录
|
| | | List<RedPackWinInvite> listWin = redPackWinInviteMapper.getWinListByBossIdAndTeamUid(uid, tid);
|
| | | if (listWin == null || listWin.size() == 0) |
| | | if (listWin == null || listWin.size() == 0)
|
| | | return listVO;
|
| | | |
| | |
|
| | | int month = 1;
|
| | | for (RedPackWinInvite win: listWin) {
|
| | | 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())));
|
| | |
| | | if (win.getType() == RedPackWinInviteTypeEnum.oneStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第一阶段", time, money.toString()));
|
| | | continue;
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.twoStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第二阶段", time, money.toString()));
|
| | | continue;
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.threeStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第三阶段第" + month + "个月", time, money.toString()));
|
| | | month ++;
|
| | | month++;
|
| | | continue;
|
| | | }
|
| | | }
|
| | | return listVO;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public List<RedPackWinInvite> getWinTopListByBossId(int page, int count, Long uid) {
|
| | | return redPackWinInviteMapper.getWinTopListByBossId(count * (page-1), count, uid);
|
| | | return redPackWinInviteMapper.getWinTopListByBossId(count * (page - 1), count, uid);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public long countWinTopListByBossId(Long uid) {
|
| | | return redPackWinInviteMapper.countWinTopListByBossId(uid);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public long countTeamNumByTid(Long uid, Long teamUid) {
|
| | | return redPackWinInviteMapper.countTeamNumByTid(uid, teamUid);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public List<RedPackWinInvite> query(long page, int count, String key, String type){
|
| | | return redPackWinInviteMapper.query(count * (page - 1), count, key, type);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long count(String key, String type){
|
| | | Long count = redPackWinInviteMapper.count(key, type);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | return count;
|
| | | }
|
| | | }
|