From c0adb88e32f408e5588f689d702837513cd5422d Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 19 九月 2024 16:45:33 +0800
Subject: [PATCH] 1.商品限购不控制数量

---
 src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
index 4c11832..b33c44a 100644
--- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
+++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
@@ -264,6 +264,7 @@
                 List<CouponRecordDO> couponUsageDOList = couponTemplateCustomerDOList.stream().map(pointCustomRe -> {
 
                     CouponRecordDO couponRecordDO = new CouponRecordDO();
+
                     couponRecordDO.setId(IdUtil.simpleUUID());
                     couponRecordDO.setCouponId(pointCustomRe.getCouponId());
                     couponRecordDO.setCustomerId(pointCustomRe.getCustomId());
@@ -290,7 +291,8 @@
                     couponRecordDO.setCouponDiscountType(couponTemplateDO.getCouponDiscountType());
                     couponRecordDO.setGetUserType(couponTemplateDO.getGetUserType());
                     couponRecordDO.setPoint(couponTemplateDO.getPoint());
-                    couponRecordDO.setMemberId(couponRecordDO.getMemberId());
+                    couponRecordDO.setMemberId(couponTemplateDO.getMemberId());
+                    couponRecordDO.setImageUrl(couponTemplateDO.getImageUrl());
 
                     // 创建相关信息
                     couponRecordDO.create(SecurityUtils.getUserId());
@@ -308,6 +310,15 @@
                 couponRecordService.saveBatch(couponUsageDOList);
             }
         }
+
+        // 如果是活动优惠券且领取渠道是Home类型的,那么只能设置当前优惠券为激活状态,其他优惠券是激活状态的设置为下架状态
+        if (StringUtils.isNotBlank(couponTemplateDO.getCategory())  && couponTemplateDO.getCategory().equals(CouponCategoryEnum.ACTIVITY.getStatus())
+                && StringUtils.isNotBlank(couponTemplateDO.getGetType()) && couponTemplateDO.getGetType().equals(CouponGetTypeEnum.HOME.getType())
+        ) {
+
+            couponTemplateMapperCustom.expireHomeActivityCouponTemplate();
+        }
+
         return baseMapper.updateById(couponTemplateDO) > 0;
     }
 
@@ -452,6 +463,28 @@
     }
 
     @Override
+    public CouponTemplateVO getHomeActivityEffectAlert(QueryActivityEffectCouponDTO dto) {
+
+        // 存在用户是空的情况
+        final CouponTemplateVO homeActivityEffectAlert = couponTemplateMapperCustom.getHomeActivityEffectAlert(dto);
+        if(null!=homeActivityEffectAlert ){
+            if(StringUtils.isNotBlank(SecurityUtils.getUserId()) ){
+                // 查看当前已经领取了几张
+                final Integer getCnt = couponRecordService.getUserGainCouponRecordAmountByUserId(homeActivityEffectAlert.getId(), SecurityUtils.getUserId());
+                // 如果当前领取的数量小于限制领取的数量的时候,可以再次领取
+                if(null!=homeActivityEffectAlert.getGetLimit() && null!=getCnt
+                        && homeActivityEffectAlert.getGetLimit().compareTo(getCnt)>0){
+                    return homeActivityEffectAlert;
+                }
+            }else{
+                return homeActivityEffectAlert;
+            }
+        }
+
+        return null;
+    }
+
+    @Override
     public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) {
 
         return couponTemplateMapperCustom.getActivityEffectList(dto);

--
Gitblit v1.9.3