From ada59d11d10c4a5db3c748c1997ee4992ee54b3a Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 11 Jan 2024 14:44:07 +0800 Subject: [PATCH] 套餐 --- src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 75 +++++++++++++++++++++++++++---------- 1 files changed, 55 insertions(+), 20 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index e889f0a..369f9c4 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -50,18 +50,31 @@ List<String> ids = StrUtil.split(member.getReferrerIds(), ','); List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids); for (MallMember parent : parentMembers) { - //level为v6,升级董事,则看团队下有没有两个V6 - List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(parent.getInviteId()); - if(CollUtil.isNotEmpty(mallMemberTeamMembers)){ - List<MallMember> levelV6List = mallMemberTeamMembers.stream() - .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType())) - .collect(Collectors.toList()); - if(CollUtil.isNotEmpty(levelV6List) && levelV6List.size() >= 2){ - parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType()); - parent.setDirector(AppContants.OPTION_YES); - memberMapper.updateById(parent); - continue; - } + //level为v6,升级董事,则看直属团队下有没有两个V6 +// List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId()); +// if(CollUtil.isNotEmpty(mallMemberChilds)){ +// int directorSize = 0; +// for(MallMember mallMemberChild : mallMemberChilds){ +// List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId()); +// if(CollUtil.isNotEmpty(mallMemberTeamMembers)){ +// List<MallMember> levelV6List = mallMemberTeamMembers.stream() +// .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType())) +// .collect(Collectors.toList()); +// if(CollUtil.isNotEmpty(levelV6List)){ +// directorSize = directorSize +1; +// } +// } +// } +// if(directorSize >= 2){ +// parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType()); +// parent.setDirector(AppContants.OPTION_YES); +// memberMapper.updateById(parent); +// continue; +// } +// } + //V6不能再升级了 + if(parent.getLevel().equals(MemberLevelEnum.V6.getType())){ + continue; } /** @@ -201,6 +214,12 @@ * 4、董事享受全公司入单分红2%加权(现金) * 5、合伙人享全公司入单分红5%加权(现金) * 6、入单后,50%入现金池 35%的H金劵入H金劵池,更新价格 + * + * + * 新增购买套餐返佣逻辑 + * 1、买了套餐增加权益额度 + * 2、权益额度每次提现会减少对应的数额 + * 3、增加每天返佣固定比例的余额 */ //获取当前订单子表信息 List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(orderId); @@ -217,7 +236,27 @@ if(BigDecimal.ZERO.compareTo(amountTCAll) >= 0){ return; } - BigDecimal amountTC = new BigDecimal(1000); + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); + String orderNo = mallOrderInfo.getOrderNo(); + //购买人 + Long memberId = mallOrderInfo.getMemberId(); + DataDictionaryCustom equityLimitTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(), + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode()); + BigDecimal equityLimitTimes = new BigDecimal(equityLimitTimesDic.getValue()); + BigDecimal equityLimit = amountTCAll.multiply(equityLimitTimes); + if(BigDecimal.ZERO.compareTo(equityLimit) < 0){ + addWalletInfoAndMoneyFlow(equityLimit, + memberId, + "equityLimit", + MoneyFlowTypeEnum.TC_TO_EQUITY_LIMIT.getValue(), + memberId, + FlowTypeEnum.BALANCE.getValue(), + orderNo); + } + + BigDecimal amountTC = new BigDecimal(100); //购买套餐按照1000的基数去补贴,如5000,则补贴5次1000 int times = amountTCAll.divideToIntegralValue(amountTC).intValue(); if(times < 1){ @@ -225,10 +264,6 @@ } for(int i = 0; i < times; i++){ - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); - String orderNo = mallOrderInfo.getOrderNo(); - //购买人 - Long memberId = mallOrderInfo.getMemberId(); /** * 1、购买人获得固定比例的H金劵 @@ -419,7 +454,7 @@ ); if(poolScore.compareTo(BigDecimal.ZERO) > 0 && poolCash.compareTo(BigDecimal.ZERO) > 0){ - BigDecimal divide = poolCash.divide(poolScore, 7, BigDecimal.ROUND_DOWN); + BigDecimal divide = poolCash.divide(poolScore, 8, BigDecimal.ROUND_DOWN); dataDictionaryCustomMapper.updateDicValueByTypeAndCode( PerkEnum.POOL_SCORE_PRICE.getType(), PerkEnum.POOL_SCORE_PRICE.getCode(), @@ -520,12 +555,12 @@ } public static void main(String[] args) { - BigDecimal total = new BigDecimal(10000000); + BigDecimal total = new BigDecimal(100000); BigDecimal amountTotal = BigDecimal.ZERO; BigDecimal scoreTotal = BigDecimal.ZERO; - BigDecimal amountBasic = new BigDecimal(1000); + BigDecimal amountBasic = new BigDecimal(100); BigDecimal price = new BigDecimal(0.01); BigDecimal amountPercent = new BigDecimal(0.5); -- Gitblit v1.9.1