From 8f87cc33470decd79e68f885e61a955559544675 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 27 Dec 2023 14:37:17 +0800
Subject: [PATCH] 分享链接获取优惠卷,产生一张优惠卷后,再次进入将不在产生新的优惠卷

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

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 6668109..60a4227 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
@@ -29,6 +29,7 @@
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -886,6 +887,14 @@
     @Override
     public FebsResponse getCoupon(GetCouponDto getCouponDto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        String couponUUID = getCouponDto.getCouponUUID();
+        QueryWrapper<MallMemberCoupon> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("coupon_uuid",couponUUID);
+        List<MallMemberCoupon> mallMemberCouponDone = mallMemberCouponMapper.selectList(objectQueryWrapper);
+        if(CollUtil.isNotEmpty(mallMemberCouponDone)){
+            return new FebsResponse().success();
+        }
         //通过邀请人信息,获取能领取的优惠卷信息
         MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
         if(ObjectUtil.isNotEmpty(mallMember)){
@@ -893,7 +902,9 @@
             if(ObjectUtil.isNotEmpty(salemanCoupon)){
                 Long couponId = salemanCoupon.getCouponId();
                 Long goodsId = getCouponDto.getGoodsId();
-                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponId(memberId, goodsId, couponId,mallMember.getInviteId());
+//                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponId(memberId, goodsId, couponId,mallMember.getInviteId());
+//                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId, couponId);
+                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId);
                 if(CollUtil.isEmpty(mallMemberCoupons)){
                     //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
                     List<CouponGoods> couponGoodsList = couponGoodsMapper.selectByGoodIdAndCouponId(goodsId,couponId);
@@ -904,6 +915,7 @@
                         mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
                         mallMemberCoupon.setMemberId(memberId);
                         mallMemberCoupon.setGoodsId(goodsId);
+                        mallMemberCoupon.setCouponUuid(couponUUID);
                         mallMemberCoupon.setInviteId(mallMember.getInviteId());
                         mallMemberCoupon.setState(1);
                         mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
@@ -945,11 +957,15 @@
             throw new FebsException("已绑定");
         }
         String inviteId = apiSetInviteDto.getInviteId();
-        if(inviteId.equals(mallMember.getReferrerId())){
-            throw new FebsException("自己无法绑定自己");
+        if(inviteId.equals(mallMember.getInviteId())){
+            return new FebsResponse().success();
         }
         MallMember member = this.baseMapper.selectInfoByInviteId(inviteId);
         if (member != null) {
+            if (StrUtil.isNotBlank(member.getReferrerIds()) && member.getReferrerIds().contains(mallMember.getInviteId())) {
+                log.info("下级不能邀请上级");
+                return new FebsResponse().success();
+            }
             mallMember.setReferrerId(member.getInviteId());
 
             //推荐人和推荐人链

--
Gitblit v1.9.1