| | |
| | | /** |
| | | * 用户的账户增加对应的收益 |
| | | */ |
| | | |
| | | BigDecimal totalPerk = mallProductBuy.getTotalPerk(); |
| | | if(BigDecimal.ZERO.compareTo(totalPerk) >= 0){ |
| | | mallProductBuy.setTotalPerk(BigDecimal.ZERO); |
| | | mallProductBuyMapper.updateById(mallProductBuy); |
| | | continue; |
| | | } |
| | | BigDecimal nftTotal = mallProductBuy.getNftTotal(); |
| | | BigDecimal profit = nftTotal.multiply(profitPercent.multiply(new BigDecimal(0.01))); |
| | | |
| | | if(totalPerk.compareTo(profit) <= 0){ |
| | | profit = totalPerk; |
| | | mallProductBuy.setTotalPerk(BigDecimal.ZERO); |
| | | mallProductBuyMapper.updateById(mallProductBuy); |
| | | }else{ |
| | | mallProductBuy.setTotalPerk(totalPerk.subtract(profit).setScale(2,BigDecimal.ROUND_DOWN)); |
| | | mallProductBuyMapper.updateById(mallProductBuy); |
| | | } |
| | | // insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO); |
| | | String orderNoSY = MallUtils.getOrderNum("SYNFT"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | |
| | | MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId()); |
| | | mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit)); |
| | | mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine); |
| | | |
| | | |
| | | BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余 |
| | | if(remainderDirect.compareTo(BigDecimal.ONE) == 0){ |
| | |
| | | //上级 |
| | | String referrerId = mallMember.getReferrerId(); |
| | | MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId); |
| | | if(ObjectUtil.isEmpty(mallMemberRef)){ |
| | | continue; |
| | | } |
| | | List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId); |
| | | |
| | | if(ObjectUtil.isEmpty(mallMembersAll)){ |
| | | continue; |
| | | } |
| | | List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId); |
| | | Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet()); |
| | | mallMembersSet.retainAll(collect); |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void memberLevelDown() { |
| | | List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectTotalPerk(); |
| | | if(CollUtil.isEmpty(mallProductBuys)){ |
| | | return; |
| | | } |
| | | for(MallProductBuy mallProductBuy : mallProductBuys){ |
| | | BigDecimal totalPerk = mallProductBuy.getTotalPerk(); |
| | | if(BigDecimal.ZERO.compareTo(totalPerk) >= 0 ){ |
| | | Long memberId = mallProductBuy.getMemberId(); |
| | | MallMember mallMember = memberMapper.selectById(memberId); |
| | | mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode()); |
| | | memberMapper.updateById(mallMember); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva, |
| | | BigDecimal nftFee,BigDecimal fcmFeeCnt){ |
| | | String orderNo = MallUtils.getOrderNum("NFT"); |