From d497710f15f38a293fbab685160a113923f7811b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 12 Mar 2025 11:30:09 +0800
Subject: [PATCH] refactor(mall): 优化直推人数统计逻辑
---
src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 3 +++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 12 +++++++++---
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 1 +
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
index b00ba0c..ae6fecc 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
@@ -191,6 +191,9 @@
@TableField(exist = false)
private int directCnt = 0;
+
+ @TableField(exist = false)
+ private int directCntAvailable = 0;
@TableField(exist = false)
private int teamCnt = 0;
@TableField(exist = false)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 5a38e8e..e2a4d4a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -92,15 +92,21 @@
DateTime endTime = DateUtil.date();
records.forEach(item -> {
CompletableFuture<Void> uCompletableFuture = CompletableFuture.runAsync(() -> {
- //获取直推
- Set<String> directInviteIds = mallMemberMapper.selectList(
+ List<MallMember> directMembers = mallMemberMapper.selectList(
new LambdaQueryWrapper<MallMember>()
.eq(MallMember::getReferrerId, item.getInviteId())
- ).stream()
+ );
+ //获取直推
+ Set<String> directInviteIds = directMembers.stream()
+ .map(MallMember::getInviteId)
+ .collect(Collectors.toSet());
+ Set<String> directCntAvailableInviteIds = directMembers.stream()
+ .filter(member -> !"YOUKE".equals(member.getLevel()))
.map(MallMember::getInviteId)
.collect(Collectors.toSet());
if(CollUtil.isNotEmpty(directInviteIds)){
item.setDirectCnt(directInviteIds.size());
+ item.setDirectCntAvailable(directCntAvailableInviteIds.size());
//获取团队
List<MallMember> allMembers = mallMemberMapper.selectList(
new LambdaQueryWrapper<MallMember>()
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
index 23aa123..b768852 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -258,6 +258,7 @@
{field: 'balance', title: '碳币', minWidth: 100,align:'left', totalRow:true},
{field: 'score', title: '碳积分', minWidth: 100,align:'left', totalRow:true},
{field: 'directCnt', title: '直推', minWidth: 100,align:'left', totalRow:true},
+ {field: 'directCntAvailable', title: '有效直推', minWidth: 100,align:'left', totalRow:true},
{field: 'teamCnt', title: '团队', minWidth: 100,align:'left', totalRow:true},
{field: 'achieveCnt', title: '业绩', minWidth: 100,align:'left', totalRow:true},
{field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
--
Gitblit v1.9.1