From 58b9c60649a874b61cb60010b99a76f2162d4c0e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 14 Aug 2023 11:38:06 +0800
Subject: [PATCH] 赠送积分更新状态

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java            |    3 ++-
 src/main/resources/mapper/modules/MallMemberMapper.xml                       |   14 +++-----------
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                    |    5 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   12 ++++++++++++
 4 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 5b532bb..1be5021 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -1,6 +1,5 @@
 package cc.mrbird.febs.mall.mapper;
 
-import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum;
 import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
 import cc.mrbird.febs.mall.dto.OrderListDto;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
@@ -55,6 +54,8 @@
 
     BigDecimal selectTotalAmount(@Param("memberId") Long memberId);
 
+    List<MallOrderInfo> selectTotalAmountListByMemberId(@Param("memberId") Long memberId);
+
     BigDecimal selectTotalAmountForDate(@Param("date") Date date, @Param("member") Long memberId);
 
     BigDecimal selectTotalAmountUnCostForDate(@Param("date") Date date, @Param("member") Long memberId, @Param("dateType") String dateType, @Param("isNormal") Integer isNormal);
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 18d8f58..ea2579c 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
@@ -359,6 +359,18 @@
         MallMember mallMember = this.baseMapper.selectById(memberId);
 
         List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
+        if(CollUtil.isNotEmpty(list)){
+            for(TeamListVo teamListVo : list){
+                List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectTotalAmountListByMemberId(teamListVo.getId());
+                if(CollUtil.isNotEmpty(mallOrderInfos)){
+                    BigDecimal reduce = mallOrderInfos.stream().map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    teamListVo.setAmount(reduce);
+                    teamListVo.setOrderCnt(mallOrderInfos.size());
+                    List<MallMember> mallMembers = this.baseMapper.selectChildAgentListByInviteId(teamListVo.getInviteId());
+                    teamListVo.setCnt(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
+                }
+            }
+        }
         MyTeamVo myTeamVo = new MyTeamVo();
         myTeamVo.setTeam(list);
         myTeamVo.setMyAchieve(this.baseMapper.selectOrderAmountByMemberId(mallMember.getInviteId(), 1));
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index e422e98..1571645 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -79,16 +79,7 @@
             a.invite_id,
             2 isCurrent,
             a.created_time,
-            p.prize_score,
-            (select sum(e.amount)
-             from mall_order_info e
-                      inner join mall_member b on e.member_id=b.ID
-                      inner join mall_order_item c on e.id = c.order_id
-             where e.status in (2, 3, 4) and (find_in_set(a.invite_id, b.referrer_ids))) amount,
-            (select count(e.id) from mall_order_info e
-                      inner join mall_member  b on b.id = e.member_id and e.status in (2, 3, 4)
-             where (find_in_set(a.invite_id, b.referrer_ids))) orderCnt,
-            (select count(1) from mall_member x where (find_in_set(a.invite_id, x.referrer_ids))) cnt
+            p.prize_score
         from mall_member a
         inner join mall_member_wallet p on a.id=p.member_id
         where a.referrer_id=#{inviteId}
@@ -375,7 +366,8 @@
                 and b.invite_id=#{inviteId}
             </if>
             <if test="type == 2">
-                and find_in_set(#{inviteId}, b.referrer_ids)
+                b.referrer_id = #{inviteId}
+--                 and find_in_set(#{inviteId}, b.referrer_ids)
             </if>
     </select>
 
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 9d7b3b1..76f1bea 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -262,6 +262,11 @@
         where member_id=#{memberId} and status in (2, 3, 4) and order_type=1
     </select>
 
+    <select id="selectTotalAmountListByMemberId" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+        select * from mall_order_info
+        where member_id=#{memberId} and status in (2, 3, 4)
+    </select>
+
     <select id="selectTotalAmountForDate" resultType="java.math.BigDecimal">
         select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info
         where status = 4

--
Gitblit v1.9.1