From 1bcd5a3c6447a0a00dc450b8b7780dadbb8e0e56 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期四, 19 九月 2024 18:59:18 +0800
Subject: [PATCH] 优化

---
 src/main/java/com/mzl/flower/service/point/PointGoodsService.java                |    2 +-
 src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java |    9 ++++++++-
 2 files changed, 9 insertions(+), 2 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 b33c44a..72c3b73 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
@@ -421,7 +421,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()){
@@ -439,6 +441,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);
@@ -455,6 +461,7 @@
             detail.create(SecurityUtils.getUserId());
             customerPointDetailMapper.insert(detail);
         }catch (Exception e){
+            log.error("兑换失败",e);
             throw new ValidationException("兑换失败");
         }finally {
             lockService.releaseObjectLock(key,"");
diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
index 69c144b..8639525 100644
--- a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
+++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
@@ -143,7 +143,7 @@
             if(!Constants.POINT_GOODS_STATUS.A.name().equals(p.getStatus())){
                 throw new ValidationException("商品未上架");
             }
-            if(p.getStock()< dto.getNum()){
+            if(p.getStock() <=0 || p.getStock()< dto.getNum()){
                 throw new ValidationException("商品库存不足");
             }
             CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>()

--
Gitblit v1.9.3