From dc76fa3e61cc6ed31a82d44002e89059b4ca8a88 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 25 Jun 2024 11:05:15 +0800
Subject: [PATCH] 后台

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 80 insertions(+), 16 deletions(-)

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 1f36f41..4c607a3 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
@@ -37,8 +37,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -294,23 +293,70 @@
     }
 
     @Override
-    public IPage<AdminAgentVo> getAgentList(AgentDto agentDto, QueryRequest request) {
-        Page<AdminAgentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
-        IPage<AdminAgentVo> adminAgentVos = this.baseMapper.getAgentListInPage(page, agentDto);
-        List<AdminAgentVo> records = adminAgentVos.getRecords();
-        if(CollUtil.isNotEmpty(records)){
-            for(AdminAgentVo adminAgentVo : records){
-                String inviteId = adminAgentVo.getInviteId();
-                //直接下级
-                List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId);
-                adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
+    public FebsResponse getAgentList(AgentDto agentDto, QueryRequest request) {
+        List<AdminMallMemberVo> adminMallMemberVos = new ArrayList<>();
+        if(StrUtil.isEmpty(agentDto.getAccountLogin())){
+            return new FebsResponse().success().data(adminMallMemberVos);
+        }
+        String accountLogin = agentDto.getAccountLogin();
+        MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin);
+        if(ObjectUtil.isEmpty(mallMember)){
+            return new FebsResponse().success().data(adminMallMemberVos);
+        }
 
-                //获取总数
-                List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
-                adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size());
+        ArrayList<Long> memberIdList = new ArrayList<>();
+        memberIdList.add(mallMember.getId());
+
+        QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("referrer_id",mallMember.getInviteId());
+        List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+        if(CollUtil.isNotEmpty(mallMembers)){
+            for(MallMember directMember : mallMembers){
+                //第一代
+                memberIdList.add(directMember.getId());
+
+                QueryWrapper<MallMember> directWrapper = new QueryWrapper<>();
+                directWrapper.eq("referrer_id",directMember.getInviteId());
+                List<MallMember> refMembers = this.baseMapper.selectList(directWrapper);
+                if(CollUtil.isNotEmpty(refMembers)){
+                    for(MallMember refMember : refMembers){
+                        //第二代
+                        memberIdList.add(refMember.getId());
+                    }
+                }
             }
         }
-        return adminAgentVos;
+
+        for(Long id : memberIdList){
+            AdminMallMemberVo adminMallMemberVo = new AdminMallMemberVo();
+
+            MallMember member = this.baseMapper.selectById(id);
+            adminMallMemberVo.setAccountLogin(member.getAccountLogin());
+
+            BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
+            adminMallMemberVo.setChargeAmount(chargeAmount);
+            BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue());
+            adminMallMemberVo.setWithDrawAmount(withDrawAmount);
+
+            MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id);
+            adminMallMemberVo.setBalance(mallMemberWallet.getBalance());
+
+            BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue());
+            adminMallMemberVo.setAmountBuy(amountBuy);
+
+            BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue());
+            BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue());
+            BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk);
+            adminMallMemberVo.setAmountPerk(add);
+
+            adminMallMemberVos.add(adminMallMemberVo);
+        }
+
+        Map<String, Object> data = new HashMap<>(2);
+        data.put("rows", adminMallMemberVos);
+        data.put("total", adminMallMemberVos.size());
+
+        return new FebsResponse().success().data(data);
     }
 
     @Override
@@ -893,6 +939,24 @@
     public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) {
         Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize());
         IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember);
+        List<AdminMallMemberVo> records = adminMallMemberVoIPage.getRecords();
+        if(CollUtil.isNotEmpty(records)){
+            for(AdminMallMemberVo adminMallMemberVo : records){
+                Long id = adminMallMemberVo.getId();
+                BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
+                adminMallMemberVo.setChargeAmount(chargeAmount);
+                BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue());
+                adminMallMemberVo.setWithDrawAmount(withDrawAmount);
+                BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue());
+                adminMallMemberVo.setAmountBuy(amountBuy);
+                BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue());
+                BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue());
+                BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk);
+                adminMallMemberVo.setAmountPerk(add);
+            }
+        }
+
+
         return adminMallMemberVoIPage;
     }
 

--
Gitblit v1.9.1