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/combination/CombinationRecordServiceImpl.java | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java b/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
index 862e130..ab215f6 100644
--- a/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
+++ b/yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
@@ -77,7 +77,6 @@
@Resource
public SocialClientApi socialClientApi;
- // TODO @鑺嬭壙锛氬湪璇︾粏棰勮涓嬶紱
@Override
public KeyValue<CombinationActivityDO, CombinationProductDO> validateCombinationRecord(
Long userId, Long activityId, Long headId, Long skuId, Integer count) {
@@ -97,7 +96,7 @@
}
// 2. 鐖舵嫾鍥㈡槸鍚﹀瓨鍦�,鏄惁宸茬粡婊′簡
- if (headId != null) {
+ if (isJoinCombination(headId)) {
// 2.1. 鏌ヨ杩涜涓殑鐖舵嫾鍥�
CombinationRecordDO record = combinationRecordMapper.selectByHeadId(headId, CombinationRecordStatusEnum.IN_PROGRESS.getStatus());
if (record == null) {
@@ -129,7 +128,7 @@
throw exception(COMBINATION_JOIN_ACTIVITY_PRODUCT_NOT_EXISTS);
}
// 4.3 鏍¢獙搴撳瓨鏄惁鍏呰冻
- if (count >= sku.getStock()) {
+ if (count > sku.getStock()) {
throw exception(COMBINATION_ACTIVITY_UPDATE_STOCK_FAIL);
}
@@ -153,6 +152,16 @@
return new KeyValue<>(activity, product);
}
+ /**
+ * 鏄惁鍔犲叆宸叉湁鎷煎洟銆�
+ *
+ * 鍓嶇寮�鍥㈡椂鍙兘涓嶄紶 headId锛屼篃鍙兘浼� {@link CombinationRecordDO#HEAD_ID_GROUP}锛岄兘搴旇涓烘柊寮�鍥紱
+ * 鍙湁浼犲叆鐪熷疄鍥㈤暱璁板綍缂栧彿鏃讹紝鎵嶉渶瑕佹寜鍙傚洟鏍¢獙鐖舵嫾鍥€��
+ */
+ private static boolean isJoinCombination(Long headId) {
+ return headId != null && ObjUtil.notEqual(headId, CombinationRecordDO.HEAD_ID_GROUP);
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public CombinationRecordDO createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) {
@@ -166,7 +175,7 @@
ProductSkuRespDTO sku = productSkuApi.getSku(reqDTO.getSkuId());
CombinationRecordDO record = CombinationActivityConvert.INSTANCE.convert(reqDTO, keyValue.getKey(), user, spu, sku);
// 2.1. 濡傛灉鏄洟闀块渶瑕佽缃� headId 涓� CombinationRecordDO#HEAD_ID_GROUP
- if (record.getHeadId() == null) {
+ if (!isJoinCombination(record.getHeadId())) {
record.setStartTime(LocalDateTime.now())
.setExpireTime(LocalDateTime.now().plusHours(keyValue.getKey().getLimitDuration()))
.setHeadId(CombinationRecordDO.HEAD_ID_GROUP);
--
Gitblit v1.9.3