From a089358ffa1b63b880ade9365bc6f361258a9719 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期五, 08 十一月 2024 19:51:17 +0800
Subject: [PATCH] 1.1

---
 src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 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 1a264ea..154b128 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,9 @@
                     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.setCouponDescription(couponTemplateDO.getCouponDescription());
 
                     // 创建相关信息
                     couponRecordDO.create(SecurityUtils.getUserId());
@@ -419,7 +422,9 @@
             if(couponTemplateDO==null){
                 throw new ValidationException("优惠券不存在");
             }
-
+            if(couponTemplateDO.getCouponAmount()<=0 ){
+               throw new ValidationException("优惠券已兑换完");
+            }
             CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>()
                     .eq(CustomerPoint::getUserId, SecurityUtils.getUserId()));
             if(cp == null || (cp.getTotalPoint()-cp.getUsedPoint()-cp.getExpiredPoint()- cp.getExpiredPoint()) < couponTemplateDO.getPoint() * dto.getNum()){
@@ -437,6 +442,10 @@
             recordDTO.setCustomerId(customer.getId());
             couponRecordService.createCouponRecord(recordDTO);
 
+//            //更新优惠券数量
+//            couponTemplateDO.setCouponAmount(couponTemplateDO.getCouponAmount()-dto.getNum());
+//            couponTemplateService.updateById(couponTemplateDO);
+
             //更新积分汇总
             cp.setUsedPoint(cp.getUsedPoint()+couponTemplateDO.getPoint());
             customerPointMapper.updateById(cp);
@@ -452,8 +461,6 @@
             detail.setRemarks(couponTemplateDO.getCouponName());
             detail.create(SecurityUtils.getUserId());
             customerPointDetailMapper.insert(detail);
-        }catch (Exception e){
-            throw new ValidationException("兑换失败");
         }finally {
             lockService.releaseObjectLock(key,"");
         }
@@ -462,14 +469,19 @@
 
     @Override
     public CouponTemplateVO getHomeActivityEffectAlert(QueryActivityEffectCouponDTO dto) {
-        dto.setUserId(SecurityUtils.getUserId());
+
+        // 存在用户是空的情况
         final CouponTemplateVO homeActivityEffectAlert = couponTemplateMapperCustom.getHomeActivityEffectAlert(dto);
-        if(null!=homeActivityEffectAlert){
-            // 查看当前已经领取了几张
-            final Integer getCnt = couponRecordService.getUserGainCouponRecordAmountByUserId(homeActivityEffectAlert.getId(), SecurityUtils.getUserId());
-            // 如果当前领取的数量小于限制领取的数量的时候,可以再次领取
-            if(null!=homeActivityEffectAlert.getGetLimit() && null!=getCnt
-                   && homeActivityEffectAlert.getGetLimit().compareTo(getCnt)>0){
+        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;
             }
         }
@@ -478,6 +490,12 @@
     }
 
     @Override
+    public boolean expireActivityCouponTemplateAll() {
+
+        return couponTemplateMapperCustom.expireActivityCouponTemplateAll()>0;
+    }
+
+    @Override
     public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) {
 
         return couponTemplateMapperCustom.getActivityEffectList(dto);

--
Gitblit v1.9.3