|
|
@@ -536,6 +536,42 @@ public class MarketingCampaignServiceImpl
|
|
|
@Override
|
|
|
public void syncStartEndStatus() {
|
|
|
LocalDate today = LocalDate.now(ZoneId.of("Asia/Shanghai"));
|
|
|
+
|
|
|
+ // ===== 操作1:到了开始时间但仍未开始的营销活动,自动开始(0未开始 → 1运行中)=====
|
|
|
+ List<MarketingCampaignEntity> autoStartList = this.lambdaQuery()
|
|
|
+ .eq(MarketingCampaignEntity::getIsDelete, CommonConstant.DEL_FLAG_0)
|
|
|
+ .eq(MarketingCampaignEntity::getStatus, STATUS_NOT_STARTED)
|
|
|
+ .le(MarketingCampaignEntity::getBeginData, today)
|
|
|
+ .list();
|
|
|
+ if (!CollectionUtils.isEmpty(autoStartList)) {
|
|
|
+ List<Long> autoStartIdList = autoStartList.stream()
|
|
|
+ .map(MarketingCampaignEntity::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ LambdaUpdateWrapper<MarketingCampaignEntity> autoStartWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ autoStartWrapper.in(MarketingCampaignEntity::getId, autoStartIdList);
|
|
|
+ autoStartWrapper.set(MarketingCampaignEntity::getStatus, STATUS_RUNNING);
|
|
|
+ this.update(autoStartWrapper);
|
|
|
+ log.info("营销活动自动开始(未开始→运行中):{}", autoStartIdList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // ===== 操作2:到了结束时间的营销活动,自动结束(→ 3已完成)=====
|
|
|
+ List<MarketingCampaignEntity> autoEndList = this.lambdaQuery()
|
|
|
+ .eq(MarketingCampaignEntity::getIsDelete, CommonConstant.DEL_FLAG_0)
|
|
|
+// .ne(MarketingCampaignEntity::getStatus, STATUS_COMPLETED)
|
|
|
+ .eq(MarketingCampaignEntity::getStatus, STATUS_RUNNING)
|
|
|
+ .le(MarketingCampaignEntity::getEndDate, today)
|
|
|
+ .list();
|
|
|
+ if (!CollectionUtils.isEmpty(autoEndList)) {
|
|
|
+ List<Long> autoEndIdList = autoEndList.stream()
|
|
|
+ .map(MarketingCampaignEntity::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ LambdaUpdateWrapper<MarketingCampaignEntity> autoEndWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ autoEndWrapper.in(MarketingCampaignEntity::getId, autoEndIdList);
|
|
|
+ autoEndWrapper.set(MarketingCampaignEntity::getStatus, STATUS_COMPLETED);
|
|
|
+ this.update(autoEndWrapper);
|
|
|
+ log.info("营销活动自动结束(→已完成):{}", autoEndIdList);
|
|
|
+ }
|
|
|
+
|
|
|
// 查询所有未开始的活动
|
|
|
List<MarketingCampaignEntity> nonAll = this.lambdaQuery()
|
|
|
.eq(MarketingCampaignEntity::getIsDelete, CommonConstant.DEL_FLAG_0)
|
|
|
@@ -553,7 +589,7 @@ public class MarketingCampaignServiceImpl
|
|
|
// 查询所有已结束的活动
|
|
|
List<MarketingCampaignEntity> stopAll = this.lambdaQuery()
|
|
|
.eq(MarketingCampaignEntity::getIsDelete, CommonConstant.DEL_FLAG_0)
|
|
|
- .eq(MarketingCampaignEntity::getStatus, 1)
|
|
|
+ .in(MarketingCampaignEntity::getStatus, STATUS_RUNNING, STATUS_COMPLETED)
|
|
|
.le(MarketingCampaignEntity::getEndDate, today)
|
|
|
.list();
|
|
|
if (!CollectionUtils.isEmpty(stopAll)) {
|