From 7bf5945cdd7560922828f225c882d82f95405648 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 03 Jan 2025 10:27:31 +0800 Subject: [PATCH] feat(mall): 添加会员购买功能并优化节点助力逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index d6a9301..0324149 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -857,24 +857,28 @@ } //获取节点设置 List<RunNodeSet> runNodeSets = runNodeSetMapper.selectList(null); - BigDecimal balanceToCoin = new BigDecimal( - dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(), - RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue() - ).setScale(2, BigDecimal.ROUND_DOWN); + + //获取节点设置runNodeSets中orderNumber最小的节点 + RunNodeSet minRunNodeSet = runNodeSets.stream().min(Comparator.comparingInt(RunNodeSet::getOrderNumber)).orElse(null); + if(null == minRunNodeSet){ + return; + } DateTime endTime = DateUtil.date(); for (MallMember item : mallMembers) { //获取总业绩 BigDecimal achieve = getDirectAchieve(item.getInviteId(),item.getDirectorTime(),endTime); - if(BigDecimal.ZERO.compareTo(achieve) >= 0){ + //判断总业绩是否小于最小业绩 + if(minRunNodeSet.getMinAchieve().compareTo(achieve) > 0){ + item.setDirector(YesOrNoEnum.NO.getValue()); + mallMemberMapper.updateById(item); continue; } BigDecimal nodePercent = getNodePercent(runNodeSets, achieve); if(BigDecimal.ZERO.compareTo(nodePercent) >= 0){ continue; } - asyncService.releaseNodeCoin(achieve,nodePercent,balanceToCoin,item.getId()); + asyncService.releaseNodeCoin(achieve,nodePercent,item.getId()); item.setDirectorTime(endTime); mallMemberMapper.updateById(item); } -- Gitblit v1.9.1