From 6e39306a7fc83890659f098ed9c6c5f686a6371b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 20 May 2025 11:54:08 +0800
Subject: [PATCH] feat(mall): 优化新人礼领取逻辑并添加领取状态字段- 优化新人礼领取逻辑,检查优惠券是否存在且状态为有效 - 在 MallMemberVo 中添加 newGift 字段,用于表示是否领取新人礼

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   45 +++++++++++++++++++++++----------------------
 1 files changed, 23 insertions(+), 22 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 84e81b0..e369a7e 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
@@ -1632,32 +1632,33 @@
             if(ObjectUtil.isNotEmpty(apiNewGiftSettingDto.getCouponId())){
                 Long couponId = apiNewGiftSettingDto.getCouponId();
                 MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
-                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
-                if(CollUtil.isEmpty(mallMemberCoupons)){
-                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
-                    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);
+                if(ObjectUtil.isNotEmpty(mallGoodsCoupon) && mallGoodsCoupon.getState() == 2){
+                    List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
+                    if(CollUtil.isEmpty(mallMemberCoupons)){
+                        //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
+                        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);
 
-                    mallMoneyFlowService.addMoneyFlow(
-                            memberId,
-                            BigDecimal.ONE,
-                            ScoreFlowTypeEnum.NEW_GIFT_COUPON.getValue(),
-                            MallUtils.getOrderNum(),
-                            FlowTypeEnum.BALANCE.getValue(),
-                            StrUtil.format( ScoreFlowTypeEnum.NEW_GIFT_COUPON.getDesc(),mallGoodsCoupon.getName()),
-                            2);
+                        mallMoneyFlowService.addMoneyFlow(
+                                memberId,
+                                BigDecimal.ONE,
+                                ScoreFlowTypeEnum.NEW_GIFT_COUPON.getValue(),
+                                MallUtils.getOrderNum(),
+                                FlowTypeEnum.BALANCE.getValue(),
+                                StrUtil.format( ScoreFlowTypeEnum.NEW_GIFT_COUPON.getDesc(),mallGoodsCoupon.getName()),
+                                2);
 
-                    apiMemberNewGiftSettingVo.setCouponName(mallGoodsCoupon.getName());
+                        apiMemberNewGiftSettingVo.setCouponName(mallGoodsCoupon.getName());
+                    }
                 }
             }
-
         }
 
 //        this.baseMapper.updateLastLoginTime(memberId,new Date());

--
Gitblit v1.9.1