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