量表发布过期判断
This commit is contained in:
parent
a154caee2a
commit
0a27a4ca98
|
@ -125,7 +125,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
* 计算相差天数
|
* 计算相差天数
|
||||||
*/
|
*/
|
||||||
public static int differentDaysByMillisecond(Date date1, Date date2) {
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.dromara.scale.controller.web;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.domain.R;
|
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.core.validate.AddGroup;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>TODO<p>
|
* <p>TODO<p>
|
||||||
*
|
*
|
||||||
|
|
|
@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.domain.model.LoginUser;
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
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.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
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.constant.StatusEnum;
|
||||||
import org.dromara.scale.domain.SysScalePublish;
|
import org.dromara.scale.domain.SysScalePublish;
|
||||||
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||||
|
@ -26,6 +28,7 @@ import org.springframework.stereotype.Service;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
|
import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
|
||||||
|
@ -95,7 +98,12 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
add.setCreateBy(loginUser.getUserId());
|
add.setCreateBy(loginUser.getUserId());
|
||||||
add.setCreateTime(new Date());
|
add.setCreateTime(new Date());
|
||||||
validEntityBeforeSave(add);
|
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())) {
|
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
|
||||||
List<SysScaleVo> list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
|
List<SysScaleVo> list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
|
||||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||||
|
@ -113,7 +121,8 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setBatchNo(add.getBatchNo());
|
bo.setBatchNo(add.getBatchNo());
|
||||||
}
|
}
|
||||||
|
//加入延迟队列
|
||||||
|
QueueUtils.addDelayedQueueObject("scalePublish-delay-queue", add.getBatchNo(), l, TimeUnit.MILLISECONDS);
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.dromara.scale.starter;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.redis.utils.QueueUtils;
|
||||||
|
import org.dromara.scale.constant.StatusEnum;
|
||||||
|
import org.dromara.scale.domain.SysScalePublish;
|
||||||
|
import org.dromara.scale.mapper.SysScalePublishMapper;
|
||||||
|
import org.springframework.boot.CommandLineRunner;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>项目初始化执行的任务<p>
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue