From b0e15cf443f945d3c2f7bc2da7cd48972e5117af Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 24 Sep 2021 16:47:13 +0800
Subject: [PATCH] add my team

---
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java       |    2 
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java                  |   10 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    6 ++-
 src/main/resources/mapper/modules/MallMemberMapper.xml                          |   28 ++++++++++++++
 src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java                          |    2 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java            |    7 +--
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java    |   33 ++++++++++++++--
 7 files changed, 76 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index 1031f9f..5a3d2de 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -67,6 +67,6 @@
     })
     @PostMapping(value = "/teamList")
     public FebsResponse teamList(@RequestBody TeamListDto teamListDto) {
-        return null;
+        return memberService.teamList(teamListDto);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java b/src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java
index 76842ea..fb0e579 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java
@@ -12,6 +12,6 @@
 @ApiModel(value = "TeamListDto", description = "我的团队接收参数类")
 public class TeamListDto {
 
-    @ApiModelProperty(value = "用户ID", example = "1")
+    @ApiModelProperty(value = "用户ID, 若查询本账号则不传", example = "1")
     private Long id;
 }
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 3708e77..d847311 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -2,10 +2,14 @@
 
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.mall.vo.TeamListVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author wzy
@@ -22,4 +26,10 @@
     MallMember selectInfoByAccountAndPwd(@Param("account") String account, @Param("password") String password);
 
     MallMemberVo getMallMemberInfoById(@Param("id")long id);
+
+    List<TeamListVo> selectTeamListByInviteId(@Param("inviteId") String inviteId);
+
+    BigDecimal selectOwnAmountByInviteId(@Param("inviteId") String inviteId);
+
+    Integer selectOwnCntByInviteId(@Param("inviteId") String inviteId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index 1c6997f..8871a2b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -1,10 +1,7 @@
 package cc.mrbird.febs.mall.service;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.dto.ForgetPwdDto;
-import cc.mrbird.febs.mall.dto.LoginDto;
-import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
-import cc.mrbird.febs.mall.dto.RegisterDto;
+import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.MallMember;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -24,4 +21,6 @@
     FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto);
 
     FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto);
+
+    FebsResponse teamList(TeamListDto teamListDto);
 }
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 ca6e862..b96b8aa 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
@@ -7,10 +7,7 @@
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.ShareCodeUtil;
 import cc.mrbird.febs.mall.conversion.MallMemberConversion;
-import cc.mrbird.febs.mall.dto.ForgetPwdDto;
-import cc.mrbird.febs.mall.dto.LoginDto;
-import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
-import cc.mrbird.febs.mall.dto.RegisterDto;
+import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.entity.MallMemberWallet;
 import cc.mrbird.febs.mall.entity.MallShoppingCart;
@@ -21,6 +18,7 @@
 import cc.mrbird.febs.mall.service.IApiMallMemberService;
 import cc.mrbird.febs.mall.service.ICommonService;
 import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.mall.vo.TeamListVo;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -264,4 +262,31 @@
         this.baseMapper.updateById(mallMember);
         return new FebsResponse().success().message("修改成功");
     }
+
+    @Override
+    public FebsResponse teamList(TeamListDto teamListDto) {
+        Long memberId = null;
+        if (teamListDto.getId() == null) {
+            memberId = LoginUserUtil.getLoginUser().getId();
+        } else {
+            memberId = teamListDto.getId();
+        }
+
+        MallMember mallMember = this.baseMapper.selectById(memberId);
+
+        List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
+        BigDecimal ownAmount = this.baseMapper.selectOwnAmountByInviteId(mallMember.getInviteId());
+
+        TeamListVo own = new TeamListVo();
+        own.setCreatedTime(mallMember.getCreatedTime());
+        own.setAmount(ownAmount);
+        own.setName(mallMember.getName());
+        own.setPhone(mallMember.getPhone());
+        own.setInviteId(mallMember.getInviteId());
+        own.setIsCurrent(1);
+        own.setCnt(this.baseMapper.selectOwnCntByInviteId(mallMember.getInviteId()));
+        own.setId(mallMember.getId());
+        list.add(0, own);
+        return new FebsResponse().success().data(list);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index dee52ce..b81522d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -113,6 +113,7 @@
             mallOrderItemMapper.insert(orderItem);
 
             sku.setStock(sku.getStock() - item.getCnt());
+            sku.setSkuVolume(sku.getSkuVolume() + item.getCnt());
             mallGoodsSkuMapper.updateById(sku);
 
             if (addOrderDto.getType() == 1) {
@@ -288,6 +289,7 @@
             throw new FebsException("该订单不能退款");
         }
 
+        Integer beforeStatus = orderInfo.getStatus();
         MallMember member = LoginUserUtil.getLoginUser();
         orderInfo.setStatus(OrderStatusEnum.REFUNDING.getValue());
         this.baseMapper.updateById(orderInfo);
@@ -301,7 +303,7 @@
             orderRefund.setReason(addRefundDto.getReason());
             orderRefund.setType(addRefundDto.getType());
             orderRefund.setRefundTime(new Date());
-            orderRefund.setBeforeStatus(orderInfo.getStatus());
+            orderRefund.setBeforeStatus(beforeStatus);
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.insert(orderRefund);
         } else {
@@ -309,7 +311,7 @@
             orderRefund.setReason(addRefundDto.getReason());
             orderRefund.setType(addRefundDto.getType());
             orderRefund.setRefundTime(new Date());
-            orderRefund.setBeforeStatus(orderInfo.getStatus());
+            orderRefund.setBeforeStatus(beforeStatus);
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.updateById(orderRefund);
         }
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index 96f8df2..b7e0872 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -55,4 +55,32 @@
     <select id="selectInfoByAccountAndPwd" resultType="cc.mrbird.febs.mall.entity.MallMember">
         select * from mall_member where (phone=#{account} or email=#{account}) and password=#{password}
     </select>
+
+    <select id="selectTeamListByInviteId" resultType="cc.mrbird.febs.mall.vo.TeamListVo">
+        select
+            a.id,
+            a.name,
+            a.phone,
+            a.invite_id,
+            2 isCurrent,
+            a.created_time,
+            (select sum(b.amount) from mall_member e
+                                           inner join mall_order_info b on e.id=b.member_id and b.status=4
+             where e.invite_id=a.invite_id or e.referrer_id=a.invite_id) amount,
+            (select count(1) from mall_member x where x.referrer_id=a.invite_id) cnt
+        from mall_member a
+        where a.referrer_id=#{inviteId}
+    </select>
+
+    <select id="selectOwnAmountByInviteId" resultType="java.math.BigDecimal">
+        select
+            sum(b.amount)
+        from mall_member e
+          inner join mall_order_info b on e.id=b.member_id and b.status=4
+        where e.invite_id=#{inviteId} or e.referrer_id=#{inviteId}
+    </select>
+
+    <select id="selectOwnCntByInviteId" resultType="java.lang.Integer">
+        select count(1) from mall_member x where x.referrer_id=#{inviteId}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1