From 84102b8a1e4e716ffb8041e3a20a11e9e0b2651a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 06 Jan 2023 15:00:00 +0800
Subject: [PATCH] 20221227 充值归集

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java                 |    2 +
 src/main/resources/mapper/modules/MallMemberMapper.xml                         |   47 +++++++++++++----------
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   16 +++++++-
 3 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
index b9d27a0..5631fd9 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -102,4 +102,6 @@
     void updateLevelStatusById(@Param("levelStatus")int i, @Param("id")Long memberId);
 
     IPage<MemberCoinChargeEntity> selectMemberChargeListInPage(Page<MemberCoinChargeEntity> page, @Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
+
+    BigDecimal getSumAmountByMemberId(@Param("memberId")Long memberId);
 }
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 61152cf..09a2aaf 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
@@ -224,6 +224,7 @@
         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());
@@ -231,6 +232,17 @@
                 //获取总数
                 List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
                 adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size());
+
+                //团队业绩
+                BigDecimal amount = BigDecimal.ZERO;
+                if(CollUtil.isNotEmpty(allMallMembers)){
+                    for(MallMember teamMember : allMallMembers){
+                        Long memberId = teamMember.getId();
+                        BigDecimal sumAmount = mallMemberMapper.getSumAmountByMemberId(memberId);
+                        amount = amount.add(sumAmount);
+                    }
+                }
+                adminAgentVo.setAmount(amount);
             }
         }
         return adminAgentVos;
@@ -277,8 +289,8 @@
         List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords();
         if(CollUtil.isNotEmpty(records)){
             for(AdminAgentMemberVo agentMemberVo : records){
-                String inviteId = agentMemberVo.getInviteId();
-                BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId);
+                Long agentMemberVoId = agentMemberVo.getId();
+                BigDecimal amount = mallMemberMapper.getSumAmountByMemberId(agentMemberVoId);
                 agentMemberVo.setAmount(amount);
             }
         }
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index ba901e6..c320725 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -135,22 +135,11 @@
 
     <select id="getAgentListInPage" resultType="cc.mrbird.febs.mall.vo.AdminAgentVo">
 
-        SELECT m.*,a.description levelName,
-        ifnull((
-        SELECT
-        sum(b.amount)
-        FROM
-        mall_member e
-        INNER JOIN mall_order_info b ON e.id = b.member_id
-        AND b.STATUS = 4 and b.comment_state = 2
-        WHERE
-        e.invite_id = m.invite_id
-        OR e.referrer_id = m.invite_id
-        or find_in_set(m.invite_id, e.referrer_ids)
-        ),0) amount
+        SELECT m.*,a.description levelName
         FROM mall_member m
         left join data_dictionary_custom a on a.description = m.level
         <where>
+            1= 1
             and m.level != 'VIP'
             <if test="record != null" >
                 <if test="record.name!=null and record.name!=''">
@@ -213,13 +202,11 @@
             SELECT
                 ifnull(sum(b.amount),0)
             FROM
-                mall_member e
-                    INNER JOIN mall_order_info b ON e.id = b.member_id
-                    AND b.STATUS = 4
+                mall_order_info b
+                    INNER JOIN mall_member e ON e.id = b.member_id
                     and b.comment_state = 2
             WHERE
                 e.invite_id = #{inviteId}
-               OR e.referrer_id = #{inviteId}
                or find_in_set(#{inviteId}, e.referrer_ids)
     </select>
 
@@ -356,15 +343,24 @@
     <select id="selectAchieveByMemberId" resultType="java.math.BigDecimal">
         select IFNULL(sum(IFNULL(a.amount, 0)), 0)
         from mall_order_info a
-             inner join mall_member b on a.member_id=b.ID
         where 1=1
-        and a.status = 4
         and a.comment_state = 2
         <if test="type == 1">
             and b.invite_id=#{inviteId}
         </if>
         <if test="type == 2">
-            and (find_in_set(#{inviteId}, b.referrer_ids) or b.invite_id=#{inviteId})
+            AND a.member_id IN (
+            SELECT
+            id
+            FROM
+            mall_member
+            WHERE
+            1 = 1
+            AND (
+                find_in_set(#{inviteId}, referrer_ids)
+                OR invite_id = #{inviteId}
+                )
+            )
         </if>
     </select>
 
@@ -465,4 +461,15 @@
         </where>
         order by a.CREATED_TIME desc
     </select>
+
+    <select id="getSumAmountByMemberId" resultType="java.math.BigDecimal">
+        SELECT
+            IFNULL(sum(IFNULL(a.amount, 0)), 0)
+        FROM
+            mall_order_info a
+        WHERE
+            1 = 1
+          AND a.comment_state = 2
+          and a.member_id = #{memberId}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1