| | |
| | | private final MallProductNftMapper mallProductNftMapper; |
| | | private final AgentProducer agentProducer; |
| | | private final MallMemberAmountMapper mallMemberAmountMapper; |
| | | private final IMemberProfitService iMemberProfitService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | DataDictionaryEnum.BASIC_PERK_DIRECT.getType(), |
| | | DataDictionaryEnum.BASIC_PERK_DIRECT.getCode() |
| | | ).getValue()).multiply(new BigDecimal("0.01")); |
| | | // BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | if(ProductEnum.MEMBER_FROZEN.getValue() == directMember.getIsFrozen()){ |
| | | //插入一条流水记录 |
| | | String orderNo = MallUtils.getOrderNum("FNFTW"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | directMember.getId(), |
| | | profit.negate(), |
| | | MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getValue(), |
| | | orderNo, |
| | | null, |
| | | FlowTypeNewEnum.NFT.getValue(), |
| | | MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getDescrition(), |
| | | AppContants.MEMBER_FLOW_ING); |
| | | |
| | | }else{ |
| | | /** |
| | | * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行 |
| | | */ |
| | | String orderNo = MallUtils.getOrderNum("DNFT"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | directMember.getId(), |
| | | basicPerkDirect, |
| | | MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getValue(), |
| | | orderNo, |
| | | null, |
| | | FlowTypeNewEnum.NFT.getValue(), |
| | | MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getDescrition(), |
| | | AppContants.MEMBER_FLOW_ING); |
| | | |
| | | MallMemberAmount mallMemberAmountDirect = mallMemberAmountMapper.selectByMemberId(directMember.getId()); |
| | | mallMemberAmountDirect.setFrozenNft(mallMemberAmountDirect.getFrozenNft().add(basicPerkDirect)); |
| | | mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect); |
| | | /** |
| | | * 如果用户是冻结,则直接销毁 |
| | | */ |
| | | iMemberProfitService.createPerk(directMember,basicPerkDirect.multiply(new BigDecimal("0.5"))); |
| | | if(StrUtil.isNotEmpty(directMember.getReferrerId())){ |
| | | MallMember directMemberDirect = memberMapper.selectInfoByInviteId(directMember.getReferrerId()); |
| | | iMemberProfitService.createPerk(directMemberDirect,basicPerkDirect.multiply(new BigDecimal("0.5"))); |
| | | } |
| | | } |
| | | } |
| | |
| | | if(ObjectUtil.isEmpty(mallMemberRef)){ |
| | | continue; |
| | | } |
| | | List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId); |
| | | if(ObjectUtil.isEmpty(mallMembersAll)){ |
| | | 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); |
| | |
| | | Integer directCntLevel = teamPerkDto.getDirectCnt(); |
| | | Integer teamCnt = teamPerkDto.getTeamCnt(); |
| | | if(directCntLevel <= intersection.size()){ |
| | | if(teamCnt <= mallMembersAll.size()){ |
| | | List<MallMember> mallMembersAll = memberMapper.selectMemberWithLevelAndMemberId(level,mallMemberRef.getId()); |
| | | if(teamCnt <= (CollUtil.isEmpty(mallMembersAll) ? 0 : mallMembersAll.size())){ |
| | | mallMemberRef.setLevel(level); |
| | | memberMapper.updateById(mallMemberRef); |
| | | |
| | | String nextLevel = MemberLevelNewEnum.ZERO_LEVEL.getNextLevel(level); |
| | | level = nextLevel; |
| | | if(level.equals(MemberLevelNewEnum.WU_LEVEL.getType()) && |
| | | nextLevel.equals(MemberLevelNewEnum.WU_LEVEL.getType()) ){ |
| | | if(level.equals(MemberLevelNewEnum.SIX_LEVEL.getType()) && |
| | | nextLevel.equals(MemberLevelNewEnum.SIX_LEVEL.getType()) ){ |
| | | mallMemberRef.setLevel(level); |
| | | memberMapper.updateById(mallMemberRef); |
| | | flag = true; |