From c5947256b22f2283214258827f61af09966cf490 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 31 Dec 2024 17:25:37 +0800 Subject: [PATCH] feat(mall): 添加会员列表直推、团队、业绩统计功能 - 在 MallMember 实体中添加直推数、团队数、业绩金额等字段 - 修改 getMallMemberList 方法,异步计算每个会员的直推、团队和业绩数据 - 在前端列表中显示直推、团队、业绩等列 - 优化数据查询效率,使用 LambdaQueryWrapper 和 CompletableFuture --- src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java index bef028b..c3585fd 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; @Slf4j @Service @@ -40,4 +41,30 @@ ); } + + @Override + public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin, Long memberId) { + //实际节点助力的碳币 + BigDecimal multiply = amount.multiply(percent); + if(BigDecimal.ZERO.compareTo(multiply) >=0){ + return; + } + BigDecimal divide = multiply.divide(balanceToCoin, 2, RoundingMode.DOWN); + if(BigDecimal.ZERO.compareTo(divide) >=0){ + return; + } + walletService.addBalance(divide,memberId); + String orderNo = MallUtils.getOrderNum("JD"); + mallMoneyFlowService.runVipMoneyFlowAdd( + memberId, + memberId, + orderNo, + FlowTypeEnum.BALANCE.getValue(), + RunVipMoneyFlowTypeEnum.NODE_BALANCE.getValue(), + divide, + StrUtil.format(RunVipMoneyFlowTypeEnum.NODE_BALANCE.getDescription(),divide), + YesOrNoEnum.YES.getValue() + ); + + } } -- Gitblit v1.9.1