From b676641e11008cb05b4e595850dbbf617fb7da56 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 29 八月 2024 17:37:06 +0800
Subject: [PATCH] 1.积分优惠券-获取全部已发布的优惠券

---
 src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
index de6d5f1..222f64b 100644
--- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
@@ -9,15 +9,13 @@
 import com.mzl.flower.dto.request.coupon.CreateCouponRecordDTO;
 import com.mzl.flower.dto.request.coupon.QueryCouponRecordDTO;
 import com.mzl.flower.dto.request.coupon.QueryCouponStatisticsBO;
+import com.mzl.flower.dto.request.coupon.QueryExistCouponDTO;
 import com.mzl.flower.dto.response.coupon.CouponRecordVO;
 import com.mzl.flower.entity.coupon.CouponRecordDO;
 import com.mzl.flower.entity.coupon.CouponTemplateDO;
 import com.mzl.flower.entity.customer.Customer;
 import com.mzl.flower.entity.system.User;
-import com.mzl.flower.enums.CouponCategoryEnum;
-import com.mzl.flower.enums.CouponUsageTimeTypeEnum;
-import com.mzl.flower.enums.CouponUsageTypeEnum;
-import com.mzl.flower.enums.CouponUsedStatusEnum;
+import com.mzl.flower.enums.*;
 import com.mzl.flower.mapper.coupon.CouponRecordMapper;
 import com.mzl.flower.mapper.coupon.CouponRecordMapperCustom;
 import com.mzl.flower.mapper.customer.CustomerMapper;
@@ -74,14 +72,27 @@
             throw new ValidationException("商户信息不存在");
         }
 
+        final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
+
+        // TODO  活动优惠券和积分优惠券需要根据库存来控制- 根据优惠券的发放数量来控制有没有超发
+
+
+        // TODO 根据用户领取设置的getLimit 查看当前用户是否已经超领优惠券
+
+
         CouponRecordDO couponRecordDO=new CouponRecordDO();
         BeanUtils.copyProperties(dto,couponRecordDO);
         couponRecordDO.create(SecurityUtils.getUserId());
         // 设置为待使用状态
         couponRecordDO.setStatus(CouponUsedStatusEnum.UNUSED.getType());
 
+        // 根据商户设置用户id
+        if(StringUtils.isBlank(dto.getUserId()) && StringUtils.isNotBlank(customer.getUserId())){
+            couponRecordDO.setUserId(customer.getUserId());
+        }
+
         // 优惠券字段冗余
-        final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
+
         if(null!=couponTemplateDO){
             couponRecordDO.setCategory(couponTemplateDO.getGetUserType());
             couponRecordDO.setCouponCode(couponTemplateDO.getCouponCode());
@@ -125,11 +136,11 @@
                     }
                     if (couponTemplateDO.getUsageTimeType().equals(CouponUsageTimeTypeEnum.HOUR.getType())) {
                         // 小时
-                        couponRecordDO.setEffectiveEnd(currentTime.plusDays(couponTemplateDO.getUsageTimeNum()));
+                        couponRecordDO.setEffectiveEnd(currentTime.plusHours(couponTemplateDO.getUsageTimeNum()));
                     }
                     if (couponTemplateDO.getUsageTimeType().equals(CouponUsageTimeTypeEnum.MINUTE.getType())) {
                         // 分钟
-                        couponRecordDO.setEffectiveEnd(currentTime.plusDays(couponTemplateDO.getUsageTimeNum()));
+                        couponRecordDO.setEffectiveEnd(currentTime.plusMinutes(couponTemplateDO.getUsageTimeNum()));
                     }
 
                 }
@@ -285,4 +296,15 @@
     public int statisCouponPointCurMonPontAmonut(QueryCouponStatisticsBO queryCouponStatisticsBO) {
         return couponRecordMapperCustom.statisCouponPointCurMonPointAmonut(queryCouponStatisticsBO);
     }
+
+    @Override
+    public int getExistCouponAmount(QueryExistCouponDTO dto) {
+        QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+        queryWrapper.lambda().eq(CouponRecordDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag())
+                .eq(StringUtils.isNotBlank(dto.getCouponId()), CouponRecordDO::getCouponId,dto.getCouponId())
+                .eq(StringUtils.isNotBlank(dto.getCustomerId()),CouponRecordDO::getCustomerId,dto.getCustomerId())
+                .eq(StringUtils.isNotBlank(dto.getCategory()),CouponRecordDO::getCategory,dto.getCategory());
+
+        return baseMapper.selectCount(queryWrapper);
+    }
 }

--
Gitblit v1.9.3