diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java index 72178a7..5c35e1e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java @@ -125,7 +125,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { * 计算相差天数 */ public static int differentDaysByMillisecond(Date date1, Date date2) { - return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + return Math.abs((int) (differentMillisecond(date1, date2) / (1000 * 3600 * 24))); + } + + /** + * 计算相差毫秒数 + */ + public static long differentMillisecond(Date date1, Date date2) { + return date2.getTime() - date1.getTime(); } /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java index 8531bb3..f9c73e9 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java @@ -3,6 +3,7 @@ package org.dromara.scale.controller.web; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; @@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; +import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; + /** *
TODO
*
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java
index e587afd..3a8ce73 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java
@@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.QueueUtils;
import org.dromara.scale.constant.StatusEnum;
import org.dromara.scale.domain.SysScalePublish;
import org.dromara.scale.domain.bo.SysScalePublishBo;
@@ -26,6 +28,7 @@ import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
@@ -95,7 +98,12 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
add.setCreateBy(loginUser.getUserId());
add.setCreateTime(new Date());
validEntityBeforeSave(add);
-
+ //将时间校验移出来,方便后面使用
+ Date expireTime = add.getExpireTime();
+ long l = DateUtils.differentMillisecond(new Date(), expireTime);
+ if(l<=1000 * 3600 * 12){
+ throw new ServiceException("截止日期必须在六小时后");
+ }
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
List 项目初始化执行的任务
+ *
+ * @author cjw
+ * @version V1.0.0
+ * @date 2024/4/15 15:08
+ */
+@Component
+@RequiredArgsConstructor
+@Order(value = 99)
+public class ApplicationStarter implements CommandLineRunner {
+
+ private final SysScalePublishMapper publishMapper;
+
+ @Override
+ public void run(String... strings){
+ subscribeRedisDelayedQueue();
+ }
+
+ private void subscribeRedisDelayedQueue(){
+ // 项目初始化设置一次即可
+ QueueUtils.subscribeBlockingQueue("scalePublish-delay-queue", (Long batchNo) -> {
+ SysScalePublish publish = new SysScalePublish();
+ publish.setBatchNo(batchNo);
+ publish.setStatus(StatusEnum.DISABLED.getValue());
+ publishMapper.updateById(publish);
+ }, true);
+ }
+}