| | |
| | | * 获取用户前一天的所有返利记录 |
| | | */ |
| | | List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByMemberIdAndTypeAndDate(directMemberId, |
| | | FundFlowEnum.STATIC_RELEASE.getCode(),DateUtil.offsetHour(DateUtil.date(),-12)); |
| | | FundFlowEnum.STATIC_RELEASE.getCode(),DateUtil.date()); |
| | | // List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByMemberIdAndTypeAndDate(directMemberId, |
| | | // FundFlowEnum.STATIC_RELEASE.getCode(),DateUtil.offsetHour(DateUtil.date(),-12)); |
| | | if(CollUtil.isEmpty(dappFundFlowEntities)){ |
| | | continue; |
| | | } |
| | |
| | | |
| | | List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V1.getType()); |
| | | shareStaticPerk(dappMemberEntities,FundFlowEnum.SHARE_PERK_V1.getCode()); |
| | | teamStaticPerkMemberLevel(dappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V1.getCode()); |
| | | teamStaticPerkMemberLevel(dappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V1.getCode(),MemberLevelEnum.V1.getType()); |
| | | isAllPerkMemberLevel(dappMemberEntities,MemberLevelEnum.V1.getType(),FundFlowEnum.ALL_PERK_V1.getCode()); |
| | | |
| | | List<DappMemberEntity> v2DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V2.getType()); |
| | | shareStaticPerk(v2DappMemberEntities,FundFlowEnum.SHARE_PERK_V2.getCode()); |
| | | teamStaticPerkMemberLevel(v2DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V2.getCode()); |
| | | teamStaticPerkMemberLevel(v2DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V2.getCode(),MemberLevelEnum.V2.getType()); |
| | | isAllPerkMemberLevel(v2DappMemberEntities,MemberLevelEnum.V2.getType(),FundFlowEnum.ALL_PERK_V2.getCode()); |
| | | |
| | | List<DappMemberEntity> v3DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V3.getType()); |
| | | shareStaticPerk(v3DappMemberEntities,FundFlowEnum.SHARE_PERK_V3.getCode()); |
| | | teamStaticPerkMemberLevel(v3DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V3.getCode()); |
| | | teamStaticPerkMemberLevel(v3DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V3.getCode(),MemberLevelEnum.V3.getType()); |
| | | isAllPerkMemberLevel(v3DappMemberEntities,MemberLevelEnum.V3.getType(),FundFlowEnum.ALL_PERK_V3.getCode()); |
| | | |
| | | List<DappMemberEntity> v4DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V4.getType()); |
| | | shareStaticPerk(v4DappMemberEntities,FundFlowEnum.SHARE_PERK_V4.getCode()); |
| | | teamStaticPerkMemberLevel(v4DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V4.getCode()); |
| | | teamStaticPerkMemberLevel(v4DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V4.getCode(),MemberLevelEnum.V4.getType()); |
| | | isAllPerkMemberLevel(v4DappMemberEntities,MemberLevelEnum.V4.getType(),FundFlowEnum.ALL_PERK_V4.getCode()); |
| | | |
| | | List<DappMemberEntity> v5DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V5.getType()); |
| | | shareStaticPerk(v5DappMemberEntities,FundFlowEnum.SHARE_PERK_V5.getCode()); |
| | | teamStaticPerkMemberLevel(v5DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V5.getCode()); |
| | | teamStaticPerkMemberLevel(v5DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V5.getCode(),MemberLevelEnum.V5.getType()); |
| | | isAllPerkMemberLevel(v5DappMemberEntities,MemberLevelEnum.V5.getType(),FundFlowEnum.ALL_PERK_V5.getCode()); |
| | | |
| | | List<DappMemberEntity> v6DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V6.getType()); |
| | | shareStaticPerk(v6DappMemberEntities,FundFlowEnum.SHARE_PERK_V6.getCode()); |
| | | teamStaticPerkMemberLevel(v6DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V6.getCode()); |
| | | teamStaticPerkMemberLevel(v6DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V6.getCode(),MemberLevelEnum.V6.getType()); |
| | | isAllPerkMemberLevel(v6DappMemberEntities,MemberLevelEnum.V6.getType(),FundFlowEnum.ALL_PERK_V6.getCode()); |
| | | |
| | | List<DappMemberEntity> v7DappMemberEntities = dappMemberDao.selectMemberByAccountType(MemberLevelEnum.V7.getType()); |
| | | shareStaticPerk(v7DappMemberEntities,FundFlowEnum.SHARE_PERK_V7.getCode()); |
| | | teamStaticPerkMemberLevel(v7DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V7.getCode()); |
| | | teamStaticPerkMemberLevel(v7DappMemberEntities,teamPerkEquals,staticRelease,FundFlowEnum.TEAM_PERK_V7.getCode(),MemberLevelEnum.V7.getType()); |
| | | isAllPerkMemberLevel(v7DappMemberEntities,MemberLevelEnum.V7.getType(),FundFlowEnum.ALL_PERK_V7.getCode()); |
| | | |
| | | } |
| | |
| | | DataDictionaryEnum.PACKAGE_TEAM_PERK_PERCENT.getType(), |
| | | DataDictionaryEnum.PACKAGE_TEAM_PERK_PERCENT.getCode() |
| | | ); |
| | | BigDecimal packageTeamPerkPercent = new BigDecimal(ObjectUtil.isEmpty(packageTeamPerkPercentDic) ? "0.01" : packageTeamPerkPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal packageTeamPerkPercent = new BigDecimal(ObjectUtil.isEmpty(packageTeamPerkPercentDic) ? "0.01" : packageTeamPerkPercentDic.getValue()); |
| | | |
| | | for(DappMemberEntity dappMemberEntity : dappMemberEntities){ |
| | | // List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByMemberIdAndTypeAndDate(dappMemberEntity.getId() |
| | | // , FundFlowEnum.ADD_AMOUNT_REAL.getCode() |
| | | // , DateUtil.offsetHour(DateUtil.date(), -12)); |
| | | List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByMemberIdAndTypeAndDate(dappMemberEntity.getId() |
| | | , FundFlowEnum.ADD_AMOUNT_REAL.getCode() |
| | | , DateUtil.offsetHour(DateUtil.date(), -12)); |
| | | , DateUtil.date()); |
| | | //总收益 |
| | | BigDecimal totalPerk = dappFundFlowEntities.stream().map(DappFundFlowEntity::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal memberPerk = totalPerk.multiply(packageTeamPerkPercent); |
| | |
| | | /** |
| | | * 每个人的第一次入单之后的业绩不一样 |
| | | */ |
| | | Date createTime = dappMemberEntity.getCreateTime(); |
| | | List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(dappMemberEntity.getId()); |
| | | if(CollUtil.isEmpty(mallAchieveRecords)){ |
| | | continue; |
| | | } |
| | | Date payTime = mallAchieveRecords.get(0).getPayTime(); |
| | | //下第一单之后的共享区全部业绩 |
| | | BigDecimal totalAchieve = mallAchieveRecordMapper.selectAchieveTotalByCreateTime(createTime); |
| | | BigDecimal totalAchieve = mallAchieveRecordMapper.selectAchieveTotalByCreateTime(payTime); |
| | | //个人总业绩 |
| | | BigDecimal totalMemberAchieve = mallAchieveRecordMapper.selectAchieveTotalByMemberIdAndCreateTime(dappMemberEntity.getId(), createTime); |
| | | BigDecimal totalMemberAchieve = mallAchieveRecordMapper.selectAchieveTotalByMemberIdAndCreateTime(dappMemberEntity.getId(), payTime); |
| | | if(BigDecimal.ZERO.compareTo(totalAchieve) >= 0 || BigDecimal.ZERO.compareTo(totalMemberAchieve) >= 0){ |
| | | continue; |
| | | } |
| | |
| | | public void teamStaticPerkMemberLevel(List<DappMemberEntity> dappMemberEntities, |
| | | BigDecimal teamPerkEquals, |
| | | BigDecimal staticRelease, |
| | | int code) { |
| | | int code, |
| | | String memberAccountType) { |
| | | if(CollUtil.isEmpty(dappMemberEntities)){ |
| | | return; |
| | | } |
| | |
| | | BigDecimal cashPercent = adminAgentInfo.getTeamPercent(); |
| | | // 直推用户 |
| | | List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(teamPerkMember.getInviteId()); |
| | | List<DappMemberEntity> collect = childs.stream() |
| | | .filter(dappMemberEntity -> dappMemberEntity.getAccountType() == MemberLevelEnum.V1.getType()) |
| | | .collect(Collectors.toList()); |
| | | //极差 |
| | | if(CollUtil.isNotEmpty(collect)){ |
| | | //平级 |
| | | cashPercent = teamPerkEquals; |
| | | } |
| | | // List<DappMemberEntity> collect = childs.stream() |
| | | // .filter(dappMemberEntity -> dappMemberEntity.getAccountType().equals(memberAccountType)) |
| | | // .collect(Collectors.toList()); |
| | | //所有直推团队,就是这个会员的所有区域的业绩。 |
| | | List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList()); |
| | | //总业绩 |
| | | BigDecimal teamIncomeMax = BigDecimal.ZERO; |
| | | for(String inviteId : childsInviteIds){ |
| | | BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId); |
| | | teamIncomeMax = teamIncomeMax.add(totalIncomeMember); |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){ |
| | | // List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty(childs)){ |
| | | for(DappMemberEntity dappMemberChild : childs){ |
| | | String childAccountType = dappMemberChild.getAccountType(); |
| | | int compareLevel = MemberLevelEnum.V1.compareLevel(level, childAccountType); |
| | | //级别比我高,则没有团队加速 |
| | | if(compareLevel < 1){ |
| | | continue; |
| | | } |
| | | if(compareLevel == 1){ |
| | | BigDecimal cashPercentChild = BigDecimal.ZERO; |
| | | if(!MemberLevelEnum.MEMBER.getType().equals(childAccountType)){ |
| | | DataDictionaryCustom teamPerkMemberChildDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | "TEAM_LEVEL", childAccountType); |
| | | TeamLevelPerk adminAgentInfoChild = JSONObject.parseObject(teamPerkMemberChildDic.getValue(), TeamLevelPerk.class); |
| | | cashPercentChild = adminAgentInfoChild.getTeamPercent(); |
| | | } |
| | | BigDecimal subtract = cashPercent.subtract(cashPercentChild); |
| | | BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(dappMemberChild.getInviteId()); |
| | | //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速 |
| | | BigDecimal cashAmount = teamIncomeMax.multiply(cashPercent).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | BigDecimal cashAmount = totalIncomeMember.multiply(staticRelease).multiply(subtract).setScale(2, BigDecimal.ROUND_DOWN); |
| | | if(BigDecimal.ZERO.compareTo(cashAmount) >= 0){ |
| | | continue; |
| | | } |
| | | BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, teamPerkMember.getId(), code); |
| | | continue; |
| | | } |
| | | if(compareLevel > 1){ |
| | | BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(dappMemberChild.getInviteId()); |
| | | //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速 |
| | | BigDecimal cashAmount = totalIncomeMember.multiply(staticRelease).multiply(teamPerkEquals).setScale(2, BigDecimal.ROUND_DOWN); |
| | | if(BigDecimal.ZERO.compareTo(cashAmount) >= 0){ |
| | | continue; |
| | | } |
| | | BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, teamPerkMember.getId(), code); |
| | | continue; |
| | | |
| | | } |
| | | } |
| | | } |
| | | // //总业绩 |
| | | // BigDecimal teamIncomeMax = BigDecimal.ZERO; |
| | | // for(String inviteId : childsInviteIds){ |
| | | // //极差 |
| | | // if(CollUtil.isNotEmpty(collect)){ |
| | | // List<String> collectInviteIds = collect.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList()); |
| | | // if(collectInviteIds.contains(inviteId)){ |
| | | // BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId); |
| | | // //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速 |
| | | // BigDecimal cashAmount = totalIncomeMember.multiply(teamPerkEquals).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN); |
| | | // if(BigDecimal.ZERO.compareTo(cashAmount) >= 0){ |
| | | // continue; |
| | | // } |
| | | // BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, teamPerkMember.getId(), code); |
| | | // continue; |
| | | // }else{ |
| | | // BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId); |
| | | // //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速 |
| | | // BigDecimal cashAmount = totalIncomeMember.multiply(cashPercent).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN); |
| | | // if(BigDecimal.ZERO.compareTo(cashAmount) >= 0){ |
| | | // continue; |
| | | // } |
| | | // BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, teamPerkMember.getId(), code); |
| | | // continue; |
| | | // } |
| | | // } |
| | | // BigDecimal totalIncomeMember = dappMemberDao.selectAllAchieveByInviteId(inviteId); |
| | | // //V1加速团队静态收益的15%=每日静态的20000*6‰*15%=18元的额外释放加速 |
| | | // BigDecimal cashAmount = totalIncomeMember.multiply(cashPercent).multiply(staticRelease).setScale(2, BigDecimal.ROUND_DOWN); |
| | | // if(BigDecimal.ZERO.compareTo(cashAmount) >= 0){ |
| | | // continue; |
| | | // } |
| | | // BigDecimal bigDecimal = sendPerk(teamPerkMember, cashAmount, teamPerkMember.getId(), code); |
| | | // } |
| | | } |
| | | } |
| | | |