From 24681c81c09022f584a57006f2534b5f74723414 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 30 六月 2026 09:27:31 +0800
Subject: [PATCH] 初始化项目
---
yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java b/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java
index 8c25cb8..d4323c6 100644
--- a/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java
+++ b/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java
@@ -52,6 +52,9 @@
@Override
public Long createCouponTemplate(CouponTemplateCreateReqVO createReqVO) {
+ // 鏍¢獙鍙戞斁鏁伴噺涓嶈兘灏忎簬姣忎汉闄愰鏁伴噺锛堜粎鍦� CouponTakeTypeEnum.USER 鐢ㄦ埛棰嗗彇鏃讹級
+ validateTotalCountNotLessThanTakeLimitCount(createReqVO.getTakeType(), createReqVO.getTotalCount(),
+ createReqVO.getTakeLimitCount());
// 鏍¢獙鍟嗗搧鑼冨洿
validateProductScope(createReqVO.getProductScope(), createReqVO.getProductScopeValues());
// 鎻掑叆
@@ -66,8 +69,11 @@
public void updateCouponTemplate(CouponTemplateUpdateReqVO updateReqVO) {
// 鏍¢獙瀛樺湪
CouponTemplateDO couponTemplate = validateCouponTemplateExists(updateReqVO.getId());
+ // 鏍¢獙鍙戞斁鏁伴噺涓嶈兘灏忎簬姣忎汉闄愰鏁伴噺锛堜粎鍦� CouponTakeTypeEnum.USER 鐢ㄦ埛棰嗗彇鏃讹級
+ validateTotalCountNotLessThanTakeLimitCount(updateReqVO.getTakeType(), updateReqVO.getTotalCount(),
+ updateReqVO.getTakeLimitCount());
// 鏍¢獙鍙戞斁鏁伴噺涓嶈兘杩囧皬锛堜粎鍦� CouponTakeTypeEnum.USER 鐢ㄦ埛棰嗗彇鏃讹級
- if (CouponTakeTypeEnum.isUser(couponTemplate.getTakeType())
+ if (CouponTakeTypeEnum.isUser(updateReqVO.getTakeType())
&& !isTotalCountUnlimited(updateReqVO.getTotalCount()) // 闈炰笉闄愬埗鎬诲彂鏀炬暟閲�
&& updateReqVO.getTotalCount() < couponTemplate.getTakeCount()) {
throw exception(COUPON_TEMPLATE_TOTAL_COUNT_TOO_SMALL, couponTemplate.getTakeCount());
@@ -104,6 +110,16 @@
return couponTemplate;
}
+ private void validateTotalCountNotLessThanTakeLimitCount(Integer takeType, Integer totalCount, Integer takeLimitCount) {
+ // 淇 https://gitee.com/yudaocode/yudao-mall-uniapp/issues/IJLP6Q 鍙嶉
+ if (CouponTakeTypeEnum.isUser(takeType)
+ && !isTakeLimitCountUnlimited(takeLimitCount)
+ && !isTotalCountUnlimited(totalCount)
+ && takeLimitCount > totalCount) {
+ throw exception(COUPON_TEMPLATE_NOT_ENOUGH);
+ }
+ }
+
private void validateProductScope(Integer productScope, List<Long> productScopeValues) {
if (Objects.equals(PromotionProductScopeEnum.SPU.getScope(), productScope)) {
productSpuApi.validateSpuList(productScopeValues);
--
Gitblit v1.9.3