From 74315c8cc145e30c33f2c2b3fd9074c446e6699c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 03 Mar 2025 15:38:46 +0800
Subject: [PATCH] feat(mall): 添加会员列表页面

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 49 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 81ac8aa..5cf9638 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -464,11 +464,19 @@
         myTeamVo.setMyTeamBalance(getTeamBalance(mallMembers).getMyTeamBalance());
         myTeamVo.setMyTeamCommission(getTeamBalance(mallMembers).getMyTeamCommission());
 
+        List<MallMember> mallMembersAll = this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId());
+        if(CollUtil.isNotEmpty(mallMembersAll)){
+            myTeamVo.setMyTeamCntAll(mallMembersAll.size());
+            myTeamVo.setMyTeamBalanceAll(getTeamBalance(mallMembersAll).getMyTeamBalance());
+            myTeamVo.setMyTeamCommissionAll(getTeamBalance(mallMembersAll).getMyTeamCommission());
+        }
+
         List<TeamListVo> teamListVos = MallMemberConversion.INSTANCE.entityToTeamListVos(mallMembers);
         teamListVos.forEach(item -> {
             item.setMyBalance(mallMemberWalletMapper.selectWalletByMemberId(item.getId()).getBalance());
             item.setLevelName(runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode,item.getLevel())).getVipName());
-            List<MallMember> mallMemberRefs = this.baseMapper.selectByRefererId(item.getInviteId());
+//            List<MallMember> mallMemberRefs = this.baseMapper.selectByRefererId(item.getInviteId());
+            List<MallMember> mallMemberRefs = this.baseMapper.selectAllChildAgentListByInviteId(item.getInviteId());
             if(CollUtil.isEmpty(mallMemberRefs)){
                 item.setMyTeamCnt(0);
                 item.setMyTeamBalance(BigDecimal.ZERO);
@@ -1724,6 +1732,8 @@
          * 1:日榜 2:月榜
          * 获取当前日期
          */
+
+        List<ApiChartVo> apiChartVos = new ArrayList<>();
         LambdaQueryWrapper<MallMoneyFlow> mallMoneyFlowLambdaQueryWrapper = new LambdaQueryWrapper<>();
         if(apiRecordDto.getType() == 1){
             DateTime dateTime = DateUtil.beginOfDay(DateUtil.date());
@@ -1732,15 +1742,26 @@
             DateTime dateTime = DateUtil.beginOfMonth(DateUtil.date());
             mallMoneyFlowLambdaQueryWrapper.ge(MallMoneyFlow :: getCreatedTime , dateTime);
         }
+        List<MallMember> mallMembers = this.baseMapper.selectList(
+                new LambdaQueryWrapper<MallMember>()
+                        .select(MallMember::getId)
+        );
+        if(CollUtil.isEmpty(mallMembers)){
+            return apiChartVos;
+        }
+        //获取mallMembers的全部id
+        List<Long> ids = mallMembers.stream().map(MallMember::getId).collect(Collectors.toList());
         mallMoneyFlowLambdaQueryWrapper.eq(MallMoneyFlow :: getFlowType, FlowTypeEnum.SCORE.getValue());
         mallMoneyFlowLambdaQueryWrapper.in(
                 MallMoneyFlow :: getType,
                 RunVipMoneyFlowTypeEnum.GET_SCORE.getValue(),
                 RunVipMoneyFlowTypeEnum.SYS_SCORE.getValue()
         );
+        mallMoneyFlowLambdaQueryWrapper.in(
+                MallMoneyFlow :: getMemberId,
+                ids
+        );
         List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(mallMoneyFlowLambdaQueryWrapper);
-
-        List<ApiChartVo> apiChartVos = new ArrayList<>();
         if(CollUtil.isEmpty(mallMoneyFlows)){
             return apiChartVos;
         }
@@ -1758,16 +1779,38 @@
         // 对 Map 按照 amount 的绝对值之和从大到小排序,并取前十个结果
         List<Map.Entry<Long, BigDecimal>> sortedList = sumByMemberId.entrySet().stream()
                 .sorted((entry1, entry2) -> entry2.getValue().compareTo(entry1.getValue()))
-                .limit(10)
+                .limit(20)
                 .collect(Collectors.toList());
-        sortedList.forEach(entry -> {
+
+        for (Map.Entry<Long, BigDecimal> entry : sortedList){
+            if(apiChartVos.size() >= 10){
+                break;
+            }
             ApiChartVo apiChartVo = new ApiChartVo();
             MallMember mallMember = this.baseMapper.selectById(entry.getKey());
+            if(null == mallMember){
+                continue;
+            }
+
             apiChartVo.setName(hidePhoneNumber(mallMember.getName()));
             apiChartVo.setAvatar(mallMember.getAvatar());
             apiChartVo.setScore(entry.getValue());
             apiChartVos.add(apiChartVo);
-        });
+        }
+//        sortedList.forEach(entry -> {
+//            ApiChartVo apiChartVo = new ApiChartVo();
+//            MallMember mallMember = this.baseMapper.selectById(entry.getKey());
+//            if(null == mallMember){
+//                apiChartVo.setName(hidePhoneNumber("runStep"));
+//                apiChartVo.setAvatar(null);
+//                apiChartVo.setScore(entry.getValue());
+//            }else{
+//                apiChartVo.setName(hidePhoneNumber(mallMember.getName()));
+//                apiChartVo.setAvatar(mallMember.getAvatar());
+//                apiChartVo.setScore(entry.getValue());
+//            }
+//            apiChartVos.add(apiChartVo);
+//        });
         return apiChartVos;
     }
 

--
Gitblit v1.9.1