From 63b5728cd6348f37cd95e21680e0a066956c641c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 02 Jan 2024 15:36:56 +0800
Subject: [PATCH] 修改推荐人

---
 src/main/resources/mapper/modules/MallMemberCouponMapper.xml                    |   13 ++++++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java       |    7 +++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   12 +++++-
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java            |    2 +
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java            |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java    |   29 ++++++++++++++
 6 files changed, 62 insertions(+), 3 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 c1e5fcc..55bf365 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -235,6 +235,13 @@
         return memberService.getCoupon(getCouponDto);
     }
 
+
+    @ApiOperation(value = "扫码推销员领取优惠卷")
+    @PostMapping(value = "/scanCoupon")
+    public FebsResponse scanCoupon(@RequestBody GetCouponDto getCouponDto) {
+        return memberService.scanCoupon(getCouponDto);
+    }
+
     @ApiOperation(value = "优惠卷列表")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java
index 12f96be..6d1912e 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java
@@ -23,4 +23,6 @@
 
     List<MallMemberCoupon> selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(@Param("memberId")Long memberId,
                                                                      @Param("goodsId")Long goodsId);
+
+    List<MallMemberCoupon> selectListByMemberIdCouponIdWithOutInviteId(@Param("memberId")Long memberId, @Param("couponId")Long couponId);
 }
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 30501d8..73380fe 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -86,6 +86,8 @@
 
     FebsResponse getCoupon(GetCouponDto getCouponDto);
 
+    FebsResponse scanCoupon(GetCouponDto getCouponDto);
+
     FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto);
 
     FebsResponse couponDetails(Long id);
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 1be19b6..df62196 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
@@ -935,6 +935,35 @@
     }
 
     @Override
+    public FebsResponse scanCoupon(GetCouponDto getCouponDto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        String couponUUID = IdUtil.simpleUUID();
+        //通过邀请人信息,获取能领取的优惠卷信息
+        MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
+        if(ObjectUtil.isNotEmpty(mallMember)){
+            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId());
+            if(ObjectUtil.isNotEmpty(salemanCoupon)){
+                Long couponId = salemanCoupon.getCouponId();
+                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
+                if(CollUtil.isEmpty(mallMemberCoupons)){
+                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
+                    MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
+                    MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
+                    mallMemberCoupon.setCouponId(couponId);
+                    mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
+                    mallMemberCoupon.setMemberId(memberId);
+                    mallMemberCoupon.setCouponUuid(couponUUID);
+                    mallMemberCoupon.setInviteId(mallMember.getInviteId());
+                    mallMemberCoupon.setState(1);
+                    mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
+                    mallMemberCouponMapper.insert(mallMemberCoupon);
+                }
+            }
+        }
+        return new FebsResponse().success();
+    }
+
+    @Override
     public FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
         IPage<MallMemberCouponVo> page = new Page<>(mallMemberCouponDto.getPageNum(), mallMemberCouponDto.getPageSize());
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 354714d..a38156f 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
@@ -85,6 +85,7 @@
     private final MallElectronicFenceMapper mallElectronicFenceMapper;
     private final MallMemberCouponMapper mallMemberCouponMapper;
     private final MallGoodsCouponMapper mallGoodsCouponMapper;
+    private final CouponGoodsMapper couponGoodsMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -197,10 +198,17 @@
                         if(1 != state){
                             throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用");
                         }
-                        Long goodsId = mallMemberCoupon.getGoodsId();
-                        if(goodsId != sku.getGoodsId()){
+                        //卷是否和商品绑定
+                        Long skuGoodsId = sku.getGoodsId();
+                        Long couponId = mallMemberCoupon.getCouponId();
+                        List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId);
+                        if(ObjectUtil.isEmpty(couponGoods)){
                             throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
                         }
+//                        Long goodsId = mallMemberCoupon.getGoodsId();
+//                        if(goodsId != sku.getGoodsId()){
+//                            throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
+//                        }
                         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId());
                         if(ObjectUtil.isEmpty(mallGoodsCoupon)){
                             throw new FebsException(mallGoodsCoupon.getName()+"无法使用");
diff --git a/src/main/resources/mapper/modules/MallMemberCouponMapper.xml b/src/main/resources/mapper/modules/MallMemberCouponMapper.xml
index 59fa15e..11e8e60 100644
--- a/src/main/resources/mapper/modules/MallMemberCouponMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberCouponMapper.xml
@@ -9,6 +9,7 @@
                b.real_amount realAmount
         from mall_member_coupon a
         INNER join mall_goods_coupon b on b.id = a.coupon_id and b.state = 2
+        INNER join coupon_goods c on c.coupon_id = a.coupon_id
         <where>
             a.member_id=#{record.memberId}
             <if test="record.state == 1">
@@ -22,9 +23,10 @@
                 and a.state=#{record.state}
             </if>
             <if test="record.goodsId != null and record.goodsId != ''">
-                and a.goods_id=#{record.goodsId}
+                and c.goods_id = #{record.goodsId}
             </if>
         </where>
+        group by a.id
         order by a.CREATED_TIME desc
     </select>
 
@@ -56,4 +58,13 @@
         and a.state = 1
     </select>
 
+    <select id="selectListByMemberIdCouponIdWithOutInviteId" resultType="cc.mrbird.febs.mall.entity.MallMemberCoupon">
+        select
+            a.*
+        from mall_member_coupon a
+        where a.member_id = #{memberId}
+        and a.coupon_id = #{couponId}
+        and a.state = 1
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1