From ae1471f378f399f76518539ec8992e64a3673436 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 08 一月 2025 15:26:06 +0800
Subject: [PATCH] 1.订单提交:订单最小金额配置

---
 src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java |   65 ++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
index 5b9f19d..344ce2f 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
@@ -6,6 +6,7 @@
 import com.mzl.flower.base.R;
 import com.mzl.flower.base.ReturnDataDTO;
 import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.dto.request.coupon.CreateCouponTemplateActivyDTO;
 import com.mzl.flower.dto.request.coupon.CreateCouponTemplateBO;
 import com.mzl.flower.dto.request.coupon.CreateCouponTemplateUserDTO;
 import com.mzl.flower.dto.request.coupon.QueryCouponDTO;
@@ -13,14 +14,12 @@
 import com.mzl.flower.dto.response.coupon.CouponTemplateUserVO;
 import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
 import com.mzl.flower.entity.coupon.CouponTemplateDO;
-import com.mzl.flower.enums.CouponCategoryEnum;
-import com.mzl.flower.enums.CouponGetUserTypeEnum;
-import com.mzl.flower.enums.CouponTypeEnum;
-import com.mzl.flower.enums.CouponUsageTypeEnum;
+import com.mzl.flower.enums.*;
 import com.mzl.flower.service.coupon.CouponTemplateService2;
 import com.mzl.flower.utils.ConverterUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -47,21 +46,15 @@
     @ApiOperation(value = "新增", notes = "新增")
     public ResponseEntity<ReturnDataDTO> create(@Validated @RequestBody CreateCouponTemplateUserDTO dto) {
 
-        if (dto.getCouponDiscountType().equals(CouponTypeEnum.DISCOUNT.getType()) && dto.getMinOrderAmount().compareTo(dto.getCouponDiscountValue()) < 0) {
-            throw new ValidationException("订单金额不能小于折扣金额");
-        }
 
-        if (dto.getCouponDiscountType().equals(CouponTypeEnum.ZERO.getType()) && dto.getMinOrderAmount().compareTo(BigDecimal.ZERO) != 0) {
-            throw new ValidationException("无门槛的订单金额必须为0");
-        }
-
+        valid(dto);
 
         CreateCouponTemplateBO couponTemplateBO = new CreateCouponTemplateBO();
         BeanUtils.copyProperties(dto, couponTemplateBO);
 
         // 设置成指定用户
-        couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.POINT.getType());
-        // 设置成积分优惠券
+        couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.TARGET.getType());
+        // 设置成用户优惠券
         couponTemplateBO.setCategory(CouponCategoryEnum.USER.getStatus());
         // 设置默认类型
         couponTemplateBO.setUsageType(CouponUsageTypeEnum.GET_AFTER_TIME.getType());
@@ -79,14 +72,7 @@
 
         dto.setId(id);
 
-        if (dto.getCouponDiscountType().equals(CouponTypeEnum.DISCOUNT.getType()) && dto.getMinOrderAmount().compareTo(dto.getCouponDiscountValue()) < 0) {
-            throw new ValidationException("订单金额不能小于折扣金额");
-        }
-
-        if (dto.getCouponDiscountType().equals(CouponTypeEnum.ZERO.getType()) && dto.getMinOrderAmount().compareTo(BigDecimal.ZERO) != 0) {
-            throw new ValidationException("无门槛的订单金额必须为0");
-        }
-
+        valid(dto);
 
         CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getId());
         if (null == couponTemplateDO) {
@@ -94,11 +80,12 @@
         }
 
         CreateCouponTemplateBO couponTemplateBO = new CreateCouponTemplateBO();
+        BeanUtils.copyProperties(couponTemplateDO,couponTemplateBO);
         BeanUtils.copyProperties(dto, couponTemplateBO);
 
          // 设置成指定用户
-        couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.POINT.getType());
-        // 设置成积分优惠券
+        couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.TARGET.getType());
+        // 设置成用户优惠券
         couponTemplateBO.setCategory(CouponCategoryEnum.USER.getStatus());
         // 设置默认类型
         couponTemplateBO.setUsageType(CouponUsageTypeEnum.GET_AFTER_TIME.getType());
@@ -133,7 +120,7 @@
     public ResponseEntity<ReturnDataDTO<Page<CouponTemplatePointVO>>> page(
             Page page, QueryCouponDTO dto
     ) {
-        // 设置只查询积分优惠券的
+        // 设置只查询用户优惠券的
         dto.setCategory(CouponCategoryEnum.USER.getStatus());
         Page<CouponTemplateVO> resultPage = couponTemplateService.getPage(page, dto);
         return returnData(R.SUCCESS.getCode(), ConverterUtil.transPage(resultPage, CouponTemplateUserVO.class));
@@ -143,7 +130,7 @@
     @ApiOperation(value = "查询-全部", notes = "查询-全部")
     public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> list(QueryCouponDTO dto
     ) {
-        // 设置只查询积分优惠券的
+        // 设置只查询用户优惠券的
         dto.setCategory(CouponCategoryEnum.USER.getStatus());
         return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getList(dto), CouponTemplateUserVO.class));
     }
@@ -156,6 +143,16 @@
         CouponTemplateDO couponTemplateDO = couponTemplateService.getById(id);
         if (null == couponTemplateDO) {
             throw new ValidationException("优惠券不存在");
+        }
+
+        if(StringUtils.isNotBlank(couponTemplateDO.getStatus())
+                &&  couponTemplateDO.getStatus().equals(CouponStatusEnum.ACTIVE.getStatus())){
+            throw new ValidationException("已发布的的商品不可重复发布");
+        }
+
+        if(StringUtils.isNotBlank(couponTemplateDO.getStatus())
+              &&  couponTemplateDO.getStatus().equals(CouponStatusEnum.EXPIRED.getStatus())){
+            throw new ValidationException("已下架的商品不可重复上架");
         }
 
         couponTemplateService.activeCouponTemplate(id);
@@ -178,4 +175,22 @@
     }
 
 
+    private void valid(CreateCouponTemplateUserDTO dto){
+        if (StringUtils.isNotBlank(dto.getCouponDiscountType()) && dto.getCouponDiscountType().equals(CouponTypeEnum.DISCOUNT.getType())) {
+
+            if(dto.getMinOrderAmount().compareTo(BigDecimal.ZERO)<=0){
+                throw new ValidationException("优惠券使用条件不能小于0");
+            }
+            if(dto.getMinOrderAmount().compareTo(dto.getCouponDiscountValue()) < 0){
+                throw new ValidationException("优惠券使用条件不能小于面值金额");
+            }
+
+        }
+
+        if (dto.getCouponDiscountType().equals(CouponTypeEnum.ZERO.getType()) && dto.getMinOrderAmount().compareTo(BigDecimal.ZERO) != 0) {
+            throw new ValidationException("无门槛的订单金额必须为0");
+        }
+    }
+
+
 }

--
Gitblit v1.9.3