| | |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(), |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue() |
| | | ).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | DateTime endTime = DateUtil.date(); |
| | | for (MallMember item : mallMembers) { |
| | | //获取总业绩 |
| | | BigDecimal achieve = getDirectAchieve(item.getInviteId()); |
| | | BigDecimal achieve = getDirectAchieve(item.getInviteId(),item.getDirectorTime(),endTime); |
| | | if(BigDecimal.ZERO.compareTo(achieve) >= 0){ |
| | | continue; |
| | | } |
| | | BigDecimal nodePercent = getNodePercent(runNodeSets, achieve); |
| | | if(BigDecimal.ZERO.compareTo(nodePercent) >= 0){ |
| | | continue; |
| | | } |
| | | asyncService.releaseNodeCoin(achieve,nodePercent,balanceToCoin,item.getId()); |
| | | item.setDirectorTime(endTime); |
| | | mallMemberMapper.updateById(item); |
| | | } |
| | | } |
| | | |
| | | private BigDecimal getDirectAchieve(String inviteId) { |
| | | private BigDecimal getDirectAchieve(String inviteId,Date startTime,Date endTime) { |
| | | |
| | | try { |
| | | // 获取直推成员和团队成员的ID集合 |
| | |
| | | new LambdaQueryWrapper<MallCharge>() |
| | | .in(MallCharge::getMemberId, memberIds) |
| | | .eq(MallCharge::getState, YesOrNoEnum.YES.getValue()) |
| | | .ge(MallCharge::getCreatedTime, startTime) |
| | | .lt(MallCharge::getCreatedTime, endTime) |
| | | ); |
| | | |
| | | if (CollUtil.isEmpty(mallCharges)) { |