Commit 632a132a6a9365c3a852cc6a3a6759fe3fc4f05d
1 parent
2c1419fb
refactor: Date ==> LocalDateTime
Showing
324 changed files
with
1137 additions
and
997 deletions
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java
| 1 | 1 | package cn.iocoder.yudao.framework.common.util.date; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.date.DateUtil; |
| 4 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 4 | 5 | |
| 5 | 6 | import java.time.Duration; |
| 7 | +import java.time.Instant; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | +import java.time.ZoneId; | |
| 10 | +import java.time.ZonedDateTime; | |
| 11 | +import java.time.temporal.ChronoUnit; | |
| 6 | 12 | import java.util.Calendar; |
| 7 | 13 | import java.util.Date; |
| 8 | 14 | |
| ... | ... | @@ -25,6 +31,22 @@ public class DateUtils { |
| 25 | 31 | |
| 26 | 32 | public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; |
| 27 | 33 | |
| 34 | + public static Date localDateTimeToDate(LocalDateTime date){ | |
| 35 | + // 将此日期时间与时区相结合以创建 ZonedDateTime | |
| 36 | + ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault()); | |
| 37 | + // 本地时间线LocalDateTime到即时时间线Instant时间戳 | |
| 38 | + Instant instant = zonedDateTime.toInstant(); | |
| 39 | + // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间 | |
| 40 | + return Date.from(instant); | |
| 41 | + } | |
| 42 | + | |
| 43 | + public static LocalDateTime dateToLocalDateTime(Date date){ | |
| 44 | + // 转为时间戳 | |
| 45 | + Instant instant = date.toInstant(); | |
| 46 | + // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间 | |
| 47 | + return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); | |
| 48 | + } | |
| 49 | + | |
| 28 | 50 | public static Date addTime(Duration duration) { |
| 29 | 51 | return new Date(System.currentTimeMillis() + duration.toMillis()); |
| 30 | 52 | } |
| ... | ... | @@ -33,6 +55,11 @@ public class DateUtils { |
| 33 | 55 | return System.currentTimeMillis() > time.getTime(); |
| 34 | 56 | } |
| 35 | 57 | |
| 58 | + public static boolean isExpired(LocalDateTime time) { | |
| 59 | + LocalDateTime now = LocalDateTime.now(); | |
| 60 | + return now.isAfter(time); | |
| 61 | + } | |
| 62 | + | |
| 36 | 63 | public static long diff(Date endTime, Date startTime) { |
| 37 | 64 | return endTime.getTime() - startTime.getTime(); |
| 38 | 65 | } |
| ... | ... | @@ -40,24 +67,28 @@ public class DateUtils { |
| 40 | 67 | /** |
| 41 | 68 | * 创建指定时间 |
| 42 | 69 | * |
| 43 | - * @param year 年 | |
| 44 | - * @param mouth 月 | |
| 45 | - * @param day 日 | |
| 70 | + * @param year 年 | |
| 71 | + * @param mouth 月 | |
| 72 | + * @param day 日 | |
| 46 | 73 | * @return 指定时间 |
| 47 | 74 | */ |
| 48 | 75 | public static Date buildTime(int year, int mouth, int day) { |
| 49 | 76 | return buildTime(year, mouth, day, 0, 0, 0); |
| 50 | 77 | } |
| 51 | 78 | |
| 79 | + public static LocalDateTime buildLocalDateTime(int year, int mouth, int day) { | |
| 80 | + return buildLocalDateTime(year, mouth, day, 0, 0, 0); | |
| 81 | + } | |
| 82 | + | |
| 52 | 83 | /** |
| 53 | 84 | * 创建指定时间 |
| 54 | 85 | * |
| 55 | - * @param year 年 | |
| 56 | - * @param mouth 月 | |
| 57 | - * @param day 日 | |
| 58 | - * @param hour 小时 | |
| 59 | - * @param minute 分钟 | |
| 60 | - * @param second 秒 | |
| 86 | + * @param year 年 | |
| 87 | + * @param mouth 月 | |
| 88 | + * @param day 日 | |
| 89 | + * @param hour 小时 | |
| 90 | + * @param minute 分钟 | |
| 91 | + * @param second 秒 | |
| 61 | 92 | * @return 指定时间 |
| 62 | 93 | */ |
| 63 | 94 | public static Date buildTime(int year, int mouth, int day, |
| ... | ... | @@ -73,6 +104,19 @@ public class DateUtils { |
| 73 | 104 | return calendar.getTime(); |
| 74 | 105 | } |
| 75 | 106 | |
| 107 | + public static LocalDateTime buildLocalDateTime(int year, int mouth, int day, | |
| 108 | + int hour, int minute, int second) { | |
| 109 | + Calendar calendar = Calendar.getInstance(); | |
| 110 | + calendar.set(Calendar.YEAR, year); | |
| 111 | + calendar.set(Calendar.MONTH, mouth - 1); | |
| 112 | + calendar.set(Calendar.DAY_OF_MONTH, day); | |
| 113 | + calendar.set(Calendar.HOUR_OF_DAY, hour); | |
| 114 | + calendar.set(Calendar.MINUTE, minute); | |
| 115 | + calendar.set(Calendar.SECOND, second); | |
| 116 | + calendar.set(Calendar.MILLISECOND, 0); // 一般情况下,都是 0 毫秒 | |
| 117 | + return dateToLocalDateTime(calendar.getTime()); | |
| 118 | + } | |
| 119 | + | |
| 76 | 120 | public static Date max(Date a, Date b) { |
| 77 | 121 | if (a == null) { |
| 78 | 122 | return b; |
| ... | ... | @@ -83,6 +127,16 @@ public class DateUtils { |
| 83 | 127 | return a.compareTo(b) > 0 ? a : b; |
| 84 | 128 | } |
| 85 | 129 | |
| 130 | + public static LocalDateTime maxLocalDateTime(LocalDateTime a, LocalDateTime b) { | |
| 131 | + if (a == null) { | |
| 132 | + return b; | |
| 133 | + } | |
| 134 | + if (b == null) { | |
| 135 | + return a; | |
| 136 | + } | |
| 137 | + return a.compareTo(b) > 0 ? a : b; | |
| 138 | + } | |
| 139 | + | |
| 86 | 140 | public static boolean beforeNow(Date date) { |
| 87 | 141 | return date.getTime() < System.currentTimeMillis(); |
| 88 | 142 | } |
| ... | ... | @@ -91,6 +145,10 @@ public class DateUtils { |
| 91 | 145 | return date.getTime() >= System.currentTimeMillis(); |
| 92 | 146 | } |
| 93 | 147 | |
| 148 | + public static boolean afterNow(LocalDateTime localDateTime) { | |
| 149 | + return localDateTime.isAfter(LocalDateTime.now()); | |
| 150 | + } | |
| 151 | + | |
| 94 | 152 | /** |
| 95 | 153 | * 计算当期时间相差的日期 |
| 96 | 154 | * |
| ... | ... | @@ -135,4 +193,14 @@ public class DateUtils { |
| 135 | 193 | return DateUtil.isSameDay(date, new Date()); |
| 136 | 194 | } |
| 137 | 195 | |
| 196 | + /** | |
| 197 | + * 是否今天 | |
| 198 | + * | |
| 199 | + * @param date 日期 | |
| 200 | + * @return 是否 | |
| 201 | + */ | |
| 202 | + public static boolean isToday(LocalDateTime date) { | |
| 203 | + return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now()); | |
| 204 | + } | |
| 205 | + | |
| 138 | 206 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-error-code/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java
| ... | ... | @@ -10,7 +10,7 @@ import org.springframework.boot.context.event.ApplicationReadyEvent; |
| 10 | 10 | import org.springframework.context.event.EventListener; |
| 11 | 11 | import org.springframework.scheduling.annotation.Scheduled; |
| 12 | 12 | |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | /** |
| ... | ... | @@ -41,7 +41,7 @@ public class ErrorCodeLoaderImpl implements ErrorCodeLoader { |
| 41 | 41 | /** |
| 42 | 42 | * 缓存错误码的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 43 | 43 | */ |
| 44 | - private Date maxUpdateTime; | |
| 44 | + private LocalDateTime maxUpdateTime; | |
| 45 | 45 | |
| 46 | 46 | @EventListener(ApplicationReadyEvent.class) |
| 47 | 47 | public void loadErrorCodes() { |
| ... | ... | @@ -66,7 +66,7 @@ public class ErrorCodeLoaderImpl implements ErrorCodeLoader { |
| 66 | 66 | // 写入到错误码的缓存 |
| 67 | 67 | putErrorCode(errorCodeRespDTO.getCode(), errorCodeRespDTO.getMessage()); |
| 68 | 68 | // 记录下更新时间,方便增量更新 |
| 69 | - maxUpdateTime = DateUtils.max(maxUpdateTime, errorCodeRespDTO.getUpdateTime()); | |
| 69 | + maxUpdateTime = DateUtils.maxLocalDateTime(maxUpdateTime, errorCodeRespDTO.getUpdateTime()); | |
| 70 | 70 | }); |
| 71 | 71 | } |
| 72 | 72 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/aop/OperateLogAspect.java
| 1 | 1 | package cn.iocoder.yudao.framework.operatelog.core.aop; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.exceptions.ExceptionUtil; |
| 4 | 5 | import cn.hutool.core.util.ArrayUtil; |
| 5 | 6 | import cn.hutool.core.util.StrUtil; |
| ... | ... | @@ -32,6 +33,7 @@ import javax.servlet.http.HttpServletRequest; |
| 32 | 33 | import javax.servlet.http.HttpServletResponse; |
| 33 | 34 | import java.lang.annotation.Annotation; |
| 34 | 35 | import java.lang.reflect.Array; |
| 36 | +import java.time.LocalDateTime; | |
| 35 | 37 | import java.util.*; |
| 36 | 38 | import java.util.function.Predicate; |
| 37 | 39 | import java.util.stream.IntStream; |
| ... | ... | @@ -94,7 +96,7 @@ public class OperateLogAspect { |
| 94 | 96 | } |
| 95 | 97 | |
| 96 | 98 | // 记录开始时间 |
| 97 | - Date startTime = new Date(); | |
| 99 | + LocalDateTime startTime = LocalDateTime.now(); | |
| 98 | 100 | try { |
| 99 | 101 | // 执行原有方法 |
| 100 | 102 | Object result = joinPoint.proceed(); |
| ... | ... | @@ -128,7 +130,7 @@ public class OperateLogAspect { |
| 128 | 130 | private void log(ProceedingJoinPoint joinPoint, |
| 129 | 131 | cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, |
| 130 | 132 | ApiOperation apiOperation, |
| 131 | - Date startTime, Object result, Throwable exception) { | |
| 133 | + LocalDateTime startTime, Object result, Throwable exception) { | |
| 132 | 134 | try { |
| 133 | 135 | // 判断不记录的情况 |
| 134 | 136 | if (!isLogEnable(joinPoint, operateLog)) { |
| ... | ... | @@ -145,7 +147,7 @@ public class OperateLogAspect { |
| 145 | 147 | private void log0(ProceedingJoinPoint joinPoint, |
| 146 | 148 | cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, |
| 147 | 149 | ApiOperation apiOperation, |
| 148 | - Date startTime, Object result, Throwable exception) { | |
| 150 | + LocalDateTime startTime, Object result, Throwable exception) { | |
| 149 | 151 | OperateLog operateLogObj = new OperateLog(); |
| 150 | 152 | // 补全通用字段 |
| 151 | 153 | operateLogObj.setTraceId(TracerUtils.getTraceId()); |
| ... | ... | @@ -226,7 +228,7 @@ public class OperateLogAspect { |
| 226 | 228 | private static void fillMethodFields(OperateLog operateLogObj, |
| 227 | 229 | ProceedingJoinPoint joinPoint, |
| 228 | 230 | cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, |
| 229 | - Date startTime, Object result, Throwable exception) { | |
| 231 | + LocalDateTime startTime, Object result, Throwable exception) { | |
| 230 | 232 | MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); |
| 231 | 233 | operateLogObj.setJavaMethod(methodSignature.toString()); |
| 232 | 234 | if (operateLog == null || operateLog.logArgs()) { |
| ... | ... | @@ -235,7 +237,7 @@ public class OperateLogAspect { |
| 235 | 237 | if (operateLog == null || operateLog.logResultData()) { |
| 236 | 238 | operateLogObj.setResultData(obtainResultData(result)); |
| 237 | 239 | } |
| 238 | - operateLogObj.setDuration((int) (System.currentTimeMillis() - startTime.getTime())); | |
| 240 | + operateLogObj.setDuration((int) (LocalDateTimeUtil.between(startTime, LocalDateTime.now()).toMillis())); | |
| 239 | 241 | // (正常)处理 resultCode 和 resultMsg 字段 |
| 240 | 242 | if (result instanceof CommonResult) { |
| 241 | 243 | CommonResult<?> commonResult = (CommonResult<?>) result; | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLog.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.operatelog.core.service; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | import java.util.Map; |
| 7 | 7 | |
| 8 | 8 | /** |
| ... | ... | @@ -85,7 +85,7 @@ public class OperateLog { |
| 85 | 85 | /** |
| 86 | 86 | * 开始时间 |
| 87 | 87 | */ |
| 88 | - private Date startTime; | |
| 88 | + private LocalDateTime startTime; | |
| 89 | 89 | |
| 90 | 90 | /** |
| 91 | 91 | * 执行时长,单位:毫秒 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/PayOrderNotifyRespDTO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Builder; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.NoArgsConstructor; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 支付通知 Response DTO |
| ... | ... | @@ -33,7 +33,7 @@ public class PayOrderNotifyRespDTO { |
| 33 | 33 | /** |
| 34 | 34 | * 支付成功时间 |
| 35 | 35 | */ |
| 36 | - private Date successTime; | |
| 36 | + private LocalDateTime successTime; | |
| 37 | 37 | |
| 38 | 38 | /** |
| 39 | 39 | * 通知的原始数据 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/PayOrderUnifiedReqDTO.java
| ... | ... | @@ -7,7 +7,7 @@ import org.hibernate.validator.constraints.URL; |
| 7 | 7 | import javax.validation.constraints.DecimalMin; |
| 8 | 8 | import javax.validation.constraints.NotEmpty; |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.Map; |
| 12 | 12 | |
| 13 | 13 | /** |
| ... | ... | @@ -68,7 +68,7 @@ public class PayOrderUnifiedReqDTO { |
| 68 | 68 | * 支付过期时间 |
| 69 | 69 | */ |
| 70 | 70 | @NotNull(message = "支付过期时间不能为空") |
| 71 | - private Date expireTime; | |
| 71 | + private LocalDateTime expireTime; | |
| 72 | 72 | |
| 73 | 73 | // ========== 拓展参数 ========== |
| 74 | 74 | /** | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/PayRefundNotifyDTO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Builder; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.ToString; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 从渠道返回数据中解析得到的支付退款通知的Notify DTO |
| ... | ... | @@ -57,7 +57,7 @@ public class PayRefundNotifyDTO { |
| 57 | 57 | /** |
| 58 | 58 | * 退款成功时间 |
| 59 | 59 | */ |
| 60 | - private Date refundSuccessTime; | |
| 60 | + private LocalDateTime refundSuccessTime; | |
| 61 | 61 | |
| 62 | 62 | |
| 63 | 63 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AbstractAlipayClient.java
| 1 | 1 | package cn.iocoder.yudao.framework.pay.core.client.impl.alipay; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | -import cn.hutool.core.date.DateUtil; | |
| 5 | -import cn.hutool.http.HttpUtil; | |
| 4 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 6 | 5 | import cn.iocoder.yudao.framework.pay.core.client.AbstractPayCodeMapping; |
| 7 | 6 | import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult; |
| 8 | 7 | import cn.iocoder.yudao.framework.pay.core.client.dto.*; |
| ... | ... | @@ -61,7 +60,7 @@ public abstract class AbstractAlipayClient extends AbstractPayClient<AlipayPayCl |
| 61 | 60 | return PayOrderNotifyRespDTO.builder().orderExtensionNo(params.get("out_trade_no")) |
| 62 | 61 | .channelOrderNo(params.get("trade_no")).channelUserId(params.get("seller_id")) |
| 63 | 62 | .tradeStatus(params.get("trade_status")) |
| 64 | - .successTime(DateUtil.parse(params.get("notify_time"), "yyyy-MM-dd HH:mm:ss")) | |
| 63 | + .successTime(LocalDateTimeUtil.parse(params.get("notify_time"), "yyyy-MM-dd HH:mm:ss")) | |
| 65 | 64 | .data(data.getBody()).build(); |
| 66 | 65 | } |
| 67 | 66 | |
| ... | ... | @@ -72,7 +71,7 @@ public abstract class AbstractAlipayClient extends AbstractPayClient<AlipayPayCl |
| 72 | 71 | .tradeNo(params.get("out_trade_no")) |
| 73 | 72 | .reqNo(params.get("out_biz_no")) |
| 74 | 73 | .status(PayNotifyRefundStatusEnum.SUCCESS) |
| 75 | - .refundSuccessTime(DateUtil.parse(params.get("gmt_refund"), "yyyy-MM-dd HH:mm:ss")) | |
| 74 | + .refundSuccessTime(LocalDateTimeUtil.parse(params.get("gmt_refund"), "yyyy-MM-dd HH:mm:ss")) | |
| 76 | 75 | .build(); |
| 77 | 76 | return notifyDTO; |
| 78 | 77 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/wx/WXLitePayClient.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.wx; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | 4 | import cn.hutool.core.date.DateUtil; |
| 5 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 5 | 6 | import cn.hutool.core.lang.Assert; |
| 6 | 7 | import cn.hutool.core.map.MapUtil; |
| 7 | 8 | import cn.hutool.core.util.StrUtil; |
| ... | ... | @@ -167,7 +168,7 @@ public class WXLitePayClient extends AbstractPayClient<WXPayClientConfig> { |
| 167 | 168 | .builder() |
| 168 | 169 | .orderExtensionNo(result.getOutTradeNo()) |
| 169 | 170 | .channelOrderNo(result.getTradeState()) |
| 170 | - .successTime(DateUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 171 | + .successTime(LocalDateTimeUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 171 | 172 | .data(data.getBody()) |
| 172 | 173 | .build(); |
| 173 | 174 | } |
| ... | ... | @@ -181,7 +182,7 @@ public class WXLitePayClient extends AbstractPayClient<WXPayClientConfig> { |
| 181 | 182 | .orderExtensionNo(notifyResult.getOutTradeNo()) |
| 182 | 183 | .channelOrderNo(notifyResult.getTransactionId()) |
| 183 | 184 | .channelUserId(notifyResult.getOpenid()) |
| 184 | - .successTime(DateUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 185 | + .successTime(LocalDateTimeUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 185 | 186 | .data(data.getBody()) |
| 186 | 187 | .build(); |
| 187 | 188 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/wx/WXNativePayClient.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.wx; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | 4 | import cn.hutool.core.date.DateUtil; |
| 5 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 5 | 6 | import cn.hutool.core.lang.Assert; |
| 6 | 7 | import cn.hutool.core.util.StrUtil; |
| 7 | 8 | import cn.iocoder.yudao.framework.common.util.io.FileUtils; |
| ... | ... | @@ -150,7 +151,7 @@ public class WXNativePayClient extends AbstractPayClient<WXPayClientConfig> { |
| 150 | 151 | .builder() |
| 151 | 152 | .orderExtensionNo(result.getOutTradeNo()) |
| 152 | 153 | .channelOrderNo(result.getTradeState()) |
| 153 | - .successTime(DateUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 154 | + .successTime(LocalDateTimeUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 154 | 155 | .data(data.getBody()) |
| 155 | 156 | .build(); |
| 156 | 157 | } |
| ... | ... | @@ -164,7 +165,7 @@ public class WXNativePayClient extends AbstractPayClient<WXPayClientConfig> { |
| 164 | 165 | .orderExtensionNo(notifyResult.getOutTradeNo()) |
| 165 | 166 | .channelOrderNo(notifyResult.getTransactionId()) |
| 166 | 167 | .channelUserId(notifyResult.getOpenid()) |
| 167 | - .successTime(DateUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 168 | + .successTime(LocalDateTimeUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 168 | 169 | .data(data.getBody()) |
| 169 | 170 | .build(); |
| 170 | 171 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/wx/WXPubPayClient.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.wx; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | 4 | import cn.hutool.core.date.DateUtil; |
| 5 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 5 | 6 | import cn.hutool.core.lang.Assert; |
| 6 | 7 | import cn.hutool.core.map.MapUtil; |
| 7 | 8 | import cn.hutool.core.util.StrUtil; |
| ... | ... | @@ -161,7 +162,7 @@ public class WXPubPayClient extends AbstractPayClient<WXPayClientConfig> { |
| 161 | 162 | .builder() |
| 162 | 163 | .orderExtensionNo(result.getOutTradeNo()) |
| 163 | 164 | .channelOrderNo(result.getTradeState()) |
| 164 | - .successTime(DateUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 165 | + .successTime(LocalDateTimeUtil.parse(result.getSuccessTime(), "yyyy-MM-dd'T'HH:mm:ssXXX")) | |
| 165 | 166 | .data(data.getBody()) |
| 166 | 167 | .build(); |
| 167 | 168 | } |
| ... | ... | @@ -175,7 +176,7 @@ public class WXPubPayClient extends AbstractPayClient<WXPayClientConfig> { |
| 175 | 176 | .orderExtensionNo(notifyResult.getOutTradeNo()) |
| 176 | 177 | .channelOrderNo(notifyResult.getTransactionId()) |
| 177 | 178 | .channelUserId(notifyResult.getOpenid()) |
| 178 | - .successTime(DateUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 179 | + .successTime(LocalDateTimeUtil.parse(notifyResult.getTimeEnd(), "yyyyMMddHHmmss")) | |
| 179 | 180 | .data(data.getBody()) |
| 180 | 181 | .build(); |
| 181 | 182 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/dto/SmsReceiveRespDTO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.sms.core.client.dto; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | 8 | * 消息接收 Response DTO |
| ... | ... | @@ -32,7 +32,7 @@ public class SmsReceiveRespDTO { |
| 32 | 32 | /** |
| 33 | 33 | * 用户接收时间 |
| 34 | 34 | */ |
| 35 | - private Date receiveTime; | |
| 35 | + private LocalDateTime receiveTime; | |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | 38 | * 短信 API 发送返回的序号 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java
| ... | ... | @@ -28,7 +28,7 @@ import com.google.common.annotations.VisibleForTesting; |
| 28 | 28 | import lombok.Data; |
| 29 | 29 | import lombok.extern.slf4j.Slf4j; |
| 30 | 30 | |
| 31 | -import java.util.Date; | |
| 31 | +import java.time.LocalDateTime; | |
| 32 | 32 | import java.util.List; |
| 33 | 33 | import java.util.Objects; |
| 34 | 34 | import java.util.function.Function; |
| ... | ... | @@ -166,13 +166,13 @@ public class AliyunSmsClient extends AbstractSmsClient { |
| 166 | 166 | */ |
| 167 | 167 | @JsonProperty("send_time") |
| 168 | 168 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 169 | - private Date sendTime; | |
| 169 | + private LocalDateTime sendTime; | |
| 170 | 170 | /** |
| 171 | 171 | * 状态报告时间 |
| 172 | 172 | */ |
| 173 | 173 | @JsonProperty("report_time") |
| 174 | 174 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 175 | - private Date reportTime; | |
| 175 | + private LocalDateTime reportTime; | |
| 176 | 176 | /** |
| 177 | 177 | * 是否接收成功 |
| 178 | 178 | */ | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/tencent/TencentSmsClient.java
| ... | ... | @@ -22,7 +22,7 @@ import com.tencentcloudapi.sms.v20210111.SmsClient; |
| 22 | 22 | import com.tencentcloudapi.sms.v20210111.models.*; |
| 23 | 23 | import lombok.Data; |
| 24 | 24 | |
| 25 | -import java.util.Date; | |
| 25 | +import java.time.LocalDateTime; | |
| 26 | 26 | import java.util.List; |
| 27 | 27 | import java.util.function.Function; |
| 28 | 28 | import java.util.function.Supplier; |
| ... | ... | @@ -240,7 +240,7 @@ public class TencentSmsClient extends AbstractSmsClient { |
| 240 | 240 | */ |
| 241 | 241 | @JsonProperty("user_receive_time") |
| 242 | 242 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 243 | - private Date receiveTime; | |
| 243 | + private LocalDateTime receiveTime; | |
| 244 | 244 | |
| 245 | 245 | /** |
| 246 | 246 | * 国家(或地区)码 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/yunpian/YunpianSmsClient.java
| ... | ... | @@ -23,6 +23,7 @@ import com.yunpian.sdk.model.Template; |
| 23 | 23 | import lombok.Data; |
| 24 | 24 | import lombok.extern.slf4j.Slf4j; |
| 25 | 25 | |
| 26 | +import java.time.LocalDateTime; | |
| 26 | 27 | import java.util.*; |
| 27 | 28 | import java.util.function.Function; |
| 28 | 29 | import java.util.function.Supplier; |
| ... | ... | @@ -198,7 +199,7 @@ public class YunpianSmsClient extends AbstractSmsClient { |
| 198 | 199 | */ |
| 199 | 200 | @JsonProperty("user_receive_time") |
| 200 | 201 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 201 | - private Date userReceiveTime; | |
| 202 | + private LocalDateTime userReceiveTime; | |
| 202 | 203 | |
| 203 | 204 | } |
| 204 | 205 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/test/java/cn/iocoder/yudao/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java
| ... | ... | @@ -125,7 +125,7 @@ public class AliyunSmsClientTest extends BaseMockitoUnitTest { |
| 125 | 125 | assertEquals("DELIVERED", statuses.get(0).getErrorCode()); |
| 126 | 126 | assertEquals("用户接收成功", statuses.get(0).getErrorMsg()); |
| 127 | 127 | assertEquals("13900000001", statuses.get(0).getMobile()); |
| 128 | - assertEquals(DateUtils.buildTime(2017, 2, 2, 22, 23, 24), statuses.get(0).getReceiveTime()); | |
| 128 | + assertEquals(DateUtils.buildLocalDateTime(2017, 2, 2, 22, 23, 24), statuses.get(0).getReceiveTime()); | |
| 129 | 129 | assertEquals("12345", statuses.get(0).getSerialNo()); |
| 130 | 130 | assertEquals(67890L, statuses.get(0).getLogId()); |
| 131 | 131 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/test/java/cn/iocoder/yudao/framework/sms/core/client/impl/tencent/TencentSmsClientTest.java
| ... | ... | @@ -146,7 +146,7 @@ public class TencentSmsClientTest extends BaseMockitoUnitTest { |
| 146 | 146 | assertEquals("DELIVRD", statuses.get(0).getErrorCode()); |
| 147 | 147 | assertEquals("用户短信送达成功", statuses.get(0).getErrorMsg()); |
| 148 | 148 | assertEquals("13900000001", statuses.get(0).getMobile()); |
| 149 | - assertEquals(DateUtils.buildTime(2015, 10, 17, 8, 3, 4), statuses.get(0).getReceiveTime()); | |
| 149 | + assertEquals(DateUtils.buildLocalDateTime(2015, 10, 17, 8, 3, 4), statuses.get(0).getReceiveTime()); | |
| 150 | 150 | assertEquals("12345", statuses.get(0).getSerialNo()); |
| 151 | 151 | assertEquals(67890L, statuses.get(0).getLogId()); |
| 152 | 152 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-sms/src/test/java/cn/iocoder/yudao/framework/sms/core/client/impl/yunpian/YunpianSmsClientTest.java
| ... | ... | @@ -115,7 +115,7 @@ public class YunpianSmsClientTest extends BaseMockitoUnitTest { |
| 115 | 115 | assertEquals("", statuses.get(0).getErrorCode()); |
| 116 | 116 | assertNull(statuses.get(0).getErrorMsg()); |
| 117 | 117 | assertEquals("15205201314", statuses.get(0).getMobile()); |
| 118 | - assertEquals(DateUtils.buildTime(2014, 3, 17, 22, 55, 21), statuses.get(0).getReceiveTime()); | |
| 118 | + assertEquals(DateUtils.buildLocalDateTime(2014, 3, 17, 22, 55, 21), statuses.get(0).getReceiveTime()); | |
| 119 | 119 | assertEquals("9527", statuses.get(0).getSerialNo()); |
| 120 | 120 | assertEquals(1024L, statuses.get(0).getLogId()); |
| 121 | 121 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-config/src/main/java/cn/iocoder/yudao/framework/apollo/internals/ConfigFrameworkDAO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.apollo.internals; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.apollo.internals.dto.ConfigRespDTO; |
| 4 | 4 | |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | import java.util.List; |
| 7 | 7 | |
| 8 | 8 | /** |
| ... | ... | @@ -20,7 +20,7 @@ public interface ConfigFrameworkDAO { |
| 20 | 20 | * @param maxUpdateTime 最大更新时间 |
| 21 | 21 | * @return 是否存在 |
| 22 | 22 | */ |
| 23 | - int selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 23 | + int selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * 查询配置列表 | ... | ... |
yudao-framework/yudao-spring-boot-starter-config/src/main/java/cn/iocoder/yudao/framework/apollo/internals/DBConfigRepository.java
| ... | ... | @@ -18,8 +18,8 @@ import lombok.SneakyThrows; |
| 18 | 18 | import lombok.extern.slf4j.Slf4j; |
| 19 | 19 | |
| 20 | 20 | import java.lang.reflect.Constructor; |
| 21 | +import java.time.LocalDateTime; | |
| 21 | 22 | import java.util.Comparator; |
| 22 | -import java.util.Date; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | import java.util.Properties; |
| 25 | 25 | import java.util.concurrent.Executors; |
| ... | ... | @@ -48,7 +48,7 @@ public class DBConfigRepository extends AbstractConfigRepository { |
| 48 | 48 | /** |
| 49 | 49 | * 缓存配置的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 50 | 50 | */ |
| 51 | - private volatile Date maxUpdateTime; | |
| 51 | + private volatile LocalDateTime maxUpdateTime; | |
| 52 | 52 | |
| 53 | 53 | /** |
| 54 | 54 | * 配置读取 DAO |
| ... | ... | @@ -166,7 +166,7 @@ public class DBConfigRepository extends AbstractConfigRepository { |
| 166 | 166 | * @param maxUpdateTime 当前配置的最大更新时间 |
| 167 | 167 | * @return 配置列表 |
| 168 | 168 | */ |
| 169 | - private List<ConfigRespDTO> loadConfigIfUpdate(Date maxUpdateTime) { | |
| 169 | + private List<ConfigRespDTO> loadConfigIfUpdate(LocalDateTime maxUpdateTime) { | |
| 170 | 170 | // 第一步,判断是否要更新。 |
| 171 | 171 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 172 | 172 | log.info("[loadConfigIfUpdate][首次加载全量配置]"); | ... | ... |
yudao-framework/yudao-spring-boot-starter-config/src/main/java/cn/iocoder/yudao/framework/apollo/internals/dto/ConfigRespDTO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.apollo.internals.dto; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | 8 | * 配置 Response DTO |
| ... | ... | @@ -28,6 +28,6 @@ public class ConfigRespDTO { |
| 28 | 28 | /** |
| 29 | 29 | * 更新时间 |
| 30 | 30 | */ |
| 31 | - private Date updateTime; | |
| 31 | + private LocalDateTime updateTime; | |
| 32 | 32 | |
| 33 | 33 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandlerInvoker.java
| 1 | 1 | package cn.iocoder.yudao.framework.quartz.core.handler; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.lang.Assert; |
| 4 | 5 | import cn.hutool.core.thread.ThreadUtil; |
| 5 | 6 | import cn.iocoder.yudao.framework.quartz.core.enums.JobDataKeyEnum; |
| ... | ... | @@ -13,10 +14,10 @@ import org.springframework.context.ApplicationContext; |
| 13 | 14 | import org.springframework.scheduling.quartz.QuartzJobBean; |
| 14 | 15 | |
| 15 | 16 | import javax.annotation.Resource; |
| 16 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | +import java.time.temporal.ChronoUnit; | |
| 17 | 19 | |
| 18 | 20 | import static cn.hutool.core.exceptions.ExceptionUtil.getRootCauseMessage; |
| 19 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.diff; | |
| 20 | 21 | |
| 21 | 22 | /** |
| 22 | 23 | * 基础 Job 调用者,负责调用 {@link JobHandler#execute(String)} 执行任务 |
| ... | ... | @@ -46,7 +47,7 @@ public class JobHandlerInvoker extends QuartzJobBean { |
| 46 | 47 | |
| 47 | 48 | // 第二步,执行任务 |
| 48 | 49 | Long jobLogId = null; |
| 49 | - Date startTime = new Date(); | |
| 50 | + LocalDateTime startTime = LocalDateTime.now(); | |
| 50 | 51 | String data = null; |
| 51 | 52 | Throwable exception = null; |
| 52 | 53 | try { |
| ... | ... | @@ -73,9 +74,9 @@ public class JobHandlerInvoker extends QuartzJobBean { |
| 73 | 74 | return jobHandler.execute(jobHandlerParam); |
| 74 | 75 | } |
| 75 | 76 | |
| 76 | - private void updateJobLogResultAsync(Long jobLogId, Date startTime, String data, Throwable exception, | |
| 77 | + private void updateJobLogResultAsync(Long jobLogId, LocalDateTime startTime, String data, Throwable exception, | |
| 77 | 78 | JobExecutionContext executionContext) { |
| 78 | - Date endTime = new Date(); | |
| 79 | + LocalDateTime endTime = LocalDateTime.now(); | |
| 79 | 80 | // 处理是否成功 |
| 80 | 81 | boolean success = exception == null; |
| 81 | 82 | if (!success) { |
| ... | ... | @@ -83,7 +84,7 @@ public class JobHandlerInvoker extends QuartzJobBean { |
| 83 | 84 | } |
| 84 | 85 | // 更新日志 |
| 85 | 86 | try { |
| 86 | - jobLogFrameworkService.updateJobLogResultAsync(jobLogId, endTime, (int) diff(endTime, startTime), success, data); | |
| 87 | + jobLogFrameworkService.updateJobLogResultAsync(jobLogId, endTime, (int) LocalDateTimeUtil.between(startTime, endTime).toMillis(), success, data); | |
| 87 | 88 | } catch (Exception ex) { |
| 88 | 89 | log.error("[executeInternal][Job({}) logId({}) 记录执行日志失败({}/{})]", |
| 89 | 90 | executionContext.getJobDetail().getKey(), jobLogId, success, data); | ... | ... |
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/service/JobLogFrameworkService.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.quartz.core.service; |
| 2 | 2 | |
| 3 | 3 | import javax.validation.constraints.NotEmpty; |
| 4 | 4 | import javax.validation.constraints.NotNull; |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | 8 | * Job 日志 Framework Service 接口 |
| ... | ... | @@ -22,7 +22,7 @@ public interface JobLogFrameworkService { |
| 22 | 22 | * @return Job 日志的编号 |
| 23 | 23 | */ |
| 24 | 24 | Long createJobLog(@NotNull(message = "任务编号不能为空") Long jobId, |
| 25 | - @NotNull(message = "开始时间") Date beginTime, | |
| 25 | + @NotNull(message = "开始时间") LocalDateTime beginTime, | |
| 26 | 26 | @NotEmpty(message = "Job 处理器的名字不能为空") String jobHandlerName, |
| 27 | 27 | String jobHandlerParam, |
| 28 | 28 | @NotNull(message = "第几次执行不能为空") Integer executeIndex); |
| ... | ... | @@ -37,7 +37,7 @@ public interface JobLogFrameworkService { |
| 37 | 37 | * @param result 成功数据 |
| 38 | 38 | */ |
| 39 | 39 | void updateJobLogResultAsync(@NotNull(message = "日志编号不能为空") Long logId, |
| 40 | - @NotNull(message = "结束时间不能为空") Date endTime, | |
| 40 | + @NotNull(message = "结束时间不能为空") LocalDateTime endTime, | |
| 41 | 41 | @NotNull(message = "运行时长不能为空") Integer duration, |
| 42 | 42 | boolean success, String result); |
| 43 | 43 | ... | ... |
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java
| 1 | 1 | package cn.iocoder.yudao.framework.quartz.core.util; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import org.quartz.CronExpression; |
| 4 | 5 | |
| 5 | 6 | import java.text.ParseException; |
| 7 | +import java.time.LocalDateTime; | |
| 6 | 8 | import java.util.ArrayList; |
| 7 | 9 | import java.util.Date; |
| 8 | 10 | import java.util.List; |
| ... | ... | @@ -31,7 +33,7 @@ public class CronUtils { |
| 31 | 33 | * @param n 数量 |
| 32 | 34 | * @return 满足条件的执行时间 |
| 33 | 35 | */ |
| 34 | - public static List<Date> getNextTimes(String cronExpression, int n) { | |
| 36 | + public static List<LocalDateTime> getNextTimes(String cronExpression, int n) { | |
| 35 | 37 | // 获得 CronExpression 对象 |
| 36 | 38 | CronExpression cron; |
| 37 | 39 | try { |
| ... | ... | @@ -41,10 +43,10 @@ public class CronUtils { |
| 41 | 43 | } |
| 42 | 44 | // 从当前开始计算,n 个满足条件的 |
| 43 | 45 | Date now = new Date(); |
| 44 | - List<Date> nextTimes = new ArrayList<>(n); | |
| 46 | + List<LocalDateTime> nextTimes = new ArrayList<>(n); | |
| 45 | 47 | for (int i = 0; i < n; i++) { |
| 46 | 48 | Date nextTime = cron.getNextValidTimeAfter(now); |
| 47 | - nextTimes.add(nextTime); | |
| 49 | + nextTimes.add(LocalDateTimeUtil.of(nextTime)); | |
| 48 | 50 | // 切换现在,为下一个触发时间; |
| 49 | 51 | now = nextTime; |
| 50 | 52 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import org.apache.ibatis.type.JdbcType; |
| 8 | 8 | |
| 9 | 9 | import java.io.Serializable; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 基础实体对象 |
| ... | ... | @@ -21,12 +21,12 @@ public abstract class BaseDO implements Serializable { |
| 21 | 21 | * 创建时间 |
| 22 | 22 | */ |
| 23 | 23 | @TableField(fill = FieldFill.INSERT) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | /** |
| 26 | 26 | * 最后更新时间 |
| 27 | 27 | */ |
| 28 | 28 | @TableField(fill = FieldFill.INSERT_UPDATE) |
| 29 | - private Date updateTime; | |
| 29 | + private LocalDateTime updateTime; | |
| 30 | 30 | /** |
| 31 | 31 | * 创建者,目前使用 SysUser 的 id 编号 |
| 32 | 32 | * | ... | ... |
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/handler/DefaultDBFieldHandler.java
| ... | ... | @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; |
| 5 | 5 | import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; |
| 6 | 6 | import org.apache.ibatis.reflection.MetaObject; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | import java.util.Objects; |
| 10 | 10 | |
| 11 | 11 | /** |
| ... | ... | @@ -22,7 +22,7 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { |
| 22 | 22 | if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) { |
| 23 | 23 | BaseDO baseDO = (BaseDO) metaObject.getOriginalObject(); |
| 24 | 24 | |
| 25 | - Date current = new Date(); | |
| 25 | + LocalDateTime current = LocalDateTime.now(); | |
| 26 | 26 | // 创建时间为空,则以当前时间为插入时间 |
| 27 | 27 | if (Objects.isNull(baseDO.getCreateTime())) { |
| 28 | 28 | baseDO.setCreateTime(current); |
| ... | ... | @@ -49,7 +49,7 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { |
| 49 | 49 | // 更新时间为空,则以当前时间为更新时间 |
| 50 | 50 | Object modifyTime = getFieldValByName("updateTime", metaObject); |
| 51 | 51 | if (Objects.isNull(modifyTime)) { |
| 52 | - setFieldValByName("updateTime", new Date(), metaObject); | |
| 52 | + setFieldValByName("updateTime", LocalDateTime.now(), metaObject); | |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 | ... | ... |
yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/RandomUtils.java
| 1 | 1 | package cn.iocoder.yudao.framework.test.core.util; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.util.ArrayUtil; |
| 4 | 5 | import cn.hutool.core.util.RandomUtil; |
| 5 | 6 | import cn.hutool.core.util.StrUtil; |
| ... | ... | @@ -8,6 +9,7 @@ import uk.co.jemos.podam.api.PodamFactory; |
| 8 | 9 | import uk.co.jemos.podam.api.PodamFactoryImpl; |
| 9 | 10 | |
| 10 | 11 | import java.lang.reflect.Type; |
| 12 | +import java.time.LocalDateTime; | |
| 11 | 13 | import java.util.Arrays; |
| 12 | 14 | import java.util.Date; |
| 13 | 15 | import java.util.List; |
| ... | ... | @@ -76,6 +78,10 @@ public class RandomUtils { |
| 76 | 78 | return RandomUtil.randomDay(0, RANDOM_DATE_MAX); |
| 77 | 79 | } |
| 78 | 80 | |
| 81 | + public static LocalDateTime randomLocalDateTime() { | |
| 82 | + return LocalDateTimeUtil.of(randomDate()); | |
| 83 | + } | |
| 84 | + | |
| 79 | 85 | public static Short randomShort() { |
| 80 | 86 | return (short) RandomUtil.randomInt(0, Short.MAX_VALUE); |
| 81 | 87 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java
| 1 | 1 | package cn.iocoder.yudao.framework.apilog.core.filter; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.exceptions.ExceptionUtil; |
| 4 | 5 | import cn.hutool.core.map.MapUtil; |
| 5 | 6 | import cn.hutool.extra.servlet.ServletUtil; |
| ... | ... | @@ -7,7 +8,6 @@ import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLog; |
| 7 | 8 | import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService; |
| 8 | 9 | import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; |
| 9 | 10 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 10 | -import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 11 | 11 | import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; |
| 12 | 12 | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; |
| 13 | 13 | import cn.iocoder.yudao.framework.web.config.WebProperties; |
| ... | ... | @@ -20,7 +20,8 @@ import javax.servlet.ServletException; |
| 20 | 20 | import javax.servlet.http.HttpServletRequest; |
| 21 | 21 | import javax.servlet.http.HttpServletResponse; |
| 22 | 22 | import java.io.IOException; |
| 23 | -import java.util.Date; | |
| 23 | +import java.time.LocalDateTime; | |
| 24 | +import java.time.temporal.ChronoUnit; | |
| 24 | 25 | import java.util.Map; |
| 25 | 26 | |
| 26 | 27 | import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; |
| ... | ... | @@ -47,7 +48,7 @@ public class ApiAccessLogFilter extends ApiRequestFilter { |
| 47 | 48 | protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) |
| 48 | 49 | throws ServletException, IOException { |
| 49 | 50 | // 获得开始时间 |
| 50 | - Date beginTim = new Date(); | |
| 51 | + LocalDateTime beginTime = LocalDateTime.now(); | |
| 51 | 52 | // 提前获得参数,避免 XssFilter 过滤处理 |
| 52 | 53 | Map<String, String> queryString = ServletUtil.getParamMap(request); |
| 53 | 54 | String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtil.getBody(request) : null; |
| ... | ... | @@ -56,15 +57,15 @@ public class ApiAccessLogFilter extends ApiRequestFilter { |
| 56 | 57 | // 继续过滤器 |
| 57 | 58 | filterChain.doFilter(request, response); |
| 58 | 59 | // 正常执行,记录日志 |
| 59 | - createApiAccessLog(request, beginTim, queryString, requestBody, null); | |
| 60 | + createApiAccessLog(request, beginTime, queryString, requestBody, null); | |
| 60 | 61 | } catch (Exception ex) { |
| 61 | 62 | // 异常执行,记录日志 |
| 62 | - createApiAccessLog(request, beginTim, queryString, requestBody, ex); | |
| 63 | + createApiAccessLog(request, beginTime, queryString, requestBody, ex); | |
| 63 | 64 | throw ex; |
| 64 | 65 | } |
| 65 | 66 | } |
| 66 | 67 | |
| 67 | - private void createApiAccessLog(HttpServletRequest request, Date beginTime, | |
| 68 | + private void createApiAccessLog(HttpServletRequest request, LocalDateTime beginTime, | |
| 68 | 69 | Map<String, String> queryString, String requestBody, Exception ex) { |
| 69 | 70 | ApiAccessLog accessLog = new ApiAccessLog(); |
| 70 | 71 | try { |
| ... | ... | @@ -75,7 +76,7 @@ public class ApiAccessLogFilter extends ApiRequestFilter { |
| 75 | 76 | } |
| 76 | 77 | } |
| 77 | 78 | |
| 78 | - private void buildApiAccessLogDTO(ApiAccessLog accessLog, HttpServletRequest request, Date beginTime, | |
| 79 | + private void buildApiAccessLogDTO(ApiAccessLog accessLog, HttpServletRequest request, LocalDateTime beginTime, | |
| 79 | 80 | Map<String, String> queryString, String requestBody, Exception ex) { |
| 80 | 81 | // 处理用户信息 |
| 81 | 82 | accessLog.setUserId(WebFrameworkUtils.getLoginUserId(request)); |
| ... | ... | @@ -103,8 +104,8 @@ public class ApiAccessLogFilter extends ApiRequestFilter { |
| 103 | 104 | accessLog.setUserIp(ServletUtil.getClientIP(request)); |
| 104 | 105 | // 持续时间 |
| 105 | 106 | accessLog.setBeginTime(beginTime); |
| 106 | - accessLog.setEndTime(new Date()); | |
| 107 | - accessLog.setDuration((int) DateUtils.diff(accessLog.getEndTime(), accessLog.getBeginTime())); | |
| 107 | + accessLog.setEndTime(LocalDateTime.now()); | |
| 108 | + accessLog.setDuration((int) LocalDateTimeUtil.between(accessLog.getBeginTime(), accessLog.getEndTime(), ChronoUnit.SECONDS)); | |
| 108 | 109 | } |
| 109 | 110 | |
| 110 | 111 | } | ... | ... |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLog.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.framework.apilog.core.service; |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | 5 | import javax.validation.constraints.NotNull; |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * API 访问日志 |
| ... | ... | @@ -61,12 +61,12 @@ public class ApiAccessLog { |
| 61 | 61 | * 开始请求时间 |
| 62 | 62 | */ |
| 63 | 63 | @NotNull(message = "开始请求时间不能为空") |
| 64 | - private Date beginTime; | |
| 64 | + private LocalDateTime beginTime; | |
| 65 | 65 | /** |
| 66 | 66 | * 结束请求时间 |
| 67 | 67 | */ |
| 68 | 68 | @NotNull(message = "结束请求时间不能为空") |
| 69 | - private Date endTime; | |
| 69 | + private LocalDateTime endTime; | |
| 70 | 70 | /** |
| 71 | 71 | * 执行时长,单位:毫秒 |
| 72 | 72 | */ | ... | ... |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLog.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.framework.apilog.core.service; |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | 5 | import javax.validation.constraints.NotNull; |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * API 错误日志 |
| ... | ... | @@ -61,7 +61,7 @@ public class ApiErrorLog { |
| 61 | 61 | * 异常时间 |
| 62 | 62 | */ |
| 63 | 63 | @NotNull(message = "异常时间不能为空") |
| 64 | - private Date exceptionTime; | |
| 64 | + private LocalDateTime exceptionTime; | |
| 65 | 65 | /** |
| 66 | 66 | * 异常名 |
| 67 | 67 | */ | ... | ... |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
| ... | ... | @@ -31,7 +31,7 @@ import javax.servlet.http.HttpServletRequest; |
| 31 | 31 | import javax.validation.ConstraintViolation; |
| 32 | 32 | import javax.validation.ConstraintViolationException; |
| 33 | 33 | import javax.validation.ValidationException; |
| 34 | -import java.util.Date; | |
| 34 | +import java.time.LocalDateTime; | |
| 35 | 35 | import java.util.Map; |
| 36 | 36 | |
| 37 | 37 | import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.*; |
| ... | ... | @@ -267,7 +267,7 @@ public class GlobalExceptionHandler { |
| 267 | 267 | errorLog.setRequestMethod(request.getMethod()); |
| 268 | 268 | errorLog.setUserAgent(ServletUtils.getUserAgent(request)); |
| 269 | 269 | errorLog.setUserIp(ServletUtil.getClientIP(request)); |
| 270 | - errorLog.setExceptionTime(new Date()); | |
| 270 | + errorLog.setExceptionTime(LocalDateTime.now()); | |
| 271 | 271 | } |
| 272 | 272 | |
| 273 | 273 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.List; |
| 12 | 12 | |
| 13 | 13 | @ApiModel("管理后台 - 动态表单 Response VO") |
| ... | ... | @@ -28,6 +28,6 @@ public class BpmFormRespVO extends BpmFormBaseVO { |
| 28 | 28 | private List<String> fields; |
| 29 | 29 | |
| 30 | 30 | @ApiModelProperty(value = "创建时间", required = true) |
| 31 | - private Date createTime; | |
| 31 | + private LocalDateTime createTime; | |
| 32 | 32 | |
| 33 | 33 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java
| ... | ... | @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; |
| 9 | 9 | import lombok.ToString; |
| 10 | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | |
| 14 | 14 | @ApiModel("管理后台 - 用户组分页 Request VO") |
| 15 | 15 | @Data |
| ... | ... | @@ -25,6 +25,6 @@ public class BpmUserGroupPageReqVO extends PageParam { |
| 25 | 25 | |
| 26 | 26 | @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | 27 | @ApiModelProperty(value = "创建时间") |
| 28 | - private Date[] createTime; | |
| 28 | + private LocalDateTime[] createTime; | |
| 29 | 29 | |
| 30 | 30 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | + | |
| 5 | 7 | import io.swagger.annotations.*; |
| 6 | 8 | |
| 7 | 9 | @ApiModel("管理后台 - 用户组 Response VO") |
| ... | ... | @@ -14,6 +16,6 @@ public class BpmUserGroupRespVO extends BpmUserGroupBaseVO { |
| 14 | 16 | private Long id; |
| 15 | 17 | |
| 16 | 18 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 19 | + private LocalDateTime createTime; | |
| 18 | 20 | |
| 19 | 21 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 流程模型的分页的每一项 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -21,7 +21,7 @@ public class BpmModelPageItemRespVO extends BpmModelBaseVO { |
| 21 | 21 | private String formName; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | /** |
| 27 | 27 | * 最新部署的流程定义 |
| ... | ... | @@ -39,7 +39,7 @@ public class BpmModelPageItemRespVO extends BpmModelBaseVO { |
| 39 | 39 | private Integer version; |
| 40 | 40 | |
| 41 | 41 | @ApiModelProperty(value = "部署时间", required = true) |
| 42 | - private Date deploymentTime; | |
| 42 | + private LocalDateTime deploymentTime; | |
| 43 | 43 | |
| 44 | 44 | @ApiModelProperty(value = "中断状态", required = true, example = "1", notes = "参见 SuspensionState 枚举") |
| 45 | 45 | private Integer suspensionState; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 流程模型的创建 Request VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -21,6 +21,6 @@ public class BpmModelRespVO extends BpmModelBaseVO { |
| 21 | 21 | private String bpmnXml; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 流程定义的分页的每一项 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class BpmProcessDefinitionPageItemRespVO extends BpmProcessDefinitionResp |
| 18 | 18 | private String formName; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "部署时间", required = true) |
| 21 | - private Date deploymentTime; | |
| 21 | + private LocalDateTime deploymentTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | +import java.time.LocalDateTime; | |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 6 | import javax.validation.constraints.*; |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -18,11 +18,11 @@ public class BpmOALeaveBaseVO { |
| 18 | 18 | @ApiModelProperty(value = "请假的开始时间", required = true) |
| 19 | 19 | @NotNull(message = "开始时间不能为空") |
| 20 | 20 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 21 | - private Date startTime; | |
| 21 | + private LocalDateTime startTime; | |
| 22 | 22 | @ApiModelProperty(value = "请假的结束时间", required = true) |
| 23 | 23 | @NotNull(message = "结束时间不能为空") |
| 24 | 24 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 25 | - private Date endTime; | |
| 25 | + private LocalDateTime endTime; | |
| 26 | 26 | |
| 27 | 27 | @ApiModelProperty(value = "请假类型", required = true, example = "1", notes = "参见 bpm_oa_type 枚举") |
| 28 | 28 | private Integer type; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java
| ... | ... | @@ -15,7 +15,7 @@ public class BpmOALeaveCreateReqVO extends BpmOALeaveBaseVO { |
| 15 | 15 | |
| 16 | 16 | @AssertTrue(message = "结束时间,需要在开始时间之后") |
| 17 | 17 | public boolean isEndTimeValid() { |
| 18 | - return !getEndTime().before(getStartTime()); | |
| 18 | + return !getEndTime().isBefore(getStartTime()); | |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | +import java.time.LocalDateTime; | |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -25,6 +25,6 @@ public class BpmOALeavePageReqVO extends PageParam { |
| 25 | 25 | |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | 27 | @ApiModelProperty(value = "申请时间") |
| 28 | - private Date[] createTime; | |
| 28 | + private LocalDateTime[] createTime; | |
| 29 | 29 | |
| 30 | 30 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.*; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,7 +24,7 @@ public class BpmOALeaveRespVO extends BpmOALeaveBaseVO { |
| 24 | 24 | @ApiModelProperty(value = "申请时间", required = true) |
| 25 | 25 | @NotNull(message = "申请时间不能为空") |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | - private Date createTime; | |
| 27 | + private LocalDateTime createTime; | |
| 28 | 28 | |
| 29 | 29 | @ApiModelProperty(value = "流程id") |
| 30 | 30 | private String processInstanceId; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | @ApiModel("管理后台 - 流程活动的 Response VO") |
| 10 | 10 | @Data |
| ... | ... | @@ -16,9 +16,9 @@ public class BpmActivityRespVO { |
| 16 | 16 | private String type; |
| 17 | 17 | |
| 18 | 18 | @ApiModelProperty(value = "流程活动的开始时间", required = true) |
| 19 | - private Date startTime; | |
| 19 | + private LocalDateTime startTime; | |
| 20 | 20 | @ApiModelProperty(value = "流程活动的结束时间", required = true) |
| 21 | - private Date endTime; | |
| 21 | + private LocalDateTime endTime; | |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "关联的流程任务的编号", example = "2048", notes = "关联的流程任务,只有 UserTask 等类型才有") |
| 24 | 24 | private String taskId; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -35,6 +35,6 @@ public class BpmProcessInstanceMyPageReqVO extends PageParam { |
| 35 | 35 | |
| 36 | 36 | @ApiModelProperty(value = "创建时间") |
| 37 | 37 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 38 | - private Date[] createTime; | |
| 38 | + private LocalDateTime[] createTime; | |
| 39 | 39 | |
| 40 | 40 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | import java.util.List; |
| 9 | 9 | |
| 10 | 10 | @ApiModel("管理后台 - 流程实例的分页 Item Response VO") |
| ... | ... | @@ -30,10 +30,10 @@ public class BpmProcessInstancePageItemRespVO { |
| 30 | 30 | private Integer result; |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "提交时间", required = true) |
| 33 | - private Date createTime; | |
| 33 | + private LocalDateTime createTime; | |
| 34 | 34 | |
| 35 | 35 | @ApiModelProperty(value = "结束时间", required = true) |
| 36 | - private Date endTime; | |
| 36 | + private LocalDateTime endTime; | |
| 37 | 37 | |
| 38 | 38 | /** |
| 39 | 39 | * 当前任务 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | import java.util.List; |
| 9 | 9 | import java.util.Map; |
| 10 | 10 | |
| ... | ... | @@ -28,10 +28,10 @@ public class BpmProcessInstanceRespVO { |
| 28 | 28 | private Integer result; |
| 29 | 29 | |
| 30 | 30 | @ApiModelProperty(value = "提交时间", required = true) |
| 31 | - private Date createTime; | |
| 31 | + private LocalDateTime createTime; | |
| 32 | 32 | |
| 33 | 33 | @ApiModelProperty(value = "结束时间", required = true) |
| 34 | - private Date endTime; | |
| 34 | + private LocalDateTime endTime; | |
| 35 | 35 | |
| 36 | 36 | @ApiModelProperty(value = "提交的表单值", required = true) |
| 37 | 37 | private Map<String, Object> formVariables; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 流程任务的 Done 已完成的分页项 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -15,7 +15,7 @@ import java.util.Date; |
| 15 | 15 | public class BpmTaskDonePageItemRespVO extends BpmTaskTodoPageItemRespVO { |
| 16 | 16 | |
| 17 | 17 | @ApiModelProperty(value = "结束时间", required = true) |
| 18 | - private Date endTime; | |
| 18 | + private LocalDateTime endTime; | |
| 19 | 19 | @ApiModelProperty(value = "持续时间", required = true, example = "1000") |
| 20 | 20 | private Long durationInMillis; |
| 21 | 21 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -23,10 +23,10 @@ public class BpmTaskDonePageReqVO extends PageParam { |
| 23 | 23 | |
| 24 | 24 | @ApiModelProperty(value = "开始的创建收间") |
| 25 | 25 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 26 | - private Date beginCreateTime; | |
| 26 | + private LocalDateTime beginCreateTime; | |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "结束的创建时间") |
| 29 | 29 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 30 | - private Date endCreateTime; | |
| 30 | + private LocalDateTime endCreateTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | @ApiModel("管理后台 - 流程任务的 Running 进行中的分页项 Response VO") |
| 10 | 10 | @Data |
| ... | ... | @@ -17,10 +17,10 @@ public class BpmTaskTodoPageItemRespVO { |
| 17 | 17 | private String name; |
| 18 | 18 | |
| 19 | 19 | @ApiModelProperty(value = "接收时间", required = true) |
| 20 | - private Date claimTime; | |
| 20 | + private LocalDateTime claimTime; | |
| 21 | 21 | |
| 22 | 22 | @ApiModelProperty(value = "创建时间", required = true) |
| 23 | - private Date createTime; | |
| 23 | + private LocalDateTime createTime; | |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "激活状态", required = true, example = "1", notes = "参见 SuspensionState 枚举") |
| 26 | 26 | private Integer suspensionState; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -23,10 +23,10 @@ public class BpmTaskTodoPageReqVO extends PageParam { |
| 23 | 23 | |
| 24 | 24 | @ApiModelProperty(value = "开始的创建收间") |
| 25 | 25 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 26 | - private Date beginCreateTime; | |
| 26 | + private LocalDateTime beginCreateTime; | |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "结束的创建时间") |
| 29 | 29 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 30 | - private Date endCreateTime; | |
| 30 | + private LocalDateTime endCreateTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmModelConvert.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.convert.definition; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.util.StrUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 5 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 5 | 6 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 6 | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; |
| 7 | 8 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| ... | ... | @@ -44,7 +45,7 @@ public interface BpmModelConvert { |
| 44 | 45 | default BpmModelPageItemRespVO convert(Model model, BpmFormDO form, Deployment deployment, ProcessDefinition processDefinition) { |
| 45 | 46 | BpmModelPageItemRespVO modelRespVO = new BpmModelPageItemRespVO(); |
| 46 | 47 | modelRespVO.setId(model.getId()); |
| 47 | - modelRespVO.setCreateTime(model.getCreateTime()); | |
| 48 | + modelRespVO.setCreateTime(DateUtils.dateToLocalDateTime(model.getCreateTime())); | |
| 48 | 49 | // 通用 copy |
| 49 | 50 | copyTo(model, modelRespVO); |
| 50 | 51 | // Form |
| ... | ... | @@ -57,7 +58,7 @@ public interface BpmModelConvert { |
| 57 | 58 | if (modelRespVO.getProcessDefinition() != null) { |
| 58 | 59 | modelRespVO.getProcessDefinition().setSuspensionState(processDefinition.isSuspended() ? |
| 59 | 60 | SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode()); |
| 60 | - modelRespVO.getProcessDefinition().setDeploymentTime(deployment.getDeploymentTime()); | |
| 61 | + modelRespVO.getProcessDefinition().setDeploymentTime(DateUtils.dateToLocalDateTime(deployment.getDeploymentTime())); | |
| 61 | 62 | } |
| 62 | 63 | return modelRespVO; |
| 63 | 64 | } |
| ... | ... | @@ -65,7 +66,7 @@ public interface BpmModelConvert { |
| 65 | 66 | default BpmModelRespVO convert(Model model) { |
| 66 | 67 | BpmModelRespVO modelRespVO = new BpmModelRespVO(); |
| 67 | 68 | modelRespVO.setId(model.getId()); |
| 68 | - modelRespVO.setCreateTime(model.getCreateTime()); | |
| 69 | + modelRespVO.setCreateTime(DateUtils.dateToLocalDateTime(model.getCreateTime())); | |
| 69 | 70 | // 通用 copy |
| 70 | 71 | copyTo(model, modelRespVO); |
| 71 | 72 | return modelRespVO; | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmProcessDefinitionConvert.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.convert.definition; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 5 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 4 | 6 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; |
| 5 | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; |
| 6 | 8 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| ... | ... | @@ -67,7 +69,7 @@ public interface BpmProcessDefinitionConvert { |
| 67 | 69 | BpmProcessDefinitionPageItemRespVO respVO = convert(bean); |
| 68 | 70 | respVO.setSuspensionState(bean.isSuspended() ? SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode()); |
| 69 | 71 | if (deployment != null) { |
| 70 | - respVO.setDeploymentTime(deployment.getDeploymentTime()); | |
| 72 | + respVO.setDeploymentTime(LocalDateTimeUtil.of(deployment.getDeploymentTime())); | |
| 71 | 73 | } |
| 72 | 74 | if (form != null) { |
| 73 | 75 | respVO.setFormName(form.getName()); | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.convert.task; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 4 | 5 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 5 | 6 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskDonePageItemRespVO; |
| ... | ... | @@ -151,7 +152,7 @@ public interface BpmTaskConvert { |
| 151 | 152 | BpmTaskExtDO taskExtDO = new BpmTaskExtDO().setTaskId(task.getId()) |
| 152 | 153 | .setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())).setName(task.getName()) |
| 153 | 154 | .setProcessDefinitionId(task.getProcessDefinitionId()).setProcessInstanceId(task.getProcessInstanceId()); |
| 154 | - taskExtDO.setCreateTime(task.getCreateTime()); | |
| 155 | + taskExtDO.setCreateTime(LocalDateTimeUtil.of(task.getCreateTime())); | |
| 155 | 156 | return taskExtDO; |
| 156 | 157 | } |
| 157 | 158 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.oa; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; |
| 4 | 4 | import lombok.*; |
| 5 | -import java.util.*; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | import com.baomidou.mybatisplus.annotation.*; |
| 7 | 7 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 8 | 8 | |
| ... | ... | @@ -46,11 +46,11 @@ public class BpmOALeaveDO extends BaseDO { |
| 46 | 46 | /** |
| 47 | 47 | * 开始时间 |
| 48 | 48 | */ |
| 49 | - private Date startTime; | |
| 49 | + private LocalDateTime startTime; | |
| 50 | 50 | /** |
| 51 | 51 | * 结束时间 |
| 52 | 52 | */ |
| 53 | - private Date endTime; | |
| 53 | + private LocalDateTime endTime; | |
| 54 | 54 | /** |
| 55 | 55 | * 请假天数 |
| 56 | 56 | */ | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmActivityDO.java
| ... | ... | @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; |
| 4 | 4 | import lombok.*; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; |
| ... | ... | @@ -80,18 +80,18 @@ public class BpmActivityDO { |
| 80 | 80 | */ |
| 81 | 81 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 82 | 82 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 83 | - private Date startTime; | |
| 83 | + private LocalDateTime startTime; | |
| 84 | 84 | |
| 85 | 85 | /** |
| 86 | 86 | * 任务结束时间 |
| 87 | 87 | */ |
| 88 | 88 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 89 | 89 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 90 | - private Date endTime; | |
| 90 | + private LocalDateTime endTime; | |
| 91 | 91 | |
| 92 | 92 | private Integer transactionOrder; |
| 93 | 93 | |
| 94 | - private Long duration; | |
| 94 | + private LocalDateTime duration; | |
| 95 | 95 | |
| 96 | 96 | /** |
| 97 | 97 | * 删除结果 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java
| ... | ... | @@ -11,7 +11,7 @@ import lombok.Data; |
| 11 | 11 | import lombok.EqualsAndHashCode; |
| 12 | 12 | import lombok.ToString; |
| 13 | 13 | |
| 14 | -import java.util.Date; | |
| 14 | +import java.time.LocalDateTime; | |
| 15 | 15 | import java.util.Map; |
| 16 | 16 | |
| 17 | 17 | /** |
| ... | ... | @@ -79,7 +79,7 @@ public class BpmProcessInstanceExtDO extends BaseDO { |
| 79 | 79 | * |
| 80 | 80 | * 冗余 HistoricProcessInstance 的 endTime 属性 |
| 81 | 81 | */ |
| 82 | - private Date endTime; | |
| 82 | + private LocalDateTime endTime; | |
| 83 | 83 | |
| 84 | 84 | /** |
| 85 | 85 | * 提交的表单值 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.Data; |
| 8 | 8 | import lombok.EqualsAndHashCode; |
| 9 | 9 | import lombok.ToString; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * Bpm 流程任务的拓展表 |
| ... | ... | @@ -67,7 +67,7 @@ public class BpmTaskExtDO extends BaseDO { |
| 67 | 67 | * |
| 68 | 68 | * 冗余 HistoricTaskInstance 的 endTime 属性 |
| 69 | 69 | */ |
| 70 | - private Date endTime; | |
| 70 | + private LocalDateTime endTime; | |
| 71 | 71 | |
| 72 | 72 | /** |
| 73 | 73 | * 流程实例的编号 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.service.oa; |
| 2 | 2 | |
| 3 | -import cn.hutool.core.date.DateUtil; | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| 6 | 6 | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| ... | ... | @@ -46,7 +46,7 @@ public class BpmOALeaveServiceImpl implements BpmOALeaveService { |
| 46 | 46 | @Transactional(rollbackFor = Exception.class) |
| 47 | 47 | public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) { |
| 48 | 48 | // 插入 OA 请假单 |
| 49 | - long day = DateUtil.betweenDay(createReqVO.getStartTime(), createReqVO.getEndTime(), false); | |
| 49 | + long day = LocalDateTimeUtil.between(createReqVO.getStartTime(), createReqVO.getEndTime()).toDays(); | |
| 50 | 50 | BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day) |
| 51 | 51 | .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); |
| 52 | 52 | leaveMapper.insert(leave); | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.bpm.service.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum; import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventPublisher; import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.event.FlowableCancelledEvent; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Valid; import java.util.*; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; /** * 流程实例 Service 实现类 * * ProcessDefinition & ProcessInstance & Execution & Task 的关系: * 1. <a href="https://blog.csdn.net/bobozai86/article/details/105210414" /> * * HistoricProcessInstance & ProcessInstance 的关系: * 1. <a href=" https://my.oschina.net/843294669/blog/71902" /> * * 简单来说,前者 = 历史 + 运行中的流程实例,后者仅是运行中的流程实例 * * @author 芋道源码 */ @Service @Validated @Slf4j public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService { @Resource private RuntimeService runtimeService; @Resource private BpmProcessInstanceExtMapper processInstanceExtMapper; @Resource @Lazy // 解决循环依赖 private BpmTaskService taskService; @Resource private BpmProcessDefinitionService processDefinitionService; @Resource private HistoryService historyService; @Resource private AdminUserApi adminUserApi; @Resource private DeptApi deptApi; @Resource private BpmProcessInstanceResultEventPublisher processInstanceResultEventPublisher; @Resource private BpmMessageService messageService; @Override public ProcessInstance getProcessInstance(String id) { return runtimeService.createProcessInstanceQuery().processInstanceId(id).singleResult(); } @Override public List<ProcessInstance> getProcessInstances(Set<String> ids) { return runtimeService.createProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId, BpmProcessInstanceMyPageReqVO pageReqVO) { // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页 PageResult<BpmProcessInstanceExtDO> pageResult = processInstanceExtMapper.selectPage(userId, pageReqVO); if (CollUtil.isEmpty(pageResult.getList())) { return new PageResult<>(pageResult.getTotal()); } // 获得流程 Task Map List<String> processInstanceIds = convertList(pageResult.getList(), BpmProcessInstanceExtDO::getProcessInstanceId); Map<String, List<Task>> taskMap = taskService.getTaskMapByProcessInstanceIds(processInstanceIds); // 转换返回 return BpmProcessInstanceConvert.INSTANCE.convertPage(pageResult, taskMap); } @Override @Transactional(rollbackFor = Exception.class) public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition(createReqVO.getProcessDefinitionId()); // 发起流程 return createProcessInstance0(userId, definition, createReqVO.getVariables(), null); } @Override public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getActiveProcessDefinition(createReqDTO.getProcessDefinitionKey()); // 发起流程 return createProcessInstance0(userId, definition, createReqDTO.getVariables(), createReqDTO.getBusinessKey()); } @Override public BpmProcessInstanceRespVO getProcessInstanceVO(String id) { // 获得流程实例 HistoricProcessInstance processInstance = getHistoricProcessInstance(id); if (processInstance == null) { return null; } BpmProcessInstanceExtDO processInstanceExt = processInstanceExtMapper.selectByProcessInstanceId(id); Assert.notNull(processInstanceExt, "流程实例拓展({}) 不存在", id); // 获得流程定义 ProcessDefinition processDefinition = processDefinitionService .getProcessDefinition(processInstance.getProcessDefinitionId()); Assert.notNull(processDefinition, "流程定义({}) 不存在", processInstance.getProcessDefinitionId()); BpmProcessDefinitionExtDO processDefinitionExt = processDefinitionService.getProcessDefinitionExt( processInstance.getProcessDefinitionId()); Assert.notNull(processDefinitionExt, "流程定义拓展({}) 不存在", id); String bpmnXml = processDefinitionService.getProcessDefinitionBpmnXML(processInstance.getProcessDefinitionId()); // 获得 User AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId())); DeptRespDTO dept = null; if (startUser != null) { dept = deptApi.getDept(startUser.getDeptId()); } // 拼接结果 return BpmProcessInstanceConvert.INSTANCE.convert2(processInstance, processInstanceExt, processDefinition, processDefinitionExt, bpmnXml, startUser, dept); } @Override public void cancelProcessInstance(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) { // 校验流程实例存在 ProcessInstance instance = getProcessInstance(cancelReqVO.getId()); if (instance == null) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS); } // 只能取消自己的 if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF); } // 通过删除流程实例,实现流程实例的取消, // 删除流程实例,正则执行任务 ACT_RU_TASK. 任务会被删除。通过历史表查询 deleteProcessInstance(cancelReqVO.getId(), BpmProcessInstanceDeleteReasonEnum.CANCEL_TASK.format(cancelReqVO.getReason())); } /** * 获得历史的流程实例 * * @param id 流程实例的编号 * @return 历史的流程实例 */ @Override public HistoricProcessInstance getHistoricProcessInstance(String id) { return historyService.createHistoricProcessInstanceQuery().processInstanceId(id).singleResult(); } @Override public List<HistoricProcessInstance> getHistoricProcessInstances(Set<String> ids) { return historyService.createHistoricProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public void createProcessInstanceExt(ProcessInstance instance) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition2(instance.getProcessDefinitionId()); // 插入 BpmProcessInstanceExtDO 对象 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getId()) .setProcessDefinitionId(definition.getId()) .setName(instance.getProcessDefinitionName()) .setStartUserId(Long.valueOf(instance.getStartUserId())) .setCategory(definition.getCategory()) .setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()) .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); processInstanceExtMapper.insert(instanceExtDO); } @Override public void updateProcessInstanceExtCancel(FlowableCancelledEvent event) { // 判断是否为 Reject 不通过。如果是,则不进行更新. // 因为,updateProcessInstanceExtReject 方法,已经进行更新了 if (BpmProcessInstanceDeleteReasonEnum.isRejectReason((String)event.getCause())) { return; } // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(event.getProcessInstanceId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(event.getProcessInstanceId()) .setEndTime(new Date()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Override public void updateProcessInstanceExtComplete(ProcessInstance instance) { // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getProcessInstanceId()) .setEndTime(new Date()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()); // 如果正常完全,说明审批通过 processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被通过的消息 messageService.sendMessageWhenProcessInstanceApprove(BpmProcessInstanceConvert.INSTANCE.convert2ApprovedReq(instance)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Transactional(rollbackFor = Exception.class) public void updateProcessInstanceExtReject(String id, String reason) { // 需要主动查询,因为 instance 只有 id 属性 ProcessInstance processInstance = getProcessInstance(id); // 删除流程实例,以实现驳回任务时,取消整个审批流程 deleteProcessInstance(id, StrUtil.format(BpmProcessInstanceDeleteReasonEnum.REJECT_TASK.format(reason))); // 更新 status + result // 注意,不能和上面的逻辑更换位置。因为 deleteProcessInstance 会触发流程的取消,进而调用 updateProcessInstanceExtCancel 方法, // 设置 result 为 BpmProcessInstanceStatusEnum.CANCEL,显然和 result 不一定是一致的 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO().setProcessInstanceId(id) .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.REJECT.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被不通过的消息 messageService.sendMessageWhenProcessInstanceReject(BpmProcessInstanceConvert.INSTANCE.convert2RejectReq(processInstance, reason)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } private void deleteProcessInstance(String id, String reason) { runtimeService.deleteProcessInstance(id, reason); } private String createProcessInstance0(Long userId, ProcessDefinition definition, Map<String, Object> variables, String businessKey) { // 校验流程定义 if (definition == null) { throw exception(PROCESS_DEFINITION_NOT_EXISTS); } if (definition.isSuspended()) { throw exception(PROCESS_DEFINITION_IS_SUSPENDED); } // 创建流程实例 ProcessInstance instance = runtimeService.startProcessInstanceById(definition.getId(), businessKey, variables); // 设置流程名字 runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); // 补全流程实例的拓展表 processInstanceExtMapper.updateByProcessInstanceId(new BpmProcessInstanceExtDO().setProcessInstanceId(instance.getId()) .setFormVariables(variables)); return instance.getId(); } } | |
| 2 | 1 | \ No newline at end of file |
| 2 | +package cn.iocoder.yudao.module.bpm.service.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum; import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventPublisher; import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.event.FlowableCancelledEvent; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Valid; import java.time.LocalDateTime; import java.util.*; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; /** * 流程实例 Service 实现类 * * ProcessDefinition & ProcessInstance & Execution & Task 的关系: * 1. <a href="https://blog.csdn.net/bobozai86/article/details/105210414" /> * * HistoricProcessInstance & ProcessInstance 的关系: * 1. <a href=" https://my.oschina.net/843294669/blog/71902" /> * * 简单来说,前者 = 历史 + 运行中的流程实例,后者仅是运行中的流程实例 * * @author 芋道源码 */ @Service @Validated @Slf4j public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService { @Resource private RuntimeService runtimeService; @Resource private BpmProcessInstanceExtMapper processInstanceExtMapper; @Resource @Lazy // 解决循环依赖 private BpmTaskService taskService; @Resource private BpmProcessDefinitionService processDefinitionService; @Resource private HistoryService historyService; @Resource private AdminUserApi adminUserApi; @Resource private DeptApi deptApi; @Resource private BpmProcessInstanceResultEventPublisher processInstanceResultEventPublisher; @Resource private BpmMessageService messageService; @Override public ProcessInstance getProcessInstance(String id) { return runtimeService.createProcessInstanceQuery().processInstanceId(id).singleResult(); } @Override public List<ProcessInstance> getProcessInstances(Set<String> ids) { return runtimeService.createProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId, BpmProcessInstanceMyPageReqVO pageReqVO) { // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页 PageResult<BpmProcessInstanceExtDO> pageResult = processInstanceExtMapper.selectPage(userId, pageReqVO); if (CollUtil.isEmpty(pageResult.getList())) { return new PageResult<>(pageResult.getTotal()); } // 获得流程 Task Map List<String> processInstanceIds = convertList(pageResult.getList(), BpmProcessInstanceExtDO::getProcessInstanceId); Map<String, List<Task>> taskMap = taskService.getTaskMapByProcessInstanceIds(processInstanceIds); // 转换返回 return BpmProcessInstanceConvert.INSTANCE.convertPage(pageResult, taskMap); } @Override @Transactional(rollbackFor = Exception.class) public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition(createReqVO.getProcessDefinitionId()); // 发起流程 return createProcessInstance0(userId, definition, createReqVO.getVariables(), null); } @Override public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getActiveProcessDefinition(createReqDTO.getProcessDefinitionKey()); // 发起流程 return createProcessInstance0(userId, definition, createReqDTO.getVariables(), createReqDTO.getBusinessKey()); } @Override public BpmProcessInstanceRespVO getProcessInstanceVO(String id) { // 获得流程实例 HistoricProcessInstance processInstance = getHistoricProcessInstance(id); if (processInstance == null) { return null; } BpmProcessInstanceExtDO processInstanceExt = processInstanceExtMapper.selectByProcessInstanceId(id); Assert.notNull(processInstanceExt, "流程实例拓展({}) 不存在", id); // 获得流程定义 ProcessDefinition processDefinition = processDefinitionService .getProcessDefinition(processInstance.getProcessDefinitionId()); Assert.notNull(processDefinition, "流程定义({}) 不存在", processInstance.getProcessDefinitionId()); BpmProcessDefinitionExtDO processDefinitionExt = processDefinitionService.getProcessDefinitionExt( processInstance.getProcessDefinitionId()); Assert.notNull(processDefinitionExt, "流程定义拓展({}) 不存在", id); String bpmnXml = processDefinitionService.getProcessDefinitionBpmnXML(processInstance.getProcessDefinitionId()); // 获得 User AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId())); DeptRespDTO dept = null; if (startUser != null) { dept = deptApi.getDept(startUser.getDeptId()); } // 拼接结果 return BpmProcessInstanceConvert.INSTANCE.convert2(processInstance, processInstanceExt, processDefinition, processDefinitionExt, bpmnXml, startUser, dept); } @Override public void cancelProcessInstance(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) { // 校验流程实例存在 ProcessInstance instance = getProcessInstance(cancelReqVO.getId()); if (instance == null) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS); } // 只能取消自己的 if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF); } // 通过删除流程实例,实现流程实例的取消, // 删除流程实例,正则执行任务 ACT_RU_TASK. 任务会被删除。通过历史表查询 deleteProcessInstance(cancelReqVO.getId(), BpmProcessInstanceDeleteReasonEnum.CANCEL_TASK.format(cancelReqVO.getReason())); } /** * 获得历史的流程实例 * * @param id 流程实例的编号 * @return 历史的流程实例 */ @Override public HistoricProcessInstance getHistoricProcessInstance(String id) { return historyService.createHistoricProcessInstanceQuery().processInstanceId(id).singleResult(); } @Override public List<HistoricProcessInstance> getHistoricProcessInstances(Set<String> ids) { return historyService.createHistoricProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public void createProcessInstanceExt(ProcessInstance instance) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition2(instance.getProcessDefinitionId()); // 插入 BpmProcessInstanceExtDO 对象 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getId()) .setProcessDefinitionId(definition.getId()) .setName(instance.getProcessDefinitionName()) .setStartUserId(Long.valueOf(instance.getStartUserId())) .setCategory(definition.getCategory()) .setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()) .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); processInstanceExtMapper.insert(instanceExtDO); } @Override public void updateProcessInstanceExtCancel(FlowableCancelledEvent event) { // 判断是否为 Reject 不通过。如果是,则不进行更新. // 因为,updateProcessInstanceExtReject 方法,已经进行更新了 if (BpmProcessInstanceDeleteReasonEnum.isRejectReason((String)event.getCause())) { return; } // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(event.getProcessInstanceId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(event.getProcessInstanceId()) .setEndTime(LocalDateTime.now()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Override public void updateProcessInstanceExtComplete(ProcessInstance instance) { // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getProcessInstanceId()) .setEndTime(LocalDateTime.now()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()); // 如果正常完全,说明审批通过 processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被通过的消息 messageService.sendMessageWhenProcessInstanceApprove(BpmProcessInstanceConvert.INSTANCE.convert2ApprovedReq(instance)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Transactional(rollbackFor = Exception.class) public void updateProcessInstanceExtReject(String id, String reason) { // 需要主动查询,因为 instance 只有 id 属性 ProcessInstance processInstance = getProcessInstance(id); // 删除流程实例,以实现驳回任务时,取消整个审批流程 deleteProcessInstance(id, StrUtil.format(BpmProcessInstanceDeleteReasonEnum.REJECT_TASK.format(reason))); // 更新 status + result // 注意,不能和上面的逻辑更换位置。因为 deleteProcessInstance 会触发流程的取消,进而调用 updateProcessInstanceExtCancel 方法, // 设置 result 为 BpmProcessInstanceStatusEnum.CANCEL,显然和 result 不一定是一致的 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO().setProcessInstanceId(id) .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.REJECT.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被不通过的消息 messageService.sendMessageWhenProcessInstanceReject(BpmProcessInstanceConvert.INSTANCE.convert2RejectReq(processInstance, reason)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } private void deleteProcessInstance(String id, String reason) { runtimeService.deleteProcessInstance(id, reason); } private String createProcessInstance0(Long userId, ProcessDefinition definition, Map<String, Object> variables, String businessKey) { // 校验流程定义 if (definition == null) { throw exception(PROCESS_DEFINITION_NOT_EXISTS); } if (definition.isSuspended()) { throw exception(PROCESS_DEFINITION_IS_SUSPENDED); } // 创建流程实例 ProcessInstance instance = runtimeService.startProcessInstanceById(definition.getId(), businessKey, variables); // 设置流程名字 runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); // 补全流程实例的拓展表 processInstanceExtMapper.updateByProcessInstanceId(new BpmProcessInstanceExtDO().setProcessInstanceId(instance.getId()) .setFormVariables(variables)); return instance.getId(); } } | |
| 3 | 3 | \ No newline at end of file | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| ... | ... | @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.service.task; |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.util.StrUtil; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 6 | 7 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 7 | 8 | import cn.iocoder.yudao.framework.common.util.object.PageUtils; |
| 8 | 9 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; |
| ... | ... | @@ -32,6 +33,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager |
| 32 | 33 | |
| 33 | 34 | import javax.annotation.Resource; |
| 34 | 35 | import javax.validation.Valid; |
| 36 | +import java.time.LocalDateTime; | |
| 35 | 37 | import java.util.*; |
| 36 | 38 | |
| 37 | 39 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -74,10 +76,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 74 | 76 | taskQuery.taskNameLike("%" + pageVO.getName() + "%"); |
| 75 | 77 | } |
| 76 | 78 | if (pageVO.getBeginCreateTime() != null) { |
| 77 | - taskQuery.taskCreatedAfter(pageVO.getBeginCreateTime()); | |
| 79 | + taskQuery.taskCreatedAfter(DateUtils.localDateTimeToDate(pageVO.getBeginCreateTime())); | |
| 78 | 80 | } |
| 79 | 81 | if (pageVO.getEndCreateTime() != null) { |
| 80 | - taskQuery.taskCreatedBefore(pageVO.getEndCreateTime()); | |
| 82 | + taskQuery.taskCreatedBefore(DateUtils.localDateTimeToDate(pageVO.getEndCreateTime())); | |
| 81 | 83 | } |
| 82 | 84 | // 执行查询 |
| 83 | 85 | List<Task> tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); |
| ... | ... | @@ -106,10 +108,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 106 | 108 | taskQuery.taskNameLike("%" + pageVO.getName() + "%"); |
| 107 | 109 | } |
| 108 | 110 | if (pageVO.getBeginCreateTime() != null) { |
| 109 | - taskQuery.taskCreatedAfter(pageVO.getBeginCreateTime()); | |
| 111 | + taskQuery.taskCreatedAfter(DateUtils.localDateTimeToDate(pageVO.getBeginCreateTime())); | |
| 110 | 112 | } |
| 111 | 113 | if (pageVO.getEndCreateTime() != null) { |
| 112 | - taskQuery.taskCreatedBefore(pageVO.getEndCreateTime()); | |
| 114 | + taskQuery.taskCreatedBefore(DateUtils.localDateTimeToDate(pageVO.getEndCreateTime())); | |
| 113 | 115 | } |
| 114 | 116 | // 执行查询 |
| 115 | 117 | List<HistoricTaskInstance> tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); |
| ... | ... | @@ -205,7 +207,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 205 | 207 | // 更新任务拓展表为不通过 |
| 206 | 208 | taskExtMapper.updateByTaskId( |
| 207 | 209 | new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.REJECT.getResult()) |
| 208 | - .setEndTime(new Date()).setReason(reqVO.getReason())); | |
| 210 | + .setEndTime(LocalDateTime.now()).setReason(reqVO.getReason())); | |
| 209 | 211 | } |
| 210 | 212 | |
| 211 | 213 | @Override |
| ... | ... | @@ -249,7 +251,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 249 | 251 | public void updateTaskExtComplete(Task task) { |
| 250 | 252 | BpmTaskExtDO taskExtDO = BpmTaskConvert.INSTANCE.convert2TaskExt(task) |
| 251 | 253 | .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()) // 不设置也问题不大,因为 Complete 一般是审核通过,已经设置 |
| 252 | - .setEndTime(new Date()); | |
| 254 | + .setEndTime(LocalDateTime.now()); | |
| 253 | 255 | taskExtMapper.updateByTaskId(taskExtDO); |
| 254 | 256 | } |
| 255 | 257 | |
| ... | ... | @@ -280,7 +282,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 280 | 282 | |
| 281 | 283 | // 更新任务 |
| 282 | 284 | taskExtMapper.updateById(new BpmTaskExtDO().setId(taskExt.getId()).setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()) |
| 283 | - .setEndTime(new Date()).setReason(BpmProcessInstanceDeleteReasonEnum.translateReason(task.getDeleteReason()))); | |
| 285 | + .setEndTime(LocalDateTime.now()).setReason(BpmProcessInstanceDeleteReasonEnum.translateReason(task.getDeleteReason()))); | |
| 284 | 286 | } |
| 285 | 287 | |
| 286 | 288 | }); | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceTest.java
| ... | ... | @@ -17,9 +17,9 @@ import org.springframework.context.annotation.Import; |
| 17 | 17 | |
| 18 | 18 | import javax.annotation.Resource; |
| 19 | 19 | |
| 20 | -import java.util.Date; | |
| 20 | +import java.time.LocalDateTime; | |
| 21 | 21 | |
| 22 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 22 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 23 | 23 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 24 | 24 | import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS; |
| 25 | 25 | |
| ... | ... | @@ -106,7 +106,7 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { |
| 106 | 106 | BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到 |
| 107 | 107 | o.setName("芋道源码"); |
| 108 | 108 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 109 | - o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); | |
| 109 | + o.setCreateTime(DateUtils.buildLocalDateTime(2021, 11, 11)); | |
| 110 | 110 | }); |
| 111 | 111 | userGroupMapper.insert(dbUserGroup); |
| 112 | 112 | // 测试 name 不匹配 |
| ... | ... | @@ -114,12 +114,12 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { |
| 114 | 114 | // 测试 status 不匹配 |
| 115 | 115 | userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 116 | 116 | // 测试 createTime 不匹配 |
| 117 | - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12)))); | |
| 117 | + userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2021, 12, 12)))); | |
| 118 | 118 | // 准备参数 |
| 119 | 119 | BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO(); |
| 120 | 120 | reqVO.setName("源码"); |
| 121 | 121 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 122 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)})); | |
| 122 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 10),buildLocalDateTime(2021, 11, 12)})); | |
| 123 | 123 | |
| 124 | 124 | // 调用 |
| 125 | 125 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO); | ... | ... |
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.api.logger.dto; |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | 5 | import javax.validation.constraints.NotNull; |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * API 访问日志 |
| ... | ... | @@ -61,12 +61,12 @@ public class ApiAccessLogCreateReqDTO { |
| 61 | 61 | * 开始请求时间 |
| 62 | 62 | */ |
| 63 | 63 | @NotNull(message = "开始请求时间不能为空") |
| 64 | - private Date beginTime; | |
| 64 | + private LocalDateTime beginTime; | |
| 65 | 65 | /** |
| 66 | 66 | * 结束请求时间 |
| 67 | 67 | */ |
| 68 | 68 | @NotNull(message = "结束请求时间不能为空") |
| 69 | - private Date endTime; | |
| 69 | + private LocalDateTime endTime; | |
| 70 | 70 | /** |
| 71 | 71 | * 执行时长,单位:毫秒 |
| 72 | 72 | */ | ... | ... |
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.api.logger.dto; |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | 5 | import javax.validation.constraints.NotNull; |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * API 错误日志 |
| ... | ... | @@ -61,7 +61,7 @@ public class ApiErrorLogCreateReqDTO { |
| 61 | 61 | * 异常时间 |
| 62 | 62 | */ |
| 63 | 63 | @NotNull(message = "异常时间不能为空") |
| 64 | - private Date exceptionTime; | |
| 64 | + private LocalDateTime exceptionTime; | |
| 65 | 65 | /** |
| 66 | 66 | * 异常名 |
| 67 | 67 | */ | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 代码生成字段定义 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class CodegenColumnRespVO extends CodegenColumnBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class CodegenTablePageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 代码生成表定义 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -21,9 +21,9 @@ public class CodegenTableRespVO extends CodegenTableBaseVO { |
| 21 | 21 | private Integer dataSourceConfigId; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | @ApiModelProperty(value = "更新时间", required = true) |
| 27 | - private Date updateTime; | |
| 27 | + private LocalDateTime updateTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 参数配置 Excel 导出响应 VO |
| ... | ... | @@ -41,6 +41,6 @@ public class ConfigExcelVO { |
| 41 | 41 | private String remark; |
| 42 | 42 | |
| 43 | 43 | @ExcelProperty("创建时间") |
| 44 | - private Date createTime; | |
| 44 | + private LocalDateTime createTime; | |
| 45 | 45 | |
| 46 | 46 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,6 +24,6 @@ public class ConfigExportReqVO { |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | - private Date[] createTime; | |
| 27 | + private LocalDateTime[] createTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -29,6 +29,6 @@ public class ConfigPageReqVO extends PageParam { |
| 29 | 29 | |
| 30 | 30 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 31 | 31 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; |
| 7 | 7 | |
| 8 | 8 | import javax.validation.constraints.NotBlank; |
| 9 | 9 | import javax.validation.constraints.Size; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 参数配置信息 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -26,6 +26,6 @@ public class ConfigRespVO extends ConfigBaseVO { |
| 26 | 26 | private Integer type; |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 29 | - private Date createTime; | |
| 29 | + private LocalDateTime createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.db.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 数据源配置 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class DataSourceConfigRespVO extends DataSourceConfigBaseVO { |
| 14 | 15 | private Integer id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class FileConfigPageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "创建时间") |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | |
| 10 | 10 | import javax.validation.constraints.NotNull; |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | @ApiModel("管理后台 - 文件配置 Response VO") |
| 14 | 14 | @Data |
| ... | ... | @@ -31,6 +31,6 @@ public class FileConfigRespVO extends FileConfigBaseVO { |
| 31 | 31 | private FileClientConfig config; |
| 32 | 32 | |
| 33 | 33 | @ApiModelProperty(value = "创建时间", required = true) |
| 34 | - private Date createTime; | |
| 34 | + private LocalDateTime createTime; | |
| 35 | 35 | |
| 36 | 36 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class FilePageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "创建时间") |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | @ApiModel(value = "管理后台 - 文件 Response VO", description = "不返回 content 字段,太大") |
| 10 | 10 | @Data |
| ... | ... | @@ -32,6 +32,6 @@ public class FileRespVO { |
| 32 | 32 | private Integer size; |
| 33 | 33 | |
| 34 | 34 | @ApiModelProperty(value = "创建时间", required = true) |
| 35 | - private Date createTime; | |
| 35 | + private LocalDateTime createTime; | |
| 36 | 36 | |
| 37 | 37 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java
| ... | ... | @@ -22,9 +22,9 @@ import javax.annotation.Resource; |
| 22 | 22 | import javax.servlet.http.HttpServletResponse; |
| 23 | 23 | import javax.validation.Valid; |
| 24 | 24 | import java.io.IOException; |
| 25 | +import java.time.LocalDateTime; | |
| 25 | 26 | import java.util.Collection; |
| 26 | 27 | import java.util.Collections; |
| 27 | -import java.util.Date; | |
| 28 | 28 | import java.util.List; |
| 29 | 29 | |
| 30 | 30 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| ... | ... | @@ -133,8 +133,8 @@ public class JobController { |
| 133 | 133 | @ApiImplicitParam(name = "count", value = "数量", example = "5", dataTypeClass = Long.class) |
| 134 | 134 | }) |
| 135 | 135 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 136 | - public CommonResult<List<Date>> getJobNextTimes(@RequestParam("id") Long id, | |
| 137 | - @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) { | |
| 136 | + public CommonResult<List<LocalDateTime>> getJobNextTimes(@RequestParam("id") Long id, | |
| 137 | + @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) { | |
| 138 | 138 | JobDO job = jobService.getJob(id); |
| 139 | 139 | if (job == null) { |
| 140 | 140 | return success(Collections.emptyList()); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 定时任务 Excel VO |
| ... | ... | @@ -36,21 +36,21 @@ public class JobExcelVO { |
| 36 | 36 | private String cronExpression; |
| 37 | 37 | |
| 38 | 38 | @ExcelProperty("最后一次执行的开始时间") |
| 39 | - private Date executeBeginTime; | |
| 39 | + private LocalDateTime executeBeginTime; | |
| 40 | 40 | |
| 41 | 41 | @ExcelProperty("最后一次执行的结束时间") |
| 42 | - private Date executeEndTime; | |
| 42 | + private LocalDateTime executeEndTime; | |
| 43 | 43 | |
| 44 | 44 | @ExcelProperty("上一次触发时间") |
| 45 | - private Date firePrevTime; | |
| 45 | + private LocalDateTime firePrevTime; | |
| 46 | 46 | |
| 47 | 47 | @ExcelProperty("下一次触发时间") |
| 48 | - private Date fireNextTime; | |
| 48 | + private LocalDateTime fireNextTime; | |
| 49 | 49 | |
| 50 | 50 | @ExcelProperty("监控超时时间") |
| 51 | 51 | private Integer monitorTimeout; |
| 52 | 52 | |
| 53 | 53 | @ExcelProperty("创建时间") |
| 54 | - private Date createTime; | |
| 54 | + private LocalDateTime createTime; | |
| 55 | 55 | |
| 56 | 56 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 定时任务 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -26,6 +26,6 @@ public class JobRespVO extends JobBaseVO { |
| 26 | 26 | private String handlerName; |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "创建时间", required = true) |
| 29 | - private Date createTime; | |
| 29 | + private LocalDateTime createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -34,11 +34,11 @@ public class JobLogBaseVO { |
| 34 | 34 | @ApiModelProperty(value = "开始执行时间", required = true) |
| 35 | 35 | @NotNull(message = "开始执行时间不能为空") |
| 36 | 36 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 37 | - private Date beginTime; | |
| 37 | + private LocalDateTime beginTime; | |
| 38 | 38 | |
| 39 | 39 | @ApiModelProperty(value = "结束执行时间") |
| 40 | 40 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 41 | - private Date endTime; | |
| 41 | + private LocalDateTime endTime; | |
| 42 | 42 | |
| 43 | 43 | @ApiModelProperty(value = "执行时长", example = "123") |
| 44 | 44 | private Integer duration; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 定时任务 Excel VO |
| ... | ... | @@ -32,10 +32,10 @@ public class JobLogExcelVO { |
| 32 | 32 | private Integer executeIndex; |
| 33 | 33 | |
| 34 | 34 | @ExcelProperty("开始执行时间") |
| 35 | - private Date beginTime; | |
| 35 | + private LocalDateTime beginTime; | |
| 36 | 36 | |
| 37 | 37 | @ExcelProperty("结束执行时间") |
| 38 | - private Date endTime; | |
| 38 | + private LocalDateTime endTime; | |
| 39 | 39 | |
| 40 | 40 | @ExcelProperty("执行时长") |
| 41 | 41 | private Integer duration; |
| ... | ... | @@ -48,6 +48,6 @@ public class JobLogExcelVO { |
| 48 | 48 | private String result; |
| 49 | 49 | |
| 50 | 50 | @ExcelProperty("创建时间") |
| 51 | - private Date createTime; | |
| 51 | + private LocalDateTime createTime; | |
| 52 | 52 | |
| 53 | 53 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -21,11 +21,11 @@ public class JobLogExportReqVO { |
| 21 | 21 | |
| 22 | 22 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 23 | 23 | @ApiModelProperty(value = "开始执行时间") |
| 24 | - private Date beginTime; | |
| 24 | + private LocalDateTime beginTime; | |
| 25 | 25 | |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | 27 | @ApiModelProperty(value = "结束执行时间") |
| 28 | - private Date endTime; | |
| 28 | + private LocalDateTime endTime; | |
| 29 | 29 | |
| 30 | 30 | @ApiModelProperty(value = "任务状态", notes = "参见 JobLogStatusEnum 枚举") |
| 31 | 31 | private Integer status; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,11 +26,11 @@ public class JobLogPageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "开始执行时间") |
| 29 | - private Date beginTime; | |
| 29 | + private LocalDateTime beginTime; | |
| 30 | 30 | |
| 31 | 31 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 32 | 32 | @ApiModelProperty(value = "结束执行时间") |
| 33 | - private Date endTime; | |
| 33 | + private LocalDateTime endTime; | |
| 34 | 34 | |
| 35 | 35 | @ApiModelProperty(value = "任务状态", notes = "参见 JobLogStatusEnum 枚举") |
| 36 | 36 | private Integer status; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 定时任务日志 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class JobLogRespVO extends JobLogBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -54,12 +54,12 @@ public class ApiAccessLogBaseVO { |
| 54 | 54 | @ApiModelProperty(value = "开始请求时间", required = true) |
| 55 | 55 | @NotNull(message = "开始请求时间不能为空") |
| 56 | 56 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 57 | - private Date beginTime; | |
| 57 | + private LocalDateTime beginTime; | |
| 58 | 58 | |
| 59 | 59 | @ApiModelProperty(value = "结束请求时间", required = true) |
| 60 | 60 | @NotNull(message = "结束请求时间不能为空") |
| 61 | 61 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 62 | - private Date endTime; | |
| 62 | + private LocalDateTime endTime; | |
| 63 | 63 | |
| 64 | 64 | @ApiModelProperty(value = "执行时长", required = true, example = "100") |
| 65 | 65 | @NotNull(message = "执行时长不能为空") | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * API 访问日志 Excel VO |
| ... | ... | @@ -48,10 +48,10 @@ public class ApiAccessLogExcelVO { |
| 48 | 48 | private String userAgent; |
| 49 | 49 | |
| 50 | 50 | @ExcelProperty("开始请求时间") |
| 51 | - private Date beginTime; | |
| 51 | + private LocalDateTime beginTime; | |
| 52 | 52 | |
| 53 | 53 | @ExcelProperty("结束请求时间") |
| 54 | - private Date endTime; | |
| 54 | + private LocalDateTime endTime; | |
| 55 | 55 | |
| 56 | 56 | @ExcelProperty("执行时长") |
| 57 | 57 | private Integer duration; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,7 +27,7 @@ public class ApiAccessLogExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | 29 | @ApiModelProperty(value = "开始请求时间") |
| 30 | - private Date[] beginTime; | |
| 30 | + private LocalDateTime[] beginTime; | |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒") |
| 33 | 33 | private Integer duration; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -32,7 +32,7 @@ public class ApiAccessLogPageReqVO extends PageParam { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "开始请求时间") |
| 35 | - private Date[] beginTime; | |
| 35 | + private LocalDateTime[] beginTime; | |
| 36 | 36 | |
| 37 | 37 | @ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒") |
| 38 | 38 | private Integer duration; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - API 访问日志 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class ApiAccessLogRespVO extends ApiAccessLogBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -55,7 +55,7 @@ public class ApiErrorLogBaseVO { |
| 55 | 55 | @ApiModelProperty(value = "异常发生时间", required = true) |
| 56 | 56 | @NotNull(message = "异常发生时间不能为空") |
| 57 | 57 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 58 | - private Date exceptionTime; | |
| 58 | + private LocalDateTime exceptionTime; | |
| 59 | 59 | |
| 60 | 60 | @ApiModelProperty(value = "异常名", required = true) |
| 61 | 61 | @NotNull(message = "异常名不能为空") | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * API 错误日志 Excel VO |
| ... | ... | @@ -48,7 +48,7 @@ public class ApiErrorLogExcelVO { |
| 48 | 48 | private String userAgent; |
| 49 | 49 | |
| 50 | 50 | @ExcelProperty("异常发生时间") |
| 51 | - private Date exceptionTime; | |
| 51 | + private LocalDateTime exceptionTime; | |
| 52 | 52 | |
| 53 | 53 | @ExcelProperty("异常名") |
| 54 | 54 | private String exceptionName; |
| ... | ... | @@ -75,14 +75,14 @@ public class ApiErrorLogExcelVO { |
| 75 | 75 | private Integer exceptionLineNumber; |
| 76 | 76 | |
| 77 | 77 | @ExcelProperty("创建时间") |
| 78 | - private Date createTime; | |
| 78 | + private LocalDateTime createTime; | |
| 79 | 79 | |
| 80 | 80 | @ExcelProperty(value = "处理状态", converter = DictConvert.class) |
| 81 | 81 | @DictFormat(DictTypeConstants.API_ERROR_LOG_PROCESS_STATUS) |
| 82 | 82 | private Integer processStatus; |
| 83 | 83 | |
| 84 | 84 | @ExcelProperty("处理时间") |
| 85 | - private Date processTime; | |
| 85 | + private LocalDateTime processTime; | |
| 86 | 86 | |
| 87 | 87 | @ExcelProperty("处理用户编号") |
| 88 | 88 | private Integer processUserId; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,7 +27,7 @@ public class ApiErrorLogExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | 29 | @ApiModelProperty(value = "异常发生时间") |
| 30 | - private Date[] exceptionTime; | |
| 30 | + private LocalDateTime[] exceptionTime; | |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "处理状态", example = "0") |
| 33 | 33 | private Integer processStatus; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -32,7 +32,7 @@ public class ApiErrorLogPageReqVO extends PageParam { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "异常发生时间") |
| 35 | - private Date[] exceptionTime; | |
| 35 | + private LocalDateTime[] exceptionTime; | |
| 36 | 36 | |
| 37 | 37 | @ApiModelProperty(value = "处理状态", example = "0") |
| 38 | 38 | private Integer processStatus; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - API 错误日志 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,10 +18,10 @@ public class ApiErrorLogRespVO extends ApiErrorLogBaseVO { |
| 18 | 18 | private Integer id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "处理时间", required = true) |
| 24 | - private Date processTime; | |
| 24 | + private LocalDateTime processTime; | |
| 25 | 25 | |
| 26 | 26 | @ApiModelProperty(value = "处理用户编号", example = "233") |
| 27 | 27 | private Integer processUserId; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.test.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 5 | -import io.swagger.annotations.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| 8 | 8 | |
| ... | ... | @@ -33,6 +33,6 @@ public class TestDemoExcelVO { |
| 33 | 33 | private String remark; |
| 34 | 34 | |
| 35 | 35 | @ExcelProperty("创建时间") |
| 36 | - private Date createTime; | |
| 36 | + private LocalDateTime createTime; | |
| 37 | 37 | |
| 38 | 38 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.test.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 8 | |
| 9 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -29,6 +29,6 @@ public class TestDemoExportReqVO { |
| 29 | 29 | |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | 31 | @ApiModelProperty(value = "创建时间") |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.test.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -31,6 +32,6 @@ public class TestDemoPageReqVO extends PageParam { |
| 31 | 32 | |
| 32 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 33 | 34 | @ApiModelProperty(value = "创建时间") |
| 34 | - private Date[] createTime; | |
| 35 | + private LocalDateTime[] createTime; | |
| 35 | 36 | |
| 36 | 37 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.controller.admin.test.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 字典类型 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class TestDemoRespVO extends TestDemoBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java
| ... | ... | @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; |
| 7 | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | 8 | import lombok.*; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 定时任务的执行日志 |
| ... | ... | @@ -56,11 +56,11 @@ public class JobLogDO extends BaseDO { |
| 56 | 56 | /** |
| 57 | 57 | * 开始执行时间 |
| 58 | 58 | */ |
| 59 | - private Date beginTime; | |
| 59 | + private LocalDateTime beginTime; | |
| 60 | 60 | /** |
| 61 | 61 | * 结束执行时间 |
| 62 | 62 | */ |
| 63 | - private Date endTime; | |
| 63 | + private LocalDateTime endTime; | |
| 64 | 64 | /** |
| 65 | 65 | * 执行时长,单位:毫秒 |
| 66 | 66 | */ | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; |
| 8 | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | 9 | import lombok.*; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * API 访问日志 |
| ... | ... | @@ -84,11 +84,11 @@ public class ApiAccessLogDO extends BaseDO { |
| 84 | 84 | /** |
| 85 | 85 | * 开始请求时间 |
| 86 | 86 | */ |
| 87 | - private Date beginTime; | |
| 87 | + private LocalDateTime beginTime; | |
| 88 | 88 | /** |
| 89 | 89 | * 结束请求时间 |
| 90 | 90 | */ |
| 91 | - private Date endTime; | |
| 91 | + private LocalDateTime endTime; | |
| 92 | 92 | /** |
| 93 | 93 | * 执行时长,单位:毫秒 |
| 94 | 94 | */ | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; |
| 8 | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | 9 | import lombok.*; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * API 异常数据 |
| ... | ... | @@ -84,7 +84,7 @@ public class ApiErrorLogDO extends BaseDO { |
| 84 | 84 | /** |
| 85 | 85 | * 异常发生时间 |
| 86 | 86 | */ |
| 87 | - private Date exceptionTime; | |
| 87 | + private LocalDateTime exceptionTime; | |
| 88 | 88 | /** |
| 89 | 89 | * 异常名 |
| 90 | 90 | * |
| ... | ... | @@ -145,7 +145,7 @@ public class ApiErrorLogDO extends BaseDO { |
| 145 | 145 | /** |
| 146 | 146 | * 处理时间 |
| 147 | 147 | */ |
| 148 | - private Date processTime; | |
| 148 | + private LocalDateTime processTime; | |
| 149 | 149 | /** |
| 150 | 150 | * 处理用户编号 |
| 151 | 151 | * | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigDAOImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.dal.mysql.config; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.apollo.internals.ConfigFrameworkDAO; |
| 4 | 5 | import cn.iocoder.yudao.framework.apollo.internals.dto.ConfigRespDTO; |
| 5 | 6 | import org.springframework.jdbc.core.JdbcTemplate; |
| 6 | 7 | import org.springframework.jdbc.datasource.DriverManagerDataSource; |
| 7 | 8 | |
| 8 | 9 | import javax.sql.DataSource; |
| 9 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 10 | 11 | import java.util.List; |
| 11 | 12 | |
| 12 | 13 | /** |
| ... | ... | @@ -24,7 +25,7 @@ public class ConfigDAOImpl implements ConfigFrameworkDAO { |
| 24 | 25 | } |
| 25 | 26 | |
| 26 | 27 | @Override |
| 27 | - public int selectCountByUpdateTimeGt(Date maxUpdateTime) { | |
| 28 | + public int selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime) { | |
| 28 | 29 | return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM infra_config WHERE update_time > ?", |
| 29 | 30 | Integer.class, maxUpdateTime); |
| 30 | 31 | } |
| ... | ... | @@ -34,7 +35,7 @@ public class ConfigDAOImpl implements ConfigFrameworkDAO { |
| 34 | 35 | return jdbcTemplate.query("SELECT config_key, value, update_time, deleted FROM infra_config", |
| 35 | 36 | (rs, rowNum) -> new ConfigRespDTO().setKey(rs.getString("config_key")) |
| 36 | 37 | .setValue(rs.getString("value")) |
| 37 | - .setUpdateTime(rs.getDate("update_time")) | |
| 38 | + .setUpdateTime(LocalDateTimeUtil.of(rs.getDate("update_time"))) | |
| 38 | 39 | .setDeleted(rs.getBoolean("deleted"))); |
| 39 | 40 | } |
| 40 | 41 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileConfigMapper.java
| ... | ... | @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | import org.apache.ibatis.annotations.Select; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * 文件配置 Mapper |
| ... | ... | @@ -27,6 +27,6 @@ public interface FileConfigMapper extends BaseMapperX<FileConfigDO> { |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | @Select("SELECT COUNT(*) FROM infra_file_config WHERE update_time > #{maxUpdateTime}") |
| 30 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 30 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
| ... | ... | @@ -53,7 +53,7 @@ public class DatabaseTableServiceImpl implements DatabaseTableService { |
| 53 | 53 | if (StrUtil.isNotEmpty(name)) { |
| 54 | 54 | strategyConfig.addInclude(name); |
| 55 | 55 | } |
| 56 | - GlobalConfig globalConfig = new GlobalConfig.Builder().dateType(DateType.ONLY_DATE).build(); // 只使用 Date 类型,不使用 LocalDate | |
| 56 | + GlobalConfig globalConfig = new GlobalConfig.Builder().dateType(DateType.TIME_PACK).build(); // 只使用 Date 类型,不使用 LocalDate | |
| 57 | 57 | ConfigBuilder builder = new ConfigBuilder(null, dataSourceConfig, strategyConfig.build(), |
| 58 | 58 | null, globalConfig, null); |
| 59 | 59 | // 按照名字排序 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImpl.java
| ... | ... | @@ -31,8 +31,8 @@ import org.springframework.validation.annotation.Validated; |
| 31 | 31 | import javax.annotation.PostConstruct; |
| 32 | 32 | import javax.annotation.Resource; |
| 33 | 33 | import javax.validation.Validator; |
| 34 | +import java.time.LocalDateTime; | |
| 34 | 35 | import java.util.Collection; |
| 35 | -import java.util.Date; | |
| 36 | 36 | import java.util.List; |
| 37 | 37 | import java.util.Map; |
| 38 | 38 | |
| ... | ... | @@ -60,7 +60,7 @@ public class FileConfigServiceImpl implements FileConfigService { |
| 60 | 60 | * 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 61 | 61 | */ |
| 62 | 62 | @Getter |
| 63 | - private volatile Date maxUpdateTime; | |
| 63 | + private volatile LocalDateTime maxUpdateTime; | |
| 64 | 64 | |
| 65 | 65 | @Resource |
| 66 | 66 | private FileClientFactory fileClientFactory; |
| ... | ... | @@ -118,7 +118,7 @@ public class FileConfigServiceImpl implements FileConfigService { |
| 118 | 118 | * @param maxUpdateTime 当前文件配置的最大更新时间 |
| 119 | 119 | * @return 文件配置列表 |
| 120 | 120 | */ |
| 121 | - private List<FileConfigDO> loadFileConfigIfUpdate(Date maxUpdateTime) { | |
| 121 | + private List<FileConfigDO> loadFileConfigIfUpdate(LocalDateTime maxUpdateTime) { | |
| 122 | 122 | // 第一步,判断是否要更新。 |
| 123 | 123 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 124 | 124 | log.info("[loadFileConfigIfUpdate][首次加载全量文件配置]"); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImpl.java
| ... | ... | @@ -12,8 +12,8 @@ import org.springframework.stereotype.Service; |
| 12 | 12 | import org.springframework.validation.annotation.Validated; |
| 13 | 13 | |
| 14 | 14 | import javax.annotation.Resource; |
| 15 | +import java.time.LocalDateTime; | |
| 15 | 16 | import java.util.Collection; |
| 16 | -import java.util.Date; | |
| 17 | 17 | import java.util.List; |
| 18 | 18 | |
| 19 | 19 | /** |
| ... | ... | @@ -30,7 +30,7 @@ public class JobLogServiceImpl implements JobLogService { |
| 30 | 30 | private JobLogMapper jobLogMapper; |
| 31 | 31 | |
| 32 | 32 | @Override |
| 33 | - public Long createJobLog(Long jobId, Date beginTime, String jobHandlerName, String jobHandlerParam, Integer executeIndex) { | |
| 33 | + public Long createJobLog(Long jobId, LocalDateTime beginTime, String jobHandlerName, String jobHandlerParam, Integer executeIndex) { | |
| 34 | 34 | JobLogDO log = JobLogDO.builder().jobId(jobId).handlerName(jobHandlerName).handlerParam(jobHandlerParam).executeIndex(executeIndex) |
| 35 | 35 | .beginTime(beginTime).status(JobLogStatusEnum.RUNNING.getStatus()).build(); |
| 36 | 36 | jobLogMapper.insert(log); |
| ... | ... | @@ -39,7 +39,7 @@ public class JobLogServiceImpl implements JobLogService { |
| 39 | 39 | |
| 40 | 40 | @Override |
| 41 | 41 | @Async |
| 42 | - public void updateJobLogResultAsync(Long logId, Date endTime, Integer duration, boolean success, String result) { | |
| 42 | + public void updateJobLogResultAsync(Long logId, LocalDateTime endTime, Integer duration, boolean success, String result) { | |
| 43 | 43 | try { |
| 44 | 44 | JobLogDO updateObj = JobLogDO.builder().id(logId).endTime(endTime).duration(duration) |
| 45 | 45 | .status(success ? JobLogStatusEnum.SUCCESS.getStatus() : JobLogStatusEnum.FAILURE.getStatus()).result(result).build(); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java
| ... | ... | @@ -14,7 +14,7 @@ import org.springframework.stereotype.Service; |
| 14 | 14 | import org.springframework.validation.annotation.Validated; |
| 15 | 15 | |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | 18 | import java.util.List; |
| 19 | 19 | |
| 20 | 20 | /** |
| ... | ... | @@ -57,7 +57,7 @@ public class ApiErrorLogServiceImpl implements ApiErrorLogService { |
| 57 | 57 | } |
| 58 | 58 | // 标记处理 |
| 59 | 59 | apiErrorLogMapper.updateById(ApiErrorLogDO.builder().id(id).processStatus(processStatus) |
| 60 | - .processUserId(processUserId).processTime(new Date()).build()); | |
| 60 | + .processUserId(processUserId).processTime(LocalDateTime.now()).build()); | |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | 63 | } | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm
| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | @NotNull(message = "${column.columnComment}不能为空") |
| 8 | 8 | #end |
| 9 | 9 | #end |
| 10 | -#if (${column.javaType} == "Date")## 时间类型 | |
| 10 | +#if (${column.javaType} == "LocalDateTime")## 时间类型 | |
| 11 | 11 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 12 | 12 | #end |
| 13 | 13 | private ${column.javaType} ${column.javaField}; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm
| ... | ... | @@ -5,7 +5,9 @@ import java.util.*; |
| 5 | 5 | #foreach ($column in $columns) |
| 6 | 6 | #if (${column.javaType} == "BigDecimal") |
| 7 | 7 | import java.math.BigDecimal; |
| 8 | -#break | |
| 8 | +#end | |
| 9 | +#if (${column.javaType} == "LocalDateTime") | |
| 10 | +import java.time.LocalDateTime; | |
| 9 | 11 | #end |
| 10 | 12 | #end |
| 11 | 13 | import io.swagger.annotations.*; |
| ... | ... | @@ -13,7 +15,7 @@ import javax.validation.constraints.*; |
| 13 | 15 | ## 处理 Date 字段的引入 |
| 14 | 16 | #foreach ($column in $columns) |
| 15 | 17 | #if (${column.createOperation} && ${column.updateOperation} && ${column.listOperationResult} |
| 16 | - && ${column.javaType} == "Date")## 时间类型 | |
| 18 | + && ${column.javaType} == "LocalDateTime")## 时间类型 | |
| 17 | 19 | import org.springframework.format.annotation.DateTimeFormat; |
| 18 | 20 | |
| 19 | 21 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/createReqVO.vm
| ... | ... | @@ -7,7 +7,7 @@ import javax.validation.constraints.*; |
| 7 | 7 | ## 处理 Date 字段的引入 |
| 8 | 8 | #foreach ($column in $columns) |
| 9 | 9 | #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}) |
| 10 | - && ${column.javaType} == "Date")## 时间类型 | |
| 10 | + && ${column.javaType} == "LocalDateTime")## 时间类型 | |
| 11 | 11 | import org.springframework.format.annotation.DateTimeFormat; |
| 12 | 12 | |
| 13 | 13 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/excelVO.vm
| ... | ... | @@ -5,7 +5,9 @@ import java.util.*; |
| 5 | 5 | #foreach ($column in $columns) |
| 6 | 6 | #if (${column.javaType} == "BigDecimal") |
| 7 | 7 | import java.math.BigDecimal; |
| 8 | -#break | |
| 8 | +#end | |
| 9 | +#if (${column.javaType} == "LocalDateTime") | |
| 10 | +import java.time.LocalDateTime; | |
| 9 | 11 | #end |
| 10 | 12 | #end |
| 11 | 13 | import io.swagger.annotations.*; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/exportReqVO.vm
| ... | ... | @@ -6,7 +6,8 @@ import io.swagger.annotations.*; |
| 6 | 6 | import ${PageParamClassName}; |
| 7 | 7 | ## 处理 Date 字段的引入 |
| 8 | 8 | #foreach ($column in $columns) |
| 9 | -#if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | |
| 9 | +#if (${column.listOperation} && ${column.javaType} == "LocalDateTime")## 时间类型 | |
| 10 | +import java.time.LocalDateTime; | |
| 10 | 11 | import org.springframework.format.annotation.DateTimeFormat; |
| 11 | 12 | |
| 12 | 13 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm
| ... | ... | @@ -6,8 +6,9 @@ import io.swagger.annotations.*; |
| 6 | 6 | import ${PageParamClassName}; |
| 7 | 7 | ## 处理 Date 字段的引入 |
| 8 | 8 | #foreach ($column in $columns) |
| 9 | -#if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | |
| 9 | +#if (${column.listOperation} && ${column.javaType} == "LocalDateTime")## 时间类型 | |
| 10 | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 11 | +import java.time.LocalDateTime; | |
| 11 | 12 | |
| 12 | 13 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 14 | #break | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/updateReqVO.vm
| ... | ... | @@ -7,9 +7,9 @@ import javax.validation.constraints.*; |
| 7 | 7 | ## 处理 Date 字段的引入 |
| 8 | 8 | #foreach ($column in $columns) |
| 9 | 9 | #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult}) |
| 10 | - && ${column.javaType} == "Date")## 时间类型 | |
| 10 | + && ${column.javaType} == "LocalDateTime")## 时间类型 | |
| 11 | 11 | import org.springframework.format.annotation.DateTimeFormat; |
| 12 | - | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | #break |
| 15 | 15 | #end | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do.vm
| ... | ... | @@ -5,7 +5,9 @@ import java.util.*; |
| 5 | 5 | #foreach ($column in $columns) |
| 6 | 6 | #if (${column.javaType} == "BigDecimal") |
| 7 | 7 | import java.math.BigDecimal; |
| 8 | -#break | |
| 8 | +#end | |
| 9 | +#if (${column.javaType} == "LocalDateTime") | |
| 10 | +import java.time.LocalDateTime; | |
| 9 | 11 | #end |
| 10 | 12 | #end |
| 11 | 13 | import com.baomidou.mybatisplus.annotation.*; | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm
| ... | ... | @@ -16,6 +16,7 @@ import ${PageResultClassName}; |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | 17 | import org.springframework.context.annotation.Import; |
| 18 | 18 | import java.util.*; |
| 19 | +import java.time.LocalDateTime; | |
| 19 | 20 | |
| 20 | 21 | import static cn.hutool.core.util.RandomUtil.*; |
| 21 | 22 | import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; |
| ... | ... | @@ -51,7 +52,7 @@ import static org.mockito.Mockito.*; |
| 51 | 52 | #if (${column.listOperation}) |
| 52 | 53 | #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 |
| 53 | 54 | #if (${column.listOperationCondition} == "BETWEEN")## BETWEEN 的情况 |
| 54 | - reqVO.set${JavaField}((new Date[]{})); | |
| 55 | + reqVO.set${JavaField}((new LocalDateTime[]{})); | |
| 55 | 56 | #else |
| 56 | 57 | reqVO.set$JavaField(null); |
| 57 | 58 | #end | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm
| ... | ... | @@ -65,7 +65,7 @@ |
| 65 | 65 | #set ($javaField = $column.javaField) |
| 66 | 66 | #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) |
| 67 | 67 | #set ($comment=$column.columnComment) |
| 68 | -#if ($column.javaType == "Date")## 时间类型 | |
| 68 | +#if ($column.javaType == "LocalDateTime")## 时间类型 | |
| 69 | 69 | <el-table-column label="${comment}" align="center" prop="${javaField}" width="180"> |
| 70 | 70 | <template v-slot="scope"> |
| 71 | 71 | <span>{{ parseTime(scope.row.${javaField}) }}</span> | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
| ... | ... | @@ -128,7 +128,7 @@ getList() |
| 128 | 128 | #foreach($column in $columns) |
| 129 | 129 | #if ($column.listOperationResult) |
| 130 | 130 | #set ($dictType=$column.dictType) |
| 131 | - #if ($column.javaType == "Date")## 时间类型 | |
| 131 | + #if ($column.javaType == "LocalDateTime")## 时间类型 | |
| 132 | 132 | <template #${column.javaField}="{ row }"> |
| 133 | 133 | <span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span> |
| 134 | 134 | </template> |
| ... | ... | @@ -185,7 +185,7 @@ getList() |
| 185 | 185 | #foreach($column in $columns) |
| 186 | 186 | #if ($column.listOperationResult) |
| 187 | 187 | #set ($dictType=$column.dictType) |
| 188 | - #if ($column.javaType == "Date")## 时间类型 | |
| 188 | + #if ($column.javaType == "LocalDateTime")## 时间类型 | |
| 189 | 189 | <template #${column.javaField}="{ row }"> |
| 190 | 190 | <span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span> |
| 191 | 191 | </template> | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceTest.java
| ... | ... | @@ -19,12 +19,12 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 19 | 19 | import org.springframework.context.annotation.Import; |
| 20 | 20 | |
| 21 | 21 | import javax.annotation.Resource; |
| 22 | -import java.util.Date; | |
| 22 | +import java.time.LocalDateTime; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | import java.util.function.Consumer; |
| 25 | 25 | |
| 26 | 26 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 27 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 27 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 29 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 30 | 30 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -165,7 +165,7 @@ public class ConfigServiceTest extends BaseDbUnitTest { |
| 165 | 165 | o.setName("芋艿"); |
| 166 | 166 | o.setConfigKey("yunai"); |
| 167 | 167 | o.setType(ConfigTypeEnum.SYSTEM.getType()); |
| 168 | - o.setCreateTime(buildTime(2021, 2, 1)); | |
| 168 | + o.setCreateTime(buildLocalDateTime(2021, 2, 1)); | |
| 169 | 169 | }); |
| 170 | 170 | configMapper.insert(dbConfig); |
| 171 | 171 | // 测试 name 不匹配 |
| ... | ... | @@ -175,13 +175,13 @@ public class ConfigServiceTest extends BaseDbUnitTest { |
| 175 | 175 | // 测试 type 不匹配 |
| 176 | 176 | configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setType(ConfigTypeEnum.CUSTOM.getType()))); |
| 177 | 177 | // 测试 createTime 不匹配 |
| 178 | - configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setCreateTime(buildTime(2021, 1, 1)))); | |
| 178 | + configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1)))); | |
| 179 | 179 | // 准备参数 |
| 180 | 180 | ConfigPageReqVO reqVO = new ConfigPageReqVO(); |
| 181 | 181 | reqVO.setName("艿"); |
| 182 | 182 | reqVO.setKey("nai"); |
| 183 | 183 | reqVO.setType(ConfigTypeEnum.SYSTEM.getType()); |
| 184 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 15),buildTime(2021, 2, 15)})); | |
| 184 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 15),buildLocalDateTime(2021, 2, 15)})); | |
| 185 | 185 | |
| 186 | 186 | // 调用 |
| 187 | 187 | PageResult<ConfigDO> pageResult = configService.getConfigPage(reqVO); |
| ... | ... | @@ -198,7 +198,7 @@ public class ConfigServiceTest extends BaseDbUnitTest { |
| 198 | 198 | o.setName("芋艿"); |
| 199 | 199 | o.setConfigKey("yunai"); |
| 200 | 200 | o.setType(ConfigTypeEnum.SYSTEM.getType()); |
| 201 | - o.setCreateTime(buildTime(2021, 2, 1)); | |
| 201 | + o.setCreateTime(buildLocalDateTime(2021, 2, 1)); | |
| 202 | 202 | }); |
| 203 | 203 | configMapper.insert(dbConfig); |
| 204 | 204 | // 测试 name 不匹配 |
| ... | ... | @@ -208,13 +208,13 @@ public class ConfigServiceTest extends BaseDbUnitTest { |
| 208 | 208 | // 测试 type 不匹配 |
| 209 | 209 | configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setType(ConfigTypeEnum.CUSTOM.getType()))); |
| 210 | 210 | // 测试 createTime 不匹配 |
| 211 | - configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setCreateTime(buildTime(2021, 1, 1)))); | |
| 211 | + configMapper.insert(ObjectUtils.cloneIgnoreId(dbConfig, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1)))); | |
| 212 | 212 | // 准备参数 |
| 213 | 213 | ConfigExportReqVO reqVO = new ConfigExportReqVO(); |
| 214 | 214 | reqVO.setName("艿"); |
| 215 | 215 | reqVO.setKey("nai"); |
| 216 | 216 | reqVO.setType(ConfigTypeEnum.SYSTEM.getType()); |
| 217 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 15),buildTime(2021, 2, 15)})); | |
| 217 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 15),buildLocalDateTime(2021, 2, 15)})); | |
| 218 | 218 | |
| 219 | 219 | // 调用 |
| 220 | 220 | List<ConfigDO> list = configService.getConfigList(reqVO); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImplTest.java
| 1 | 1 | package cn.iocoder.yudao.module.infra.service.file; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.DatePattern; | |
| 4 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 5 | import cn.hutool.core.map.MapUtil; |
| 4 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 7 | import cn.iocoder.yudao.framework.file.core.client.FileClient; |
| ... | ... | @@ -22,11 +24,11 @@ import org.springframework.context.annotation.Import; |
| 22 | 24 | import javax.annotation.Resource; |
| 23 | 25 | import javax.validation.Validator; |
| 24 | 26 | import java.io.Serializable; |
| 25 | -import java.util.Date; | |
| 27 | +import java.time.LocalDateTime; | |
| 26 | 28 | import java.util.Map; |
| 27 | 29 | |
| 28 | 30 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 29 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 31 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 30 | 32 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 31 | 33 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; |
| 32 | 34 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| ... | ... | @@ -205,19 +207,19 @@ public class FileConfigServiceImplTest extends BaseDbUnitTest { |
| 205 | 207 | // mock 数据 |
| 206 | 208 | FileConfigDO dbFileConfig = randomFileConfigDO().setName("芋道源码") |
| 207 | 209 | .setStorage(FileStorageEnum.LOCAL.getStorage()); |
| 208 | - dbFileConfig.setCreateTime(buildTime(2022, 11, 11));// 等会查询到 | |
| 210 | + dbFileConfig.setCreateTime(LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN));// 等会查询到 | |
| 209 | 211 | fileConfigMapper.insert(dbFileConfig); |
| 210 | 212 | // 测试 name 不匹配 |
| 211 | 213 | fileConfigMapper.insert(cloneIgnoreId(dbFileConfig, o -> o.setName("源码"))); |
| 212 | 214 | // 测试 storage 不匹配 |
| 213 | 215 | fileConfigMapper.insert(cloneIgnoreId(dbFileConfig, o -> o.setStorage(FileStorageEnum.DB.getStorage()))); |
| 214 | 216 | // 测试 createTime 不匹配 |
| 215 | - fileConfigMapper.insert(cloneIgnoreId(dbFileConfig, o -> o.setCreateTime(buildTime(2022, 12, 12)))); | |
| 217 | + fileConfigMapper.insert(cloneIgnoreId(dbFileConfig, o -> o.setCreateTime(LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN)))); | |
| 216 | 218 | // 准备参数 |
| 217 | 219 | FileConfigPageReqVO reqVO = new FileConfigPageReqVO(); |
| 218 | 220 | reqVO.setName("芋道"); |
| 219 | 221 | reqVO.setStorage(FileStorageEnum.LOCAL.getStorage()); |
| 220 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 11, 10),buildTime(2022, 11, 12)})); | |
| 222 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 11, 10),buildLocalDateTime(2022, 11, 12)})); | |
| 221 | 223 | |
| 222 | 224 | // 调用 |
| 223 | 225 | PageResult<FileConfigDO> pageResult = fileConfigService.getFileConfigPage(reqVO); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileServiceTest.java
| ... | ... | @@ -15,9 +15,9 @@ import org.springframework.context.annotation.Import; |
| 15 | 15 | |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | 17 | |
| 18 | -import java.util.Date; | |
| 18 | +import java.time.LocalDateTime; | |
| 19 | 19 | |
| 20 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 20 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 21 | 21 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 22 | 22 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 23 | 23 | import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; |
| ... | ... | @@ -43,7 +43,7 @@ public class FileServiceTest extends BaseDbUnitTest { |
| 43 | 43 | FileDO dbFile = randomPojo(FileDO.class, o -> { // 等会查询到 |
| 44 | 44 | o.setPath("yunai"); |
| 45 | 45 | o.setType("image/jpg"); |
| 46 | - o.setCreateTime(buildTime(2021, 1, 15)); | |
| 46 | + o.setCreateTime(buildLocalDateTime(2021, 1, 15)); | |
| 47 | 47 | }); |
| 48 | 48 | fileMapper.insert(dbFile); |
| 49 | 49 | // 测试 path 不匹配 |
| ... | ... | @@ -54,13 +54,13 @@ public class FileServiceTest extends BaseDbUnitTest { |
| 54 | 54 | })); |
| 55 | 55 | // 测试 createTime 不匹配 |
| 56 | 56 | fileMapper.insert(ObjectUtils.cloneIgnoreId(dbFile, o -> { |
| 57 | - o.setCreateTime(buildTime(2020, 1, 15)); | |
| 57 | + o.setCreateTime(buildLocalDateTime(2020, 1, 15)); | |
| 58 | 58 | })); |
| 59 | 59 | // 准备参数 |
| 60 | 60 | FilePageReqVO reqVO = new FilePageReqVO(); |
| 61 | 61 | reqVO.setPath("yunai"); |
| 62 | 62 | reqVO.setType("jp"); |
| 63 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10), buildTime(2021, 1, 20)})); | |
| 63 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 10), buildLocalDateTime(2021, 1, 20)})); | |
| 64 | 64 | |
| 65 | 65 | // 调用 |
| 66 | 66 | PageResult<FileDO> pageResult = fileService.getFilePage(reqVO); | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceTest.java
| ... | ... | @@ -16,7 +16,7 @@ import java.util.ArrayList; |
| 16 | 16 | import java.util.List; |
| 17 | 17 | |
| 18 | 18 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 19 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 19 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 20 | 20 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 21 | 21 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 22 | 22 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| ... | ... | @@ -96,8 +96,8 @@ public class JobLogServiceTest extends BaseDbUnitTest { |
| 96 | 96 | o.setExecuteIndex(1); |
| 97 | 97 | o.setHandlerName("handlerName 单元测试"); |
| 98 | 98 | o.setStatus(JobLogStatusEnum.SUCCESS.getStatus()); |
| 99 | - o.setBeginTime(buildTime(2021, 1, 8)); | |
| 100 | - o.setEndTime(buildTime(2021, 1, 8)); | |
| 99 | + o.setBeginTime(buildLocalDateTime(2021, 1, 8)); | |
| 100 | + o.setEndTime(buildLocalDateTime(2021, 1, 8)); | |
| 101 | 101 | }); |
| 102 | 102 | jobLogMapper.insert(dbJobLog); |
| 103 | 103 | // 测试 jobId 不匹配 |
| ... | ... | @@ -105,9 +105,9 @@ public class JobLogServiceTest extends BaseDbUnitTest { |
| 105 | 105 | // 测试 handlerName 不匹配 |
| 106 | 106 | jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setHandlerName(randomString()))); |
| 107 | 107 | // 测试 beginTime 不匹配 |
| 108 | - jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setBeginTime(buildTime(2021, 1, 7)))); | |
| 108 | + jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setBeginTime(buildLocalDateTime(2021, 1, 7)))); | |
| 109 | 109 | // 测试 endTime 不匹配 |
| 110 | - jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setEndTime(buildTime(2021, 1, 9)))); | |
| 110 | + jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setEndTime(buildLocalDateTime(2021, 1, 9)))); | |
| 111 | 111 | // 测试 status 不匹配 |
| 112 | 112 | jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setStatus(JobLogStatusEnum.FAILURE.getStatus()))); |
| 113 | 113 | // 准备参数 |
| ... | ... | @@ -132,8 +132,8 @@ public class JobLogServiceTest extends BaseDbUnitTest { |
| 132 | 132 | o.setExecuteIndex(1); |
| 133 | 133 | o.setHandlerName("handlerName 单元测试"); |
| 134 | 134 | o.setStatus(JobLogStatusEnum.SUCCESS.getStatus()); |
| 135 | - o.setBeginTime(buildTime(2021, 1, 8)); | |
| 136 | - o.setEndTime(buildTime(2021, 1, 8)); | |
| 135 | + o.setBeginTime(buildLocalDateTime(2021, 1, 8)); | |
| 136 | + o.setEndTime(buildLocalDateTime(2021, 1, 8)); | |
| 137 | 137 | }); |
| 138 | 138 | jobLogMapper.insert(dbJobLog); |
| 139 | 139 | // 测试 jobId 不匹配 |
| ... | ... | @@ -141,9 +141,9 @@ public class JobLogServiceTest extends BaseDbUnitTest { |
| 141 | 141 | // 测试 handlerName 不匹配 |
| 142 | 142 | jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setHandlerName(randomString()))); |
| 143 | 143 | // 测试 beginTime 不匹配 |
| 144 | - jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setBeginTime(buildTime(2021, 1, 7)))); | |
| 144 | + jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setBeginTime(buildLocalDateTime(2021, 1, 7)))); | |
| 145 | 145 | // 测试 endTime 不匹配 |
| 146 | - jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setEndTime(buildTime(2021, 1, 9)))); | |
| 146 | + jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setEndTime(buildLocalDateTime(2021, 1, 9)))); | |
| 147 | 147 | // 测试 status 不匹配 |
| 148 | 148 | jobLogMapper.insert(ObjectUtils.cloneIgnoreId(dbJobLog, o -> o.setStatus(JobLogStatusEnum.FAILURE.getStatus()))); |
| 149 | 149 | // 准备参数 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java
| ... | ... | @@ -16,10 +16,10 @@ import org.junit.jupiter.api.Test; |
| 16 | 16 | import org.springframework.context.annotation.Import; |
| 17 | 17 | |
| 18 | 18 | import javax.annotation.Resource; |
| 19 | -import java.util.Date; | |
| 19 | +import java.time.LocalDateTime; | |
| 20 | 20 | import java.util.List; |
| 21 | 21 | |
| 22 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 22 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 23 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 24 | 24 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 25 | 25 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
| ... | ... | @@ -40,7 +40,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 40 | 40 | int userType = UserTypeEnum.ADMIN.getValue(); |
| 41 | 41 | String applicationName = "yudao-test"; |
| 42 | 42 | String requestUrl = "foo"; |
| 43 | - Date beginTime = buildTime(2021, 3, 13); | |
| 43 | + LocalDateTime beginTime = buildLocalDateTime(2021, 3, 13); | |
| 44 | 44 | int duration = 1000; |
| 45 | 45 | int resultCode = GlobalErrorCodeConstants.SUCCESS.getCode(); |
| 46 | 46 | |
| ... | ... | @@ -65,7 +65,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 65 | 65 | // requestUrl 不同的 |
| 66 | 66 | apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setRequestUrl("bar"))); |
| 67 | 67 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 68 | - apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setBeginTime(buildTime(2021, 2, 6)))); | |
| 68 | + apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setBeginTime(buildLocalDateTime(2021, 2, 6)))); | |
| 69 | 69 | // duration 不同的 |
| 70 | 70 | apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setDuration(100))); |
| 71 | 71 | // resultCode 不同的 |
| ... | ... | @@ -77,7 +77,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 77 | 77 | reqVO.setUserType(userType); |
| 78 | 78 | reqVO.setApplicationName(applicationName); |
| 79 | 79 | reqVO.setRequestUrl(requestUrl); |
| 80 | - reqVO.setBeginTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)})); | |
| 80 | + reqVO.setBeginTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 12),buildLocalDateTime(2021, 3, 14)})); | |
| 81 | 81 | reqVO.setDuration(duration); |
| 82 | 82 | reqVO.setResultCode(resultCode); |
| 83 | 83 | |
| ... | ... | @@ -97,7 +97,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 97 | 97 | int userType = UserTypeEnum.ADMIN.getValue(); |
| 98 | 98 | String applicationName = "yudao-test"; |
| 99 | 99 | String requestUrl = "foo"; |
| 100 | - Date beginTime = buildTime(2021, 3, 13); | |
| 100 | + LocalDateTime beginTime = buildLocalDateTime(2021, 3, 13); | |
| 101 | 101 | int duration = 1000; |
| 102 | 102 | int resultCode = GlobalErrorCodeConstants.SUCCESS.getCode(); |
| 103 | 103 | |
| ... | ... | @@ -122,7 +122,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 122 | 122 | // requestUrl 不同的 |
| 123 | 123 | apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setRequestUrl("bar"))); |
| 124 | 124 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 125 | - apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setBeginTime(buildTime(2021, 2, 6)))); | |
| 125 | + apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setBeginTime(buildLocalDateTime(2021, 2, 6)))); | |
| 126 | 126 | // duration 不同的 |
| 127 | 127 | apiAccessLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiAccessLogDO, logDO -> logDO.setDuration(100))); |
| 128 | 128 | // resultCode 不同的 |
| ... | ... | @@ -134,7 +134,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest { |
| 134 | 134 | reqVO.setUserType(userType); |
| 135 | 135 | reqVO.setApplicationName(applicationName); |
| 136 | 136 | reqVO.setRequestUrl(requestUrl); |
| 137 | - reqVO.setBeginTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)})); | |
| 137 | + reqVO.setBeginTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 12),buildLocalDateTime(2021, 3, 14)})); | |
| 138 | 138 | reqVO.setDuration(duration); |
| 139 | 139 | reqVO.setResultCode(resultCode); |
| 140 | 140 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java
| ... | ... | @@ -17,10 +17,10 @@ import org.junit.jupiter.api.Test; |
| 17 | 17 | import org.springframework.context.annotation.Import; |
| 18 | 18 | |
| 19 | 19 | import javax.annotation.Resource; |
| 20 | -import java.util.Date; | |
| 20 | +import java.time.LocalDateTime; | |
| 21 | 21 | import java.util.List; |
| 22 | 22 | |
| 23 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 23 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 24 | 24 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 25 | 25 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 26 | 26 | import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_NOT_FOUND; |
| ... | ... | @@ -44,7 +44,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 44 | 44 | int userType = UserTypeEnum.ADMIN.getValue(); |
| 45 | 45 | String applicationName = "yudao-test"; |
| 46 | 46 | String requestUrl = "foo"; |
| 47 | - Date beginTime = buildTime(2021, 3, 13); | |
| 47 | + LocalDateTime beginTime = buildLocalDateTime(2021, 3, 13); | |
| 48 | 48 | int progressStatus = ApiErrorLogProcessStatusEnum.INIT.getStatus(); |
| 49 | 49 | |
| 50 | 50 | ApiErrorLogDO infApiErrorLogDO = RandomUtils.randomPojo(ApiErrorLogDO.class, logDO -> { |
| ... | ... | @@ -67,7 +67,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 67 | 67 | // requestUrl 不同的 |
| 68 | 68 | infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setRequestUrl("bar"))); |
| 69 | 69 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 70 | - infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setExceptionTime(buildTime(2021, 2, 6)))); | |
| 70 | + infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setExceptionTime(buildLocalDateTime(2021, 2, 6)))); | |
| 71 | 71 | // progressStatus 不同的 |
| 72 | 72 | infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setProcessStatus(ApiErrorLogProcessStatusEnum.DONE.getStatus()))); |
| 73 | 73 | |
| ... | ... | @@ -77,7 +77,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 77 | 77 | reqVO.setUserType(userType); |
| 78 | 78 | reqVO.setApplicationName(applicationName); |
| 79 | 79 | reqVO.setRequestUrl(requestUrl); |
| 80 | - reqVO.setExceptionTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)})); | |
| 80 | + reqVO.setExceptionTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 12),buildLocalDateTime(2021, 3, 14)})); | |
| 81 | 81 | reqVO.setProcessStatus(progressStatus); |
| 82 | 82 | |
| 83 | 83 | // 调用service方法 |
| ... | ... | @@ -96,7 +96,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 96 | 96 | int userType = UserTypeEnum.ADMIN.getValue(); |
| 97 | 97 | String applicationName = "yudao-test"; |
| 98 | 98 | String requestUrl = "foo"; |
| 99 | - Date beginTime = buildTime(2021, 3, 13); | |
| 99 | + LocalDateTime beginTime = buildLocalDateTime(2021, 3, 13); | |
| 100 | 100 | int progressStatus = ApiErrorLogProcessStatusEnum.INIT.getStatus(); |
| 101 | 101 | |
| 102 | 102 | ApiErrorLogDO infApiErrorLogDO = RandomUtils.randomPojo(ApiErrorLogDO.class, logDO -> { |
| ... | ... | @@ -119,7 +119,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 119 | 119 | // requestUrl 不同的 |
| 120 | 120 | infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setRequestUrl("bar"))); |
| 121 | 121 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 122 | - infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setExceptionTime(buildTime(2021, 2, 6)))); | |
| 122 | + infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setExceptionTime(buildLocalDateTime(2021, 2, 6)))); | |
| 123 | 123 | // progressStatus 不同的 |
| 124 | 124 | infApiErrorLogMapper.insert(ObjectUtils.cloneIgnoreId(infApiErrorLogDO, logDO -> logDO.setProcessStatus(ApiErrorLogProcessStatusEnum.DONE.getStatus()))); |
| 125 | 125 | |
| ... | ... | @@ -129,7 +129,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest { |
| 129 | 129 | reqVO.setUserType(userType); |
| 130 | 130 | reqVO.setApplicationName(applicationName); |
| 131 | 131 | reqVO.setRequestUrl(requestUrl); |
| 132 | - reqVO.setExceptionTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)})); | |
| 132 | + reqVO.setExceptionTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 12),buildLocalDateTime(2021, 3, 14)})); | |
| 133 | 133 | reqVO.setProcessStatus(progressStatus); |
| 134 | 134 | |
| 135 | 135 | // 调用service方法 | ... | ... |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImplTest.java
| ... | ... | @@ -14,10 +14,10 @@ import org.junit.jupiter.api.Test; |
| 14 | 14 | import org.springframework.context.annotation.Import; |
| 15 | 15 | |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | 18 | import java.util.List; |
| 19 | 19 | |
| 20 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 20 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 21 | 21 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 22 | 22 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 23 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -112,7 +112,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 112 | 112 | o.setType(1); |
| 113 | 113 | o.setCategory(2); |
| 114 | 114 | o.setRemark("哈哈哈"); |
| 115 | - o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); | |
| 115 | + o.setCreateTime(DateUtils.buildLocalDateTime(2021, 11, 11)); | |
| 116 | 116 | }); |
| 117 | 117 | testDemoMapper.insert(dbTestDemo); |
| 118 | 118 | // 测试 name 不匹配 |
| ... | ... | @@ -126,7 +126,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 126 | 126 | // 测试 remark 不匹配 |
| 127 | 127 | testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setRemark("呵呵呵"))); |
| 128 | 128 | // 测试 createTime 不匹配 |
| 129 | - testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12)))); | |
| 129 | + testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2021, 12, 12)))); | |
| 130 | 130 | // 准备参数 |
| 131 | 131 | TestDemoPageReqVO reqVO = new TestDemoPageReqVO(); |
| 132 | 132 | reqVO.setName("芋道"); |
| ... | ... | @@ -134,7 +134,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 134 | 134 | reqVO.setType(1); |
| 135 | 135 | reqVO.setCategory(2); |
| 136 | 136 | reqVO.setRemark("哈哈哈"); |
| 137 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)})); | |
| 137 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 10),buildLocalDateTime(2021, 11, 12)})); | |
| 138 | 138 | |
| 139 | 139 | // 调用 |
| 140 | 140 | PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(reqVO); |
| ... | ... | @@ -153,7 +153,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 153 | 153 | o.setType(1); |
| 154 | 154 | o.setCategory(2); |
| 155 | 155 | o.setRemark("哈哈哈"); |
| 156 | - o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); | |
| 156 | + o.setCreateTime(DateUtils.buildLocalDateTime(2021, 11, 11)); | |
| 157 | 157 | }); |
| 158 | 158 | testDemoMapper.insert(dbTestDemo); |
| 159 | 159 | // 测试 name 不匹配 |
| ... | ... | @@ -167,7 +167,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 167 | 167 | // 测试 remark 不匹配 |
| 168 | 168 | testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setRemark("呵呵呵"))); |
| 169 | 169 | // 测试 createTime 不匹配 |
| 170 | - testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12)))); | |
| 170 | + testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2021, 12, 12)))); | |
| 171 | 171 | // 准备参数 |
| 172 | 172 | TestDemoExportReqVO reqVO = new TestDemoExportReqVO(); |
| 173 | 173 | reqVO.setName("芋道"); |
| ... | ... | @@ -175,7 +175,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest { |
| 175 | 175 | reqVO.setType(1); |
| 176 | 176 | reqVO.setCategory(2); |
| 177 | 177 | reqVO.setRemark("哈哈哈"); |
| 178 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)})); | |
| 178 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 10),buildLocalDateTime(2021, 11, 12)})); | |
| 179 | 179 | |
| 180 | 180 | // 调用 |
| 181 | 181 | List<TestDemoDO> list = testDemoService.getTestDemoList(reqVO); | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.coupon.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import java.math.BigDecimal; |
| 6 | 7 | import io.swagger.annotations.*; |
| 7 | 8 | import javax.validation.constraints.*; |
| ... | ... | @@ -90,21 +91,21 @@ public class CouponBaseVO { |
| 90 | 91 | @ApiModelProperty(value = "领取时间", required = true) |
| 91 | 92 | @NotNull(message = "领取时间不能为空") |
| 92 | 93 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 93 | - private Date fetchTime; | |
| 94 | + private LocalDateTime fetchTime; | |
| 94 | 95 | |
| 95 | 96 | @ApiModelProperty(value = "使用时间", required = true) |
| 96 | 97 | @NotNull(message = "使用时间不能为空") |
| 97 | 98 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 98 | - private Date useTime; | |
| 99 | + private LocalDateTime useTime; | |
| 99 | 100 | |
| 100 | 101 | @ApiModelProperty(value = "可使用的开始时间", required = true) |
| 101 | 102 | @NotNull(message = "可使用的开始时间不能为空") |
| 102 | 103 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 103 | - private Date startTime; | |
| 104 | + private LocalDateTime startTime; | |
| 104 | 105 | |
| 105 | 106 | @ApiModelProperty(value = "有效期结束时间", required = true) |
| 106 | 107 | @NotNull(message = "有效期结束时间不能为空") |
| 107 | 108 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 108 | - private Date endTime; | |
| 109 | + private LocalDateTime endTime; | |
| 109 | 110 | |
| 110 | 111 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/coupon/vo/CouponExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.coupon.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import java.math.BigDecimal; |
| 6 | -import io.swagger.annotations.*; | |
| 7 | 7 | |
| 8 | 8 | import com.alibaba.excel.annotation.ExcelProperty; |
| 9 | 9 | |
| ... | ... | @@ -73,18 +73,18 @@ public class CouponExcelVO { |
| 73 | 73 | private Boolean getType; |
| 74 | 74 | |
| 75 | 75 | @ExcelProperty("领取时间") |
| 76 | - private Date fetchTime; | |
| 76 | + private LocalDateTime fetchTime; | |
| 77 | 77 | |
| 78 | 78 | @ExcelProperty("使用时间") |
| 79 | - private Date useTime; | |
| 79 | + private LocalDateTime useTime; | |
| 80 | 80 | |
| 81 | 81 | @ExcelProperty("可使用的开始时间") |
| 82 | - private Date startTime; | |
| 82 | + private LocalDateTime startTime; | |
| 83 | 83 | |
| 84 | 84 | @ExcelProperty("有效期结束时间") |
| 85 | - private Date endTime; | |
| 85 | + private LocalDateTime endTime; | |
| 86 | 86 | |
| 87 | 87 | @ExcelProperty("创建时间") |
| 88 | - private Date createTime; | |
| 88 | + private LocalDateTime createTime; | |
| 89 | 89 | |
| 90 | 90 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/coupon/vo/CouponExportReqVO.java
| ... | ... | @@ -3,9 +3,8 @@ package cn.iocoder.yudao.module.coupon.controller.admin.coupon.vo; |
| 3 | 3 | import lombok.*; |
| 4 | 4 | |
| 5 | 5 | import java.math.BigDecimal; |
| 6 | -import java.util.*; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | import io.swagger.annotations.*; |
| 8 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 9 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 9 | |
| 11 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -70,22 +69,22 @@ public class CouponExportReqVO { |
| 70 | 69 | |
| 71 | 70 | @ApiModelProperty(value = "领取时间") |
| 72 | 71 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 73 | - private Date[] fetchTime; | |
| 72 | + private LocalDateTime[] fetchTime; | |
| 74 | 73 | |
| 75 | 74 | @ApiModelProperty(value = "使用时间") |
| 76 | 75 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 77 | - private Date[] useTime; | |
| 76 | + private LocalDateTime[] useTime; | |
| 78 | 77 | |
| 79 | 78 | @ApiModelProperty(value = "可使用的开始时间") |
| 80 | 79 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 81 | - private Date[] startTime; | |
| 80 | + private LocalDateTime[] startTime; | |
| 82 | 81 | |
| 83 | 82 | @ApiModelProperty(value = "有效期结束时间") |
| 84 | 83 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 85 | - private Date[] endTime; | |
| 84 | + private LocalDateTime[] endTime; | |
| 86 | 85 | |
| 87 | 86 | @ApiModelProperty(value = "创建时间") |
| 88 | 87 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 89 | - private Date[] createTime; | |
| 88 | + private LocalDateTime[] createTime; | |
| 90 | 89 | |
| 91 | 90 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/coupon/vo/CouponPageReqVO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.coupon.controller.admin.coupon.vo; |
| 3 | 3 | import lombok.*; |
| 4 | 4 | |
| 5 | 5 | import java.math.BigDecimal; |
| 6 | -import java.util.*; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | import io.swagger.annotations.*; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -72,22 +72,22 @@ public class CouponPageReqVO extends PageParam { |
| 72 | 72 | |
| 73 | 73 | @ApiModelProperty(value = "领取时间") |
| 74 | 74 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 75 | - private Date[] fetchTime; | |
| 75 | + private LocalDateTime[] fetchTime; | |
| 76 | 76 | |
| 77 | 77 | @ApiModelProperty(value = "使用时间") |
| 78 | 78 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 79 | - private Date[] useTime; | |
| 79 | + private LocalDateTime[] useTime; | |
| 80 | 80 | |
| 81 | 81 | @ApiModelProperty(value = "可使用的开始时间") |
| 82 | 82 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 83 | - private Date[] startTime; | |
| 83 | + private LocalDateTime[] startTime; | |
| 84 | 84 | |
| 85 | 85 | @ApiModelProperty(value = "有效期结束时间") |
| 86 | 86 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 87 | - private Date[] endTime; | |
| 87 | + private LocalDateTime[] endTime; | |
| 88 | 88 | |
| 89 | 89 | @ApiModelProperty(value = "创建时间") |
| 90 | 90 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 91 | - private Date[] createTime; | |
| 91 | + private LocalDateTime[] createTime; | |
| 92 | 92 | |
| 93 | 93 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/coupon/vo/CouponRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.coupon.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 优惠券 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class CouponRespVO extends CouponBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/templete/vo/CouponTempleteBaseVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.templete.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import java.math.BigDecimal; |
| 6 | 7 | import io.swagger.annotations.*; |
| 7 | 8 | import javax.validation.constraints.*; |
| ... | ... | @@ -86,11 +87,11 @@ public class CouponTempleteBaseVO { |
| 86 | 87 | |
| 87 | 88 | @ApiModelProperty(value = "使用开始日期 过期类型1时必填") |
| 88 | 89 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 89 | - private Date startUseTime; | |
| 90 | + private LocalDateTime startUseTime; | |
| 90 | 91 | |
| 91 | 92 | @ApiModelProperty(value = "使用结束日期 过期类型1时必填") |
| 92 | 93 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 93 | - private Date endUseTime; | |
| 94 | + private LocalDateTime endUseTime; | |
| 94 | 95 | |
| 95 | 96 | @ApiModelProperty(value = "当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效") |
| 96 | 97 | @NotNull(message = "当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效不能为空") |
| ... | ... | @@ -98,7 +99,7 @@ public class CouponTempleteBaseVO { |
| 98 | 99 | |
| 99 | 100 | @ApiModelProperty(value = "有效日期结束时间") |
| 100 | 101 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 101 | - private Date endTime; | |
| 102 | + private LocalDateTime endTime; | |
| 102 | 103 | |
| 103 | 104 | /* ============过期类型——结束============= */ |
| 104 | 105 | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/templete/vo/CouponTempleteExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.templete.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import java.math.BigDecimal; |
| 6 | 7 | |
| 7 | 8 | import com.alibaba.excel.annotation.ExcelProperty; |
| ... | ... | @@ -69,10 +70,10 @@ public class CouponTempleteExcelVO { |
| 69 | 70 | private Integer validityType; |
| 70 | 71 | |
| 71 | 72 | @ExcelProperty("使用开始日期 过期类型1时必填") |
| 72 | - private Date startUseTime; | |
| 73 | + private LocalDateTime startUseTime; | |
| 73 | 74 | |
| 74 | 75 | @ExcelProperty("使用结束日期 过期类型1时必填") |
| 75 | - private Date endUseTime; | |
| 76 | + private LocalDateTime endUseTime; | |
| 76 | 77 | |
| 77 | 78 | @ExcelProperty("当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效") |
| 78 | 79 | private Integer fixedTerm; |
| ... | ... | @@ -111,9 +112,9 @@ public class CouponTempleteExcelVO { |
| 111 | 112 | private Integer status; |
| 112 | 113 | |
| 113 | 114 | @ExcelProperty("有效日期结束时间") |
| 114 | - private Date endTime; | |
| 115 | + private LocalDateTime endTime; | |
| 115 | 116 | |
| 116 | 117 | @ExcelProperty("创建时间") |
| 117 | - private Date createTime; | |
| 118 | + private LocalDateTime createTime; | |
| 118 | 119 | |
| 119 | 120 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/templete/vo/CouponTempleteExportReqVO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.coupon.controller.admin.templete.vo; |
| 3 | 3 | import lombok.*; |
| 4 | 4 | |
| 5 | 5 | import java.math.BigDecimal; |
| 6 | -import java.util.*; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | import io.swagger.annotations.*; |
| 8 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | |
| ... | ... | @@ -66,11 +66,11 @@ public class CouponTempleteExportReqVO { |
| 66 | 66 | |
| 67 | 67 | @ApiModelProperty(value = "使用开始日期 过期类型1时必填") |
| 68 | 68 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 69 | - private Date[] startUseTime; | |
| 69 | + private LocalDateTime[] startUseTime; | |
| 70 | 70 | |
| 71 | 71 | @ApiModelProperty(value = "使用结束日期 过期类型1时必填") |
| 72 | 72 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 73 | - private Date[] endUseTime; | |
| 73 | + private LocalDateTime[] endUseTime; | |
| 74 | 74 | |
| 75 | 75 | @ApiModelProperty(value = "当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效") |
| 76 | 76 | private Integer fixedTerm; |
| ... | ... | @@ -110,10 +110,10 @@ public class CouponTempleteExportReqVO { |
| 110 | 110 | |
| 111 | 111 | @ApiModelProperty(value = "有效日期结束时间") |
| 112 | 112 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 113 | - private Date[] endTime; | |
| 113 | + private LocalDateTime[] endTime; | |
| 114 | 114 | |
| 115 | 115 | @ApiModelProperty(value = "创建时间") |
| 116 | 116 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 117 | - private Date[] createTime; | |
| 117 | + private LocalDateTime[] createTime; | |
| 118 | 118 | |
| 119 | 119 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/templete/vo/CouponTempletePageReqVO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.coupon.controller.admin.templete.vo; |
| 3 | 3 | import lombok.*; |
| 4 | 4 | |
| 5 | 5 | import java.math.BigDecimal; |
| 6 | -import java.util.*; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | import io.swagger.annotations.*; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -69,11 +69,11 @@ public class CouponTempletePageReqVO extends PageParam { |
| 69 | 69 | |
| 70 | 70 | @ApiModelProperty(value = "使用开始日期 过期类型1时必填") |
| 71 | 71 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 72 | - private Date[] startUseTime; | |
| 72 | + private LocalDateTime[] startUseTime; | |
| 73 | 73 | |
| 74 | 74 | @ApiModelProperty(value = "使用结束日期 过期类型1时必填") |
| 75 | 75 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 76 | - private Date[] endUseTime; | |
| 76 | + private LocalDateTime[] endUseTime; | |
| 77 | 77 | |
| 78 | 78 | @ApiModelProperty(value = "当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效") |
| 79 | 79 | private Integer fixedTerm; |
| ... | ... | @@ -113,10 +113,10 @@ public class CouponTempletePageReqVO extends PageParam { |
| 113 | 113 | |
| 114 | 114 | @ApiModelProperty(value = "有效日期结束时间") |
| 115 | 115 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 116 | - private Date[] endTime; | |
| 116 | + private LocalDateTime[] endTime; | |
| 117 | 117 | |
| 118 | 118 | @ApiModelProperty(value = "创建时间") |
| 119 | 119 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 120 | - private Date[] createTime; | |
| 120 | + private LocalDateTime[] createTime; | |
| 121 | 121 | |
| 122 | 122 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/controller/admin/templete/vo/CouponTempleteRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.controller.admin.templete.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 优惠券模板 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class CouponTempleteRespVO extends CouponTempleteBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/dal/dataobject/CouponTemplete/CouponTempleteDO.java
| 1 | 1 | package cn.iocoder.yudao.module.coupon.dal.dataobject.CouponTemplete; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import java.math.BigDecimal; |
| 6 | 7 | import com.baomidou.mybatisplus.annotation.*; |
| 7 | 8 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| ... | ... | @@ -97,11 +98,11 @@ public class CouponTempleteDO extends BaseDO { |
| 97 | 98 | /** |
| 98 | 99 | * 使用开始日期 过期类型1时必填 |
| 99 | 100 | */ |
| 100 | - private Date startUseTime; | |
| 101 | + private LocalDateTime startUseTime; | |
| 101 | 102 | /** |
| 102 | 103 | * 使用结束日期 过期类型1时必填 |
| 103 | 104 | */ |
| 104 | - private Date endUseTime; | |
| 105 | + private LocalDateTime endUseTime; | |
| 105 | 106 | /** |
| 106 | 107 | * 当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效 |
| 107 | 108 | */ |
| ... | ... | @@ -153,6 +154,6 @@ public class CouponTempleteDO extends BaseDO { |
| 153 | 154 | /** |
| 154 | 155 | * 有效日期结束时间 |
| 155 | 156 | */ |
| 156 | - private Date endTime; | |
| 157 | + private LocalDateTime endTime; | |
| 157 | 158 | |
| 158 | 159 | } | ... | ... |
yudao-module-mall/yudao-module-coupon-biz/src/main/java/cn/iocoder/yudao/module/coupon/dal/dataobject/coupon/CouponDO.java
| ... | ... | @@ -2,7 +2,8 @@ package cn.iocoder.yudao.module.coupon.dal.dataobject.coupon; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | 4 | import lombok.*; |
| 5 | -import java.util.*; | |
| 5 | + | |
| 6 | +import java.time.LocalDateTime; | |
| 6 | 7 | import java.math.BigDecimal; |
| 7 | 8 | import com.baomidou.mybatisplus.annotation.*; |
| 8 | 9 | |
| ... | ... | @@ -101,18 +102,18 @@ public class CouponDO extends BaseDO { |
| 101 | 102 | /** |
| 102 | 103 | * 领取时间 |
| 103 | 104 | */ |
| 104 | - private Date fetchTime; | |
| 105 | + private LocalDateTime fetchTime; | |
| 105 | 106 | /** |
| 106 | 107 | * 使用时间 |
| 107 | 108 | */ |
| 108 | - private Date useTime; | |
| 109 | + private LocalDateTime useTime; | |
| 109 | 110 | /** |
| 110 | 111 | * 可使用的开始时间 |
| 111 | 112 | */ |
| 112 | - private Date startTime; | |
| 113 | + private LocalDateTime startTime; | |
| 113 | 114 | /** |
| 114 | 115 | * 有效期结束时间 |
| 115 | 116 | */ |
| 116 | - private Date endTime; | |
| 117 | + private LocalDateTime endTime; | |
| 117 | 118 | |
| 118 | 119 | } | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/banner/vo/BannerCreateReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.market.controller.admin.banner.vo; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.annotations.ApiModel; |
| 4 | -import io.swagger.annotations.ApiModelProperty; | |
| 5 | 4 | import lombok.Data; |
| 6 | 5 | import lombok.EqualsAndHashCode; |
| 7 | 6 | import lombok.ToString; |
| 8 | 7 | |
| 9 | -import java.util.Date; | |
| 10 | - | |
| 11 | 8 | /** |
| 12 | 9 | * @author xia |
| 13 | 10 | */ | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/banner/vo/BannerPageReqVO.java
| ... | ... | @@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode; |
| 10 | 10 | import lombok.ToString; |
| 11 | 11 | import org.springframework.format.annotation.DateTimeFormat; |
| 12 | 12 | |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | |
| 15 | 15 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 16 | 16 | |
| ... | ... | @@ -33,6 +33,6 @@ public class BannerPageReqVO extends PageParam { |
| 33 | 33 | |
| 34 | 34 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 35 | 35 | @ApiModelProperty(value = "创建时间") |
| 36 | - private Date[] createTime; | |
| 36 | + private LocalDateTime[] createTime; | |
| 37 | 37 | |
| 38 | 38 | } | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/banner/vo/BannerRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.ToString; |
| 7 | 7 | |
| 8 | 8 | import javax.validation.constraints.NotNull; |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * @author xia |
| ... | ... | @@ -21,6 +21,6 @@ public class BannerRespVO extends BannerBaseVO { |
| 21 | 21 | private Long id; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | } | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/discount/DiscountActivityDO.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | 8 | import lombok.Data; |
| 9 | 9 | import lombok.EqualsAndHashCode; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * 限时折扣活动 DO |
| ... | ... | @@ -42,11 +42,11 @@ public class DiscountActivityDO extends BaseDO { |
| 42 | 42 | /** |
| 43 | 43 | * 开始时间 |
| 44 | 44 | */ |
| 45 | - private Date startTime; | |
| 45 | + private LocalDateTime startTime; | |
| 46 | 46 | /** |
| 47 | 47 | * 结束时间 |
| 48 | 48 | */ |
| 49 | - private Date endTime; | |
| 49 | + private LocalDateTime endTime; | |
| 50 | 50 | /** |
| 51 | 51 | * 备注 |
| 52 | 52 | */ | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/discount/DiscountProductDO.java
| ... | ... | @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | import lombok.EqualsAndHashCode; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 限时折扣商品 DO |
| ... | ... | @@ -46,11 +46,11 @@ public class DiscountProductDO extends BaseDO { |
| 46 | 46 | /** |
| 47 | 47 | * 开始时间 |
| 48 | 48 | */ |
| 49 | - private Date startTime; | |
| 49 | + private LocalDateTime startTime; | |
| 50 | 50 | /** |
| 51 | 51 | * 结束时间 |
| 52 | 52 | */ |
| 53 | - private Date endTime; | |
| 53 | + private LocalDateTime endTime; | |
| 54 | 54 | /** |
| 55 | 55 | * 销售价格,单位:分 |
| 56 | 56 | * | ... | ... |
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/reward/RewardActivityDO.java
| ... | ... | @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 12 | 12 | import lombok.Data; |
| 13 | 13 | import lombok.EqualsAndHashCode; |
| 14 | 14 | |
| 15 | -import java.util.Date; | |
| 15 | +import java.time.LocalDateTime; | |
| 16 | 16 | import java.util.List; |
| 17 | 17 | |
| 18 | 18 | /** |
| ... | ... | @@ -44,11 +44,11 @@ public class RewardActivityDO extends BaseDO { |
| 44 | 44 | /** |
| 45 | 45 | * 开始时间 |
| 46 | 46 | */ |
| 47 | - private Date startTime; | |
| 47 | + private LocalDateTime startTime; | |
| 48 | 48 | /** |
| 49 | 49 | * 结束时间 |
| 50 | 50 | */ |
| 51 | - private Date endTime; | |
| 51 | + private LocalDateTime endTime; | |
| 52 | 52 | /** |
| 53 | 53 | * 备注 |
| 54 | 54 | */ | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class ProductBrandPageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "创建时间") |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 品牌 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class ProductBrandRespVO extends ProductBrandBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.product.controller.admin.category.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 商品分类 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class ProductCategoryRespVO extends ProductCategoryBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.List; |
| 12 | 12 | |
| 13 | 13 | @ApiModel("管理后台 - 规格 + 规格值 Response VO") |
| ... | ... | @@ -20,7 +20,7 @@ public class ProductPropertyAndValueRespVO extends ProductPropertyBaseVO { |
| 20 | 20 | private Long id; |
| 21 | 21 | |
| 22 | 22 | @ApiModelProperty(value = "创建时间", required = true) |
| 23 | - private Date createTime; | |
| 23 | + private LocalDateTime createTime; | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * 规格值的集合 | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class ProductPropertyPageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "创建时间") |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 规格值 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间") |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 商品sku Response VO") |
| ... | ... | @@ -19,7 +19,7 @@ public class ProductSkuRespVO extends ProductSkuBaseVO { |
| 19 | 19 | private Long id; |
| 20 | 20 | |
| 21 | 21 | @ApiModelProperty(value = "创建时间") |
| 22 | - private Date createTime; | |
| 22 | + private LocalDateTime createTime; | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 规格值数组 | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.List; |
| 12 | 12 | |
| 13 | 13 | @ApiModel(value = "管理后台 - 商品 SPU 详细 Response VO", description = "包括关联的 SKU 等信息") |
| ... | ... | @@ -20,7 +20,7 @@ public class ProductSpuDetailRespVO extends ProductSpuBaseVO { |
| 20 | 20 | private Long id; |
| 21 | 21 | |
| 22 | 22 | @ApiModelProperty(value = "创建时间") |
| 23 | - private Date createTime; | |
| 23 | + private LocalDateTime createTime; | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * SKU 数组 | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.product.controller.admin.spu.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -46,6 +47,6 @@ public class ProductSpuPageReqVO extends PageParam { |
| 46 | 47 | |
| 47 | 48 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 48 | 49 | @ApiModelProperty(value = "创建时间") |
| 49 | - private Date[] createTime; | |
| 50 | + private LocalDateTime[] createTime; | |
| 50 | 51 | |
| 51 | 52 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.Data; |
| 8 | 8 | import lombok.EqualsAndHashCode; |
| 9 | 9 | import lombok.ToString; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | // TODO @Luowenfeng:这个类只返回 SPU 相关的信息,删除 skus、categoryIds、productPropertyViews;明细使用 SpuDetailRespVO 替代 |
| ... | ... | @@ -22,7 +22,7 @@ public class ProductSpuRespVO extends ProductSpuBaseVO { |
| 22 | 22 | private Long id; |
| 23 | 23 | |
| 24 | 24 | @ApiModelProperty(value = "创建时间") |
| 25 | - private Date createTime; | |
| 25 | + private LocalDateTime createTime; | |
| 26 | 26 | |
| 27 | 27 | /** |
| 28 | 28 | * SKU 数组 | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java
| ... | ... | @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 10 | 10 | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 11 | 11 | import lombok.*; |
| 12 | 12 | |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | /** |
| ... | ... | @@ -117,7 +117,7 @@ public class ProductCommentDO extends BaseDO { |
| 117 | 117 | /** |
| 118 | 118 | * 商家回复时间 |
| 119 | 119 | */ |
| 120 | - private Date replyTime; | |
| 120 | + private LocalDateTime replyTime; | |
| 121 | 121 | |
| 122 | 122 | /** |
| 123 | 123 | * 有用的计数 | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/brand/ProductBrandServiceImplTest.java
| ... | ... | @@ -12,9 +12,10 @@ import org.junit.jupiter.api.Test; |
| 12 | 12 | import org.springframework.context.annotation.Import; |
| 13 | 13 | |
| 14 | 14 | import javax.annotation.Resource; |
| 15 | -import java.util.Date; | |
| 16 | 15 | |
| 17 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 16 | +import java.time.LocalDateTime; | |
| 17 | + | |
| 18 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 18 | 19 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 19 | 20 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 20 | 21 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -106,7 +107,7 @@ public class ProductBrandServiceImplTest extends BaseDbUnitTest { |
| 106 | 107 | ProductBrandDO dbBrand = randomPojo(ProductBrandDO.class, o -> { // 等会查询到 |
| 107 | 108 | o.setName("芋道源码"); |
| 108 | 109 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 109 | - o.setCreateTime(buildTime(2022, 2, 1)); | |
| 110 | + o.setCreateTime(buildLocalDateTime(2022, 2, 1)); | |
| 110 | 111 | }); |
| 111 | 112 | brandMapper.insert(dbBrand); |
| 112 | 113 | // 测试 name 不匹配 |
| ... | ... | @@ -114,12 +115,12 @@ public class ProductBrandServiceImplTest extends BaseDbUnitTest { |
| 114 | 115 | // 测试 status 不匹配 |
| 115 | 116 | brandMapper.insert(cloneIgnoreId(dbBrand, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 116 | 117 | // 测试 createTime 不匹配 |
| 117 | - brandMapper.insert(cloneIgnoreId(dbBrand, o -> o.setCreateTime(buildTime(2022, 3, 1)))); | |
| 118 | + brandMapper.insert(cloneIgnoreId(dbBrand, o -> o.setCreateTime(buildLocalDateTime(2022, 3, 1)))); | |
| 118 | 119 | // 准备参数 |
| 119 | 120 | ProductBrandPageReqVO reqVO = new ProductBrandPageReqVO(); |
| 120 | 121 | reqVO.setName("芋道"); |
| 121 | 122 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 122 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 1, 1), buildTime(2022, 2, 25)})); | |
| 123 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 1, 1), buildLocalDateTime(2022, 2, 25)})); | |
| 123 | 124 | |
| 124 | 125 | // 调用 |
| 125 | 126 | PageResult<ProductBrandDO> pageResult = brandService.getBrandPage(reqVO); | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/TradeOrderItemRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | @ApiModel("交易订单项 Response VO") |
| 10 | 10 | @Data |
| ... | ... | @@ -47,7 +47,7 @@ public class TradeOrderItemRespVO { |
| 47 | 47 | @ApiModelProperty(value = "售后订单编号") |
| 48 | 48 | private Integer afterSaleOrderId; |
| 49 | 49 | @ApiModelProperty(value = "创建时间", required = true) |
| 50 | - private Date createTime; | |
| 50 | + private LocalDateTime createTime; | |
| 51 | 51 | |
| 52 | 52 | |
| 53 | 53 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/TradeOrderRespVO.java
| ... | ... | @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.trade.controller.app.order.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | 4 | import io.swagger.annotations.*; |
| 5 | + | |
| 6 | +import java.time.LocalDateTime; | |
| 5 | 7 | import java.util.*; |
| 6 | 8 | |
| 7 | 9 | @ApiModel("订单交易 Response VO") |
| ... | ... | @@ -19,7 +21,7 @@ public class TradeOrderRespVO { |
| 19 | 21 | @ApiModelProperty(value = "备注") |
| 20 | 22 | private String remark; |
| 21 | 23 | @ApiModelProperty(value = "订单结束时间") |
| 22 | - private Date endTime; | |
| 24 | + private LocalDateTime endTime; | |
| 23 | 25 | @ApiModelProperty(value = "订单金额(总金额),单位:分", required = true) |
| 24 | 26 | private Integer buyPrice; |
| 25 | 27 | @ApiModelProperty(value = "优惠总金额,单位:分", required = true) |
| ... | ... | @@ -33,7 +35,7 @@ public class TradeOrderRespVO { |
| 33 | 35 | @ApiModelProperty(value = "退款金额,单位:分", required = true) |
| 34 | 36 | private Integer refundPrice; |
| 35 | 37 | @ApiModelProperty(value = "付款时间") |
| 36 | - private Date payTime; | |
| 38 | + private LocalDateTime payTime; | |
| 37 | 39 | @ApiModelProperty(value = "支付订单编号") |
| 38 | 40 | private Integer payTransactionId; |
| 39 | 41 | @ApiModelProperty(value = "支付渠道") |
| ... | ... | @@ -41,9 +43,9 @@ public class TradeOrderRespVO { |
| 41 | 43 | @ApiModelProperty(value = "配送类型", required = true) |
| 42 | 44 | private Integer deliveryType; |
| 43 | 45 | @ApiModelProperty(value = "发货时间") |
| 44 | - private Date deliveryTime; | |
| 46 | + private LocalDateTime deliveryTime; | |
| 45 | 47 | @ApiModelProperty(value = "收货时间") |
| 46 | - private Date receiveTime; | |
| 48 | + private LocalDateTime receiveTime; | |
| 47 | 49 | @ApiModelProperty(value = "收件人名称", required = true) |
| 48 | 50 | private String receiverName; |
| 49 | 51 | @ApiModelProperty(value = "手机号", required = true) |
| ... | ... | @@ -57,7 +59,7 @@ public class TradeOrderRespVO { |
| 57 | 59 | @ApiModelProperty(value = "优惠劵编号") |
| 58 | 60 | private Integer couponCardId; |
| 59 | 61 | @ApiModelProperty(value = "创建时间", required = true) |
| 60 | - private Date createTime; | |
| 62 | + private LocalDateTime createTime; | |
| 61 | 63 | |
| 62 | 64 | /** |
| 63 | 65 | * 订单项数组 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/cart/CartItemDO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.experimental.Accessors; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 购物车的商品信息 DO |
| ... | ... | @@ -30,7 +30,7 @@ public class CartItemDO extends BaseDO { |
| 30 | 30 | /** |
| 31 | 31 | * 购物时间 |
| 32 | 32 | */ |
| 33 | - private Date buyTime; // basket_date | |
| 33 | + private LocalDateTime buyTime; // basket_date | |
| 34 | 34 | |
| 35 | 35 | // ========= 基础字段 END ========= |
| 36 | 36 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
| ... | ... | @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; |
| 11 | 11 | import com.baomidou.mybatisplus.annotation.TableName; |
| 12 | 12 | import lombok.*; |
| 13 | 13 | |
| 14 | -import java.util.Date; | |
| 14 | +import java.time.LocalDateTime; | |
| 15 | 15 | |
| 16 | 16 | /** |
| 17 | 17 | * 交易订单 DO |
| ... | ... | @@ -79,11 +79,11 @@ public class TradeOrderDO extends BaseDO { |
| 79 | 79 | /** |
| 80 | 80 | * 订单完成时间 |
| 81 | 81 | */ |
| 82 | - private Date finishTime; | |
| 82 | + private LocalDateTime finishTime; | |
| 83 | 83 | /** |
| 84 | 84 | * 订单取消时间 |
| 85 | 85 | */ |
| 86 | - private Date cancelTime; | |
| 86 | + private LocalDateTime cancelTime; | |
| 87 | 87 | /** |
| 88 | 88 | * 取消类型 |
| 89 | 89 | * |
| ... | ... | @@ -106,7 +106,7 @@ public class TradeOrderDO extends BaseDO { |
| 106 | 106 | /** |
| 107 | 107 | * 付款时间 |
| 108 | 108 | */ |
| 109 | - private Date payTime; | |
| 109 | + private LocalDateTime payTime; | |
| 110 | 110 | |
| 111 | 111 | // ========== 价格 + 支付基本信息 ========== |
| 112 | 112 | // 价格文档 - 淘宝:https://open.taobao.com/docV3.htm?docId=108471&docType=1 |
| ... | ... | @@ -201,11 +201,11 @@ public class TradeOrderDO extends BaseDO { |
| 201 | 201 | /** |
| 202 | 202 | * 发货时间 |
| 203 | 203 | */ |
| 204 | - private Date deliveryTime; | |
| 204 | + private LocalDateTime deliveryTime; | |
| 205 | 205 | /** |
| 206 | 206 | * 收货时间 |
| 207 | 207 | */ |
| 208 | - private Date receiveTime; | |
| 208 | + private LocalDateTime receiveTime; | |
| 209 | 209 | /** |
| 210 | 210 | * 收件人名称 |
| 211 | 211 | */ | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java
| ... | ... | @@ -12,7 +12,7 @@ import lombok.Data; |
| 12 | 12 | import lombok.EqualsAndHashCode; |
| 13 | 13 | import lombok.experimental.Accessors; |
| 14 | 14 | |
| 15 | -import java.util.Date; | |
| 15 | +import java.time.LocalDateTime; | |
| 16 | 16 | import java.util.List; |
| 17 | 17 | |
| 18 | 18 | /** |
| ... | ... | @@ -75,7 +75,7 @@ public class TradeRefundDO extends BaseDO { |
| 75 | 75 | /** |
| 76 | 76 | * 商家处理时间 |
| 77 | 77 | */ |
| 78 | - private Date handleTime; // handel_time | |
| 78 | + private LocalDateTime handleTime; // handel_time | |
| 79 | 79 | /** |
| 80 | 80 | * 商家拒绝理由 |
| 81 | 81 | */ |
| ... | ... | @@ -132,7 +132,7 @@ public class TradeRefundDO extends BaseDO { |
| 132 | 132 | /** |
| 133 | 133 | * 退货时间 |
| 134 | 134 | */ |
| 135 | - private Date returnDate; // ship_time | |
| 135 | + private LocalDateTime returnDate; // ship_time | |
| 136 | 136 | |
| 137 | 137 | // ========== 收获相关 ========== |
| 138 | 138 | |
| ... | ... | @@ -143,6 +143,6 @@ public class TradeRefundDO extends BaseDO { |
| 143 | 143 | /** |
| 144 | 144 | * 收货时间 |
| 145 | 145 | */ |
| 146 | - private Date receiveDate; // receive_time | |
| 146 | + private LocalDateTime receiveDate; // receive_time | |
| 147 | 147 | |
| 148 | 148 | } | ... | ... |
yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/UserInfoDTO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.member.api.user.dto; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * 用户信息 Response DTO |
| ... | ... | @@ -47,6 +47,6 @@ public class UserInfoDTO { |
| 47 | 47 | /** |
| 48 | 48 | * 最后登录时间 |
| 49 | 49 | */ |
| 50 | - private Date loginDate; | |
| 50 | + private LocalDateTime loginDate; | |
| 51 | 51 | |
| 52 | 52 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.member.controller.app.address.vo; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | +import java.time.LocalDateTime; | |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 6 | |
| 7 | 7 | @ApiModel("用户 APP - 用户收件地址 Response VO") |
| ... | ... | @@ -14,6 +14,6 @@ public class AppAddressRespVO extends AppAddressBaseVO { |
| 14 | 14 | private Long id; |
| 15 | 15 | |
| 16 | 16 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 17 | + private LocalDateTime createTime; | |
| 18 | 18 | |
| 19 | 19 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Builder; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("用户 APP - 登录 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -26,6 +26,6 @@ public class AppAuthLoginRespVO { |
| 26 | 26 | private String refreshToken; |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "过期时间", required = true) |
| 29 | - private Date expiresTime; | |
| 29 | + private LocalDateTime expiresTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | 8 | import lombok.*; |
| 9 | 9 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * 会员用户 DO |
| ... | ... | @@ -67,7 +67,7 @@ public class MemberUserDO extends TenantBaseDO { |
| 67 | 67 | /** |
| 68 | 68 | * 最后登录时间 |
| 69 | 69 | */ |
| 70 | - private Date loginDate; | |
| 70 | + private LocalDateTime loginDate; | |
| 71 | 71 | |
| 72 | 72 | // TODO 芋艿:name 真实名字; |
| 73 | 73 | // TODO 芋艿:email 邮箱; | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
| ... | ... | @@ -19,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 19 | 19 | import javax.annotation.Resource; |
| 20 | 20 | import javax.validation.Valid; |
| 21 | 21 | import java.io.InputStream; |
| 22 | -import java.util.Date; | |
| 22 | +import java.time.LocalDateTime; | |
| 23 | 23 | |
| 24 | 24 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 25 | 25 | import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; |
| ... | ... | @@ -78,7 +78,7 @@ public class MemberUserServiceImpl implements MemberUserService { |
| 78 | 78 | @Override |
| 79 | 79 | public void updateUserLogin(Long id, String loginIp) { |
| 80 | 80 | memberUserMapper.updateById(new MemberUserDO().setId(id) |
| 81 | - .setLoginIp(loginIp).setLoginDate(new Date())); | |
| 81 | + .setLoginIp(loginIp).setLoginDate(LocalDateTime.now())); | |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | @Override | ... | ... |
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderDataCreateReqDTO.java
| ... | ... | @@ -7,7 +7,7 @@ import javax.validation.constraints.DecimalMin; |
| 7 | 7 | import javax.validation.constraints.NotEmpty; |
| 8 | 8 | import javax.validation.constraints.NotNull; |
| 9 | 9 | import java.io.Serializable; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 支付单创建 Request DTO |
| ... | ... | @@ -60,6 +60,6 @@ public class PayOrderDataCreateReqDTO implements Serializable { |
| 60 | 60 | * 支付过期时间 |
| 61 | 61 | */ |
| 62 | 62 | @NotNull(message = "支付过期时间不能为空") |
| 63 | - private Date expireTime; | |
| 63 | + private LocalDateTime expireTime; | |
| 64 | 64 | |
| 65 | 65 | } |
| 66 | 66 | \ No newline at end of file | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java
| ... | ... | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app; |
| 3 | 3 | import com.alibaba.excel.annotation.ExcelProperty; |
| 4 | 4 | import lombok.Data; |
| 5 | 5 | |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * 支付应用信息 Excel VO |
| ... | ... | @@ -35,6 +35,6 @@ public class PayAppExcelVO { |
| 35 | 35 | private Long merchantId; |
| 36 | 36 | |
| 37 | 37 | @ExcelProperty("创建时间") |
| 38 | - private Date createTime; | |
| 38 | + private LocalDateTime createTime; | |
| 39 | 39 | |
| 40 | 40 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 8 | |
| 9 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -32,6 +32,6 @@ public class PayAppExportReqVO { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "创建时间") |
| 35 | - private Date[] createTime; | |
| 35 | + private LocalDateTime[] createTime; | |
| 36 | 36 | |
| 37 | 37 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.Set; |
| 11 | 11 | |
| 12 | 12 | @ApiModel(value = "管理后台 - 支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息") |
| ... | ... | @@ -19,7 +19,7 @@ public class PayAppPageItemRespVO extends PayAppBaseVO { |
| 19 | 19 | private Long id; |
| 20 | 20 | |
| 21 | 21 | @ApiModelProperty(value = "创建时间", required = true) |
| 22 | - private Date createTime; | |
| 22 | + private LocalDateTime createTime; | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 所属商户 | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -34,6 +35,6 @@ public class PayAppPageReqVO extends PageParam { |
| 34 | 35 | |
| 35 | 36 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 36 | 37 | @ApiModelProperty(value = "创建时间") |
| 37 | - private Date[] createTime; | |
| 38 | + private LocalDateTime[] createTime; | |
| 38 | 39 | |
| 39 | 40 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 支付应用信息 Response VO") |
| ... | ... | @@ -14,6 +15,6 @@ public class PayAppRespVO extends PayAppBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 5 | -import io.swagger.annotations.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| 8 | 8 | |
| ... | ... | @@ -44,6 +44,6 @@ public class PayChannelExcelVO { |
| 44 | 44 | /// private String config; |
| 45 | 45 | |
| 46 | 46 | @ExcelProperty("创建时间") |
| 47 | - private Date createTime; | |
| 47 | + private LocalDateTime createTime; | |
| 48 | 48 | |
| 49 | 49 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 8 | |
| 9 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -35,6 +35,6 @@ public class PayChannelExportReqVO { |
| 35 | 35 | |
| 36 | 36 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 37 | 37 | @ApiModelProperty(value = "创建时间") |
| 38 | - private Date[] createTime; | |
| 38 | + private LocalDateTime[] createTime; | |
| 39 | 39 | |
| 40 | 40 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -37,6 +38,6 @@ public class PayChannelPageReqVO extends PageParam { |
| 37 | 38 | |
| 38 | 39 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 39 | 40 | @ApiModelProperty(value = "创建时间") |
| 40 | - private Date[] createTime; | |
| 41 | + private LocalDateTime[] createTime; | |
| 41 | 42 | |
| 42 | 43 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | |
| 7 | 8 | @ApiModel("管理后台 - 支付渠道 Response VO") |
| ... | ... | @@ -14,7 +15,7 @@ public class PayChannelRespVO extends PayChannelBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | @ApiModelProperty(value = "配置", required = true) |
| 20 | 21 | private String config; | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java
| ... | ... | @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; |
| 5 | 5 | import com.alibaba.excel.annotation.ExcelProperty; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 支付商户信息 Excel VO |
| ... | ... | @@ -35,6 +35,6 @@ public class PayMerchantExcelVO { |
| 35 | 35 | private String remark; |
| 36 | 36 | |
| 37 | 37 | @ExcelProperty("创建时间") |
| 38 | - private Date createTime; | |
| 38 | + private LocalDateTime createTime; | |
| 39 | 39 | |
| 40 | 40 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 8 | |
| 9 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -29,6 +29,6 @@ public class PayMerchantExportReqVO { |
| 29 | 29 | |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | 31 | @ApiModelProperty(value = "创建时间") |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 5 | 6 | import io.swagger.annotations.*; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 7 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| ... | ... | @@ -31,6 +32,6 @@ public class PayMerchantPageReqVO extends PageParam { |
| 31 | 32 | |
| 32 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 33 | 34 | @ApiModelProperty(value = "创建时间") |
| 34 | - private Date[] createTime; | |
| 35 | + private LocalDateTime[] createTime; | |
| 35 | 36 | |
| 36 | 37 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 支付商户信息 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,7 +18,7 @@ public class PayMerchantRespVO extends PayMerchantBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "商户号", required = true, example = "M233666999") |
| 24 | 24 | private String no; | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -73,15 +73,15 @@ public class PayOrderBaseVO { |
| 73 | 73 | @ApiModelProperty(value = "订单失效时间", required = true) |
| 74 | 74 | @NotNull(message = "订单失效时间不能为空") |
| 75 | 75 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 76 | - private Date expireTime; | |
| 76 | + private LocalDateTime expireTime; | |
| 77 | 77 | |
| 78 | 78 | @ApiModelProperty(value = "订单支付成功时间") |
| 79 | 79 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 80 | - private Date successTime; | |
| 80 | + private LocalDateTime successTime; | |
| 81 | 81 | |
| 82 | 82 | @ApiModelProperty(value = "订单支付通知时间") |
| 83 | 83 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 84 | - private Date notifyTime; | |
| 84 | + private LocalDateTime notifyTime; | |
| 85 | 85 | |
| 86 | 86 | @ApiModelProperty(value = "支付成功的订单拓展单编号") |
| 87 | 87 | private Long successExtensionId; | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 支付订单详细信息 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -27,7 +27,7 @@ public class PayOrderDetailsRespVO extends PayOrderBaseVO { |
| 27 | 27 | private String channelCodeName; |
| 28 | 28 | |
| 29 | 29 | @ApiModelProperty(value = "创建时间") |
| 30 | - private Date createTime; | |
| 30 | + private LocalDateTime createTime; | |
| 31 | 31 | |
| 32 | 32 | /** |
| 33 | 33 | * 支付订单扩展 | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.pay.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 支付订单Excel VO |
| ... | ... | @@ -58,16 +58,16 @@ public class PayOrderExcelVO { |
| 58 | 58 | private String notifyUrl; |
| 59 | 59 | |
| 60 | 60 | @ExcelProperty("创建时间") |
| 61 | - private Date createTime; | |
| 61 | + private LocalDateTime createTime; | |
| 62 | 62 | |
| 63 | 63 | @ExcelProperty("订单支付成功时间") |
| 64 | - private Date successTime; | |
| 64 | + private LocalDateTime successTime; | |
| 65 | 65 | |
| 66 | 66 | @ExcelProperty("订单失效时间") |
| 67 | - private Date expireTime; | |
| 67 | + private LocalDateTime expireTime; | |
| 68 | 68 | |
| 69 | 69 | @ExcelProperty("订单支付通知时间") |
| 70 | - private Date notifyTime; | |
| 70 | + private LocalDateTime notifyTime; | |
| 71 | 71 | |
| 72 | 72 | @ExcelProperty(value = "渠道编号名称") |
| 73 | 73 | private String channelCodeName; | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -57,15 +57,15 @@ public class PayOrderExportReqVO { |
| 57 | 57 | |
| 58 | 58 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 59 | 59 | @ApiModelProperty(value = "订单失效时间") |
| 60 | - private Date[] expireTime; | |
| 60 | + private LocalDateTime[] expireTime; | |
| 61 | 61 | |
| 62 | 62 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 63 | 63 | @ApiModelProperty(value = "开始订单支付成功时间") |
| 64 | - private Date[] successTime; | |
| 64 | + private LocalDateTime[] successTime; | |
| 65 | 65 | |
| 66 | 66 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 67 | 67 | @ApiModelProperty(value = "开始订单支付通知时间") |
| 68 | - private Date[] notifyTime; | |
| 68 | + private LocalDateTime[] notifyTime; | |
| 69 | 69 | |
| 70 | 70 | @ApiModelProperty(value = "支付成功的订单拓展单编号") |
| 71 | 71 | private Long successExtensionId; |
| ... | ... | @@ -87,6 +87,6 @@ public class PayOrderExportReqVO { |
| 87 | 87 | |
| 88 | 88 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 89 | 89 | @ApiModelProperty(value = "创建时间") |
| 90 | - private Date[] createTime; | |
| 90 | + private LocalDateTime[] createTime; | |
| 91 | 91 | |
| 92 | 92 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 支付订单分页 Request VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,7 +18,7 @@ public class PayOrderPageItemRespVO extends PayOrderBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "商户名称") |
| 24 | 24 | private String merchantName; | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -62,15 +62,15 @@ public class PayOrderPageReqVO extends PageParam { |
| 62 | 62 | |
| 63 | 63 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 64 | 64 | @ApiModelProperty(value = "订单失效时间") |
| 65 | - private Date[] expireTime; | |
| 65 | + private LocalDateTime[] expireTime; | |
| 66 | 66 | |
| 67 | 67 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 68 | 68 | @ApiModelProperty(value = "订单支付成功时间") |
| 69 | - private Date[] successTime; | |
| 69 | + private LocalDateTime[] successTime; | |
| 70 | 70 | |
| 71 | 71 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 72 | 72 | @ApiModelProperty(value = "订单支付通知时间") |
| 73 | - private Date[] notifyTime; | |
| 73 | + private LocalDateTime[] notifyTime; | |
| 74 | 74 | |
| 75 | 75 | @ApiModelProperty(value = "支付成功的订单拓展单编号") |
| 76 | 76 | private Long successExtensionId; |
| ... | ... | @@ -92,6 +92,6 @@ public class PayOrderPageReqVO extends PageParam { |
| 92 | 92 | |
| 93 | 93 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 94 | 94 | @ApiModelProperty(value = "创建时间") |
| 95 | - private Date[] createTime; | |
| 95 | + private LocalDateTime[] createTime; | |
| 96 | 96 | |
| 97 | 97 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 支付订单 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class PayOrderRespVO extends PayOrderBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -97,14 +97,14 @@ public class PayRefundBaseVO { |
| 97 | 97 | |
| 98 | 98 | @ApiModelProperty(value = "退款失效时间") |
| 99 | 99 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 100 | - private Date expireTime; | |
| 100 | + private LocalDateTime expireTime; | |
| 101 | 101 | |
| 102 | 102 | @ApiModelProperty(value = "退款成功时间") |
| 103 | 103 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 104 | - private Date successTime; | |
| 104 | + private LocalDateTime successTime; | |
| 105 | 105 | |
| 106 | 106 | @ApiModelProperty(value = "退款通知时间") |
| 107 | 107 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 108 | - private Date notifyTime; | |
| 108 | + private LocalDateTime notifyTime; | |
| 109 | 109 | |
| 110 | 110 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 退款订单详情 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -31,9 +31,9 @@ public class PayRefundDetailsRespVO extends PayRefundBaseVO { |
| 31 | 31 | private String subject; |
| 32 | 32 | |
| 33 | 33 | @ApiModelProperty(value = "创建时间") |
| 34 | - private Date createTime; | |
| 34 | + private LocalDateTime createTime; | |
| 35 | 35 | |
| 36 | 36 | @ApiModelProperty(value = "更新时间") |
| 37 | - private Date updateTime; | |
| 37 | + private LocalDateTime updateTime; | |
| 38 | 38 | |
| 39 | 39 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.pay.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 退款订单 Excel VO |
| ... | ... | @@ -74,15 +74,15 @@ public class PayRefundExcelVO { |
| 74 | 74 | private String channelRefundNo; |
| 75 | 75 | |
| 76 | 76 | @ExcelProperty("创建时间") |
| 77 | - private Date createTime; | |
| 77 | + private LocalDateTime createTime; | |
| 78 | 78 | |
| 79 | 79 | @ExcelProperty("退款成功时间") |
| 80 | - private Date successTime; | |
| 80 | + private LocalDateTime successTime; | |
| 81 | 81 | |
| 82 | 82 | @ExcelProperty("退款通知时间") |
| 83 | - private Date notifyTime; | |
| 83 | + private LocalDateTime notifyTime; | |
| 84 | 84 | |
| 85 | 85 | @ExcelProperty("退款失效时间") |
| 86 | - private Date expireTime; | |
| 86 | + private LocalDateTime expireTime; | |
| 87 | 87 | |
| 88 | 88 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -78,18 +78,18 @@ public class PayRefundExportReqVO { |
| 78 | 78 | |
| 79 | 79 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 80 | 80 | @ApiModelProperty(value = "退款失效时间") |
| 81 | - private Date[] expireTime; | |
| 81 | + private LocalDateTime[] expireTime; | |
| 82 | 82 | |
| 83 | 83 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 84 | 84 | @ApiModelProperty(value = "退款成功时间") |
| 85 | - private Date[] successTime; | |
| 85 | + private LocalDateTime[] successTime; | |
| 86 | 86 | |
| 87 | 87 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 88 | 88 | @ApiModelProperty(value = "退款通知时间") |
| 89 | - private Date[] notifyTime; | |
| 89 | + private LocalDateTime[] notifyTime; | |
| 90 | 90 | |
| 91 | 91 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 92 | 92 | @ApiModelProperty(value = "创建时间") |
| 93 | - private Date[] createTime; | |
| 93 | + private LocalDateTime[] createTime; | |
| 94 | 94 | |
| 95 | 95 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 退款订单分页查询 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -27,6 +27,6 @@ public class PayRefundPageItemRespVO extends PayRefundBaseVO { |
| 27 | 27 | private String channelCodeName; |
| 28 | 28 | |
| 29 | 29 | @ApiModelProperty(value = "创建时间", required = true) |
| 30 | - private Date createTime; | |
| 30 | + private LocalDateTime createTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -83,18 +83,18 @@ public class PayRefundPageReqVO extends PageParam { |
| 83 | 83 | |
| 84 | 84 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 85 | 85 | @ApiModelProperty(value = "退款失效时间") |
| 86 | - private Date[] expireTime; | |
| 86 | + private LocalDateTime[] expireTime; | |
| 87 | 87 | |
| 88 | 88 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 89 | 89 | @ApiModelProperty(value = "退款成功时间") |
| 90 | - private Date[] successTime; | |
| 90 | + private LocalDateTime[] successTime; | |
| 91 | 91 | |
| 92 | 92 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 93 | 93 | @ApiModelProperty(value = "退款通知时间") |
| 94 | - private Date[] notifyTime; | |
| 94 | + private LocalDateTime[] notifyTime; | |
| 95 | 95 | |
| 96 | 96 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 97 | 97 | @ApiModelProperty(value = "创建时间") |
| 98 | - private Date[] createTime; | |
| 98 | + private LocalDateTime[] createTime; | |
| 99 | 99 | |
| 100 | 100 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 退款订单 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class PayRefundRespVO extends PayRefundBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
| ... | ... | @@ -13,7 +13,7 @@ import lombok.Data; |
| 13 | 13 | import lombok.EqualsAndHashCode; |
| 14 | 14 | import lombok.experimental.Accessors; |
| 15 | 15 | |
| 16 | -import java.util.Date; | |
| 16 | +import java.time.LocalDateTime; | |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | 19 | * 商户支付、退款等的通知 |
| ... | ... | @@ -80,11 +80,11 @@ public class PayNotifyTaskDO extends BaseDO { |
| 80 | 80 | /** |
| 81 | 81 | * 下一次通知时间 |
| 82 | 82 | */ |
| 83 | - private Date nextNotifyTime; | |
| 83 | + private LocalDateTime nextNotifyTime; | |
| 84 | 84 | /** |
| 85 | 85 | * 最后一次执行时间 |
| 86 | 86 | */ |
| 87 | - private Date lastExecuteTime; | |
| 87 | + private LocalDateTime lastExecuteTime; | |
| 88 | 88 | /** |
| 89 | 89 | * 当前通知次数 |
| 90 | 90 | */ | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
| ... | ... | @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; |
| 12 | 12 | import com.baomidou.mybatisplus.annotation.TableName; |
| 13 | 13 | import lombok.*; |
| 14 | 14 | |
| 15 | -import java.util.Date; | |
| 15 | +import java.time.LocalDateTime; | |
| 16 | 16 | |
| 17 | 17 | /** |
| 18 | 18 | * 支付订单 DO |
| ... | ... | @@ -117,15 +117,15 @@ public class PayOrderDO extends BaseDO { |
| 117 | 117 | /** |
| 118 | 118 | * 订单失效时间 |
| 119 | 119 | */ |
| 120 | - private Date expireTime; | |
| 120 | + private LocalDateTime expireTime; | |
| 121 | 121 | /** |
| 122 | 122 | * 订单支付成功时间 |
| 123 | 123 | */ |
| 124 | - private Date successTime; | |
| 124 | + private LocalDateTime successTime; | |
| 125 | 125 | /** |
| 126 | 126 | * 订单支付通知时间,即支付渠道的通知时间 |
| 127 | 127 | */ |
| 128 | - private Date notifyTime; | |
| 128 | + private LocalDateTime notifyTime; | |
| 129 | 129 | /** |
| 130 | 130 | * 支付成功的订单拓展单编号 |
| 131 | 131 | * | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
| ... | ... | @@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.annotation.TableId; |
| 13 | 13 | import com.baomidou.mybatisplus.annotation.TableName; |
| 14 | 14 | import lombok.*; |
| 15 | 15 | |
| 16 | -import java.util.Date; | |
| 16 | +import java.time.LocalDateTime; | |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | 19 | * 支付退款单 DO |
| ... | ... | @@ -183,15 +183,15 @@ public class PayRefundDO extends BaseDO { |
| 183 | 183 | * TODO |
| 184 | 184 | * 退款失效时间 |
| 185 | 185 | */ |
| 186 | - private Date expireTime; | |
| 186 | + private LocalDateTime expireTime; | |
| 187 | 187 | /** |
| 188 | 188 | * 退款成功时间 |
| 189 | 189 | */ |
| 190 | - private Date successTime; | |
| 190 | + private LocalDateTime successTime; | |
| 191 | 191 | /** |
| 192 | 192 | * 退款通知时间 |
| 193 | 193 | */ |
| 194 | - private Date notifyTime; | |
| 194 | + private LocalDateTime notifyTime; | |
| 195 | 195 | |
| 196 | 196 | |
| 197 | 197 | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java
| ... | ... | @@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| 10 | 10 | import org.apache.ibatis.annotations.Mapper; |
| 11 | 11 | import org.apache.ibatis.annotations.Select; |
| 12 | 12 | |
| 13 | +import java.time.LocalDateTime; | |
| 13 | 14 | import java.util.Collection; |
| 14 | -import java.util.Date; | |
| 15 | 15 | import java.util.List; |
| 16 | 16 | |
| 17 | 17 | @Mapper |
| ... | ... | @@ -22,7 +22,7 @@ public interface PayChannelMapper extends BaseMapperX<PayChannelDO> { |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | @Select("SELECT COUNT(*) FROM pay_channel WHERE update_time > #{maxUpdateTime}") |
| 25 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 25 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 26 | 26 | |
| 27 | 27 | default PageResult<PayChannelDO> selectPage(PayChannelPageReqVO reqVO) { |
| 28 | 28 | return selectPage(reqVO, new QueryWrapperX<PayChannelDO>() | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskCoreMapper.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 6 | 6 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| 7 | 7 | import org.apache.ibatis.annotations.Mapper; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | |
| 12 | 12 | @Mapper |
| ... | ... | @@ -24,7 +24,7 @@ public interface PayNotifyTaskCoreMapper extends BaseMapperX<PayNotifyTaskDO> { |
| 24 | 24 | return selectList(new QueryWrapper<PayNotifyTaskDO>() |
| 25 | 25 | .in("status", PayNotifyStatusEnum.WAITING.getStatus(), PayNotifyStatusEnum.REQUEST_SUCCESS.getStatus(), |
| 26 | 26 | PayNotifyStatusEnum.REQUEST_FAILURE.getStatus()) |
| 27 | - .le("next_notify_time", new Date())); | |
| 27 | + .le("next_notify_time", LocalDateTime.now())); | |
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceImpl.java
| ... | ... | @@ -28,8 +28,8 @@ import org.springframework.validation.annotation.Validated; |
| 28 | 28 | import javax.annotation.PostConstruct; |
| 29 | 29 | import javax.annotation.Resource; |
| 30 | 30 | import javax.validation.Validator; |
| 31 | +import java.time.LocalDateTime; | |
| 31 | 32 | import java.util.Collection; |
| 32 | -import java.util.Date; | |
| 33 | 33 | import java.util.List; |
| 34 | 34 | |
| 35 | 35 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -55,7 +55,7 @@ public class PayChannelServiceImpl implements PayChannelService { |
| 55 | 55 | /** |
| 56 | 56 | * 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 57 | 57 | */ |
| 58 | - private volatile Date maxUpdateTime; | |
| 58 | + private volatile LocalDateTime maxUpdateTime; | |
| 59 | 59 | |
| 60 | 60 | @Resource |
| 61 | 61 | private PayClientFactory payClientFactory; |
| ... | ... | @@ -101,7 +101,7 @@ public class PayChannelServiceImpl implements PayChannelService { |
| 101 | 101 | * @param maxUpdateTime 当前支付渠道的最大更新时间 |
| 102 | 102 | * @return 支付渠道列表 |
| 103 | 103 | */ |
| 104 | - private List<PayChannelDO> loadPayChannelIfUpdate(Date maxUpdateTime) { | |
| 104 | + private List<PayChannelDO> loadPayChannelIfUpdate(LocalDateTime maxUpdateTime) { | |
| 105 | 105 | // 第一步,判断是否要更新。 |
| 106 | 106 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 107 | 107 | log.info("[loadPayChannelIfUpdate][首次加载全量支付渠道]"); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
| ... | ... | @@ -29,8 +29,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 29 | 29 | |
| 30 | 30 | import javax.annotation.Resource; |
| 31 | 31 | import javax.validation.Valid; |
| 32 | -import java.util.Calendar; | |
| 33 | -import java.util.Date; | |
| 32 | +import java.time.LocalDateTime; | |
| 34 | 33 | import java.util.List; |
| 35 | 34 | import java.util.Objects; |
| 36 | 35 | import java.util.concurrent.CountDownLatch; |
| ... | ... | @@ -83,7 +82,7 @@ public class PayNotifyServiceImpl implements PayNotifyService { |
| 83 | 82 | public void createPayNotifyTask(PayNotifyTaskCreateReqDTO reqDTO) { |
| 84 | 83 | PayNotifyTaskDO task = new PayNotifyTaskDO(); |
| 85 | 84 | task.setType(reqDTO.getType()).setDataId(reqDTO.getDataId()); |
| 86 | - task.setStatus(PayNotifyStatusEnum.WAITING.getStatus()).setNextNotifyTime(new Date()) | |
| 85 | + task.setStatus(PayNotifyStatusEnum.WAITING.getStatus()).setNextNotifyTime(LocalDateTime.now()) | |
| 87 | 86 | .setNotifyTimes(0).setMaxNotifyTimes(PayNotifyTaskDO.NOTIFY_FREQUENCY.length + 1); |
| 88 | 87 | // 补充 merchantId + appId + notifyUrl 字段 |
| 89 | 88 | if (Objects.equals(task.getType(), PayNotifyTypeEnum.ORDER.getType())) { |
| ... | ... | @@ -232,7 +231,7 @@ public class PayNotifyServiceImpl implements PayNotifyService { |
| 232 | 231 | // 设置通用的更新 PayNotifyTaskDO 的字段 |
| 233 | 232 | PayNotifyTaskDO updateTask = new PayNotifyTaskDO() |
| 234 | 233 | .setId(task.getId()) |
| 235 | - .setLastExecuteTime(new Date()) | |
| 234 | + .setLastExecuteTime(LocalDateTime.now()) | |
| 236 | 235 | .setNotifyTimes(task.getNotifyTimes() + 1); |
| 237 | 236 | |
| 238 | 237 | // 情况一:调用成功 |
| ... | ... | @@ -247,7 +246,7 @@ public class PayNotifyServiceImpl implements PayNotifyService { |
| 247 | 246 | return updateTask.getStatus(); |
| 248 | 247 | } |
| 249 | 248 | // 2.2 未超过最大回调次数 |
| 250 | - updateTask.setNextNotifyTime(DateUtils.addDate(Calendar.SECOND, PayNotifyTaskDO.NOTIFY_FREQUENCY[updateTask.getNotifyTimes()])); | |
| 249 | + updateTask.setNextNotifyTime(LocalDateTime.now().plusSeconds(PayNotifyTaskDO.NOTIFY_FREQUENCY[updateTask.getNotifyTimes()])); | |
| 251 | 250 | updateTask.setStatus(invokeException != null ? PayNotifyStatusEnum.REQUEST_FAILURE.getStatus() |
| 252 | 251 | : PayNotifyStatusEnum.REQUEST_SUCCESS.getStatus()); |
| 253 | 252 | return updateTask.getStatus(); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
| ... | ... | @@ -38,8 +38,8 @@ import org.springframework.transaction.annotation.Transactional; |
| 38 | 38 | import org.springframework.validation.annotation.Validated; |
| 39 | 39 | |
| 40 | 40 | import javax.annotation.Resource; |
| 41 | +import java.time.LocalDateTime; | |
| 41 | 42 | import java.util.Collection; |
| 42 | -import java.util.Date; | |
| 43 | 43 | import java.util.List; |
| 44 | 44 | import java.util.Objects; |
| 45 | 45 | |
| ... | ... | @@ -204,7 +204,7 @@ public class PayOrderServiceImpl implements PayOrderService { |
| 204 | 204 | // 目前的算法 |
| 205 | 205 | // 时间序列,年月日时分秒 14 位 |
| 206 | 206 | // 纯随机,6 位 TODO 芋艿:此处估计是会有问题的,后续在调整 |
| 207 | - return DateUtil.format(new Date(), "yyyyMMddHHmmss") + // 时间序列 | |
| 207 | + return DateUtil.format(LocalDateTime.now(), "yyyyMMddHHmmss") + // 时间序列 | |
| 208 | 208 | RandomUtil.randomInt(100000, 999999) // 随机。为什么是这个范围,因为偷懒 |
| 209 | 209 | ; |
| 210 | 210 | } |
| ... | ... | @@ -259,7 +259,7 @@ public class PayOrderServiceImpl implements PayOrderService { |
| 259 | 259 | PayOrderDO.builder().status(PayOrderStatusEnum.SUCCESS.getStatus()).channelId(channelId).channelCode(channel.getCode()) |
| 260 | 260 | .successTime(notifyRespDTO.getSuccessTime()).successExtensionId(orderExtension.getId()) |
| 261 | 261 | .channelOrderNo(notifyRespDTO.getChannelOrderNo()).channelUserId(notifyRespDTO.getChannelUserId()) |
| 262 | - .notifyTime(new Date()).build()); | |
| 262 | + .notifyTime(LocalDateTime.now()).build()); | |
| 263 | 263 | if (updateCounts == 0) { // 校验状态,必须是待支付 |
| 264 | 264 | throw ServiceExceptionUtil.exception(ErrorCodeConstants.PAY_ORDER_STATUS_IS_NOT_WAITING); |
| 265 | 265 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/dto/PayOrderCreateReqDTO.java
| ... | ... | @@ -7,7 +7,7 @@ import javax.validation.constraints.DecimalMin; |
| 7 | 7 | import javax.validation.constraints.NotEmpty; |
| 8 | 8 | import javax.validation.constraints.NotNull; |
| 9 | 9 | import java.io.Serializable; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 支付单创建 Request DTO |
| ... | ... | @@ -59,6 +59,6 @@ public class PayOrderCreateReqDTO implements Serializable { |
| 59 | 59 | * 支付过期时间 |
| 60 | 60 | */ |
| 61 | 61 | @NotNull(message = "支付过期时间不能为空") |
| 62 | - private Date expireTime; | |
| 62 | + private LocalDateTime expireTime; | |
| 63 | 63 | |
| 64 | 64 | } | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
| ... | ... | @@ -40,7 +40,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 40 | 40 | import org.springframework.validation.annotation.Validated; |
| 41 | 41 | |
| 42 | 42 | import javax.annotation.Resource; |
| 43 | -import java.util.Date; | |
| 43 | +import java.time.LocalDateTime; | |
| 44 | 44 | import java.util.List; |
| 45 | 45 | import java.util.Objects; |
| 46 | 46 | |
| ... | ... | @@ -223,7 +223,7 @@ public class PayRefundServiceImpl implements PayRefundService { |
| 223 | 223 | .setSuccessTime(refundNotify.getRefundSuccessTime()) |
| 224 | 224 | .setChannelRefundNo(refundNotify.getChannelOrderNo()) |
| 225 | 225 | .setTradeNo(refundNotify.getTradeNo()) |
| 226 | - .setNotifyTime(new Date()) | |
| 226 | + .setNotifyTime(LocalDateTime.now()) | |
| 227 | 227 | .setStatus(PayRefundStatusEnum.SUCCESS.getStatus()); |
| 228 | 228 | refundMapper.updateById(updateRefundDO); |
| 229 | 229 | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/PaySeqUtils.java
| ... | ... | @@ -2,9 +2,8 @@ package cn.iocoder.yudao.module.pay.util; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.date.DatePattern; |
| 4 | 4 | import cn.hutool.core.date.DateUtil; |
| 5 | -import cn.hutool.core.util.RandomUtil; | |
| 6 | 5 | |
| 7 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 8 | 7 | import java.util.concurrent.atomic.AtomicLong; |
| 9 | 8 | |
| 10 | 9 | /** |
| ... | ... | @@ -25,7 +24,7 @@ public class PaySeqUtils { |
| 25 | 24 | */ |
| 26 | 25 | public static String genMerchantRefundNo() { |
| 27 | 26 | return String.format("%s%s%04d", "MR", |
| 28 | - DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 27 | + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 29 | 28 | (int) MER_REFUND_NO_SEQ.getAndIncrement() % 10000); |
| 30 | 29 | } |
| 31 | 30 | |
| ... | ... | @@ -35,7 +34,7 @@ public class PaySeqUtils { |
| 35 | 34 | */ |
| 36 | 35 | public static String genRefundReqNo() { |
| 37 | 36 | return String.format("%s%s%04d", "RR", |
| 38 | - DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 37 | + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 39 | 38 | (int) REFUND_REQ_NO_SEQ.getAndIncrement() % 10000); |
| 40 | 39 | } |
| 41 | 40 | |
| ... | ... | @@ -45,7 +44,7 @@ public class PaySeqUtils { |
| 45 | 44 | */ |
| 46 | 45 | public static String genMerchantOrderNo() { |
| 47 | 46 | return String.format("%s%s%04d", "MO", |
| 48 | - DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 47 | + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN), | |
| 49 | 48 | (int) MER_ORDER_NO_SEQ.getAndIncrement() % 10000); |
| 50 | 49 | } |
| 51 | 50 | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java
| ... | ... | @@ -18,11 +18,11 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 18 | 18 | import org.springframework.context.annotation.Import; |
| 19 | 19 | |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | +import java.time.LocalDateTime; | |
| 21 | 22 | import java.util.Collections; |
| 22 | -import java.util.Date; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | |
| 25 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 25 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 26 | 26 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 27 | 27 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -123,7 +123,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 123 | 123 | o.setPayNotifyUrl("https://www.hc.com"); |
| 124 | 124 | o.setRefundNotifyUrl("https://www.xm.com"); |
| 125 | 125 | o.setMerchantId(merchantId); |
| 126 | - o.setCreateTime(buildTime(2021,11,20)); | |
| 126 | + o.setCreateTime(buildLocalDateTime(2021,11,20)); | |
| 127 | 127 | }); |
| 128 | 128 | |
| 129 | 129 | // mock 数据 |
| ... | ... | @@ -134,7 +134,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 134 | 134 | o.setShortName("灿灿子"); |
| 135 | 135 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 136 | 136 | o.setRemark("灿哥的杂货铺"); |
| 137 | - o.setCreateTime(buildTime(2021,11,3)); | |
| 137 | + o.setCreateTime(buildLocalDateTime(2021,11,3)); | |
| 138 | 138 | }); |
| 139 | 139 | |
| 140 | 140 | Mockito.when(payMerchantMapper.getMerchantListByName(dbMerchant.getName())) |
| ... | ... | @@ -154,7 +154,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 154 | 154 | // 测试 merchantId 不匹配 |
| 155 | 155 | appMapper.insert(cloneIgnoreId(dbApp, o -> o.setMerchantId(mismatchMerchantId))); |
| 156 | 156 | // 测试 createTime 不匹配 |
| 157 | - appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildTime(2021,12,21)))); | |
| 157 | + appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildLocalDateTime(2021,12,21)))); | |
| 158 | 158 | // 准备参数 |
| 159 | 159 | PayAppPageReqVO reqVO = new PayAppPageReqVO(); |
| 160 | 160 | reqVO.setName("灿灿姐的杂货铺"); |
| ... | ... | @@ -163,7 +163,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 163 | 163 | reqVO.setPayNotifyUrl("https://www.hc.com"); |
| 164 | 164 | reqVO.setRefundNotifyUrl("https://www.xm.com"); |
| 165 | 165 | reqVO.setMerchantName(dbMerchant.getName()); |
| 166 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)})); | |
| 166 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)})); | |
| 167 | 167 | |
| 168 | 168 | // 调用 |
| 169 | 169 | PageResult<PayAppDO> pageResult = appService.getAppPage(reqVO); |
| ... | ... | @@ -186,7 +186,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 186 | 186 | o.setPayNotifyUrl("https://www.hc.com"); |
| 187 | 187 | o.setRefundNotifyUrl("https://www.xm.com"); |
| 188 | 188 | o.setMerchantId(merchantId); |
| 189 | - o.setCreateTime(buildTime(2021,11,20)); | |
| 189 | + o.setCreateTime(buildLocalDateTime(2021,11,20)); | |
| 190 | 190 | }); |
| 191 | 191 | |
| 192 | 192 | // mock 数据 |
| ... | ... | @@ -197,7 +197,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 197 | 197 | o.setShortName("灿灿子"); |
| 198 | 198 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 199 | 199 | o.setRemark("灿哥的杂货铺"); |
| 200 | - o.setCreateTime(buildTime(2021,11,3)); | |
| 200 | + o.setCreateTime(buildLocalDateTime(2021,11,3)); | |
| 201 | 201 | }); |
| 202 | 202 | |
| 203 | 203 | Mockito.when(payMerchantMapper.getMerchantListByName(dbMerchant.getName())) |
| ... | ... | @@ -217,7 +217,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 217 | 217 | // 测试 merchantId 不匹配 |
| 218 | 218 | appMapper.insert(cloneIgnoreId(dbApp, o -> o.setMerchantId(mismatchMerchantId))); |
| 219 | 219 | // 测试 createTime 不匹配 |
| 220 | - appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildTime(2021,12,21)))); | |
| 220 | + appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildLocalDateTime(2021,12,21)))); | |
| 221 | 221 | // 准备参数 |
| 222 | 222 | PayAppExportReqVO reqVO = new PayAppExportReqVO(); |
| 223 | 223 | reqVO.setName("灿灿姐的杂货铺"); |
| ... | ... | @@ -226,7 +226,7 @@ public class PayAppServiceTest extends BaseDbUnitTest { |
| 226 | 226 | reqVO.setPayNotifyUrl("https://www.hc.com"); |
| 227 | 227 | reqVO.setRefundNotifyUrl("https://www.xm.com"); |
| 228 | 228 | reqVO.setMerchantName(dbMerchant.getName()); |
| 229 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)})); | |
| 229 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)})); | |
| 230 | 230 | |
| 231 | 231 | // 调用 |
| 232 | 232 | List<PayAppDO> list = appService.getAppList(reqVO); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java
| ... | ... | @@ -20,10 +20,10 @@ import org.springframework.context.annotation.Import; |
| 20 | 20 | |
| 21 | 21 | import javax.annotation.Resource; |
| 22 | 22 | import javax.validation.Validator; |
| 23 | -import java.util.Date; | |
| 23 | +import java.time.LocalDateTime; | |
| 24 | 24 | import java.util.List; |
| 25 | 25 | |
| 26 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 26 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 27 | 27 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 29 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -215,7 +215,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 215 | 215 | o.setMerchantId(1L); |
| 216 | 216 | o.setAppId(1L); |
| 217 | 217 | o.setConfig(payClientConfig); |
| 218 | - o.setCreateTime(buildTime(2021,11,20)); | |
| 218 | + o.setCreateTime(buildLocalDateTime(2021,11,20)); | |
| 219 | 219 | }); |
| 220 | 220 | channelMapper.insert(dbChannel); |
| 221 | 221 | // 执行拷贝的时候会出现异常,所以在插入后要重置为null 后续在写入新的 |
| ... | ... | @@ -253,7 +253,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 253 | 253 | // 测试 createTime 不匹配 |
| 254 | 254 | channelMapper.insert(cloneIgnoreId(dbChannel, o -> { |
| 255 | 255 | o.setConfig(payClientConfig); |
| 256 | - o.setCreateTime(buildTime(2021, 10, 20)); | |
| 256 | + o.setCreateTime(buildLocalDateTime(2021, 10, 20)); | |
| 257 | 257 | })); |
| 258 | 258 | // 准备参数 |
| 259 | 259 | PayChannelPageReqVO reqVO = new PayChannelPageReqVO(); |
| ... | ... | @@ -264,7 +264,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 264 | 264 | reqVO.setMerchantId(1L); |
| 265 | 265 | reqVO.setAppId(1L); |
| 266 | 266 | reqVO.setConfig(JSON.toJSONString(payClientConfig)); |
| 267 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)})); | |
| 267 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)})); | |
| 268 | 268 | |
| 269 | 269 | // 调用 |
| 270 | 270 | PageResult<PayChannelDO> pageResult = channelService.getChannelPage(reqVO); |
| ... | ... | @@ -288,7 +288,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 288 | 288 | o.setMerchantId(1L); |
| 289 | 289 | o.setAppId(1L); |
| 290 | 290 | o.setConfig(payClientConfig); |
| 291 | - o.setCreateTime(buildTime(2021,11,20)); | |
| 291 | + o.setCreateTime(buildLocalDateTime(2021,11,20)); | |
| 292 | 292 | }); |
| 293 | 293 | channelMapper.insert(dbChannel); |
| 294 | 294 | // 执行拷贝的时候会出现异常,所以在插入后要重置为null 后续在写入新的 |
| ... | ... | @@ -326,7 +326,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 326 | 326 | // 测试 createTime 不匹配 |
| 327 | 327 | channelMapper.insert(cloneIgnoreId(dbChannel, o -> { |
| 328 | 328 | o.setConfig(payClientConfig); |
| 329 | - o.setCreateTime(buildTime(2021, 10, 20)); | |
| 329 | + o.setCreateTime(buildLocalDateTime(2021, 10, 20)); | |
| 330 | 330 | })); |
| 331 | 331 | // 准备参数 |
| 332 | 332 | PayChannelExportReqVO reqVO = new PayChannelExportReqVO(); |
| ... | ... | @@ -337,7 +337,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest { |
| 337 | 337 | reqVO.setMerchantId(1L); |
| 338 | 338 | reqVO.setAppId(1L); |
| 339 | 339 | reqVO.setConfig(JSON.toJSONString(payClientConfig)); |
| 340 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)})); | |
| 340 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)})); | |
| 341 | 341 | |
| 342 | 342 | // 调用 |
| 343 | 343 | List<PayChannelDO> list = channelService.getChannelList(reqVO); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java
| ... | ... | @@ -14,10 +14,10 @@ import org.junit.jupiter.api.Test; |
| 14 | 14 | import org.springframework.context.annotation.Import; |
| 15 | 15 | |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | 18 | import java.util.List; |
| 19 | 19 | |
| 20 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 20 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 21 | 21 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 22 | 22 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 23 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -116,7 +116,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 116 | 116 | o.setShortName("灿灿子"); |
| 117 | 117 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 118 | 118 | o.setRemark("灿哥的杂货铺"); |
| 119 | - o.setCreateTime(buildTime(2021,11,3)); | |
| 119 | + o.setCreateTime(buildLocalDateTime(2021,11,3)); | |
| 120 | 120 | }); |
| 121 | 121 | merchantMapper.insert(dbMerchant); |
| 122 | 122 | // 测试 no 不匹配 |
| ... | ... | @@ -130,7 +130,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 130 | 130 | // 测试 remark 不匹配 |
| 131 | 131 | merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setRemark("斌哥的杂货铺"))); |
| 132 | 132 | // 测试 createTime 不匹配 |
| 133 | - merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildTime(2022,12,4)))); | |
| 133 | + merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildLocalDateTime(2022,12,4)))); | |
| 134 | 134 | // 准备参数 |
| 135 | 135 | PayMerchantPageReqVO reqVO = new PayMerchantPageReqVO(); |
| 136 | 136 | reqVO.setNo("M1008611"); |
| ... | ... | @@ -138,7 +138,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 138 | 138 | reqVO.setShortName("灿灿子"); |
| 139 | 139 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 140 | 140 | reqVO.setRemark("灿哥的杂货铺"); |
| 141 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,2),buildTime(2021,11,4)})); | |
| 141 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,2),buildLocalDateTime(2021,11,4)})); | |
| 142 | 142 | |
| 143 | 143 | // 调用 |
| 144 | 144 | PageResult<PayMerchantDO> pageResult = merchantService.getMerchantPage(reqVO); |
| ... | ... | @@ -157,7 +157,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 157 | 157 | o.setShortName("灿灿子"); |
| 158 | 158 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 159 | 159 | o.setRemark("灿哥的杂货铺"); |
| 160 | - o.setCreateTime(buildTime(2021,11,3)); | |
| 160 | + o.setCreateTime(buildLocalDateTime(2021,11,3)); | |
| 161 | 161 | }); |
| 162 | 162 | merchantMapper.insert(dbMerchant); |
| 163 | 163 | // 测试 no 不匹配 |
| ... | ... | @@ -171,7 +171,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 171 | 171 | // 测试 remark 不匹配 |
| 172 | 172 | merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setRemark("斌哥的杂货铺"))); |
| 173 | 173 | // 测试 createTime 不匹配 |
| 174 | - merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildTime(2022,12,4)))); | |
| 174 | + merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildLocalDateTime(2022,12,4)))); | |
| 175 | 175 | // 准备参数 |
| 176 | 176 | PayMerchantExportReqVO reqVO = new PayMerchantExportReqVO(); |
| 177 | 177 | reqVO.setNo("M1008611"); |
| ... | ... | @@ -179,7 +179,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest { |
| 179 | 179 | reqVO.setShortName("灿灿子"); |
| 180 | 180 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 181 | 181 | reqVO.setRemark("灿哥的杂货铺"); |
| 182 | - reqVO.setCreateTime((new Date[]{buildTime(2021,11,2),buildTime(2021,11,4)})); | |
| 182 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,2),buildLocalDateTime(2021,11,4)})); | |
| 183 | 183 | |
| 184 | 184 | // 调用 |
| 185 | 185 | List<PayMerchantDO> list = merchantService.getMerchantList(reqVO); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
| ... | ... | @@ -23,10 +23,10 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 23 | 23 | import org.springframework.context.annotation.Import; |
| 24 | 24 | |
| 25 | 25 | import javax.annotation.Resource; |
| 26 | -import java.util.Date; | |
| 26 | +import java.time.LocalDateTime; | |
| 27 | 27 | import java.util.List; |
| 28 | 28 | |
| 29 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 29 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 30 | 30 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 31 | 31 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 32 | 32 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; |
| ... | ... | @@ -58,7 +58,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 58 | 58 | private PayNotifyService notifyService; |
| 59 | 59 | |
| 60 | 60 | public String generateNo() { |
| 61 | - return DateUtil.format(new Date(), "yyyyMMddHHmmss") + RandomUtil.randomInt(100000, 999999); | |
| 61 | + return DateUtil.format(LocalDateTime.now(), "yyyyMMddHHmmss") + RandomUtil.randomInt(100000, 999999); | |
| 62 | 62 | } |
| 63 | 63 | |
| 64 | 64 | @Test |
| ... | ... | @@ -83,17 +83,17 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 83 | 83 | o.setChannelFeeAmount(1L); |
| 84 | 84 | o.setStatus(PayOrderStatusEnum.SUCCESS.getStatus()); |
| 85 | 85 | o.setUserIp("127.0.0.1"); |
| 86 | - o.setCreateTime(DateUtils.buildTime(2018, 1, 1, 10, 1, 0)); | |
| 87 | - o.setExpireTime(DateUtils.buildTime(2018, 1, 1, 10, 30, 0)); | |
| 88 | - o.setSuccessTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 2)); | |
| 89 | - o.setNotifyTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15)); | |
| 86 | + o.setCreateTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 1, 0)); | |
| 87 | + o.setExpireTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 30, 0)); | |
| 88 | + o.setSuccessTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 2)); | |
| 89 | + o.setNotifyTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 15)); | |
| 90 | 90 | o.setSuccessExtensionId(1L); |
| 91 | 91 | o.setRefundStatus(PayRefundTypeEnum.NO.getStatus()); |
| 92 | 92 | o.setRefundTimes(0); |
| 93 | 93 | o.setRefundAmount(0L); |
| 94 | 94 | o.setChannelUserId("1008611"); |
| 95 | 95 | o.setChannelOrderNo(channelOrderId); |
| 96 | - o.setUpdateTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15)); | |
| 96 | + o.setUpdateTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 15)); | |
| 97 | 97 | }); |
| 98 | 98 | orderMapper.insert(dbOrder); |
| 99 | 99 | // 测试 merchantId 不匹配 |
| ... | ... | @@ -113,7 +113,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 113 | 113 | // 测试 refundStatus 不匹配 |
| 114 | 114 | orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setRefundStatus(PayRefundTypeEnum.ALL.getStatus()))); |
| 115 | 115 | // 测试 createTime 不匹配 |
| 116 | - orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildTime(2019, 1, 1, 10, 10, | |
| 116 | + orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2019, 1, 1, 10, 10, | |
| 117 | 117 | 1)))); |
| 118 | 118 | // 准备参数 |
| 119 | 119 | PayOrderPageReqVO reqVO = new PayOrderPageReqVO(); |
| ... | ... | @@ -125,7 +125,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 125 | 125 | reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus()); |
| 126 | 126 | reqVO.setStatus(PayOrderStatusEnum.SUCCESS.getStatus()); |
| 127 | 127 | reqVO.setRefundStatus(PayRefundTypeEnum.NO.getStatus()); |
| 128 | - reqVO.setCreateTime((new Date[]{buildTime(2018, 1, 1, 10, 1, 0),buildTime(2018, 1, 1, 10, 1, 0)})); | |
| 128 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2018, 1, 1, 10, 1, 0),buildLocalDateTime(2018, 1, 1, 10, 1, 0)})); | |
| 129 | 129 | // 调用 |
| 130 | 130 | PageResult<PayOrderDO> pageResult = orderService.getOrderPage(reqVO); |
| 131 | 131 | // 断言 |
| ... | ... | @@ -155,17 +155,17 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 155 | 155 | o.setChannelFeeAmount(1L); |
| 156 | 156 | o.setStatus(PayOrderStatusEnum.SUCCESS.getStatus()); |
| 157 | 157 | o.setUserIp("127.0.0.1"); |
| 158 | - o.setCreateTime(DateUtils.buildTime(2018, 1, 1, 10, 1, 0)); | |
| 159 | - o.setExpireTime(DateUtils.buildTime(2018, 1, 1, 10, 30, 0)); | |
| 160 | - o.setSuccessTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 2)); | |
| 161 | - o.setNotifyTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15)); | |
| 158 | + o.setCreateTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 1, 0)); | |
| 159 | + o.setExpireTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 30, 0)); | |
| 160 | + o.setSuccessTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 2)); | |
| 161 | + o.setNotifyTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 15)); | |
| 162 | 162 | o.setSuccessExtensionId(1L); |
| 163 | 163 | o.setRefundStatus(PayRefundTypeEnum.NO.getStatus()); |
| 164 | 164 | o.setRefundTimes(0); |
| 165 | 165 | o.setRefundAmount(0L); |
| 166 | 166 | o.setChannelUserId("1008611"); |
| 167 | 167 | o.setChannelOrderNo(channelOrderId); |
| 168 | - o.setUpdateTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15)); | |
| 168 | + o.setUpdateTime(DateUtils.buildLocalDateTime(2018, 1, 1, 10, 10, 15)); | |
| 169 | 169 | |
| 170 | 170 | }); |
| 171 | 171 | orderMapper.insert(dbOrder); |
| ... | ... | @@ -186,7 +186,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 186 | 186 | // 测试 refundStatus 不匹配 |
| 187 | 187 | orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setRefundStatus(PayRefundTypeEnum.ALL.getStatus()))); |
| 188 | 188 | // 测试 createTime 不匹配 |
| 189 | - orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildTime(2019, 1, 1, 10, 10, | |
| 189 | + orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2019, 1, 1, 10, 10, | |
| 190 | 190 | 1)))); |
| 191 | 191 | // 准备参数 |
| 192 | 192 | PayOrderExportReqVO reqVO = new PayOrderExportReqVO(); |
| ... | ... | @@ -198,7 +198,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest { |
| 198 | 198 | reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus()); |
| 199 | 199 | reqVO.setStatus(PayOrderStatusEnum.SUCCESS.getStatus()); |
| 200 | 200 | reqVO.setRefundStatus(PayRefundTypeEnum.NO.getStatus()); |
| 201 | - reqVO.setCreateTime((new Date[]{buildTime(2018, 1, 1, 10, 1, 0),buildTime(2018, 1, 1, 10, 1, 0)})); | |
| 201 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2018, 1, 1, 10, 1, 0),buildLocalDateTime(2018, 1, 1, 10, 1, 0)})); | |
| 202 | 202 | |
| 203 | 203 | // 调用 |
| 204 | 204 | List<PayOrderDO> list = orderService.getOrderList(reqVO); | ... | ... |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
| ... | ... | @@ -22,10 +22,10 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 22 | 22 | import org.springframework.context.annotation.Import; |
| 23 | 23 | |
| 24 | 24 | import javax.annotation.Resource; |
| 25 | -import java.util.Date; | |
| 25 | +import java.time.LocalDateTime; | |
| 26 | 26 | import java.util.List; |
| 27 | 27 | |
| 28 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 28 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 29 | 29 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 30 | 30 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 31 | 31 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; |
| ... | ... | @@ -78,11 +78,11 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 78 | 78 | o.setChannelErrorCode(""); |
| 79 | 79 | o.setChannelErrorMsg(""); |
| 80 | 80 | o.setChannelExtras(""); |
| 81 | - o.setExpireTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 30)); | |
| 82 | - o.setSuccessTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 15)); | |
| 83 | - o.setNotifyTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 20)); | |
| 84 | - o.setCreateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 10)); | |
| 85 | - o.setUpdateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 35)); | |
| 81 | + o.setExpireTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 30)); | |
| 82 | + o.setSuccessTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 15)); | |
| 83 | + o.setNotifyTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 20)); | |
| 84 | + o.setCreateTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 10)); | |
| 85 | + o.setUpdateTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 35)); | |
| 86 | 86 | }); |
| 87 | 87 | refundMapper.insert(dbRefund); |
| 88 | 88 | // 测试 merchantId 不匹配 |
| ... | ... | @@ -102,7 +102,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 102 | 102 | refundMapper.insert(cloneIgnoreId(dbRefund, o -> o.setType(PayRefundTypeEnum.ALL.getStatus()))); |
| 103 | 103 | // 测试 createTime 不匹配 |
| 104 | 104 | refundMapper.insert(cloneIgnoreId(dbRefund, o -> |
| 105 | - o.setCreateTime(DateUtils.buildTime(2022, 1, 1, 10, 10, 10)))); | |
| 105 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 1, 1, 10, 10, 10)))); | |
| 106 | 106 | // 准备参数 |
| 107 | 107 | PayRefundPageReqVO reqVO = new PayRefundPageReqVO(); |
| 108 | 108 | reqVO.setMerchantId(1L); |
| ... | ... | @@ -112,7 +112,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 112 | 112 | reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus()); |
| 113 | 113 | reqVO.setStatus(PayRefundStatusEnum.SUCCESS.getStatus()); |
| 114 | 114 | reqVO.setType(PayRefundTypeEnum.SOME.getStatus()); |
| 115 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 1, 10, 10, 10),buildTime(2021, 1, 1, 10, 10, 12)})); | |
| 115 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 1, 10, 10, 10),buildLocalDateTime(2021, 1, 1, 10, 10, 12)})); | |
| 116 | 116 | |
| 117 | 117 | // 调用 |
| 118 | 118 | PageResult<PayRefundDO> pageResult = refundService.getRefundPage(reqVO); |
| ... | ... | @@ -147,11 +147,11 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 147 | 147 | o.setChannelErrorCode(""); |
| 148 | 148 | o.setChannelErrorMsg(""); |
| 149 | 149 | o.setChannelExtras(""); |
| 150 | - o.setExpireTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 30)); | |
| 151 | - o.setSuccessTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 15)); | |
| 152 | - o.setNotifyTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 20)); | |
| 153 | - o.setCreateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 10)); | |
| 154 | - o.setUpdateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 35)); | |
| 150 | + o.setExpireTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 30)); | |
| 151 | + o.setSuccessTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 15)); | |
| 152 | + o.setNotifyTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 20)); | |
| 153 | + o.setCreateTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 10)); | |
| 154 | + o.setUpdateTime(DateUtils.buildLocalDateTime(2021, 1, 1, 10, 10, 35)); | |
| 155 | 155 | }); |
| 156 | 156 | refundMapper.insert(dbRefund); |
| 157 | 157 | // 测试 merchantId 不匹配 |
| ... | ... | @@ -171,7 +171,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 171 | 171 | refundMapper.insert(cloneIgnoreId(dbRefund, o -> o.setType(PayRefundTypeEnum.ALL.getStatus()))); |
| 172 | 172 | // 测试 createTime 不匹配 |
| 173 | 173 | refundMapper.insert(cloneIgnoreId(dbRefund, o -> |
| 174 | - o.setCreateTime(DateUtils.buildTime(2022, 1, 1, 10, 10, 10)))); | |
| 174 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 1, 1, 10, 10, 10)))); | |
| 175 | 175 | |
| 176 | 176 | // 准备参数 |
| 177 | 177 | PayRefundExportReqVO reqVO = new PayRefundExportReqVO(); |
| ... | ... | @@ -182,7 +182,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest { |
| 182 | 182 | reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus()); |
| 183 | 183 | reqVO.setStatus(PayRefundStatusEnum.SUCCESS.getStatus()); |
| 184 | 184 | reqVO.setType(PayRefundTypeEnum.SOME.getStatus()); |
| 185 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 1, 10, 10, 10),buildTime(2021, 1, 1, 10, 10, 12)})); | |
| 185 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 1, 10, 10, 10),buildLocalDateTime(2021, 1, 1, 10, 10, 12)})); | |
| 186 | 186 | |
| 187 | 187 | // 调用 |
| 188 | 188 | List<PayRefundDO> list = refundService.getRefundList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java
| ... | ... | @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReq |
| 4 | 4 | import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; |
| 5 | 5 | |
| 6 | 6 | import javax.validation.Valid; |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | import java.util.List; |
| 9 | 9 | |
| 10 | 10 | /** |
| ... | ... | @@ -30,6 +30,6 @@ public interface ErrorCodeApi { |
| 30 | 30 | * @param minUpdateTime 最小更新时间 |
| 31 | 31 | * @return 错误码数组 |
| 32 | 32 | */ |
| 33 | - List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, Date minUpdateTime); | |
| 33 | + List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime); | |
| 34 | 34 | |
| 35 | 35 | } | ... | ... |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.api.errorcode.dto; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | 4 | |
| 5 | -import java.util.Date; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | 8 | * 错误码的 Response DTO |
| ... | ... | @@ -23,6 +23,6 @@ public class ErrorCodeRespDTO { |
| 23 | 23 | /** |
| 24 | 24 | * 更新时间 |
| 25 | 25 | */ |
| 26 | - private Date updateTime; | |
| 26 | + private LocalDateTime updateTime; | |
| 27 | 27 | |
| 28 | 28 | } | ... | ... |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java
| ... | ... | @@ -4,7 +4,7 @@ import lombok.Data; |
| 4 | 4 | |
| 5 | 5 | import javax.validation.constraints.NotEmpty; |
| 6 | 6 | import javax.validation.constraints.NotNull; |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | import java.util.Map; |
| 9 | 9 | |
| 10 | 10 | /** |
| ... | ... | @@ -96,7 +96,7 @@ public class OperateLogCreateReqDTO { |
| 96 | 96 | * 开始时间 |
| 97 | 97 | */ |
| 98 | 98 | @NotNull(message = "开始时间不能为空") |
| 99 | - private Date startTime; | |
| 99 | + private LocalDateTime startTime; | |
| 100 | 100 | |
| 101 | 101 | /** |
| 102 | 102 | * 执行时长,单位:毫秒 | ... | ... |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java
| ... | ... | @@ -4,7 +4,7 @@ import lombok.Data; |
| 4 | 4 | import lombok.experimental.Accessors; |
| 5 | 5 | |
| 6 | 6 | import java.io.Serializable; |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | |
| 9 | 9 | /** |
| 10 | 10 | * OAuth2.0 访问令牌的信息 Response DTO |
| ... | ... | @@ -34,6 +34,6 @@ public class OAuth2AccessTokenRespDTO implements Serializable { |
| 34 | 34 | /** |
| 35 | 35 | * 过期时间 |
| 36 | 36 | */ |
| 37 | - private Date expiresTime; | |
| 37 | + private LocalDateTime expiresTime; | |
| 38 | 38 | |
| 39 | 39 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.service.errorcode.ErrorCodeService; |
| 6 | 6 | import org.springframework.stereotype.Service; |
| 7 | 7 | |
| 8 | 8 | import javax.annotation.Resource; |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | |
| 12 | 12 | /** |
| ... | ... | @@ -26,7 +26,7 @@ public class ErrorCodeApiImpl implements ErrorCodeApi { |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | @Override |
| 29 | - public List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, Date minUpdateTime) { | |
| 29 | + public List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) { | |
| 30 | 30 | return errorCodeService.getErrorCodeList(applicationName, minUpdateTime); |
| 31 | 31 | } |
| 32 | 32 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Builder; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 登录 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -26,6 +26,6 @@ public class AuthLoginRespVO { |
| 26 | 26 | private String refreshToken; |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "过期时间", required = true) |
| 29 | - private Date expiresTime; | |
| 29 | + private LocalDateTime expiresTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | @ApiModel("管理后台 - 部门信息 Response VO") |
| 11 | 11 | @Data |
| ... | ... | @@ -19,6 +19,6 @@ public class DeptRespVO extends DeptBaseVO { |
| 19 | 19 | private Integer status; |
| 20 | 20 | |
| 21 | 21 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 22 | - private Date createTime; | |
| 22 | + private LocalDateTime createTime; | |
| 23 | 23 | |
| 24 | 24 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | @ApiModel("管理后台 - 岗位信息 Response VO") |
| 11 | 11 | @Data |
| ... | ... | @@ -16,6 +16,6 @@ public class PostRespVO extends PostBaseVO { |
| 16 | 16 | private Long id; |
| 17 | 17 | |
| 18 | 18 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 19 | - private Date createTime; | |
| 19 | + private LocalDateTime createTime; | |
| 20 | 20 | |
| 21 | 21 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 字典数据信息 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -20,6 +20,6 @@ public class DictDataRespVO extends DictDataBaseVO { |
| 20 | 20 | private Long id; |
| 21 | 21 | |
| 22 | 22 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 23 | - private Date createTime; | |
| 23 | + private LocalDateTime createTime; | |
| 24 | 24 | |
| 25 | 25 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,6 +24,6 @@ public class DictTypeExportReqVO { |
| 24 | 24 | |
| 25 | 25 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 26 | 26 | @ApiModelProperty(value = "创建时间") |
| 27 | - private Date[] createTime; | |
| 27 | + private LocalDateTime[] createTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | |
| 10 | 10 | import javax.validation.constraints.Size; |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -29,6 +29,6 @@ public class DictTypePageReqVO extends PageParam { |
| 29 | 29 | |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | 31 | @ApiModelProperty(value = "创建时间") |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 字典类型信息 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -23,6 +23,6 @@ public class DictTypeRespVO extends DictTypeBaseVO { |
| 23 | 23 | private String type; |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 26 | - private Date createTime; | |
| 26 | + private LocalDateTime createTime; | |
| 27 | 27 | |
| 28 | 28 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java
| ... | ... | @@ -2,11 +2,10 @@ package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; |
| 4 | 4 | import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; |
| 5 | -//import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants; | |
| 6 | 5 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 6 | import lombok.Data; |
| 8 | 7 | |
| 9 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 10 | 9 | |
| 11 | 10 | /** |
| 12 | 11 | * 错误码 Excel VO |
| ... | ... | @@ -36,6 +35,6 @@ public class ErrorCodeExcelVO { |
| 36 | 35 | private String memo; |
| 37 | 36 | |
| 38 | 37 | @ExcelProperty("创建时间") |
| 39 | - private Date createTime; | |
| 38 | + private LocalDateTime createTime; | |
| 40 | 39 | |
| 41 | 40 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,6 +27,6 @@ public class ErrorCodeExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | 29 | @ApiModelProperty(value = "创建时间") |
| 30 | - private Date[] createTime; | |
| 30 | + private LocalDateTime[] createTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -32,6 +32,6 @@ public class ErrorCodePageReqVO extends PageParam { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "创建时间") |
| 35 | - private Date[] createTime; | |
| 35 | + private LocalDateTime[] createTime; | |
| 36 | 36 | |
| 37 | 37 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 错误码 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -21,6 +21,6 @@ public class ErrorCodeRespVO extends ErrorCodeBaseVO { |
| 21 | 21 | private Integer type; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 登录日志 Excel 导出响应 VO |
| ... | ... | @@ -35,6 +35,6 @@ public class LoginLogExcelVO { |
| 35 | 35 | private String userAgent; |
| 36 | 36 | |
| 37 | 37 | @ExcelProperty("登录时间") |
| 38 | - private Date createTime; | |
| 38 | + private LocalDateTime createTime; | |
| 39 | 39 | |
| 40 | 40 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,6 +24,6 @@ public class LoginLogExportReqVO { |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | - private Date[] createTime; | |
| 27 | + private LocalDateTime[] createTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 13 | |
| ... | ... | @@ -27,6 +27,6 @@ public class LoginLogPageReqVO extends PageParam { |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 29 | 29 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 30 | - private Date[] createTime; | |
| 30 | + private LocalDateTime[] createTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 登录日志 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -26,6 +26,6 @@ public class LoginLogRespVO extends LoginLogBaseVO { |
| 26 | 26 | private Integer userType; |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "登录时间", required = true) |
| 29 | - private Date createTime; | |
| 29 | + private LocalDateTime createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import lombok.Data; |
| 5 | 5 | |
| 6 | 6 | import javax.validation.constraints.NotEmpty; |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | import java.util.Map; |
| 10 | 10 | |
| 11 | 11 | /** |
| ... | ... | @@ -66,7 +66,7 @@ public class OperateLogBaseVO { |
| 66 | 66 | |
| 67 | 67 | @ApiModelProperty(value = "开始时间", required = true) |
| 68 | 68 | @NotNull(message = "开始时间不能为空") |
| 69 | - private Date startTime; | |
| 69 | + private LocalDateTime startTime; | |
| 70 | 70 | |
| 71 | 71 | @ApiModelProperty(value = "执行时长,单位:毫秒", required = true) |
| 72 | 72 | @NotNull(message = "执行时长不能为空") | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 操作日志 Excel 导出响应 VO |
| ... | ... | @@ -34,7 +34,7 @@ public class OperateLogExcelVO { |
| 34 | 34 | private String successStr; |
| 35 | 35 | |
| 36 | 36 | @ExcelProperty("操作日志") |
| 37 | - private Date startTime; | |
| 37 | + private LocalDateTime startTime; | |
| 38 | 38 | |
| 39 | 39 | @ExcelProperty("执行时长") |
| 40 | 40 | private Integer duration; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,6 +27,6 @@ public class OperateLogExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 29 | 29 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 30 | - private Date[] startTime; | |
| 30 | + private LocalDateTime[] startTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java
| ... | ... | @@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 12 | 12 | |
| ... | ... | @@ -28,6 +28,6 @@ public class OperateLogPageReqVO extends PageParam { |
| 28 | 28 | |
| 29 | 29 | @ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | - private Date[] startTime; | |
| 31 | + private LocalDateTime[] startTime; | |
| 32 | 32 | |
| 33 | 33 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | @ApiModel("管理后台 - 通知公告信息 Response VO") |
| 11 | 11 | @Data |
| ... | ... | @@ -16,6 +16,6 @@ public class NoticeRespVO extends NoticeBaseVO { |
| 16 | 16 | private Long id; |
| 17 | 17 | |
| 18 | 18 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 19 | - private Date createTime; | |
| 19 | + private LocalDateTime createTime; | |
| 20 | 20 | |
| 21 | 21 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - OAuth2 客户端 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class OAuth2ClientRespVO extends OAuth2ClientBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.AllArgsConstructor; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | import lombok.NoArgsConstructor; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 访问令牌 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -33,9 +33,9 @@ public class OAuth2AccessTokenRespVO { |
| 33 | 33 | private String clientId; |
| 34 | 34 | |
| 35 | 35 | @ApiModelProperty(value = "创建时间", required = true) |
| 36 | - private Date createTime; | |
| 36 | + private LocalDateTime createTime; | |
| 37 | 37 | |
| 38 | 38 | @ApiModelProperty(value = "过期时间", required = true) |
| 39 | - private Date expiresTime; | |
| 39 | + private LocalDateTime expiresTime; | |
| 40 | 40 | |
| 41 | 41 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 菜单信息 Response VO") |
| 13 | 13 | @Data |
| ... | ... | @@ -23,6 +23,6 @@ public class MenuRespVO extends MenuBaseVO { |
| 23 | 23 | private Integer status; |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 26 | - private Date createTime; | |
| 26 | + private LocalDateTime createTime; | |
| 27 | 27 | |
| 28 | 28 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,6 +24,6 @@ public class RoleExportReqVO { |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 26 | 26 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 27 | - private Date[] createTime; | |
| 27 | + private LocalDateTime[] createTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 13 | |
| ... | ... | @@ -27,6 +27,6 @@ public class RolePageReqVO extends PageParam { |
| 27 | 27 | |
| 28 | 28 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 29 | 29 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 30 | - private Date[] createTime; | |
| 30 | + private LocalDateTime[] createTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.Set; |
| 12 | 12 | |
| 13 | 13 | @ApiModel("管理后台 - 角色信息 Response VO") |
| ... | ... | @@ -33,6 +33,6 @@ public class RoleRespVO extends RoleBaseVO { |
| 33 | 33 | private Integer type; |
| 34 | 34 | |
| 35 | 35 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 36 | - private Date createTime; | |
| 36 | + private LocalDateTime createTime; | |
| 37 | 37 | |
| 38 | 38 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | |
| 12 | 12 | /** |
| ... | ... | @@ -34,6 +34,6 @@ public class SensitiveWordExcelVO { |
| 34 | 34 | private String description; |
| 35 | 35 | |
| 36 | 36 | @ExcelProperty("创建时间") |
| 37 | - private Date createTime; | |
| 37 | + private LocalDateTime createTime; | |
| 38 | 38 | |
| 39 | 39 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -24,6 +24,6 @@ public class SensitiveWordExportReqVO { |
| 24 | 24 | |
| 25 | 25 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 26 | 26 | @ApiModelProperty(value = "创建时间") |
| 27 | - private Date[] createTime; | |
| 27 | + private LocalDateTime[] createTime; | |
| 28 | 28 | |
| 29 | 29 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -29,6 +29,6 @@ public class SensitiveWordPageReqVO extends PageParam { |
| 29 | 29 | |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | 31 | @ApiModelProperty(value = "创建时间") |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 敏感词 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class SensitiveWordRespVO extends SensitiveWordBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -26,6 +26,6 @@ public class SmsChannelPageReqVO extends PageParam { |
| 26 | 26 | |
| 27 | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | 28 | @ApiModelProperty(value = "创建时间") |
| 29 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 30 | 30 | |
| 31 | 31 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 短信渠道 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -21,6 +21,6 @@ public class SmsChannelRespVO extends SmsChannelBaseVO { |
| 21 | 21 | private String code; |
| 22 | 22 | |
| 23 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 24 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 25 | 25 | |
| 26 | 26 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java
| ... | ... | @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 7 | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| 8 | 8 | import lombok.Data; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.Map; |
| 12 | 12 | |
| 13 | 13 | /** |
| ... | ... | @@ -61,7 +61,7 @@ public class SmsLogExcelVO { |
| 61 | 61 | private Integer sendStatus; |
| 62 | 62 | |
| 63 | 63 | @ExcelProperty("发送时间") |
| 64 | - private Date sendTime; | |
| 64 | + private LocalDateTime sendTime; | |
| 65 | 65 | |
| 66 | 66 | @ExcelProperty("发送结果的编码") |
| 67 | 67 | private Integer sendCode; |
| ... | ... | @@ -86,7 +86,7 @@ public class SmsLogExcelVO { |
| 86 | 86 | private Integer receiveStatus; |
| 87 | 87 | |
| 88 | 88 | @ExcelProperty("接收时间") |
| 89 | - private Date receiveTime; | |
| 89 | + private LocalDateTime receiveTime; | |
| 90 | 90 | |
| 91 | 91 | @ExcelProperty("API 接收结果的编码") |
| 92 | 92 | private String apiReceiveCode; |
| ... | ... | @@ -95,6 +95,6 @@ public class SmsLogExcelVO { |
| 95 | 95 | private String apiReceiveMsg; |
| 96 | 96 | |
| 97 | 97 | @ExcelProperty("创建时间") |
| 98 | - private Date createTime; | |
| 98 | + private LocalDateTime createTime; | |
| 99 | 99 | |
| 100 | 100 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,13 +27,13 @@ public class SmsLogExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | 29 | @ApiModelProperty(value = "开始发送时间") |
| 30 | - private Date[] sendTime; | |
| 30 | + private LocalDateTime[] sendTime; | |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "接收状态", example = "0") |
| 33 | 33 | private Integer receiveStatus; |
| 34 | 34 | |
| 35 | 35 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 36 | 36 | @ApiModelProperty(value = "开始接收时间") |
| 37 | - private Date[] receiveTime; | |
| 37 | + private LocalDateTime[] receiveTime; | |
| 38 | 38 | |
| 39 | 39 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -32,13 +32,13 @@ public class SmsLogPageReqVO extends PageParam { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "发送时间") |
| 35 | - private Date[] sendTime; | |
| 35 | + private LocalDateTime[] sendTime; | |
| 36 | 36 | |
| 37 | 37 | @ApiModelProperty(value = "接收状态", example = "0", notes = "参见 SmsReceiveStatusEnum 枚举类") |
| 38 | 38 | private Integer receiveStatus; |
| 39 | 39 | |
| 40 | 40 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 41 | 41 | @ApiModelProperty(value = "接收时间") |
| 42 | - private Date[] receiveTime; | |
| 42 | + private LocalDateTime[] receiveTime; | |
| 43 | 43 | |
| 44 | 44 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java
| ... | ... | @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | 8 | import java.util.Map; |
| 9 | 9 | |
| 10 | 10 | @ApiModel("管理后台 - 短信日志 Response VO") |
| ... | ... | @@ -51,7 +51,7 @@ public class SmsLogRespVO { |
| 51 | 51 | private Integer sendStatus; |
| 52 | 52 | |
| 53 | 53 | @ApiModelProperty(value = "发送时间") |
| 54 | - private Date sendTime; | |
| 54 | + private LocalDateTime sendTime; | |
| 55 | 55 | |
| 56 | 56 | @ApiModelProperty(value = "发送结果的编码", example = "0") |
| 57 | 57 | private Integer sendCode; |
| ... | ... | @@ -75,7 +75,7 @@ public class SmsLogRespVO { |
| 75 | 75 | private Integer receiveStatus; |
| 76 | 76 | |
| 77 | 77 | @ApiModelProperty(value = "接收时间") |
| 78 | - private Date receiveTime; | |
| 78 | + private LocalDateTime receiveTime; | |
| 79 | 79 | |
| 80 | 80 | @ApiModelProperty(value = "API 接收结果的编码", example = "DELIVRD") |
| 81 | 81 | private String apiReceiveCode; |
| ... | ... | @@ -84,6 +84,6 @@ public class SmsLogRespVO { |
| 84 | 84 | private String apiReceiveMsg; |
| 85 | 85 | |
| 86 | 86 | @ApiModelProperty(value = "创建时间", required = true) |
| 87 | - private Date createTime; | |
| 87 | + private LocalDateTime createTime; | |
| 88 | 88 | |
| 89 | 89 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 短信模板 Excel VO |
| ... | ... | @@ -50,6 +50,6 @@ public class SmsTemplateExcelVO { |
| 50 | 50 | private String channelCode; |
| 51 | 51 | |
| 52 | 52 | @ExcelProperty("创建时间") |
| 53 | - private Date createTime; | |
| 53 | + private LocalDateTime createTime; | |
| 54 | 54 | |
| 55 | 55 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -33,6 +33,6 @@ public class SmsTemplateExportReqVO { |
| 33 | 33 | |
| 34 | 34 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 35 | 35 | @ApiModelProperty(value = "创建时间") |
| 36 | - private Date[] createTime; | |
| 36 | + private LocalDateTime[] createTime; | |
| 37 | 37 | |
| 38 | 38 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -38,6 +38,6 @@ public class SmsTemplatePageReqVO extends PageParam { |
| 38 | 38 | |
| 39 | 39 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 40 | 40 | @ApiModelProperty(value = "创建时间") |
| 41 | - private Date[] createTime; | |
| 41 | + private LocalDateTime[] createTime; | |
| 42 | 42 | |
| 43 | 43 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | |
| 12 | 12 | @ApiModel("管理后台 - 短信模板 Response VO") |
| ... | ... | @@ -25,6 +25,6 @@ public class SmsTemplateRespVO extends SmsTemplateBaseVO { |
| 25 | 25 | private List<String> params; |
| 26 | 26 | |
| 27 | 27 | @ApiModelProperty(value = "创建时间", required = true) |
| 28 | - private Date createTime; | |
| 28 | + private LocalDateTime createTime; | |
| 29 | 29 | |
| 30 | 30 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -29,5 +29,5 @@ public class TenantPackagePageReqVO extends PageParam { |
| 29 | 29 | |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | 31 | @ApiModelProperty(value = "创建时间") |
| 32 | - private Date[] createTime; | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | 33 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java
| ... | ... | @@ -6,7 +6,7 @@ import lombok.Data; |
| 6 | 6 | import lombok.EqualsAndHashCode; |
| 7 | 7 | import lombok.ToString; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | @ApiModel("管理后台 - 租户套餐 Response VO") |
| 12 | 12 | @Data |
| ... | ... | @@ -18,6 +18,6 @@ public class TenantPackageRespVO extends TenantPackageBaseVO { |
| 18 | 18 | private Long id; |
| 19 | 19 | |
| 20 | 20 | @ApiModelProperty(value = "创建时间", required = true) |
| 21 | - private Date createTime; | |
| 21 | + private LocalDateTime createTime; | |
| 22 | 22 | |
| 23 | 23 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.*; |
| 5 | 5 | import org.hibernate.validator.constraints.URL; |
| 6 | 6 | |
| 7 | 7 | import javax.validation.constraints.*; |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 租户 Base VO,提供给添加、修改、详细的子 VO 使用 |
| ... | ... | @@ -39,7 +39,7 @@ public class TenantBaseVO { |
| 39 | 39 | |
| 40 | 40 | @ApiModelProperty(value = "过期时间", required = true) |
| 41 | 41 | @NotNull(message = "过期时间不能为空") |
| 42 | - private Date expireTime; | |
| 42 | + private LocalDateTime expireTime; | |
| 43 | 43 | |
| 44 | 44 | @ApiModelProperty(value = "账号数量", required = true, example = "1024") |
| 45 | 45 | @NotNull(message = "账号数量不能为空") | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java
| ... | ... | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 4 | 4 | import lombok.*; |
| 5 | -import java.util.*; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | 6 | |
| 7 | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| 8 | 8 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; |
| ... | ... | @@ -34,6 +34,6 @@ public class TenantExcelVO { |
| 34 | 34 | private Integer status; |
| 35 | 35 | |
| 36 | 36 | @ExcelProperty("创建时间") |
| 37 | - private Date createTime; | |
| 37 | + private LocalDateTime createTime; | |
| 38 | 38 | |
| 39 | 39 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java
| ... | ... | @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.Data; |
| 6 | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 11 | |
| ... | ... | @@ -27,6 +27,6 @@ public class TenantExportReqVO { |
| 27 | 27 | |
| 28 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | 29 | @ApiModelProperty(value = "创建时间") |
| 30 | - private Date[] createTime; | |
| 30 | + private LocalDateTime[] createTime; | |
| 31 | 31 | |
| 32 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.ToString; |
| 9 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 14 | 14 | |
| ... | ... | @@ -32,6 +32,6 @@ public class TenantPageReqVO extends PageParam { |
| 32 | 32 | |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | 34 | @ApiModelProperty(value = "创建时间") |
| 35 | - private Date[] createTime; | |
| 35 | + private LocalDateTime[] createTime; | |
| 36 | 36 | |
| 37 | 37 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; |
| 2 | 2 | |
| 3 | 3 | import lombok.*; |
| 4 | -import java.util.*; | |
| 5 | 4 | import io.swagger.annotations.*; |
| 6 | 5 | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | + | |
| 7 | 8 | @ApiModel("管理后台 - 租户 Response VO") |
| 8 | 9 | @Data |
| 9 | 10 | @EqualsAndHashCode(callSuper = true) |
| ... | ... | @@ -14,6 +15,6 @@ public class TenantRespVO extends TenantBaseVO { |
| 14 | 15 | private Long id; |
| 15 | 16 | |
| 16 | 17 | @ApiModelProperty(value = "创建时间", required = true) |
| 17 | - private Date createTime; | |
| 18 | + private LocalDateTime createTime; | |
| 18 | 19 | |
| 19 | 20 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
| ... | ... | @@ -8,7 +8,7 @@ import lombok.Data; |
| 8 | 8 | import lombok.EqualsAndHashCode; |
| 9 | 9 | import lombok.NoArgsConstructor; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | |
| ... | ... | @@ -29,10 +29,10 @@ public class UserProfileRespVO extends UserBaseVO { |
| 29 | 29 | private String loginIp; |
| 30 | 30 | |
| 31 | 31 | @ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式") |
| 32 | - private Date loginDate; | |
| 32 | + private LocalDateTime loginDate; | |
| 33 | 33 | |
| 34 | 34 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 35 | - private Date createTime; | |
| 35 | + private LocalDateTime createTime; | |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | 38 | * 所属角色 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 6 | 6 | import com.alibaba.excel.annotation.ExcelProperty; |
| 7 | 7 | import lombok.Data; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * 用户 Excel 导出 VO |
| ... | ... | @@ -41,7 +41,7 @@ public class UserExcelVO { |
| 41 | 41 | private String loginIp; |
| 42 | 42 | |
| 43 | 43 | @ExcelProperty("最后登录时间") |
| 44 | - private Date loginDate; | |
| 44 | + private LocalDateTime loginDate; | |
| 45 | 45 | |
| 46 | 46 | @ExcelProperty("部门名称") |
| 47 | 47 | private String deptName; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExportReqVO.java
| ... | ... | @@ -7,7 +7,7 @@ import lombok.Data; |
| 7 | 7 | import lombok.NoArgsConstructor; |
| 8 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 13 | |
| ... | ... | @@ -28,7 +28,7 @@ public class UserExportReqVO { |
| 28 | 28 | |
| 29 | 29 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 30 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 31 | - private Date[] createTime; | |
| 31 | + private LocalDateTime[] createTime; | |
| 32 | 32 | |
| 33 | 33 | @ApiModelProperty(value = "部门编号", example = "1024", notes = "同时筛选子部门") |
| 34 | 34 | private Long deptId; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
| ... | ... | @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; |
| 9 | 9 | import lombok.NoArgsConstructor; |
| 10 | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | |
| 14 | 14 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 15 | 15 | |
| ... | ... | @@ -31,7 +31,7 @@ public class UserPageReqVO extends PageParam { |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") |
| 33 | 33 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 34 | - private Date[] createTime; | |
| 34 | + private LocalDateTime[] createTime; | |
| 35 | 35 | |
| 36 | 36 | @ApiModelProperty(value = "部门编号", example = "1024", notes = "同时筛选子部门") |
| 37 | 37 | private Long deptId; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java
| ... | ... | @@ -4,7 +4,8 @@ import io.swagger.annotations.ApiModel; |
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; |
| 5 | 5 | import lombok.*; |
| 6 | 6 | |
| 7 | -import java.util.Date; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | + | |
| 8 | 9 | |
| 9 | 10 | @ApiModel("管理后台 - 用户信息 Response VO") |
| 10 | 11 | @Data |
| ... | ... | @@ -23,9 +24,9 @@ public class UserRespVO extends UserBaseVO { |
| 23 | 24 | private String loginIp; |
| 24 | 25 | |
| 25 | 26 | @ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式") |
| 26 | - private Date loginDate; | |
| 27 | + private LocalDateTime loginDate; | |
| 27 | 28 | |
| 28 | 29 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 29 | - private Date createTime; | |
| 30 | + private LocalDateTime createTime; | |
| 30 | 31 | |
| 31 | 32 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java
| 1 | 1 | package cn.iocoder.yudao.module.system.convert.oauth2; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.core.KeyValue; |
| 4 | 5 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| ... | ... | @@ -34,7 +35,7 @@ public interface OAuth2OpenConvert { |
| 34 | 35 | |
| 35 | 36 | default OAuth2OpenCheckTokenRespVO convert2(OAuth2AccessTokenDO bean) { |
| 36 | 37 | OAuth2OpenCheckTokenRespVO respVO = convert3(bean); |
| 37 | - respVO.setExp(bean.getExpiresTime().getTime() / 1000L); | |
| 38 | + respVO.setExp(LocalDateTimeUtil.toEpochMilli(bean.getExpiresTime()) / 1000L); | |
| 38 | 39 | respVO.setUserType(UserTypeEnum.ADMIN.getValue()); |
| 39 | 40 | return respVO; |
| 40 | 41 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
| ... | ... | @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 12 | 12 | import lombok.Data; |
| 13 | 13 | import lombok.EqualsAndHashCode; |
| 14 | 14 | |
| 15 | -import java.util.Date; | |
| 15 | +import java.time.LocalDateTime; | |
| 16 | 16 | import java.util.Map; |
| 17 | 17 | |
| 18 | 18 | /** |
| ... | ... | @@ -117,7 +117,7 @@ public class OperateLogDO extends BaseDO { |
| 117 | 117 | /** |
| 118 | 118 | * 开始时间 |
| 119 | 119 | */ |
| 120 | - private Date startTime; | |
| 120 | + private LocalDateTime startTime; | |
| 121 | 121 | /** |
| 122 | 122 | * 执行时长,单位:毫秒 |
| 123 | 123 | */ | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java
| ... | ... | @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 10 | 10 | import lombok.Data; |
| 11 | 11 | import lombok.EqualsAndHashCode; |
| 12 | 12 | |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | /** |
| ... | ... | @@ -64,6 +64,6 @@ public class OAuth2AccessTokenDO extends TenantBaseDO { |
| 64 | 64 | /** |
| 65 | 65 | * 过期时间 |
| 66 | 66 | */ |
| 67 | - private Date expiresTime; | |
| 67 | + private LocalDateTime expiresTime; | |
| 68 | 68 | |
| 69 | 69 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | 8 | import lombok.Data; |
| 9 | 9 | import lombok.EqualsAndHashCode; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * OAuth2 批准 DO |
| ... | ... | @@ -58,6 +58,6 @@ public class OAuth2ApproveDO extends BaseDO { |
| 58 | 58 | /** |
| 59 | 59 | * 过期时间 |
| 60 | 60 | */ |
| 61 | - private Date expiresTime; | |
| 61 | + private LocalDateTime expiresTime; | |
| 62 | 62 | |
| 63 | 63 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java
| ... | ... | @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 9 | 9 | import lombok.Data; |
| 10 | 10 | import lombok.EqualsAndHashCode; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | /** |
| ... | ... | @@ -63,6 +63,6 @@ public class OAuth2CodeDO extends BaseDO { |
| 63 | 63 | /** |
| 64 | 64 | * 过期时间 |
| 65 | 65 | */ |
| 66 | - private Date expiresTime; | |
| 66 | + private LocalDateTime expiresTime; | |
| 67 | 67 | |
| 68 | 68 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java
| ... | ... | @@ -10,7 +10,7 @@ import lombok.Data; |
| 10 | 10 | import lombok.EqualsAndHashCode; |
| 11 | 11 | import lombok.experimental.Accessors; |
| 12 | 12 | |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | /** |
| ... | ... | @@ -58,6 +58,6 @@ public class OAuth2RefreshTokenDO extends BaseDO { |
| 58 | 58 | /** |
| 59 | 59 | * 过期时间 |
| 60 | 60 | */ |
| 61 | - private Date expiresTime; | |
| 61 | + private LocalDateTime expiresTime; | |
| 62 | 62 | |
| 63 | 63 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
| ... | ... | @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; |
| 5 | 5 | import com.baomidou.mybatisplus.annotation.TableName; |
| 6 | 6 | import lombok.*; |
| 7 | 7 | |
| 8 | -import java.util.Date; | |
| 8 | +import java.time.LocalDateTime; | |
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * 手机验证码 DO |
| ... | ... | @@ -56,7 +56,7 @@ public class SmsCodeDO extends BaseDO { |
| 56 | 56 | /** |
| 57 | 57 | * 使用时间 |
| 58 | 58 | */ |
| 59 | - private Date usedTime; | |
| 59 | + private LocalDateTime usedTime; | |
| 60 | 60 | /** |
| 61 | 61 | * 使用 IP |
| 62 | 62 | */ | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
| ... | ... | @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 11 | 11 | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| 12 | 12 | import lombok.*; |
| 13 | 13 | |
| 14 | -import java.util.Date; | |
| 14 | +import java.time.LocalDateTime; | |
| 15 | 15 | import java.util.Map; |
| 16 | 16 | |
| 17 | 17 | /** |
| ... | ... | @@ -114,7 +114,7 @@ public class SmsLogDO extends BaseDO { |
| 114 | 114 | /** |
| 115 | 115 | * 发送时间 |
| 116 | 116 | */ |
| 117 | - private Date sendTime; | |
| 117 | + private LocalDateTime sendTime; | |
| 118 | 118 | /** |
| 119 | 119 | * 发送结果的编码 |
| 120 | 120 | * |
| ... | ... | @@ -162,7 +162,7 @@ public class SmsLogDO extends BaseDO { |
| 162 | 162 | /** |
| 163 | 163 | * 接收时间 |
| 164 | 164 | */ |
| 165 | - private Date receiveTime; | |
| 165 | + private LocalDateTime receiveTime; | |
| 166 | 166 | /** |
| 167 | 167 | * 短信 API 接收结果的编码 |
| 168 | 168 | */ | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
| ... | ... | @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; |
| 7 | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | 8 | import lombok.*; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * 租户 DO |
| ... | ... | @@ -73,7 +73,7 @@ public class TenantDO extends BaseDO { |
| 73 | 73 | /** |
| 74 | 74 | * 过期时间 |
| 75 | 75 | */ |
| 76 | - private Date expireTime; | |
| 76 | + private LocalDateTime expireTime; | |
| 77 | 77 | /** |
| 78 | 78 | * 账号数量 |
| 79 | 79 | */ | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
| ... | ... | @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 11 | 11 | import lombok.*; |
| 12 | 12 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
| 13 | 13 | |
| 14 | -import java.util.Date; | |
| 14 | +import java.time.LocalDateTime; | |
| 15 | 15 | import java.util.Set; |
| 16 | 16 | |
| 17 | 17 | /** |
| ... | ... | @@ -91,6 +91,6 @@ public class AdminUserDO extends TenantBaseDO { |
| 91 | 91 | /** |
| 92 | 92 | * 最后登录时间 |
| 93 | 93 | */ |
| 94 | - private Date loginDate; | |
| 94 | + private LocalDateTime loginDate; | |
| 95 | 95 | |
| 96 | 96 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | import org.apache.ibatis.annotations.Select; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | @Mapper |
| ... | ... | @@ -31,6 +31,6 @@ public interface DeptMapper extends BaseMapperX<DeptDO> { |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | 33 | @Select("SELECT COUNT(*) FROM system_dept WHERE update_time > #{maxUpdateTime}") |
| 34 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 34 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 35 | 35 | |
| 36 | 36 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java
| ... | ... | @@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePag |
| 8 | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; |
| 9 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | |
| 11 | +import java.time.LocalDateTime; | |
| 11 | 12 | import java.util.Collection; |
| 12 | -import java.util.Date; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | @Mapper |
| ... | ... | @@ -43,7 +43,7 @@ public interface ErrorCodeMapper extends BaseMapperX<ErrorCodeDO> { |
| 43 | 43 | return selectOne(new LambdaQueryWrapperX<ErrorCodeDO>().eq(ErrorCodeDO::getCode, code)); |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | - default List<ErrorCodeDO> selectListByApplicationNameAndUpdateTimeGt(String applicationName, Date minUpdateTime) { | |
| 46 | + default List<ErrorCodeDO> selectListByApplicationNameAndUpdateTimeGt(String applicationName, LocalDateTime minUpdateTime) { | |
| 47 | 47 | return selectList(new LambdaQueryWrapperX<ErrorCodeDO>().eq(ErrorCodeDO::getApplicationName, applicationName) |
| 48 | 48 | .gtIfPresent(ErrorCodeDO::getUpdateTime, minUpdateTime)); |
| 49 | 49 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
| ... | ... | @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2Acc |
| 7 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | |
| 10 | -import java.util.Date; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | 11 | import java.util.List; |
| 12 | 12 | |
| 13 | 13 | @Mapper |
| ... | ... | @@ -26,7 +26,7 @@ public interface OAuth2AccessTokenMapper extends BaseMapperX<OAuth2AccessTokenDO |
| 26 | 26 | .eqIfPresent(OAuth2AccessTokenDO::getUserId, reqVO.getUserId()) |
| 27 | 27 | .eqIfPresent(OAuth2AccessTokenDO::getUserType, reqVO.getUserType()) |
| 28 | 28 | .likeIfPresent(OAuth2AccessTokenDO::getClientId, reqVO.getClientId()) |
| 29 | - .gt(OAuth2AccessTokenDO::getExpiresTime, new Date()) | |
| 29 | + .gt(OAuth2AccessTokenDO::getExpiresTime, LocalDateTime.now()) | |
| 30 | 30 | .orderByDesc(OAuth2AccessTokenDO::getId)); |
| 31 | 31 | } |
| 32 | 32 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java
| ... | ... | @@ -8,7 +8,8 @@ import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | import org.apache.ibatis.annotations.Select; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | + | |
| 12 | 13 | |
| 13 | 14 | /** |
| 14 | 15 | * OAuth2 客户端 Mapper |
| ... | ... | @@ -30,6 +31,6 @@ public interface OAuth2ClientMapper extends BaseMapperX<OAuth2ClientDO> { |
| 30 | 31 | } |
| 31 | 32 | |
| 32 | 33 | @Select("SELECT COUNT(*) FROM system_oauth2_client WHERE update_time > #{maxUpdateTime}") |
| 33 | - int selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 34 | + int selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 34 | 35 | |
| 35 | 36 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java
| ... | ... | @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | import org.apache.ibatis.annotations.Select; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | @Mapper |
| ... | ... | @@ -29,6 +29,6 @@ public interface MenuMapper extends BaseMapperX<MenuDO> { |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | 31 | @Select("SELECT COUNT(*) FROM system_menu WHERE update_time > #{maxUpdateTime}") |
| 32 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 32 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
| ... | ... | @@ -11,8 +11,8 @@ import org.apache.ibatis.annotations.Mapper; |
| 11 | 11 | import org.apache.ibatis.annotations.Select; |
| 12 | 12 | import org.springframework.lang.Nullable; |
| 13 | 13 | |
| 14 | +import java.time.LocalDateTime; | |
| 14 | 15 | import java.util.Collection; |
| 15 | -import java.util.Date; | |
| 16 | 16 | import java.util.List; |
| 17 | 17 | |
| 18 | 18 | @Mapper |
| ... | ... | @@ -48,6 +48,6 @@ public interface RoleMapper extends BaseMapperX<RoleDO> { |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | @Select("SELECT COUNT(*) FROM system_role WHERE update_time > #{maxUpdateTime}") |
| 51 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 51 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 52 | 52 | |
| 53 | 53 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java
| ... | ... | @@ -8,8 +8,8 @@ import org.apache.ibatis.annotations.Mapper; |
| 8 | 8 | import org.apache.ibatis.annotations.Select; |
| 9 | 9 | import org.springframework.stereotype.Repository; |
| 10 | 10 | |
| 11 | +import java.time.LocalDateTime; | |
| 11 | 12 | import java.util.Collection; |
| 12 | -import java.util.Date; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | @Mapper |
| ... | ... | @@ -37,6 +37,6 @@ public interface RoleMenuMapper extends BaseMapperX<RoleMenuDO> { |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | 39 | @Select("SELECT COUNT(*) FROM system_role_menu WHERE update_time > #{maxUpdateTime}") |
| 40 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 40 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 41 | 41 | |
| 42 | 42 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java
| ... | ... | @@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| 6 | 6 | import org.apache.ibatis.annotations.Mapper; |
| 7 | 7 | import org.apache.ibatis.annotations.Select; |
| 8 | 8 | |
| 9 | +import java.time.LocalDateTime; | |
| 9 | 10 | import java.util.Collection; |
| 10 | -import java.util.Date; | |
| 11 | 11 | import java.util.List; |
| 12 | 12 | |
| 13 | 13 | @Mapper |
| ... | ... | @@ -40,6 +40,6 @@ public interface UserRoleMapper extends BaseMapperX<UserRoleDO> { |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | 42 | @Select("SELECT COUNT(*) FROM system_user_role WHERE update_time > #{maxUpdateTime}") |
| 43 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 43 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 44 | 44 | |
| 45 | 45 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java
| ... | ... | @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWord |
| 9 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | import org.apache.ibatis.annotations.Select; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | /** |
| ... | ... | @@ -43,6 +43,6 @@ public interface SensitiveWordMapper extends BaseMapperX<SensitiveWordDO> { |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | 45 | @Select("SELECT COUNT(*) FROM system_sensitive_word WHERE update_time > #{maxUpdateTime}") |
| 46 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 46 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 47 | 47 | |
| 48 | 48 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
| ... | ... | @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; |
| 8 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | import org.apache.ibatis.annotations.Select; |
| 10 | 10 | |
| 11 | -import java.util.Date; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | |
| 13 | 13 | @Mapper |
| 14 | 14 | public interface SmsChannelMapper extends BaseMapperX<SmsChannelDO> { |
| ... | ... | @@ -22,6 +22,6 @@ public interface SmsChannelMapper extends BaseMapperX<SmsChannelDO> { |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | @Select("SELECT COUNT(*) FROM system_sms_channel WHERE update_time > #{maxUpdateTime}") |
| 25 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 25 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 26 | 26 | |
| 27 | 27 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java
| ... | ... | @@ -9,14 +9,14 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; |
| 9 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | import org.apache.ibatis.annotations.Select; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | @Mapper |
| 16 | 16 | public interface SmsTemplateMapper extends BaseMapperX<SmsTemplateDO> { |
| 17 | 17 | |
| 18 | 18 | @Select("SELECT COUNT(*) FROM system_sms_template WHERE update_time > #{maxUpdateTime}") |
| 19 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 19 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 20 | 20 | |
| 21 | 21 | default SmsTemplateDO selectByCode(String code) { |
| 22 | 22 | return selectOne(SmsTemplateDO::getCode, code); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java
| ... | ... | @@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 9 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | import org.apache.ibatis.annotations.Select; |
| 11 | 11 | |
| 12 | -import java.util.Date; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | 13 | import java.util.List; |
| 14 | 14 | |
| 15 | 15 | /** |
| ... | ... | @@ -53,6 +53,6 @@ public interface TenantMapper extends BaseMapperX<TenantDO> { |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | @Select("SELECT COUNT(*) FROM system_tenant WHERE update_time > #{maxUpdateTime}") |
| 56 | - Long selectCountByUpdateTimeGt(Date maxUpdateTime); | |
| 56 | + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); | |
| 57 | 57 | |
| 58 | 58 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java
| 1 | 1 | package cn.iocoder.yudao.module.system.dal.redis.oauth2; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 4 | 5 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 5 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; |
| ... | ... | @@ -7,6 +8,8 @@ import org.springframework.data.redis.core.StringRedisTemplate; |
| 7 | 8 | import org.springframework.stereotype.Repository; |
| 8 | 9 | |
| 9 | 10 | import javax.annotation.Resource; |
| 11 | +import java.time.LocalDateTime; | |
| 12 | +import java.time.temporal.ChronoUnit; | |
| 10 | 13 | import java.util.Collection; |
| 11 | 14 | import java.util.List; |
| 12 | 15 | import java.util.concurrent.TimeUnit; |
| ... | ... | @@ -33,8 +36,8 @@ public class OAuth2AccessTokenRedisDAO { |
| 33 | 36 | String redisKey = formatKey(accessTokenDO.getAccessToken()); |
| 34 | 37 | // 清理多余字段,避免缓存 |
| 35 | 38 | accessTokenDO.setUpdater(null).setUpdateTime(null).setCreateTime(null).setCreator(null).setDeleted(null); |
| 36 | - stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO), | |
| 37 | - accessTokenDO.getExpiresTime().getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS); | |
| 39 | + long time = LocalDateTimeUtil.between(LocalDateTime.now(), accessTokenDO.getExpiresTime(), ChronoUnit.SECONDS); | |
| 40 | + stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO), time, TimeUnit.SECONDS); | |
| 38 | 41 | } |
| 39 | 42 | |
| 40 | 43 | public void delete(String accessToken) { | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
| ... | ... | @@ -24,6 +24,7 @@ import org.springframework.validation.annotation.Validated; |
| 24 | 24 | |
| 25 | 25 | import javax.annotation.PostConstruct; |
| 26 | 26 | import javax.annotation.Resource; |
| 27 | +import java.time.LocalDateTime; | |
| 27 | 28 | import java.util.*; |
| 28 | 29 | |
| 29 | 30 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -64,7 +65,7 @@ public class DeptServiceImpl implements DeptService { |
| 64 | 65 | /** |
| 65 | 66 | * 缓存部门的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 66 | 67 | */ |
| 67 | - private volatile Date maxUpdateTime; | |
| 68 | + private volatile LocalDateTime maxUpdateTime; | |
| 68 | 69 | |
| 69 | 70 | @Resource |
| 70 | 71 | private DeptMapper deptMapper; |
| ... | ... | @@ -112,7 +113,7 @@ public class DeptServiceImpl implements DeptService { |
| 112 | 113 | * @param maxUpdateTime 当前部门的最大更新时间 |
| 113 | 114 | * @return 部门列表 |
| 114 | 115 | */ |
| 115 | - protected List<DeptDO> loadDeptIfUpdate(Date maxUpdateTime) { | |
| 116 | + protected List<DeptDO> loadDeptIfUpdate(LocalDateTime maxUpdateTime) { | |
| 116 | 117 | // 第一步,判断是否要更新。 |
| 117 | 118 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 118 | 119 | log.info("[loadMenuIfUpdate][首次加载全量部门]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java
| ... | ... | @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeUpd |
| 10 | 10 | import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; |
| 11 | 11 | |
| 12 | 12 | import javax.validation.Valid; |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | /** |
| ... | ... | @@ -36,7 +36,7 @@ public interface ErrorCodeService { |
| 36 | 36 | * @param minUpdateTime 最小更新时间 |
| 37 | 37 | * @return 错误码数组 |
| 38 | 38 | */ |
| 39 | - List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, Date minUpdateTime); | |
| 39 | + List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime); | |
| 40 | 40 | |
| 41 | 41 | /** |
| 42 | 42 | * 创建错误码 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java
| ... | ... | @@ -19,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 19 | 19 | import org.springframework.validation.annotation.Validated; |
| 20 | 20 | |
| 21 | 21 | import javax.annotation.Resource; |
| 22 | -import java.util.Date; | |
| 22 | +import java.time.LocalDateTime; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | import java.util.Map; |
| 25 | 25 | |
| ... | ... | @@ -164,7 +164,7 @@ public class ErrorCodeServiceImpl implements ErrorCodeService { |
| 164 | 164 | } |
| 165 | 165 | |
| 166 | 166 | @Override |
| 167 | - public List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, Date minUpdateTime) { | |
| 167 | + public List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) { | |
| 168 | 168 | List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByApplicationNameAndUpdateTimeGt( |
| 169 | 169 | applicationName, minUpdateTime); |
| 170 | 170 | return ErrorCodeConvert.INSTANCE.convertList03(errorCodeDOs); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java
| ... | ... | @@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 12 | 12 | import org.springframework.validation.annotation.Validated; |
| 13 | 13 | |
| 14 | 14 | import javax.annotation.Resource; |
| 15 | +import java.time.LocalDateTime; | |
| 15 | 16 | import java.util.*; |
| 16 | 17 | |
| 17 | 18 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| ... | ... | @@ -46,7 +47,7 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { |
| 46 | 47 | // gh-877 - if all scopes are auto approved, approvals still need to be added to the approval store. |
| 47 | 48 | Date expireTime = DateUtils.addDate(Calendar.SECOND, TIMEOUT); |
| 48 | 49 | for (String scope : requestedScopes) { |
| 49 | - saveApprove(userId, userType, clientId, scope, true, expireTime); | |
| 50 | + saveApprove(userId, userType, clientId, scope, true, DateUtils.dateToLocalDateTime(expireTime)); | |
| 50 | 51 | } |
| 51 | 52 | return true; |
| 52 | 53 | } |
| ... | ... | @@ -73,7 +74,7 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { |
| 73 | 74 | if (entry.getValue()) { |
| 74 | 75 | success = true; |
| 75 | 76 | } |
| 76 | - saveApprove(userId, userType, clientId, entry.getKey(), entry.getValue(), expireTime); | |
| 77 | + saveApprove(userId, userType, clientId, entry.getKey(), entry.getValue(), DateUtils.dateToLocalDateTime(expireTime)); | |
| 77 | 78 | } |
| 78 | 79 | return success; |
| 79 | 80 | } |
| ... | ... | @@ -88,7 +89,7 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { |
| 88 | 89 | |
| 89 | 90 | @VisibleForTesting |
| 90 | 91 | void saveApprove(Long userId, Integer userType, String clientId, |
| 91 | - String scope, Boolean approved, Date expireTime) { | |
| 92 | + String scope, Boolean approved, LocalDateTime expireTime) { | |
| 92 | 93 | // 先更新 |
| 93 | 94 | OAuth2ApproveDO approveDO = new OAuth2ApproveDO().setUserId(userId).setUserType(userType) |
| 94 | 95 | .setClientId(clientId).setScope(scope).setApproved(approved).setExpiresTime(expireTime); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java
| ... | ... | @@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated; |
| 23 | 23 | |
| 24 | 24 | import javax.annotation.PostConstruct; |
| 25 | 25 | import javax.annotation.Resource; |
| 26 | +import java.time.LocalDateTime; | |
| 26 | 27 | import java.util.*; |
| 27 | 28 | |
| 28 | 29 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -59,7 +60,7 @@ public class OAuth2ClientServiceImpl implements OAuth2ClientService { |
| 59 | 60 | * 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 60 | 61 | */ |
| 61 | 62 | @Getter |
| 62 | - private volatile Date maxUpdateTime; | |
| 63 | + private volatile LocalDateTime maxUpdateTime; | |
| 63 | 64 | |
| 64 | 65 | @Resource |
| 65 | 66 | private OAuth2ClientMapper oauth2ClientMapper; |
| ... | ... | @@ -97,7 +98,7 @@ public class OAuth2ClientServiceImpl implements OAuth2ClientService { |
| 97 | 98 | * @param maxUpdateTime 当前客户端的最大更新时间 |
| 98 | 99 | * @return 客户端列表 |
| 99 | 100 | */ |
| 100 | - private List<OAuth2ClientDO> loadOAuth2ClientIfUpdate(Date maxUpdateTime) { | |
| 101 | + private List<OAuth2ClientDO> loadOAuth2ClientIfUpdate(LocalDateTime maxUpdateTime) { | |
| 101 | 102 | // 第一步,判断是否要更新。 |
| 102 | 103 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 103 | 104 | log.info("[loadOAuth2ClientIfUpdate][首次加载全量客户端]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java
| ... | ... | @@ -8,7 +8,7 @@ import org.springframework.stereotype.Service; |
| 8 | 8 | import org.springframework.validation.annotation.Validated; |
| 9 | 9 | |
| 10 | 10 | import javax.annotation.Resource; |
| 11 | -import java.util.Calendar; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | 14 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -38,7 +38,7 @@ public class OAuth2CodeServiceImpl implements OAuth2CodeService { |
| 38 | 38 | OAuth2CodeDO codeDO = new OAuth2CodeDO().setCode(generateCode()) |
| 39 | 39 | .setUserId(userId).setUserType(userType) |
| 40 | 40 | .setClientId(clientId).setScopes(scopes) |
| 41 | - .setExpiresTime(DateUtils.addDate(Calendar.SECOND, TIMEOUT)) | |
| 41 | + .setExpiresTime(LocalDateTime.now().plusSeconds(TIMEOUT)) | |
| 42 | 42 | .setRedirectUri(redirectUri).setState(state); |
| 43 | 43 | oauth2CodeMapper.insert(codeDO); |
| 44 | 44 | return codeDO; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
| ... | ... | @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; |
| 18 | 18 | import org.springframework.transaction.annotation.Transactional; |
| 19 | 19 | |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | +import java.time.LocalDateTime; | |
| 21 | 22 | import java.util.Calendar; |
| 22 | 23 | import java.util.List; |
| 23 | 24 | |
| ... | ... | @@ -137,7 +138,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { |
| 137 | 138 | .setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType()) |
| 138 | 139 | .setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes()) |
| 139 | 140 | .setRefreshToken(refreshTokenDO.getRefreshToken()) |
| 140 | - .setExpiresTime(DateUtils.addDate(Calendar.SECOND, clientDO.getAccessTokenValiditySeconds())); | |
| 141 | + .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds())); | |
| 141 | 142 | accessTokenDO.setTenantId(TenantContextHolder.getTenantId()); // 手动设置租户编号,避免缓存到 Redis 的时候,无对应的租户编号 |
| 142 | 143 | oauth2AccessTokenMapper.insert(accessTokenDO); |
| 143 | 144 | // 记录到 Redis 中 |
| ... | ... | @@ -149,7 +150,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { |
| 149 | 150 | OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken()) |
| 150 | 151 | .setUserId(userId).setUserType(userType) |
| 151 | 152 | .setClientId(clientDO.getClientId()).setScopes(scopes) |
| 152 | - .setExpiresTime(DateUtils.addDate(Calendar.SECOND, clientDO.getRefreshTokenValiditySeconds())); | |
| 153 | + .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds())); | |
| 153 | 154 | oauth2RefreshTokenMapper.insert(refreshToken); |
| 154 | 155 | return refreshToken; |
| 155 | 156 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
| ... | ... | @@ -28,6 +28,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager |
| 28 | 28 | |
| 29 | 29 | import javax.annotation.PostConstruct; |
| 30 | 30 | import javax.annotation.Resource; |
| 31 | +import java.time.LocalDateTime; | |
| 31 | 32 | import java.util.*; |
| 32 | 33 | import java.util.stream.Collectors; |
| 33 | 34 | |
| ... | ... | @@ -66,7 +67,7 @@ public class MenuServiceImpl implements MenuService { |
| 66 | 67 | /** |
| 67 | 68 | * 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 68 | 69 | */ |
| 69 | - private volatile Date maxUpdateTime; | |
| 70 | + private volatile LocalDateTime maxUpdateTime; | |
| 70 | 71 | |
| 71 | 72 | @Resource |
| 72 | 73 | private MenuMapper menuMapper; |
| ... | ... | @@ -118,7 +119,7 @@ public class MenuServiceImpl implements MenuService { |
| 118 | 119 | * @param maxUpdateTime 当前菜单的最大更新时间 |
| 119 | 120 | * @return 菜单列表 |
| 120 | 121 | */ |
| 121 | - private List<MenuDO> loadMenuIfUpdate(Date maxUpdateTime) { | |
| 122 | + private List<MenuDO> loadMenuIfUpdate(LocalDateTime maxUpdateTime) { | |
| 122 | 123 | // 第一步,判断是否要更新。 |
| 123 | 124 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 124 | 125 | log.info("[loadMenuIfUpdate][首次加载全量菜单]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
| ... | ... | @@ -40,6 +40,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager |
| 40 | 40 | |
| 41 | 41 | import javax.annotation.PostConstruct; |
| 42 | 42 | import javax.annotation.Resource; |
| 43 | +import java.time.LocalDateTime; | |
| 43 | 44 | import java.util.*; |
| 44 | 45 | import java.util.function.Supplier; |
| 45 | 46 | |
| ... | ... | @@ -86,7 +87,7 @@ public class PermissionServiceImpl implements PermissionService { |
| 86 | 87 | * 缓存 RoleMenu 的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 87 | 88 | */ |
| 88 | 89 | @Getter |
| 89 | - private volatile Date roleMenuMaxUpdateTime; | |
| 90 | + private volatile LocalDateTime roleMenuMaxUpdateTime; | |
| 90 | 91 | |
| 91 | 92 | /** |
| 92 | 93 | * 用户编号与角色编号的缓存映射 |
| ... | ... | @@ -102,7 +103,7 @@ public class PermissionServiceImpl implements PermissionService { |
| 102 | 103 | * 缓存 UserRole 的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 103 | 104 | */ |
| 104 | 105 | @Getter |
| 105 | - private volatile Date userRoleMaxUpdateTime; | |
| 106 | + private volatile LocalDateTime userRoleMaxUpdateTime; | |
| 106 | 107 | |
| 107 | 108 | @Resource |
| 108 | 109 | private RoleMenuMapper roleMenuMapper; |
| ... | ... | @@ -192,7 +193,7 @@ public class PermissionServiceImpl implements PermissionService { |
| 192 | 193 | * @param maxUpdateTime 当前角色与菜单的关联的最大更新时间 |
| 193 | 194 | * @return 角色与菜单的关联列表 |
| 194 | 195 | */ |
| 195 | - protected List<RoleMenuDO> loadRoleMenuIfUpdate(Date maxUpdateTime) { | |
| 196 | + protected List<RoleMenuDO> loadRoleMenuIfUpdate(LocalDateTime maxUpdateTime) { | |
| 196 | 197 | // 第一步,判断是否要更新。 |
| 197 | 198 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 198 | 199 | log.info("[loadRoleMenuIfUpdate][首次加载全量角色与菜单的关联]"); |
| ... | ... | @@ -213,7 +214,7 @@ public class PermissionServiceImpl implements PermissionService { |
| 213 | 214 | * @param maxUpdateTime 当前角色与菜单的关联的最大更新时间 |
| 214 | 215 | * @return 角色与菜单的关联列表 |
| 215 | 216 | */ |
| 216 | - protected List<UserRoleDO> loadUserRoleIfUpdate(Date maxUpdateTime) { | |
| 217 | + protected List<UserRoleDO> loadUserRoleIfUpdate(LocalDateTime maxUpdateTime) { | |
| 217 | 218 | // 第一步,判断是否要更新。 |
| 218 | 219 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 219 | 220 | log.info("[loadUserRoleIfUpdate][首次加载全量用户与角色的关联]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
| ... | ... | @@ -32,6 +32,7 @@ import org.springframework.util.StringUtils; |
| 32 | 32 | |
| 33 | 33 | import javax.annotation.PostConstruct; |
| 34 | 34 | import javax.annotation.Resource; |
| 35 | +import java.time.LocalDateTime; | |
| 35 | 36 | import java.util.*; |
| 36 | 37 | import java.util.stream.Collectors; |
| 37 | 38 | |
| ... | ... | @@ -65,7 +66,7 @@ public class RoleServiceImpl implements RoleService { |
| 65 | 66 | * 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 66 | 67 | */ |
| 67 | 68 | @Getter |
| 68 | - private volatile Date maxUpdateTime; | |
| 69 | + private volatile LocalDateTime maxUpdateTime; | |
| 69 | 70 | |
| 70 | 71 | @Resource |
| 71 | 72 | private PermissionService permissionService; |
| ... | ... | @@ -111,7 +112,7 @@ public class RoleServiceImpl implements RoleService { |
| 111 | 112 | * @param maxUpdateTime 当前角色的最大更新时间 |
| 112 | 113 | * @return 角色列表 |
| 113 | 114 | */ |
| 114 | - private List<RoleDO> loadRoleIfUpdate(Date maxUpdateTime) { | |
| 115 | + private List<RoleDO> loadRoleIfUpdate(LocalDateTime maxUpdateTime) { | |
| 115 | 116 | // 第一步,判断是否要更新。 |
| 116 | 117 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 117 | 118 | log.info("[loadRoleIfUpdate][首次加载全量角色]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java
| ... | ... | @@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated; |
| 23 | 23 | |
| 24 | 24 | import javax.annotation.PostConstruct; |
| 25 | 25 | import javax.annotation.Resource; |
| 26 | +import java.time.LocalDateTime; | |
| 26 | 27 | import java.util.*; |
| 27 | 28 | |
| 28 | 29 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -58,7 +59,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService { |
| 58 | 59 | * 缓存敏感词的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 59 | 60 | */ |
| 60 | 61 | @Getter |
| 61 | - private volatile Date maxUpdateTime; | |
| 62 | + private volatile LocalDateTime maxUpdateTime; | |
| 62 | 63 | |
| 63 | 64 | @Resource |
| 64 | 65 | private SensitiveWordMapper sensitiveWordMapper; |
| ... | ... | @@ -133,7 +134,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService { |
| 133 | 134 | * @param maxUpdateTime 当前敏感词的最大更新时间 |
| 134 | 135 | * @return 敏感词列表 |
| 135 | 136 | */ |
| 136 | - private List<SensitiveWordDO> loadSensitiveWordIfUpdate(Date maxUpdateTime) { | |
| 137 | + private List<SensitiveWordDO> loadSensitiveWordIfUpdate(LocalDateTime maxUpdateTime) { | |
| 137 | 138 | // 第一步,判断是否要更新。 |
| 138 | 139 | // 如果更新时间为空,说明 DB 一定有新数据 |
| 139 | 140 | if (maxUpdateTime == null) { | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
| ... | ... | @@ -18,8 +18,8 @@ import org.springframework.stereotype.Service; |
| 18 | 18 | |
| 19 | 19 | import javax.annotation.PostConstruct; |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | +import java.time.LocalDateTime; | |
| 21 | 22 | import java.util.Collection; |
| 22 | -import java.util.Date; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | |
| 25 | 25 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -45,7 +45,7 @@ public class SmsChannelServiceImpl implements SmsChannelService { |
| 45 | 45 | /** |
| 46 | 46 | * 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 47 | 47 | */ |
| 48 | - private volatile Date maxUpdateTime; | |
| 48 | + private volatile LocalDateTime maxUpdateTime; | |
| 49 | 49 | |
| 50 | 50 | @Resource |
| 51 | 51 | private SmsClientFactory smsClientFactory; |
| ... | ... | @@ -89,7 +89,7 @@ public class SmsChannelServiceImpl implements SmsChannelService { |
| 89 | 89 | * @param maxUpdateTime 当前短信渠道的最大更新时间 |
| 90 | 90 | * @return 短信渠道列表 |
| 91 | 91 | */ |
| 92 | - private List<SmsChannelDO> loadSmsChannelIfUpdate(Date maxUpdateTime) { | |
| 92 | + private List<SmsChannelDO> loadSmsChannelIfUpdate(LocalDateTime maxUpdateTime) { | |
| 93 | 93 | // 第一步,判断是否要更新。 |
| 94 | 94 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 95 | 95 | log.info("[loadSmsChannelIfUpdate][首次加载全量短信渠道]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.sms; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.lang.Assert; |
| 4 | 5 | import cn.hutool.core.map.MapUtil; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; |
| ... | ... | @@ -15,7 +16,9 @@ import org.springframework.stereotype.Service; |
| 15 | 16 | import org.springframework.validation.annotation.Validated; |
| 16 | 17 | |
| 17 | 18 | import javax.annotation.Resource; |
| 18 | -import java.util.Date; | |
| 19 | + | |
| 20 | +import java.time.LocalDateTime; | |
| 21 | +import java.time.temporal.ChronoUnit; | |
| 19 | 22 | |
| 20 | 23 | import static cn.hutool.core.util.RandomUtil.randomInt; |
| 21 | 24 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; |
| ... | ... | @@ -51,9 +54,9 @@ public class SmsCodeServiceImpl implements SmsCodeService { |
| 51 | 54 | |
| 52 | 55 | private String createSmsCode(String mobile, Integer scene, String ip) { |
| 53 | 56 | // 校验是否可以发送验证码,不用筛选场景 |
| 54 | - SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null,null); | |
| 57 | + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null, null); | |
| 55 | 58 | if (lastSmsCode != null) { |
| 56 | - if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime() | |
| 59 | + if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() | |
| 57 | 60 | < smsCodeProperties.getSendFrequency().toMillis()) { // 发送过于频繁 |
| 58 | 61 | throw ServiceExceptionUtil.exception(SMS_CODE_SEND_TOO_FAST); |
| 59 | 62 | } |
| ... | ... | @@ -80,7 +83,7 @@ public class SmsCodeServiceImpl implements SmsCodeService { |
| 80 | 83 | SmsCodeDO lastSmsCode = this.checkSmsCode0(reqDTO.getMobile(), reqDTO.getCode(), reqDTO.getScene()); |
| 81 | 84 | // 使用验证码 |
| 82 | 85 | smsCodeMapper.updateById(SmsCodeDO.builder().id(lastSmsCode.getId()) |
| 83 | - .used(true).usedTime(new Date()).usedIp(reqDTO.getUsedIp()).build()); | |
| 86 | + .used(true).usedTime(LocalDateTime.now()).usedIp(reqDTO.getUsedIp()).build()); | |
| 84 | 87 | } |
| 85 | 88 | |
| 86 | 89 | @Override |
| ... | ... | @@ -90,13 +93,13 @@ public class SmsCodeServiceImpl implements SmsCodeService { |
| 90 | 93 | |
| 91 | 94 | public SmsCodeDO checkSmsCode0(String mobile, String code, Integer scene) { |
| 92 | 95 | // 校验验证码 |
| 93 | - SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile,code,scene); | |
| 96 | + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, code, scene); | |
| 94 | 97 | // 若验证码不存在,抛出异常 |
| 95 | 98 | if (lastSmsCode == null) { |
| 96 | 99 | throw ServiceExceptionUtil.exception(SMS_CODE_NOT_FOUND); |
| 97 | 100 | } |
| 98 | 101 | // 超过时间 |
| 99 | - if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime() | |
| 102 | + if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() | |
| 100 | 103 | >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期 |
| 101 | 104 | throw ServiceExceptionUtil.exception(SMS_CODE_EXPIRED); |
| 102 | 105 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; |
| 8 | 8 | |
| 9 | -import java.util.Date; | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | 10 | import java.util.List; |
| 11 | 11 | import java.util.Map; |
| 12 | 12 | |
| ... | ... | @@ -56,7 +56,7 @@ public interface SmsLogService { |
| 56 | 56 | * @param apiReceiveCode API 接收结果的编码 |
| 57 | 57 | * @param apiReceiveMsg API 接收结果的说明 |
| 58 | 58 | */ |
| 59 | - void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg); | |
| 59 | + void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime, String apiReceiveCode, String apiReceiveMsg); | |
| 60 | 60 | |
| 61 | 61 | /** |
| 62 | 62 | * 获得短信日志分页 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
| ... | ... | @@ -13,7 +13,7 @@ import lombok.extern.slf4j.Slf4j; |
| 13 | 13 | import org.springframework.stereotype.Service; |
| 14 | 14 | |
| 15 | 15 | import javax.annotation.Resource; |
| 16 | -import java.util.Date; | |
| 16 | +import java.time.LocalDateTime; | |
| 17 | 17 | import java.util.List; |
| 18 | 18 | import java.util.Map; |
| 19 | 19 | import java.util.Objects; |
| ... | ... | @@ -61,13 +61,13 @@ public class SmsLogServiceImpl implements SmsLogService { |
| 61 | 61 | SmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ? |
| 62 | 62 | SmsSendStatusEnum.SUCCESS : SmsSendStatusEnum.FAILURE; |
| 63 | 63 | smsLogMapper.updateById(SmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus()) |
| 64 | - .sendTime(new Date()).sendCode(sendCode).sendMsg(sendMsg) | |
| 64 | + .sendTime(LocalDateTime.now()).sendCode(sendCode).sendMsg(sendMsg) | |
| 65 | 65 | .apiSendCode(apiSendCode).apiSendMsg(apiSendMsg) |
| 66 | 66 | .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build()); |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | @Override |
| 70 | - public void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, | |
| 70 | + public void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime, | |
| 71 | 71 | String apiReceiveCode, String apiReceiveMsg) { |
| 72 | 72 | SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? |
| 73 | 73 | SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE; | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
| ... | ... | @@ -27,6 +27,7 @@ import org.springframework.util.Assert; |
| 27 | 27 | |
| 28 | 28 | import javax.annotation.PostConstruct; |
| 29 | 29 | import javax.annotation.Resource; |
| 30 | +import java.time.LocalDateTime; | |
| 30 | 31 | import java.util.*; |
| 31 | 32 | import java.util.regex.Pattern; |
| 32 | 33 | |
| ... | ... | @@ -76,7 +77,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService { |
| 76 | 77 | /** |
| 77 | 78 | * 缓存短信模板的最大更新时间,用于后续的增量轮询,判断是否有更新 |
| 78 | 79 | */ |
| 79 | - private volatile Date maxUpdateTime; | |
| 80 | + private volatile LocalDateTime maxUpdateTime; | |
| 80 | 81 | |
| 81 | 82 | @Override |
| 82 | 83 | @PostConstruct |
| ... | ... | @@ -100,7 +101,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService { |
| 100 | 101 | * @param maxUpdateTime 当前短信模板的最大更新时间 |
| 101 | 102 | * @return 短信模板列表 |
| 102 | 103 | */ |
| 103 | - private List<SmsTemplateDO> loadSmsTemplateIfUpdate(Date maxUpdateTime) { | |
| 104 | + private List<SmsTemplateDO> loadSmsTemplateIfUpdate(LocalDateTime maxUpdateTime) { | |
| 104 | 105 | // 第一步,判断是否要更新。 |
| 105 | 106 | if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 |
| 106 | 107 | log.info("[loadSmsTemplateIfUpdate][首次加载全量短信模板]"); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
| ... | ... | @@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 32 | 32 | |
| 33 | 33 | import javax.annotation.Resource; |
| 34 | 34 | import java.io.InputStream; |
| 35 | +import java.time.LocalDateTime; | |
| 35 | 36 | import java.util.*; |
| 36 | 37 | |
| 37 | 38 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -129,7 +130,7 @@ public class AdminUserServiceImpl implements AdminUserService { |
| 129 | 130 | |
| 130 | 131 | @Override |
| 131 | 132 | public void updateUserLogin(Long id, String loginIp) { |
| 132 | - userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date())); | |
| 133 | + userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(LocalDateTime.now())); | |
| 133 | 134 | } |
| 134 | 135 | |
| 135 | 136 | @Override | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java
| 1 | 1 | package cn.iocoder.yudao.module.system.util.oauth2; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 4 | 5 | import cn.hutool.core.util.StrUtil; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.util.http.HttpUtils; |
| 6 | 7 | import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; |
| 7 | 8 | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | +import java.time.temporal.ChronoUnit; | |
| 8 | 11 | import java.util.*; |
| 9 | 12 | |
| 10 | 13 | /** |
| ... | ... | @@ -46,7 +49,7 @@ public class OAuth2Utils { |
| 46 | 49 | * @param additionalInformation 附加信息 |
| 47 | 50 | * @return 简化授权模式下的重定向 URI |
| 48 | 51 | */ |
| 49 | - public static String buildImplicitRedirectUri(String redirectUri, String accessToken, String state, Date expireTime, | |
| 52 | + public static String buildImplicitRedirectUri(String redirectUri, String accessToken, String state, LocalDateTime expireTime, | |
| 50 | 53 | Collection<String> scopes, Map<String, Object> additionalInformation) { |
| 51 | 54 | Map<String, Object> vars = new LinkedHashMap<String, Object>(); |
| 52 | 55 | Map<String, String> keys = new HashMap<String, String>(); |
| ... | ... | @@ -85,8 +88,8 @@ public class OAuth2Utils { |
| 85 | 88 | return HttpUtils.append(redirectUri, query, null, !responseType.contains("code")); |
| 86 | 89 | } |
| 87 | 90 | |
| 88 | - public static long getExpiresIn(Date expireTime) { | |
| 89 | - return (expireTime.getTime() - System.currentTimeMillis()) / 1000; | |
| 91 | + public static long getExpiresIn(LocalDateTime expireTime) { | |
| 92 | + return LocalDateTimeUtil.between(LocalDateTime.now(), expireTime, ChronoUnit.SECONDS); | |
| 90 | 93 | } |
| 91 | 94 | |
| 92 | 95 | public static String buildScopeStr(Collection<String> scopes) { | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java
| 1 | 1 | package cn.iocoder.yudao.module.system.controller.admin.oauth2; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.ListUtil; |
| 4 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 4 | 5 | import cn.hutool.core.map.MapUtil; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.core.KeyValue; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| ... | ... | @@ -25,14 +26,13 @@ import org.mockito.InjectMocks; |
| 25 | 26 | import org.mockito.Mock; |
| 26 | 27 | |
| 27 | 28 | import javax.servlet.http.HttpServletRequest; |
| 28 | -import java.time.Duration; | |
| 29 | +import java.time.LocalDateTime; | |
| 30 | +import java.time.temporal.ChronoUnit; | |
| 29 | 31 | import java.util.ArrayList; |
| 30 | -import java.util.Date; | |
| 31 | 32 | import java.util.LinkedHashMap; |
| 32 | 33 | import java.util.List; |
| 33 | 34 | |
| 34 | 35 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| 35 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 36 | 36 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 37 | 37 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 38 | 38 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; |
| ... | ... | @@ -77,7 +77,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { |
| 77 | 77 | |
| 78 | 78 | // mock 方法(访问令牌) |
| 79 | 79 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 80 | - .setExpiresTime(addTime(Duration.ofMillis(30050L))); // 多给 10 毫秒,保证可执行完 | |
| 80 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 10L, ChronoUnit.MILLIS)); // 多给 10 毫秒,保证可执行完 | |
| 81 | 81 | when(oauth2GrantService.grantAuthorizationCodeForAccessToken(eq("test_client_id"), |
| 82 | 82 | eq(code), eq(redirectUri), eq(state))).thenReturn(accessTokenDO); |
| 83 | 83 | |
| ... | ... | @@ -105,7 +105,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { |
| 105 | 105 | |
| 106 | 106 | // mock 方法(访问令牌) |
| 107 | 107 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 108 | - .setExpiresTime(addTime(Duration.ofMillis(30050L))); // 多给 10 毫秒,保证可执行完 | |
| 108 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30050L, ChronoUnit.MILLIS)); // 多给 10 毫秒,保证可执行完 | |
| 109 | 109 | when(oauth2GrantService.grantPassword(eq(username), eq(password), eq("test_client_id"), |
| 110 | 110 | eq(Lists.newArrayList("write", "read")))).thenReturn(accessTokenDO); |
| 111 | 111 | |
| ... | ... | @@ -132,7 +132,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { |
| 132 | 132 | |
| 133 | 133 | // mock 方法(访问令牌) |
| 134 | 134 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 135 | - .setExpiresTime(addTime(Duration.ofMillis(30010L))); // 多给 10 毫秒,保证可执行完 | |
| 135 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30050L, ChronoUnit.MILLIS)); // 多给 10 毫秒,保证可执行完 | |
| 136 | 136 | when(oauth2GrantService.grantRefreshToken(eq(refreshToken), eq("test_client_id"))).thenReturn(accessTokenDO); |
| 137 | 137 | |
| 138 | 138 | // 调用 |
| ... | ... | @@ -178,7 +178,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { |
| 178 | 178 | HttpServletRequest request = mockRequest("demo_client_id", "demo_client_secret"); |
| 179 | 179 | String token = randomString(); |
| 180 | 180 | // mock 方法 |
| 181 | - OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setUserType(UserTypeEnum.ADMIN.getValue()).setExpiresTime(new Date(1653485731195L)); | |
| 181 | + OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setUserType(UserTypeEnum.ADMIN.getValue()).setExpiresTime(LocalDateTimeUtil.of(1653485731195L)); | |
| 182 | 182 | when(oauth2TokenService.checkAccessToken(eq(token))).thenReturn(accessTokenDO); |
| 183 | 183 | |
| 184 | 184 | // 调用 |
| ... | ... | @@ -279,7 +279,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { |
| 279 | 279 | eq(clientId), eq(SetUtils.asSet("read", "write")))).thenReturn(true); |
| 280 | 280 | // mock 方法(访问令牌) |
| 281 | 281 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 282 | - .setAccessToken("test_access_token").setExpiresTime(addTime(Duration.ofMillis(30010L))); | |
| 282 | + .setAccessToken("test_access_token").setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30010L, ChronoUnit.MILLIS)); | |
| 283 | 283 | when(oauth2GrantService.grantImplicit(isNull(), eq(UserTypeEnum.ADMIN.getValue()), |
| 284 | 284 | eq(clientId), eq(ListUtil.toList("read")))).thenReturn(accessTokenDO); |
| 285 | 285 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java
| ... | ... | @@ -17,7 +17,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 17 | 17 | import org.springframework.context.annotation.Import; |
| 18 | 18 | |
| 19 | 19 | import javax.annotation.Resource; |
| 20 | -import java.util.Date; | |
| 20 | +import java.time.LocalDateTime; | |
| 21 | 21 | import java.util.List; |
| 22 | 22 | import java.util.Map; |
| 23 | 23 | import java.util.function.Consumer; |
| ... | ... | @@ -69,7 +69,7 @@ public class DeptServiceTest extends BaseDbUnitTest { |
| 69 | 69 | assertPojoEquals(deptDO1, parentDeptCache.get(deptDO1.getParentId())); |
| 70 | 70 | assertPojoEquals(deptDO2, parentDeptCache.get(deptDO2.getParentId())); |
| 71 | 71 | // 断言 maxUpdateTime 缓存 |
| 72 | - Date maxUpdateTime = (Date) getFieldValue(deptService, "maxUpdateTime"); | |
| 72 | + LocalDateTime maxUpdateTime = (LocalDateTime) getFieldValue(deptService, "maxUpdateTime"); | |
| 73 | 73 | assertEquals(ObjectUtils.max(deptDO1.getUpdateTime(), deptDO2.getUpdateTime()), maxUpdateTime); |
| 74 | 74 | } |
| 75 | 75 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java
| ... | ... | @@ -16,7 +16,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 16 | 16 | import org.springframework.context.annotation.Import; |
| 17 | 17 | |
| 18 | 18 | import javax.annotation.Resource; |
| 19 | -import java.util.Date; | |
| 19 | +import java.time.LocalDateTime; | |
| 20 | 20 | import java.util.List; |
| 21 | 21 | import java.util.function.Consumer; |
| 22 | 22 | |
| ... | ... | @@ -24,7 +24,7 @@ import static cn.hutool.core.util.RandomUtil.randomEle; |
| 24 | 24 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; |
| 25 | 25 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 26 | 26 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 27 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 27 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 29 | 29 | import static org.junit.jupiter.api.Assertions.*; |
| 30 | 30 | import static org.mockito.ArgumentMatchers.eq; |
| ... | ... | @@ -48,7 +48,7 @@ public class DictTypeServiceTest extends BaseDbUnitTest { |
| 48 | 48 | o.setName("yunai"); |
| 49 | 49 | o.setType("芋艿"); |
| 50 | 50 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 51 | - o.setCreateTime(buildTime(2021, 1, 15)); | |
| 51 | + o.setCreateTime(buildLocalDateTime(2021, 1, 15)); | |
| 52 | 52 | }); |
| 53 | 53 | dictTypeMapper.insert(dbDictType); |
| 54 | 54 | // 测试 name 不匹配 |
| ... | ... | @@ -58,13 +58,13 @@ public class DictTypeServiceTest extends BaseDbUnitTest { |
| 58 | 58 | // 测试 status 不匹配 |
| 59 | 59 | dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 60 | 60 | // 测试 createTime 不匹配 |
| 61 | - dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1)))); | |
| 61 | + dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1)))); | |
| 62 | 62 | // 准备参数 |
| 63 | 63 | DictTypePageReqVO reqVO = new DictTypePageReqVO(); |
| 64 | 64 | reqVO.setName("nai"); |
| 65 | 65 | reqVO.setType("艿"); |
| 66 | 66 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 67 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10),buildTime(2021, 1, 20)})); | |
| 67 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 10),buildLocalDateTime(2021, 1, 20)})); | |
| 68 | 68 | |
| 69 | 69 | // 调用 |
| 70 | 70 | PageResult<DictTypeDO> pageResult = dictTypeService.getDictTypePage(reqVO); |
| ... | ... | @@ -81,7 +81,7 @@ public class DictTypeServiceTest extends BaseDbUnitTest { |
| 81 | 81 | o.setName("yunai"); |
| 82 | 82 | o.setType("芋艿"); |
| 83 | 83 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 84 | - o.setCreateTime(buildTime(2021, 1, 15)); | |
| 84 | + o.setCreateTime(buildLocalDateTime(2021, 1, 15)); | |
| 85 | 85 | }); |
| 86 | 86 | dictTypeMapper.insert(dbDictType); |
| 87 | 87 | // 测试 name 不匹配 |
| ... | ... | @@ -91,13 +91,13 @@ public class DictTypeServiceTest extends BaseDbUnitTest { |
| 91 | 91 | // 测试 status 不匹配 |
| 92 | 92 | dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 93 | 93 | // 测试 createTime 不匹配 |
| 94 | - dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1)))); | |
| 94 | + dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1)))); | |
| 95 | 95 | // 准备参数 |
| 96 | 96 | DictTypeExportReqVO reqVO = new DictTypeExportReqVO(); |
| 97 | 97 | reqVO.setName("nai"); |
| 98 | 98 | reqVO.setType("艿"); |
| 99 | 99 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 100 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10),buildTime(2021, 1, 20)})); | |
| 100 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 10),buildLocalDateTime(2021, 1, 20)})); | |
| 101 | 101 | |
| 102 | 102 | // 调用 |
| 103 | 103 | List<DictTypeDO> list = dictTypeService.getDictTypeList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java
| ... | ... | @@ -17,12 +17,12 @@ import org.junit.jupiter.api.Test; |
| 17 | 17 | import org.springframework.context.annotation.Import; |
| 18 | 18 | |
| 19 | 19 | import javax.annotation.Resource; |
| 20 | -import java.util.Date; | |
| 20 | +import java.time.LocalDateTime; | |
| 21 | 21 | import java.util.List; |
| 22 | 22 | import java.util.function.Consumer; |
| 23 | 23 | |
| 24 | 24 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 25 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 25 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 26 | 26 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 27 | 27 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -96,7 +96,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { |
| 96 | 96 | reqVO.setApplicationName("tu"); |
| 97 | 97 | reqVO.setCode(1); |
| 98 | 98 | reqVO.setMessage("ma"); |
| 99 | - reqVO.setCreateTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)})); | |
| 99 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)})); | |
| 100 | 100 | |
| 101 | 101 | // 调用 |
| 102 | 102 | PageResult<ErrorCodeDO> pageResult = errorCodeService.getErrorCodePage(reqVO); |
| ... | ... | @@ -115,7 +115,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { |
| 115 | 115 | o.setApplicationName("tudou"); |
| 116 | 116 | o.setCode(1); |
| 117 | 117 | o.setMessage("yuanma"); |
| 118 | - o.setCreateTime(buildTime(2020, 11, 11)); | |
| 118 | + o.setCreateTime(buildLocalDateTime(2020, 11, 11)); | |
| 119 | 119 | }); |
| 120 | 120 | errorCodeMapper.insert(dbErrorCode); |
| 121 | 121 | // 测试 type 不匹配 |
| ... | ... | @@ -127,7 +127,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { |
| 127 | 127 | // 测试 message 不匹配 |
| 128 | 128 | errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setMessage("nai"))); |
| 129 | 129 | // 测试 createTime 不匹配 |
| 130 | - errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setCreateTime(buildTime(2020, 12, 12)))); | |
| 130 | + errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setCreateTime(buildLocalDateTime(2020, 12, 12)))); | |
| 131 | 131 | return dbErrorCode; |
| 132 | 132 | } |
| 133 | 133 | |
| ... | ... | @@ -141,7 +141,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { |
| 141 | 141 | reqVO.setApplicationName("tu"); |
| 142 | 142 | reqVO.setCode(1); |
| 143 | 143 | reqVO.setMessage("ma"); |
| 144 | - reqVO.setCreateTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)})); | |
| 144 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)})); | |
| 145 | 145 | |
| 146 | 146 | // 调用 |
| 147 | 147 | List<ErrorCodeDO> list = errorCodeService.getErrorCodeList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
| ... | ... | @@ -18,12 +18,12 @@ import org.junit.jupiter.api.Test; |
| 18 | 18 | import org.springframework.context.annotation.Import; |
| 19 | 19 | |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | -import java.util.Date; | |
| 21 | +import java.time.LocalDateTime; | |
| 22 | 22 | import java.util.List; |
| 23 | 23 | |
| 24 | 24 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 25 | 25 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 26 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 26 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 27 | 27 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 28 | 28 | |
| 29 | 29 | @Import(LoginLogServiceImpl.class) |
| ... | ... | @@ -46,7 +46,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { |
| 46 | 46 | |
| 47 | 47 | logDO.setUserIp("192.168.199.16"); |
| 48 | 48 | logDO.setUsername("wangkai"); |
| 49 | - logDO.setCreateTime(buildTime(2021, 3, 6)); | |
| 49 | + logDO.setCreateTime(buildLocalDateTime(2021, 3, 6)); | |
| 50 | 50 | logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult()); |
| 51 | 51 | }); |
| 52 | 52 | loginLogMapper.insert(loginLogDO); |
| ... | ... | @@ -59,7 +59,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { |
| 59 | 59 | // 不同username |
| 60 | 60 | loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai"))); |
| 61 | 61 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 62 | - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6)))); | |
| 62 | + loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildLocalDateTime(2021, 2, 6)))); | |
| 63 | 63 | |
| 64 | 64 | |
| 65 | 65 | // 构造调用参数 |
| ... | ... | @@ -67,7 +67,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { |
| 67 | 67 | reqVO.setUsername("wangkai"); |
| 68 | 68 | reqVO.setUserIp("192.168.199"); |
| 69 | 69 | reqVO.setStatus(true); |
| 70 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 5)})); | |
| 70 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),buildLocalDateTime(2021, 3, 5)})); | |
| 71 | 71 | |
| 72 | 72 | // 调用service方法 |
| 73 | 73 | PageResult<LoginLogDO> pageResult = loginLogService.getLoginLogPage(reqVO); |
| ... | ... | @@ -90,7 +90,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { |
| 90 | 90 | |
| 91 | 91 | logDO.setUserIp("192.168.111.16"); |
| 92 | 92 | logDO.setUsername("wangxiaokai"); |
| 93 | - logDO.setCreateTime(buildTime(2021, 3, 6)); | |
| 93 | + logDO.setCreateTime(buildLocalDateTime(2021, 3, 6)); | |
| 94 | 94 | logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult()); |
| 95 | 95 | }); |
| 96 | 96 | loginLogMapper.insert(loginLogDO); |
| ... | ... | @@ -103,14 +103,14 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { |
| 103 | 103 | // 不同username |
| 104 | 104 | loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai"))); |
| 105 | 105 | // 构造一个早期时间 2021-02-06 00:00:00 |
| 106 | - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6)))); | |
| 106 | + loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildLocalDateTime(2021, 2, 6)))); | |
| 107 | 107 | |
| 108 | 108 | // 构造调用参数 |
| 109 | 109 | LoginLogExportReqVO reqVO = new LoginLogExportReqVO(); |
| 110 | 110 | reqVO.setUsername("wangxiaokai"); |
| 111 | 111 | reqVO.setUserIp("192.168.111"); |
| 112 | 112 | reqVO.setStatus(true); |
| 113 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 5)})); | |
| 113 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),buildLocalDateTime(2021, 3, 5)})); | |
| 114 | 114 | |
| 115 | 115 | // 调用service方法 |
| 116 | 116 | List<LoginLogDO> loginLogList = loginLogService.getLoginLogList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
| ... | ... | @@ -23,13 +23,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 23 | 23 | import org.springframework.context.annotation.Import; |
| 24 | 24 | |
| 25 | 25 | import javax.annotation.Resource; |
| 26 | +import java.time.LocalDateTime; | |
| 26 | 27 | import java.util.Collections; |
| 27 | -import java.util.Date; | |
| 28 | 28 | import java.util.List; |
| 29 | 29 | |
| 30 | 30 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 31 | 31 | import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; |
| 32 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 32 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 33 | 33 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 34 | 34 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; |
| 35 | 35 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| ... | ... | @@ -81,7 +81,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 81 | 81 | o.setUserType(randomEle(UserTypeEnum.values()).getValue()); |
| 82 | 82 | o.setModule("order"); |
| 83 | 83 | o.setType(OperateTypeEnum.CREATE.getType()); |
| 84 | - o.setStartTime(buildTime(2021, 3, 6)); | |
| 84 | + o.setStartTime(buildLocalDateTime(2021, 3, 6)); | |
| 85 | 85 | o.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode()); |
| 86 | 86 | o.setExts(MapUtil.<String, Object>builder("orderId", randomLongId()).build()); |
| 87 | 87 | }); |
| ... | ... | @@ -95,7 +95,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 95 | 95 | // type 不同 |
| 96 | 96 | operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setType(OperateTypeEnum.IMPORT.getType()))); |
| 97 | 97 | // createTime 不同 |
| 98 | - operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildTime(2021, 2, 6)))); | |
| 98 | + operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildLocalDateTime(2021, 2, 6)))); | |
| 99 | 99 | // resultCode 不同 |
| 100 | 100 | operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setResultCode(BAD_REQUEST.getCode()))); |
| 101 | 101 | |
| ... | ... | @@ -104,7 +104,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 104 | 104 | reqVO.setUserNickname("wangkai"); |
| 105 | 105 | reqVO.setModule("order"); |
| 106 | 106 | reqVO.setType(OperateTypeEnum.CREATE.getType()); |
| 107 | - reqVO.setStartTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 7)})); | |
| 107 | + reqVO.setStartTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),buildLocalDateTime(2021, 3, 7)})); | |
| 108 | 108 | reqVO.setSuccess(true); |
| 109 | 109 | |
| 110 | 110 | // 调用service方法 |
| ... | ... | @@ -132,7 +132,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 132 | 132 | o.setUserType(randomEle(UserTypeEnum.values()).getValue()); |
| 133 | 133 | o.setModule("order"); |
| 134 | 134 | o.setType(OperateTypeEnum.CREATE.getType()); |
| 135 | - o.setStartTime(buildTime(2021, 3, 6)); | |
| 135 | + o.setStartTime(buildLocalDateTime(2021, 3, 6)); | |
| 136 | 136 | o.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode()); |
| 137 | 137 | o.setExts(MapUtil.<String, Object>builder("orderId", randomLongId()).build()); |
| 138 | 138 | }); |
| ... | ... | @@ -146,7 +146,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 146 | 146 | // type 不同 |
| 147 | 147 | operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setType(OperateTypeEnum.IMPORT.getType()))); |
| 148 | 148 | // createTime 不同 |
| 149 | - operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildTime(2021, 2, 6)))); | |
| 149 | + operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildLocalDateTime(2021, 2, 6)))); | |
| 150 | 150 | // resultCode 不同 |
| 151 | 151 | operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setResultCode(BAD_REQUEST.getCode()))); |
| 152 | 152 | |
| ... | ... | @@ -155,7 +155,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { |
| 155 | 155 | reqVO.setUserNickname("wangkai"); |
| 156 | 156 | reqVO.setModule("order"); |
| 157 | 157 | reqVO.setType(OperateTypeEnum.CREATE.getType()); |
| 158 | - reqVO.setStartTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 7)})); | |
| 158 | + reqVO.setStartTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),buildLocalDateTime(2021, 3, 7)})); | |
| 159 | 159 | reqVO.setSuccess(true); |
| 160 | 160 | |
| 161 | 161 | // 调用 service 方法 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.oauth2; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.util.ObjectUtil; |
| 4 | 5 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.util.date.DateUtils; |
| ... | ... | @@ -13,11 +14,12 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 13 | 14 | import org.springframework.context.annotation.Import; |
| 14 | 15 | |
| 15 | 16 | import javax.annotation.Resource; |
| 16 | -import java.time.Duration; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | +import java.time.ZoneId; | |
| 19 | +import java.time.temporal.ChronoUnit; | |
| 17 | 20 | import java.util.*; |
| 18 | 21 | |
| 19 | 22 | import static cn.hutool.core.util.RandomUtil.*; |
| 20 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 21 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 22 | 24 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; |
| 23 | 25 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -81,7 +83,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { |
| 81 | 83 | // mock 数据 |
| 82 | 84 | OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId) |
| 83 | 85 | .setUserType(userType).setClientId(clientId).setScope("read") |
| 84 | - .setExpiresTime(addTime(Duration.ofDays(1))).setApproved(true); // 同意 | |
| 86 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS)).setApproved(true); // 同意 | |
| 85 | 87 | oauth2ApproveMapper.insert(approve); |
| 86 | 88 | |
| 87 | 89 | // 调用 |
| ... | ... | @@ -104,7 +106,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { |
| 104 | 106 | // mock 数据 |
| 105 | 107 | OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId) |
| 106 | 108 | .setUserType(userType).setClientId(clientId).setScope("read") |
| 107 | - .setExpiresTime(addTime(Duration.ofDays(1))).setApproved(false); // 拒绝 | |
| 109 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS)).setApproved(false); // 拒绝 | |
| 108 | 110 | oauth2ApproveMapper.insert(approve); |
| 109 | 111 | |
| 110 | 112 | // 调用 |
| ... | ... | @@ -198,10 +200,10 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { |
| 198 | 200 | String clientId = randomString(); |
| 199 | 201 | // mock 数据 |
| 200 | 202 | OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId) |
| 201 | - .setUserType(userType).setClientId(clientId).setExpiresTime(addTime(Duration.ofDays(1L))); | |
| 203 | + .setUserType(userType).setClientId(clientId).setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS)); | |
| 202 | 204 | oauth2ApproveMapper.insert(approve); // 未过期 |
| 203 | 205 | oauth2ApproveMapper.insert(ObjectUtil.clone(approve).setId(null) |
| 204 | - .setExpiresTime(addTime(Duration.ofDays(-1L)))); // 已过期 | |
| 206 | + .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), -1L, ChronoUnit.DAYS))); // 已过期 | |
| 205 | 207 | |
| 206 | 208 | // 调用 |
| 207 | 209 | List<OAuth2ApproveDO> result = oauth2ApproveService.getApproveList(userId, userType, clientId); |
| ... | ... | @@ -218,7 +220,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { |
| 218 | 220 | String clientId = randomString(); |
| 219 | 221 | String scope = randomString(); |
| 220 | 222 | Boolean approved = randomBoolean(); |
| 221 | - Date expireTime = randomDay(1, 30); | |
| 223 | + LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()); | |
| 222 | 224 | // mock 方法 |
| 223 | 225 | |
| 224 | 226 | // 调用 |
| ... | ... | @@ -246,7 +248,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { |
| 246 | 248 | String clientId = approve.getClientId(); |
| 247 | 249 | String scope = approve.getScope(); |
| 248 | 250 | Boolean approved = randomBoolean(); |
| 249 | - Date expireTime = randomDay(1, 30); | |
| 251 | + LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()); | |
| 250 | 252 | // mock 方法 |
| 251 | 253 | |
| 252 | 254 | // 调用 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
| ... | ... | @@ -11,10 +11,9 @@ import org.junit.jupiter.api.Test; |
| 11 | 11 | import org.springframework.context.annotation.Import; |
| 12 | 12 | |
| 13 | 13 | import javax.annotation.Resource; |
| 14 | -import java.time.Duration; | |
| 14 | +import java.time.LocalDateTime; | |
| 15 | 15 | import java.util.List; |
| 16 | 16 | |
| 17 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 18 | 17 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 19 | 18 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 20 | 19 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -74,7 +73,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest { |
| 74 | 73 | String code = "test_code"; |
| 75 | 74 | // mock 数据 |
| 76 | 75 | OAuth2CodeDO codeDO = randomPojo(OAuth2CodeDO.class).setCode(code) |
| 77 | - .setExpiresTime(addTime(Duration.ofDays(-1))); | |
| 76 | + .setExpiresTime(LocalDateTime.now().minusDays(1)); | |
| 78 | 77 | oauth2CodeMapper.insert(codeDO); |
| 79 | 78 | |
| 80 | 79 | // 调用,并断言 |
| ... | ... | @@ -88,7 +87,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest { |
| 88 | 87 | String code = "test_code"; |
| 89 | 88 | // mock 数据 |
| 90 | 89 | OAuth2CodeDO codeDO = randomPojo(OAuth2CodeDO.class).setCode(code) |
| 91 | - .setExpiresTime(addTime(Duration.ofDays(1))); | |
| 90 | + .setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 92 | 91 | oauth2CodeMapper.insert(codeDO); |
| 93 | 92 | |
| 94 | 93 | // 调用 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.oauth2; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.hutool.core.util.RandomUtil; |
| 4 | 5 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.exception.ErrorCode; |
| ... | ... | @@ -20,11 +21,9 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 20 | 21 | import org.springframework.context.annotation.Import; |
| 21 | 22 | |
| 22 | 23 | import javax.annotation.Resource; |
| 23 | -import java.time.Duration; | |
| 24 | -import java.util.Date; | |
| 24 | +import java.time.LocalDateTime; | |
| 25 | 25 | import java.util.List; |
| 26 | 26 | |
| 27 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 28 | 27 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 29 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 30 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -128,7 +127,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 128 | 127 | // mock 数据(访问令牌) |
| 129 | 128 | OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class) |
| 130 | 129 | .setRefreshToken(refreshToken).setClientId(clientId) |
| 131 | - .setExpiresTime(addTime(Duration.ofDays(-1))); | |
| 130 | + .setExpiresTime(LocalDateTime.now().minusDays(1)); | |
| 132 | 131 | oauth2RefreshTokenMapper.insert(refreshTokenDO); |
| 133 | 132 | |
| 134 | 133 | // 调用,并断言 |
| ... | ... | @@ -150,7 +149,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 150 | 149 | // mock 数据(访问令牌) |
| 151 | 150 | OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class) |
| 152 | 151 | .setRefreshToken(refreshToken).setClientId(clientId) |
| 153 | - .setExpiresTime(addTime(Duration.ofDays(1))); | |
| 152 | + .setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 154 | 153 | oauth2RefreshTokenMapper.insert(refreshTokenDO); |
| 155 | 154 | // mock 数据(访问令牌) |
| 156 | 155 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setRefreshToken(refreshToken); |
| ... | ... | @@ -177,7 +176,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 177 | 176 | public void testGetAccessToken() { |
| 178 | 177 | // mock 数据(访问令牌) |
| 179 | 178 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 180 | - .setExpiresTime(addTime(Duration.ofDays(1))); | |
| 179 | + .setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 181 | 180 | oauth2AccessTokenMapper.insert(accessTokenDO); |
| 182 | 181 | // 准备参数 |
| 183 | 182 | String accessToken = accessTokenDO.getAccessToken(); |
| ... | ... | @@ -202,7 +201,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 202 | 201 | public void testCheckAccessToken_expired() { |
| 203 | 202 | // mock 数据(访问令牌) |
| 204 | 203 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 205 | - .setExpiresTime(addTime(Duration.ofDays(-1))); | |
| 204 | + .setExpiresTime(LocalDateTime.now().minusDays(1)); | |
| 206 | 205 | oauth2AccessTokenMapper.insert(accessTokenDO); |
| 207 | 206 | // 准备参数 |
| 208 | 207 | String accessToken = accessTokenDO.getAccessToken(); |
| ... | ... | @@ -216,7 +215,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 216 | 215 | public void testCheckAccessToken_success() { |
| 217 | 216 | // mock 数据(访问令牌) |
| 218 | 217 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 219 | - .setExpiresTime(addTime(Duration.ofDays(1))); | |
| 218 | + .setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 220 | 219 | oauth2AccessTokenMapper.insert(accessTokenDO); |
| 221 | 220 | // 准备参数 |
| 222 | 221 | String accessToken = accessTokenDO.getAccessToken(); |
| ... | ... | @@ -238,7 +237,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 238 | 237 | public void testRemoveAccessToken_success() { |
| 239 | 238 | // mock 数据(访问令牌) |
| 240 | 239 | OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class) |
| 241 | - .setExpiresTime(addTime(Duration.ofDays(1))); | |
| 240 | + .setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 242 | 241 | oauth2AccessTokenMapper.insert(accessTokenDO); |
| 243 | 242 | // mock 数据(刷新令牌) |
| 244 | 243 | OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class) |
| ... | ... | @@ -262,7 +261,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 262 | 261 | o.setUserId(10L); |
| 263 | 262 | o.setUserType(1); |
| 264 | 263 | o.setClientId("test_client"); |
| 265 | - o.setExpiresTime(DateUtils.addTime(Duration.ofDays(1))); | |
| 264 | + o.setExpiresTime(LocalDateTime.now().plusDays(1)); | |
| 266 | 265 | }); |
| 267 | 266 | oauth2AccessTokenMapper.insert(dbAccessToken); |
| 268 | 267 | // 测试 userId 不匹配 |
| ... | ... | @@ -272,7 +271,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { |
| 272 | 271 | // 测试 userType 不匹配 |
| 273 | 272 | oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setClientId("it_client"))); |
| 274 | 273 | // 测试 expireTime 不匹配 |
| 275 | - oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(new Date()))); | |
| 274 | + oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(LocalDateTimeUtil.now()))); | |
| 276 | 275 | // 准备参数 |
| 277 | 276 | OAuth2AccessTokenPageReqVO reqVO = new OAuth2AccessTokenPageReqVO(); |
| 278 | 277 | reqVO.setUserId(10L); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
| ... | ... | @@ -27,6 +27,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 27 | 27 | import org.springframework.context.annotation.Import; |
| 28 | 28 | |
| 29 | 29 | import javax.annotation.Resource; |
| 30 | +import java.time.LocalDateTime; | |
| 30 | 31 | import java.util.*; |
| 31 | 32 | |
| 32 | 33 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| ... | ... | @@ -87,7 +88,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { |
| 87 | 88 | assertEquals(singletonList(1L), permissionService.getMenuRoleCache().get(10L)); |
| 88 | 89 | assertEquals(singletonList(1L), permissionService.getMenuRoleCache().get(20L)); |
| 89 | 90 | // 断言 maxUpdateTime 缓存 |
| 90 | - Date maxUpdateTime = permissionService.getRoleMenuMaxUpdateTime(); | |
| 91 | + LocalDateTime maxUpdateTime = permissionService.getRoleMenuMaxUpdateTime(); | |
| 91 | 92 | assertEquals(ObjectUtils.max(roleMenuDO01.getUpdateTime(), roleMenuDO02.getUpdateTime()), maxUpdateTime); |
| 92 | 93 | } |
| 93 | 94 | |
| ... | ... | @@ -105,7 +106,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { |
| 105 | 106 | assertEquals(1, permissionService.getUserRoleCache().size()); |
| 106 | 107 | assertEquals(asSet(10L, 20L), permissionService.getUserRoleCache().get(1L)); |
| 107 | 108 | // 断言 maxUpdateTime 缓存 |
| 108 | - Date maxUpdateTime = permissionService.getUserRoleMaxUpdateTime(); | |
| 109 | + LocalDateTime maxUpdateTime = permissionService.getUserRoleMaxUpdateTime(); | |
| 109 | 110 | assertEquals(ObjectUtils.max(userRoleDO01.getUpdateTime(), roleMenuDO02.getUpdateTime()), maxUpdateTime); |
| 110 | 111 | } |
| 111 | 112 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
| ... | ... | @@ -19,10 +19,11 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 19 | 19 | import org.springframework.context.annotation.Import; |
| 20 | 20 | |
| 21 | 21 | import javax.annotation.Resource; |
| 22 | +import java.time.LocalDateTime; | |
| 22 | 23 | import java.util.*; |
| 23 | 24 | import java.util.stream.Collectors; |
| 24 | 25 | |
| 25 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 26 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 26 | 27 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 27 | 28 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; |
| 28 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| ... | ... | @@ -165,7 +166,7 @@ public class RoleServiceTest extends BaseDbUnitTest { |
| 165 | 166 | o.setName("土豆"); |
| 166 | 167 | o.setCode("tudou"); |
| 167 | 168 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 168 | - o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); | |
| 169 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8)); | |
| 169 | 170 | }); |
| 170 | 171 | roleMapper.insert(dbRole); |
| 171 | 172 | // 测试 name 不匹配 |
| ... | ... | @@ -173,13 +174,13 @@ public class RoleServiceTest extends BaseDbUnitTest { |
| 173 | 174 | // 测试 code 不匹配 |
| 174 | 175 | roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCode("hong"))); |
| 175 | 176 | // 测试 createTime 不匹配 |
| 176 | - roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); | |
| 177 | + roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16)))); | |
| 177 | 178 | // 准备参数 |
| 178 | 179 | RoleExportReqVO reqVO = new RoleExportReqVO(); |
| 179 | 180 | reqVO.setName("土豆"); |
| 180 | 181 | reqVO.setCode("tu"); |
| 181 | 182 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 182 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)})); | |
| 183 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)})); | |
| 183 | 184 | |
| 184 | 185 | // 调用 |
| 185 | 186 | List<RoleDO> list = roleService.getRoleList(reqVO); |
| ... | ... | @@ -195,7 +196,7 @@ public class RoleServiceTest extends BaseDbUnitTest { |
| 195 | 196 | o.setName("土豆"); |
| 196 | 197 | o.setCode("tudou"); |
| 197 | 198 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 198 | - o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); | |
| 199 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8)); | |
| 199 | 200 | }); |
| 200 | 201 | roleMapper.insert(dbRole); |
| 201 | 202 | // 测试 name 不匹配 |
| ... | ... | @@ -203,13 +204,13 @@ public class RoleServiceTest extends BaseDbUnitTest { |
| 203 | 204 | // 测试 code 不匹配 |
| 204 | 205 | roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCode("hong"))); |
| 205 | 206 | // 测试 createTime 不匹配 |
| 206 | - roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); | |
| 207 | + roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16)))); | |
| 207 | 208 | // 准备参数 |
| 208 | 209 | RolePageReqVO reqVO = new RolePageReqVO(); |
| 209 | 210 | reqVO.setName("土豆"); |
| 210 | 211 | reqVO.setCode("tu"); |
| 211 | 212 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 212 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)})); | |
| 213 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)})); | |
| 213 | 214 | |
| 214 | 215 | // 调用 |
| 215 | 216 | PageResult<RoleDO> pageResult = roleService.getRolePage(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java
| ... | ... | @@ -17,11 +17,11 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 17 | 17 | import org.springframework.context.annotation.Import; |
| 18 | 18 | |
| 19 | 19 | import javax.annotation.Resource; |
| 20 | +import java.time.LocalDateTime; | |
| 20 | 21 | import java.util.Arrays; |
| 21 | -import java.util.Date; | |
| 22 | 22 | import java.util.List; |
| 23 | 23 | |
| 24 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 24 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 25 | 25 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 26 | 26 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; |
| 27 | 27 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| ... | ... | @@ -145,7 +145,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest { |
| 145 | 145 | o.setName("笨蛋"); |
| 146 | 146 | o.setTags(Arrays.asList("论坛", "蔬菜")); |
| 147 | 147 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 148 | - o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); | |
| 148 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8)); | |
| 149 | 149 | }); |
| 150 | 150 | sensitiveWordMapper.insert(dbSensitiveWord); |
| 151 | 151 | // 测试 name 不匹配 |
| ... | ... | @@ -153,13 +153,13 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest { |
| 153 | 153 | // 测试 tags 不匹配 |
| 154 | 154 | sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品")))); |
| 155 | 155 | // 测试 createTime 不匹配 |
| 156 | - sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); | |
| 156 | + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16)))); | |
| 157 | 157 | // 准备参数 |
| 158 | 158 | SensitiveWordPageReqVO reqVO = new SensitiveWordPageReqVO(); |
| 159 | 159 | reqVO.setName("笨"); |
| 160 | 160 | reqVO.setTag("论坛"); |
| 161 | 161 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 162 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)})); | |
| 162 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)})); | |
| 163 | 163 | |
| 164 | 164 | // 调用 |
| 165 | 165 | PageResult<SensitiveWordDO> pageResult = sensitiveWordService.getSensitiveWordPage(reqVO); |
| ... | ... | @@ -176,7 +176,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest { |
| 176 | 176 | o.setName("笨蛋"); |
| 177 | 177 | o.setTags(Arrays.asList("论坛", "蔬菜")); |
| 178 | 178 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 179 | - o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); | |
| 179 | + o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8)); | |
| 180 | 180 | }); |
| 181 | 181 | sensitiveWordMapper.insert(dbSensitiveWord); |
| 182 | 182 | // 测试 name 不匹配 |
| ... | ... | @@ -184,13 +184,13 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest { |
| 184 | 184 | // 测试 tags 不匹配 |
| 185 | 185 | sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品")))); |
| 186 | 186 | // 测试 createTime 不匹配 |
| 187 | - sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); | |
| 187 | + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16)))); | |
| 188 | 188 | // 准备参数 |
| 189 | 189 | SensitiveWordExportReqVO reqVO = new SensitiveWordExportReqVO(); |
| 190 | 190 | reqVO.setName("笨"); |
| 191 | 191 | reqVO.setTag("论坛"); |
| 192 | 192 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 193 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)})); | |
| 193 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)})); | |
| 194 | 194 | |
| 195 | 195 | // 调用 |
| 196 | 196 | List<SensitiveWordDO> list = sensitiveWordService.getSensitiveWordList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
| ... | ... | @@ -18,13 +18,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 18 | 18 | import org.springframework.context.annotation.Import; |
| 19 | 19 | |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | -import java.util.Date; | |
| 21 | +import java.time.LocalDateTime; | |
| 22 | 22 | import java.util.function.Consumer; |
| 23 | 23 | |
| 24 | 24 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 25 | 25 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; |
| 26 | 26 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS; |
| 27 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 27 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 28 | 28 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; |
| 29 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; |
| 30 | 30 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -59,7 +59,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { |
| 59 | 59 | // 调用 |
| 60 | 60 | smsChannelService.initSmsClients(); |
| 61 | 61 | // 校验 maxUpdateTime 属性 |
| 62 | - Date maxUpdateTime = (Date) BeanUtil.getFieldValue(smsChannelService, "maxUpdateTime"); | |
| 62 | + LocalDateTime maxUpdateTime = (LocalDateTime) BeanUtil.getFieldValue(smsChannelService, "maxUpdateTime"); | |
| 63 | 63 | assertEquals(max(smsChannelDO01.getUpdateTime(), smsChannelDO02.getUpdateTime()), maxUpdateTime); |
| 64 | 64 | // 校验调用 |
| 65 | 65 | verify(smsClientFactory, times(1)).createOrUpdateSmsClient( |
| ... | ... | @@ -159,7 +159,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { |
| 159 | 159 | SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到 |
| 160 | 160 | o.setSignature("芋道源码"); |
| 161 | 161 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 162 | - o.setCreateTime(buildTime(2020, 12, 12)); | |
| 162 | + o.setCreateTime(buildLocalDateTime(2020, 12, 12)); | |
| 163 | 163 | }); |
| 164 | 164 | smsChannelMapper.insert(dbSmsChannel); |
| 165 | 165 | // 测试 signature 不匹配 |
| ... | ... | @@ -167,12 +167,12 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { |
| 167 | 167 | // 测试 status 不匹配 |
| 168 | 168 | smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 169 | 169 | // 测试 createTime 不匹配 |
| 170 | - smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11)))); | |
| 170 | + smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildLocalDateTime(2020, 11, 11)))); | |
| 171 | 171 | // 准备参数 |
| 172 | 172 | SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO(); |
| 173 | 173 | reqVO.setSignature("芋道"); |
| 174 | 174 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 175 | - reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)})); | |
| 175 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)})); | |
| 176 | 176 | |
| 177 | 177 | // 调用 |
| 178 | 178 | PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
| ... | ... | @@ -19,14 +19,14 @@ import org.junit.jupiter.api.Test; |
| 19 | 19 | import org.springframework.context.annotation.Import; |
| 20 | 20 | |
| 21 | 21 | import javax.annotation.Resource; |
| 22 | -import java.util.Date; | |
| 22 | +import java.time.LocalDateTime; | |
| 23 | 23 | import java.util.List; |
| 24 | 24 | import java.util.Map; |
| 25 | 25 | import java.util.function.Consumer; |
| 26 | 26 | |
| 27 | 27 | import static cn.hutool.core.util.RandomUtil.randomBoolean; |
| 28 | 28 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 29 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 29 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 30 | 30 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 31 | 31 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 32 | 32 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| ... | ... | @@ -49,9 +49,9 @@ public class SmsLogServiceTest extends BaseDbUnitTest { |
| 49 | 49 | o.setTemplateId(10L); |
| 50 | 50 | o.setMobile("15601691300"); |
| 51 | 51 | o.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); |
| 52 | - o.setSendTime(buildTime(2020, 11, 11)); | |
| 52 | + o.setSendTime(buildLocalDateTime(2020, 11, 11)); | |
| 53 | 53 | o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); |
| 54 | - o.setReceiveTime(buildTime(2021, 11, 11)); | |
| 54 | + o.setReceiveTime(buildLocalDateTime(2021, 11, 11)); | |
| 55 | 55 | }); |
| 56 | 56 | smsLogMapper.insert(dbSmsLog); |
| 57 | 57 | // 测试 channelId 不匹配 |
| ... | ... | @@ -63,20 +63,20 @@ public class SmsLogServiceTest extends BaseDbUnitTest { |
| 63 | 63 | // 测试 sendStatus 不匹配 |
| 64 | 64 | smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus()))); |
| 65 | 65 | // 测试 sendTime 不匹配 |
| 66 | - smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12)))); | |
| 66 | + smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildLocalDateTime(2020, 12, 12)))); | |
| 67 | 67 | // 测试 receiveStatus 不匹配 |
| 68 | 68 | smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus()))); |
| 69 | 69 | // 测试 receiveTime 不匹配 |
| 70 | - smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12)))); | |
| 70 | + smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildLocalDateTime(2021, 12, 12)))); | |
| 71 | 71 | // 准备参数 |
| 72 | 72 | SmsLogPageReqVO reqVO = new SmsLogPageReqVO(); |
| 73 | 73 | reqVO.setChannelId(1L); |
| 74 | 74 | reqVO.setTemplateId(10L); |
| 75 | 75 | reqVO.setMobile("156"); |
| 76 | 76 | reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); |
| 77 | - reqVO.setSendTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)})); | |
| 77 | + reqVO.setSendTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)})); | |
| 78 | 78 | reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); |
| 79 | - reqVO.setReceiveTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 11, 30)})); | |
| 79 | + reqVO.setReceiveTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 11, 30)})); | |
| 80 | 80 | |
| 81 | 81 | // 调用 |
| 82 | 82 | PageResult<SmsLogDO> pageResult = smsLogService.getSmsLogPage(reqVO); |
| ... | ... | @@ -94,9 +94,9 @@ public class SmsLogServiceTest extends BaseDbUnitTest { |
| 94 | 94 | o.setTemplateId(10L); |
| 95 | 95 | o.setMobile("15601691300"); |
| 96 | 96 | o.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); |
| 97 | - o.setSendTime(buildTime(2020, 11, 11)); | |
| 97 | + o.setSendTime(buildLocalDateTime(2020, 11, 11)); | |
| 98 | 98 | o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); |
| 99 | - o.setReceiveTime(buildTime(2021, 11, 11)); | |
| 99 | + o.setReceiveTime(buildLocalDateTime(2021, 11, 11)); | |
| 100 | 100 | }); |
| 101 | 101 | smsLogMapper.insert(dbSmsLog); |
| 102 | 102 | // 测试 channelId 不匹配 |
| ... | ... | @@ -108,20 +108,20 @@ public class SmsLogServiceTest extends BaseDbUnitTest { |
| 108 | 108 | // 测试 sendStatus 不匹配 |
| 109 | 109 | smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus()))); |
| 110 | 110 | // 测试 sendTime 不匹配 |
| 111 | - smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12)))); | |
| 111 | + smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildLocalDateTime(2020, 12, 12)))); | |
| 112 | 112 | // 测试 receiveStatus 不匹配 |
| 113 | 113 | smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus()))); |
| 114 | 114 | // 测试 receiveTime 不匹配 |
| 115 | - smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12)))); | |
| 115 | + smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildLocalDateTime(2021, 12, 12)))); | |
| 116 | 116 | // 准备参数 |
| 117 | 117 | SmsLogExportReqVO reqVO = new SmsLogExportReqVO(); |
| 118 | 118 | reqVO.setChannelId(1L); |
| 119 | 119 | reqVO.setTemplateId(10L); |
| 120 | 120 | reqVO.setMobile("156"); |
| 121 | 121 | reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); |
| 122 | - reqVO.setSendTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)})); | |
| 122 | + reqVO.setSendTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)})); | |
| 123 | 123 | reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); |
| 124 | - reqVO.setReceiveTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 11, 30)})); | |
| 124 | + reqVO.setReceiveTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 11, 30)})); | |
| 125 | 125 | |
| 126 | 126 | // 调用 |
| 127 | 127 | List<SmsLogDO> list = smsLogService.getSmsLogList(reqVO); |
| ... | ... | @@ -202,7 +202,7 @@ public class SmsLogServiceTest extends BaseDbUnitTest { |
| 202 | 202 | // 准备参数 |
| 203 | 203 | Long id = dbSmsLog.getId(); |
| 204 | 204 | Boolean success = randomBoolean(); |
| 205 | - Date receiveTime = randomDate(); | |
| 205 | + LocalDateTime receiveTime = randomLocalDateTime(); | |
| 206 | 206 | String apiReceiveCode = randomString(); |
| 207 | 207 | String apiReceiveMsg = randomString(); |
| 208 | 208 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
| ... | ... | @@ -25,7 +25,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 25 | 25 | import org.springframework.context.annotation.Import; |
| 26 | 26 | |
| 27 | 27 | import javax.annotation.Resource; |
| 28 | -import java.util.Date; | |
| 28 | +import java.time.LocalDateTime; | |
| 29 | 29 | import java.util.List; |
| 30 | 30 | import java.util.Map; |
| 31 | 31 | import java.util.function.Consumer; |
| ... | ... | @@ -34,7 +34,7 @@ import static cn.hutool.core.bean.BeanUtil.getFieldValue; |
| 34 | 34 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 35 | 35 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; |
| 36 | 36 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; |
| 37 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 37 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 38 | 38 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 39 | 39 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 40 | 40 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -77,7 +77,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 77 | 77 | assertPojoEquals(smsTemplate01, smsTemplateCache.get(smsTemplate01.getCode())); |
| 78 | 78 | assertPojoEquals(smsTemplate02, smsTemplateCache.get(smsTemplate02.getCode())); |
| 79 | 79 | // 断言 maxUpdateTime 缓存 |
| 80 | - Date maxUpdateTime = (Date) getFieldValue(smsTemplateService, "maxUpdateTime"); | |
| 80 | + LocalDateTime maxUpdateTime = (LocalDateTime) getFieldValue(smsTemplateService, "maxUpdateTime"); | |
| 81 | 81 | assertEquals(max(smsTemplate01.getUpdateTime(), smsTemplate02.getUpdateTime()), maxUpdateTime); |
| 82 | 82 | } |
| 83 | 83 | |
| ... | ... | @@ -205,7 +205,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 205 | 205 | o.setContent("芋道源码"); |
| 206 | 206 | o.setApiTemplateId("yunai"); |
| 207 | 207 | o.setChannelId(1L); |
| 208 | - o.setCreateTime(buildTime(2021, 11, 11)); | |
| 208 | + o.setCreateTime(buildLocalDateTime(2021, 11, 11)); | |
| 209 | 209 | }); |
| 210 | 210 | smsTemplateMapper.insert(dbSmsTemplate); |
| 211 | 211 | // 测试 type 不匹配 |
| ... | ... | @@ -221,7 +221,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 221 | 221 | // 测试 channelId 不匹配 |
| 222 | 222 | smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L))); |
| 223 | 223 | // 测试 createTime 不匹配 |
| 224 | - smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | |
| 224 | + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12)))); | |
| 225 | 225 | // 准备参数 |
| 226 | 226 | SmsTemplatePageReqVO reqVO = new SmsTemplatePageReqVO(); |
| 227 | 227 | reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType()); |
| ... | ... | @@ -230,7 +230,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 230 | 230 | reqVO.setContent("芋道"); |
| 231 | 231 | reqVO.setApiTemplateId("yu"); |
| 232 | 232 | reqVO.setChannelId(1L); |
| 233 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)})); | |
| 233 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 12, 1)})); | |
| 234 | 234 | |
| 235 | 235 | // 调用 |
| 236 | 236 | PageResult<SmsTemplateDO> pageResult = smsTemplateService.getSmsTemplatePage(reqVO); |
| ... | ... | @@ -250,7 +250,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 250 | 250 | o.setContent("芋道源码"); |
| 251 | 251 | o.setApiTemplateId("yunai"); |
| 252 | 252 | o.setChannelId(1L); |
| 253 | - o.setCreateTime(buildTime(2021, 11, 11)); | |
| 253 | + o.setCreateTime(buildLocalDateTime(2021, 11, 11)); | |
| 254 | 254 | }); |
| 255 | 255 | smsTemplateMapper.insert(dbSmsTemplate); |
| 256 | 256 | // 测试 type 不匹配 |
| ... | ... | @@ -266,7 +266,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 266 | 266 | // 测试 channelId 不匹配 |
| 267 | 267 | smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L))); |
| 268 | 268 | // 测试 createTime 不匹配 |
| 269 | - smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | |
| 269 | + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12)))); | |
| 270 | 270 | // 准备参数 |
| 271 | 271 | SmsTemplateExportReqVO reqVO = new SmsTemplateExportReqVO(); |
| 272 | 272 | reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType()); |
| ... | ... | @@ -275,7 +275,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { |
| 275 | 275 | reqVO.setContent("芋道"); |
| 276 | 276 | reqVO.setApiTemplateId("yu"); |
| 277 | 277 | reqVO.setChannelId(1L); |
| 278 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)})); | |
| 278 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 12, 1)})); | |
| 279 | 279 | |
| 280 | 280 | // 调用 |
| 281 | 281 | List<SmsTemplateDO> list = smsTemplateService.getSmsTemplateList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java
| ... | ... | @@ -15,9 +15,9 @@ import org.springframework.context.annotation.Import; |
| 15 | 15 | |
| 16 | 16 | import javax.annotation.Resource; |
| 17 | 17 | |
| 18 | -import java.util.Date; | |
| 18 | +import java.time.LocalDateTime; | |
| 19 | 19 | |
| 20 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 20 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 21 | 21 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 22 | 22 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 23 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -142,7 +142,7 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest { |
| 142 | 142 | o.setName("芋道源码"); |
| 143 | 143 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 144 | 144 | o.setRemark("源码解析"); |
| 145 | - o.setCreateTime(buildTime(2022, 10, 10)); | |
| 145 | + o.setCreateTime(buildLocalDateTime(2022, 10, 10)); | |
| 146 | 146 | }); |
| 147 | 147 | tenantPackageMapper.insert(dbTenantPackage); |
| 148 | 148 | // 测试 name 不匹配 |
| ... | ... | @@ -152,13 +152,13 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest { |
| 152 | 152 | // 测试 remark 不匹配 |
| 153 | 153 | tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setRemark("解析"))); |
| 154 | 154 | // 测试 createTime 不匹配 |
| 155 | - tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildTime(2022, 11, 11)))); | |
| 155 | + tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildLocalDateTime(2022, 11, 11)))); | |
| 156 | 156 | // 准备参数 |
| 157 | 157 | TenantPackagePageReqVO reqVO = new TenantPackagePageReqVO(); |
| 158 | 158 | reqVO.setName("芋道"); |
| 159 | 159 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 160 | 160 | reqVO.setRemark("源码"); |
| 161 | - reqVO.setCreateTime((new Date[]{buildTime(2022, 10, 9),buildTime(2022, 10, 11)})); | |
| 161 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 10, 9),buildLocalDateTime(2022, 10, 11)})); | |
| 162 | 162 | |
| 163 | 163 | // 调用 |
| 164 | 164 | PageResult<TenantPackageDO> pageResult = tenantPackageService.getTenantPackagePage(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java
| ... | ... | @@ -28,15 +28,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; |
| 28 | 28 | import org.springframework.context.annotation.Import; |
| 29 | 29 | |
| 30 | 30 | import javax.annotation.Resource; |
| 31 | -import java.time.Duration; | |
| 31 | +import java.time.LocalDateTime; | |
| 32 | 32 | import java.util.Arrays; |
| 33 | 33 | import java.util.Collections; |
| 34 | -import java.util.Date; | |
| 35 | 34 | import java.util.List; |
| 36 | 35 | |
| 37 | 36 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| 38 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 39 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 37 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 40 | 38 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 41 | 39 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 42 | 40 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -112,7 +110,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 112 | 110 | public void testValidTenant_expired() { |
| 113 | 111 | // mock 数据 |
| 114 | 112 | TenantDO tenant = randomPojo(TenantDO.class, o -> o.setId(1L).setStatus(CommonStatusEnum.ENABLE.getStatus()) |
| 115 | - .setExpireTime(buildTime(2020, 2, 2))); | |
| 113 | + .setExpireTime(buildLocalDateTime(2020, 2, 2))); | |
| 116 | 114 | tenantMapper.insert(tenant); |
| 117 | 115 | |
| 118 | 116 | // 调用,并断言业务异常 |
| ... | ... | @@ -123,7 +121,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 123 | 121 | public void testValidTenant_success() { |
| 124 | 122 | // mock 数据 |
| 125 | 123 | TenantDO tenant = randomPojo(TenantDO.class, o -> o.setId(1L).setStatus(CommonStatusEnum.ENABLE.getStatus()) |
| 126 | - .setExpireTime(addTime(Duration.ofDays(1)))); | |
| 124 | + .setExpireTime(LocalDateTime.now().plusDays(1))); | |
| 127 | 125 | tenantMapper.insert(tenant); |
| 128 | 126 | |
| 129 | 127 | // 调用,并断言业务异常 |
| ... | ... | @@ -293,7 +291,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 293 | 291 | o.setContactName("芋艿"); |
| 294 | 292 | o.setContactMobile("15601691300"); |
| 295 | 293 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 296 | - o.setCreateTime(buildTime(2020, 12, 12)); | |
| 294 | + o.setCreateTime(buildLocalDateTime(2020, 12, 12)); | |
| 297 | 295 | }); |
| 298 | 296 | tenantMapper.insert(dbTenant); |
| 299 | 297 | // 测试 name 不匹配 |
| ... | ... | @@ -305,14 +303,14 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 305 | 303 | // 测试 status 不匹配 |
| 306 | 304 | tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 307 | 305 | // 测试 createTime 不匹配 |
| 308 | - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | |
| 306 | + tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12)))); | |
| 309 | 307 | // 准备参数 |
| 310 | 308 | TenantPageReqVO reqVO = new TenantPageReqVO(); |
| 311 | 309 | reqVO.setName("芋道"); |
| 312 | 310 | reqVO.setContactName("艿"); |
| 313 | 311 | reqVO.setContactMobile("1560"); |
| 314 | 312 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 315 | - reqVO.setCreateTime(new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}); | |
| 313 | + reqVO.setCreateTime(new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)}); | |
| 316 | 314 | |
| 317 | 315 | // 调用 |
| 318 | 316 | PageResult<TenantDO> pageResult = tenantService.getTenantPage(reqVO); |
| ... | ... | @@ -330,7 +328,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 330 | 328 | o.setContactName("芋艿"); |
| 331 | 329 | o.setContactMobile("15601691300"); |
| 332 | 330 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 333 | - o.setCreateTime(buildTime(2020, 12, 12)); | |
| 331 | + o.setCreateTime(buildLocalDateTime(2020, 12, 12)); | |
| 334 | 332 | }); |
| 335 | 333 | tenantMapper.insert(dbTenant); |
| 336 | 334 | // 测试 name 不匹配 |
| ... | ... | @@ -342,14 +340,14 @@ public class TenantServiceImplTest extends BaseDbUnitTest { |
| 342 | 340 | // 测试 status 不匹配 |
| 343 | 341 | tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 344 | 342 | // 测试 createTime 不匹配 |
| 345 | - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | |
| 343 | + tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12)))); | |
| 346 | 344 | // 准备参数 |
| 347 | 345 | TenantExportReqVO reqVO = new TenantExportReqVO(); |
| 348 | 346 | reqVO.setName("芋道"); |
| 349 | 347 | reqVO.setContactName("艿"); |
| 350 | 348 | reqVO.setContactMobile("1560"); |
| 351 | 349 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 352 | - reqVO.setCreateTime(new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}); | |
| 350 | + reqVO.setCreateTime(new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)}); | |
| 353 | 351 | |
| 354 | 352 | // 调用 |
| 355 | 353 | List<TenantDO> list = tenantService.getTenantList(reqVO); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
| ... | ... | @@ -32,15 +32,15 @@ import org.springframework.security.crypto.password.PasswordEncoder; |
| 32 | 32 | |
| 33 | 33 | import javax.annotation.Resource; |
| 34 | 34 | import java.io.ByteArrayInputStream; |
| 35 | +import java.time.LocalDateTime; | |
| 35 | 36 | import java.util.Collection; |
| 36 | -import java.util.Date; | |
| 37 | 37 | import java.util.List; |
| 38 | 38 | import java.util.function.Consumer; |
| 39 | 39 | |
| 40 | 40 | import static cn.hutool.core.util.RandomUtil.randomBytes; |
| 41 | 41 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 42 | 42 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| 43 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; | |
| 43 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime; | |
| 44 | 44 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 45 | 45 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 46 | 46 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| ... | ... | @@ -295,7 +295,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { |
| 295 | 295 | reqVO.setUsername("tu"); |
| 296 | 296 | reqVO.setMobile("1560"); |
| 297 | 297 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 298 | - reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)})); | |
| 298 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)})); | |
| 299 | 299 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 |
| 300 | 300 | // mock 方法 |
| 301 | 301 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); |
| ... | ... | @@ -318,7 +318,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { |
| 318 | 318 | reqVO.setUsername("tu"); |
| 319 | 319 | reqVO.setMobile("1560"); |
| 320 | 320 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 321 | - reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)})); | |
| 321 | + reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)})); | |
| 322 | 322 | reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 |
| 323 | 323 | // mock 方法 |
| 324 | 324 | List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); |
| ... | ... | @@ -340,7 +340,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { |
| 340 | 340 | o.setUsername("tudou"); |
| 341 | 341 | o.setMobile("15601691300"); |
| 342 | 342 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 343 | - o.setCreateTime(buildTime(2020, 12, 12)); | |
| 343 | + o.setCreateTime(buildLocalDateTime(2020, 12, 12)); | |
| 344 | 344 | o.setDeptId(2L); |
| 345 | 345 | }); |
| 346 | 346 | userMapper.insert(dbUser); |
| ... | ... | @@ -351,7 +351,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { |
| 351 | 351 | // 测试 status 不匹配 |
| 352 | 352 | userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 353 | 353 | // 测试 createTime 不匹配 |
| 354 | - userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setCreateTime(buildTime(2020, 11, 11)))); | |
| 354 | + userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setCreateTime(buildLocalDateTime(2020, 11, 11)))); | |
| 355 | 355 | // 测试 dept 不匹配 |
| 356 | 356 | userMapper.insert(ObjectUtils.cloneIgnoreId(dbUser, o -> o.setDeptId(0L))); |
| 357 | 357 | return dbUser; | ... | ... |
yudao-server/src/main/java/cn/iocoder/yudao/module/shop/controller/app/AppShopOrderController.java
| 1 | 1 | package cn.iocoder.yudao.module.shop.controller.app; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | -import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 5 | 5 | import cn.iocoder.yudao.module.pay.service.notify.vo.PayNotifyOrderReqVO; |
| 6 | 6 | import cn.iocoder.yudao.module.pay.service.notify.vo.PayRefundOrderReqVO; |
| 7 | 7 | import cn.iocoder.yudao.module.pay.service.order.PayOrderService; |
| ... | ... | @@ -19,7 +19,8 @@ import org.springframework.web.bind.annotation.RestController; |
| 19 | 19 | |
| 20 | 20 | import javax.annotation.Resource; |
| 21 | 21 | import javax.validation.Valid; |
| 22 | -import java.time.Duration; | |
| 22 | +import java.time.LocalDateTime; | |
| 23 | +import java.time.temporal.ChronoUnit; | |
| 23 | 24 | |
| 24 | 25 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 25 | 26 | import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; |
| ... | ... | @@ -49,7 +50,7 @@ public class AppShopOrderController { |
| 49 | 50 | reqDTO.setSubject("标题:" + shopOrderId); |
| 50 | 51 | reqDTO.setBody("内容:" + shopOrderId); |
| 51 | 52 | reqDTO.setAmount(200); // 单位:分 |
| 52 | - reqDTO.setExpireTime(DateUtils.addTime(Duration.ofDays(1))); | |
| 53 | + reqDTO.setExpireTime(LocalDateTime.now().plusDays(1)); | |
| 53 | 54 | Long payOrderId = payOrderService.createPayOrder(reqDTO); |
| 54 | 55 | |
| 55 | 56 | // 拼接返回 | ... | ... |