From 25828996cb8f2b971de722ce9a527c26bbc68cb2 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Wed, 23 Aug 2023 00:28:35 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java            |    2 
 src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java                         |   10 +++
 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java                       |    8 ++
 src/main/resources/mapper/modules/MallMemberMapper.xml                       |    9 +-
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                    |   46 ++++++++++-----
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   58 +++++++------------
 6 files changed, 76 insertions(+), 57 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..30edcae 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -81,4 +81,6 @@
 
     @SqlParser(filter = true)
     IPage<AdminGoodsStatisticsVo> getGoodsStatisticsInPage(Page<AdminGoodsStatisticsVo> page, @Param("record") MallOrderItem mallOrderItem);
+
+    BigDecimal selectAmountOrTeamAmount(@Param("inviteId") String inviteId, @Param("type") Integer type);
 }
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 b2232bb..3716d5d 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
@@ -13,10 +13,7 @@
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
-import cc.mrbird.febs.mall.service.IApiMallMemberService;
-import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
-import cc.mrbird.febs.mall.service.ICommonService;
-import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
+import cc.mrbird.febs.mall.service.*;
 import cc.mrbird.febs.mall.vo.*;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
@@ -30,6 +27,7 @@
 import cn.hutool.crypto.asymmetric.RSA;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -69,6 +67,8 @@
     private final SpringContextHolder springContextHolder;
     private final MallAgentRecordMapper mallAgentRecordMapper;
     private final IMallMoneyFlowService mallMoneyFlowService;
+    private final IMallMemberCollectionService mallMemberCollectionService;
+    private final IMallMemberFootprintService mallMemberFootprintService;
 
 
     @Value("${spring.profiles.active}")
@@ -253,38 +253,24 @@
             mallMemberVo.setHasPayment(1);
         }
 
-        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
-        mallMemberVo.setBalance(wallet.getBalance());
-        mallMemberVo.setScore(wallet.getScore());
-        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
-        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
+        LambdaQueryWrapper<MallMemberCollection> collectionQuery = new LambdaQueryWrapper<>();
+        collectionQuery.eq(MallMemberCollection::getMemberId, id);
+        List<MallMemberCollection> collectionList = mallMemberCollectionService.list(collectionQuery);
+        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
 
-        //代理状态
-        MallAgentRecord mallAgentRecordIng = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_ING);
-        MallAgentRecord mallAgentRecordAgree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_AGREE);
-        MallAgentRecord mallAgentRecordDisagree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_DISAGREE);
-        if(ObjectUtil.isNotEmpty(mallAgentRecordIng)){
-            mallMemberVo.setIsAgent(1);
-        }else if(ObjectUtil.isNotEmpty(mallAgentRecordAgree)){
-            mallMemberVo.setIsAgent(2);
-            if(StrUtil.isNotEmpty(mallAgentRecordAgree.getAgentLevel())){
-                DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_LEVEL_APPLY", mallAgentRecordAgree.getAgentLevel());
-                mallMemberVo.setAgentLevelName(dataDictionaryCustom.getDescription());
-            }
-            if(AgentLevelEnum.LEVEL_ONE.name().equals(mallAgentRecordAgree.getAgentLevel())){
-                mallMemberVo.setAgentLevel(1);
-            }
-            if(AgentLevelEnum.LEVEL_TWO.name().equals(mallAgentRecordAgree.getAgentLevel())){
-                mallMemberVo.setAgentLevel(2);
-            }
-            if(AgentLevelEnum.LEVEL_THREE.name().equals(mallAgentRecordAgree.getAgentLevel())){
-                mallMemberVo.setAgentLevel(3);
-            }
-        }else if(ObjectUtil.isNotEmpty(mallAgentRecordDisagree)){
-            mallMemberVo.setIsAgent(3);
-        }
-//        log.info(mallMemberVo.getName()+"---"+mallMemberVo.getAgentLevel());
+        LambdaQueryWrapper<MallMemberCollection> footprintQuery = new LambdaQueryWrapper<>();
+        footprintQuery.eq(MallMemberCollection::getMemberId, id);
+        List<MallMemberCollection> footprintList = mallMemberCollectionService.list(footprintQuery);
+        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
 
+        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
+        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
+
+//        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
+//        mallMemberVo.setBalance(wallet.getBalance());
+//        mallMemberVo.setScore(wallet.getScore());
+//        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
+//        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
         return new FebsResponse().success().data(mallMemberVo);
     }
 
@@ -356,8 +342,8 @@
 
         MyTeamVo myTeamVo = new MyTeamVo();
         myTeamVo.setTeam(list);
-        myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
-        myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
+        myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
+        myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
         myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
         return new FebsResponse().success().data(myTeamVo);
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
index d2f93f0..98d8ae2 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -84,4 +84,12 @@
     @ApiModelProperty(value = "代理等级数字  1:一级 2:二级 3:三级")
     private Integer agentLevel;
 
+    @ApiModelProperty(value = "收藏数量")
+    private Integer collectionCnt;
+
+    @ApiModelProperty(value = "足迹数量")
+    private Integer footprintCnt;
+
+    @ApiModelProperty(value = "足迹数量")
+    private Integer childCnt;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java
index d92a485..f49e4aa 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java
@@ -25,6 +25,13 @@
     @ApiModelProperty(value = "昵称")
     private String name;
 
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "注册时间")
+    private Date createTime;
+
     @ApiModelProperty(value = "手机号")
     private String phone;
 
@@ -50,4 +57,7 @@
     @ApiModelProperty(value = "用户等级")
     private String levelName;
 
+    @ApiModelProperty(value = "自己下单数量")
+    private Integer selfOrderCnt;
+
 }
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index dd74bb6..79f460a 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -79,20 +79,19 @@
             a.invite_id,
             2 isCurrent,
             a.created_time,
-            p.prize_score,
-            u.description levelName,
+            a.avatar,
+            (select count(1) from mall_order_info orderInfo
+             where orderInfo.status in (2, 3, 4) and orderInfo.member_id=a.id) selfOrderCnt,
             (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 -- and c.is_normal=2
+                      inner join mall_order_item c on e.id = c.order_id
              where e.status in (2, 3, 4) and e.order_type=1 and (b.invite_id=a.invite_id or b.referrer_id=a.invite_id)) amount,
             (select count(1) from mall_member e
                       inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4)
              where find_in_set(a.invite_id, e.referrer_ids)) orderCnt,
             (select count(1) from mall_member x where find_in_set(a.invite_id, x.referrer_ids)) cnt
         from mall_member a
-        inner join mall_member_wallet p on a.id=p.member_id
-        left join data_dictionary_custom u on a.level=u.code and u.type='AGENT_LEVEL'
         where a.referrer_id=#{inviteId}
     </select>
 
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 657a430..f9d27cb 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -423,20 +423,34 @@
     </select>
 
     <select id="getGoodsStatisticsInPage" resultType="cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo">
-    select
-        goods_name goodsName,
-        SUM(cnt) goodsCnt
-    from mall_order_item
-    <where>
-    1=1
-        <if test="record.orderIdsStr != null">
-            and order_id in
-                <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=",">
-                    #{id}
-                </foreach>
-        </if>
-    </where>
-        GROUP BY goods_id
-        ORDER BY goods_id desc
-</select>
+        select
+            goods_name goodsName,
+            SUM(cnt) goodsCnt
+        from mall_order_item
+        <where>
+        1=1
+            <if test="record.orderIdsStr != null">
+                and order_id in
+                    <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=",">
+                        #{id}
+                    </foreach>
+            </if>
+        </where>
+            GROUP BY goods_id
+            ORDER BY goods_id desc
+    </select>
+
+    <select id="selectAmountOrTeamAmount" 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>
+            a.status in (2,3,4)
+            <if test="type == 1">
+                and b.invite_id=#{inviteId}
+            </if>
+            <if test="type == 2">
+                and find_in_set(#{inviteId}, b.referrer_ids)
+            </if>
+        </where>
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1