Commit 38f67d4130c948ec948c0a32d5850303040ee6ed
1 parent
12d045ea
将 mall 使用到 Date 的部分,迁移到 LocalDateTime 中
Showing
21 changed files
with
123 additions
and
115 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 | -import cn.hutool.core.date.DateUtil; | |
| 4 | 3 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 5 | 4 | |
| 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; | |
| 5 | +import java.time.*; | |
| 11 | 6 | import java.util.Calendar; |
| 12 | 7 | import java.util.Date; |
| 13 | 8 | |
| ... | ... | @@ -58,6 +53,7 @@ public class DateUtils { |
| 58 | 53 | return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); |
| 59 | 54 | } |
| 60 | 55 | |
| 56 | + @Deprecated | |
| 61 | 57 | public static Date addTime(Duration duration) { |
| 62 | 58 | return new Date(System.currentTimeMillis() + duration.toMillis()); |
| 63 | 59 | } |
| ... | ... | @@ -87,6 +83,7 @@ public class DateUtils { |
| 87 | 83 | return buildTime(year, mouth, day, 0, 0, 0); |
| 88 | 84 | } |
| 89 | 85 | |
| 86 | + @Deprecated | |
| 90 | 87 | public static LocalDateTime buildLocalDateTime(int year, int mouth, int day) { |
| 91 | 88 | return LocalDateTime.of(year, mouth, day, 0, 0, 0); |
| 92 | 89 | } |
| ... | ... | @@ -135,14 +132,7 @@ public class DateUtils { |
| 135 | 132 | return a.isAfter(b) ? a : b; |
| 136 | 133 | } |
| 137 | 134 | |
| 138 | - public static boolean beforeNow(Date date) { | |
| 139 | - return date.getTime() < System.currentTimeMillis(); | |
| 140 | - } | |
| 141 | - | |
| 142 | - public static boolean afterNow(Date date) { | |
| 143 | - return date.getTime() >= System.currentTimeMillis(); | |
| 144 | - } | |
| 145 | - | |
| 135 | + @Deprecated | |
| 146 | 136 | public static boolean afterNow(LocalDateTime localDateTime) { |
| 147 | 137 | return localDateTime.isAfter(LocalDateTime.now()); |
| 148 | 138 | } |
| ... | ... | @@ -184,36 +174,8 @@ public class DateUtils { |
| 184 | 174 | * @param date 日期 |
| 185 | 175 | * @return 是否 |
| 186 | 176 | */ |
| 187 | - public static boolean isToday(Date date) { | |
| 188 | - if (date == null) { | |
| 189 | - return false; | |
| 190 | - } | |
| 191 | - return DateUtil.isSameDay(date, new Date()); | |
| 192 | - } | |
| 193 | - | |
| 194 | - /** | |
| 195 | - * 是否今天 | |
| 196 | - * | |
| 197 | - * @param date 日期 | |
| 198 | - * @return 是否 | |
| 199 | - */ | |
| 200 | 177 | public static boolean isToday(LocalDateTime date) { |
| 201 | 178 | return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now()); |
| 202 | 179 | } |
| 203 | 180 | |
| 204 | - /** | |
| 205 | - * 判断当前时间是否在该时间范围内 | |
| 206 | - * | |
| 207 | - * @param startTime 开始时间 | |
| 208 | - * @param endTime 结束时间 | |
| 209 | - * @return 是否 | |
| 210 | - */ | |
| 211 | - public static boolean isBetween(Date startTime, Date endTime) { | |
| 212 | - if (startTime == null || endTime == null) { | |
| 213 | - return false; | |
| 214 | - } | |
| 215 | - return startTime.getTime() <= System.currentTimeMillis() | |
| 216 | - && endTime.getTime() >= System.currentTimeMillis(); | |
| 217 | - } | |
| 218 | - | |
| 219 | 181 | } | ... | ... |
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java
| 1 | 1 | package cn.iocoder.yudao.framework.common.util.date; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | |
| 4 | + | |
| 3 | 5 | import java.time.Duration; |
| 4 | 6 | import java.time.LocalDateTime; |
| 5 | 7 | |
| ... | ... | @@ -14,4 +16,38 @@ public class LocalDateTimeUtils { |
| 14 | 16 | return LocalDateTime.now().plus(duration); |
| 15 | 17 | } |
| 16 | 18 | |
| 19 | + public static boolean beforeNow(LocalDateTime date) { | |
| 20 | + return date.isBefore(LocalDateTime.now()); | |
| 21 | + } | |
| 22 | + | |
| 23 | + public static boolean afterNow(LocalDateTime date) { | |
| 24 | + return date.isAfter(LocalDateTime.now()); | |
| 25 | + } | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 创建指定时间 | |
| 29 | + * | |
| 30 | + * @param year 年 | |
| 31 | + * @param mouth 月 | |
| 32 | + * @param day 日 | |
| 33 | + * @return 指定时间 | |
| 34 | + */ | |
| 35 | + public static LocalDateTime buildTime(int year, int mouth, int day) { | |
| 36 | + return LocalDateTime.of(year, mouth, day, 0, 0, 0); | |
| 37 | + } | |
| 38 | + | |
| 39 | + /** | |
| 40 | + * 判断当前时间是否在该时间范围内 | |
| 41 | + * | |
| 42 | + * @param startTime 开始时间 | |
| 43 | + * @param endTime 结束时间 | |
| 44 | + * @return 是否 | |
| 45 | + */ | |
| 46 | + public static boolean isBetween(LocalDateTime startTime, LocalDateTime endTime) { | |
| 47 | + if (startTime == null || endTime == null) { | |
| 48 | + return false; | |
| 49 | + } | |
| 50 | + return LocalDateTimeUtil.isIn(LocalDateTime.now(), startTime, endTime); | |
| 51 | + } | |
| 52 | + | |
| 17 | 53 | } | ... | ... |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.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 ProductPropertyRespVO extends ProductPropertyBaseVO { |
| 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-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java
| ... | ... | @@ -10,7 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat; |
| 10 | 10 | |
| 11 | 11 | import javax.validation.constraints.Min; |
| 12 | 12 | import javax.validation.constraints.NotNull; |
| 13 | -import java.util.Date; | |
| 13 | +import java.time.LocalDateTime; | |
| 14 | 14 | import java.util.List; |
| 15 | 15 | |
| 16 | 16 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -55,12 +55,12 @@ public class CouponBaseVO { |
| 55 | 55 | @ApiModelProperty(value = "固定日期 - 生效开始时间") |
| 56 | 56 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 57 | 57 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 58 | - private Date validStartTime; | |
| 58 | + private LocalDateTime validStartTime; | |
| 59 | 59 | |
| 60 | 60 | @ApiModelProperty(value = "固定日期 - 生效结束时间") |
| 61 | 61 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 62 | 62 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 63 | - private Date validEndTime; | |
| 63 | + private LocalDateTime validEndTime; | |
| 64 | 64 | |
| 65 | 65 | @ApiModelProperty(value = "商品范围", required = true, example = "1", notes = "参见 PromotionProductScopeEnum 枚举类") |
| 66 | 66 | @NotNull(message = "商品范围不能为空") |
| ... | ... | @@ -96,7 +96,7 @@ public class CouponBaseVO { |
| 96 | 96 | @ApiModelProperty(value = "使用时间") |
| 97 | 97 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 98 | 98 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 99 | - private Date useTime; | |
| 99 | + private LocalDateTime useTime; | |
| 100 | 100 | |
| 101 | 101 | // ========== 使用情况 END ========== |
| 102 | 102 | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.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 CouponRespVO extends CouponBaseVO { |
| 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-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java
| ... | ... | @@ -15,7 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat; |
| 15 | 15 | import javax.validation.constraints.AssertTrue; |
| 16 | 16 | import javax.validation.constraints.Min; |
| 17 | 17 | import javax.validation.constraints.NotNull; |
| 18 | -import java.util.Date; | |
| 18 | +import java.time.LocalDateTime; | |
| 19 | 19 | import java.util.List; |
| 20 | 20 | import java.util.Objects; |
| 21 | 21 | |
| ... | ... | @@ -65,12 +65,12 @@ public class CouponTemplateBaseVO { |
| 65 | 65 | @ApiModelProperty(value = "固定日期 - 生效开始时间") |
| 66 | 66 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 67 | 67 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 68 | - private Date validStartTime; | |
| 68 | + private LocalDateTime validStartTime; | |
| 69 | 69 | |
| 70 | 70 | @ApiModelProperty(value = "固定日期 - 生效结束时间") |
| 71 | 71 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 72 | 72 | @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) |
| 73 | - private Date validEndTime; | |
| 73 | + private LocalDateTime validEndTime; | |
| 74 | 74 | |
| 75 | 75 | @ApiModelProperty(value = "领取日期 - 开始天数") |
| 76 | 76 | @Min(value = 0L, message = "开始天数必须大于 0") | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.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 | @ApiModel("管理后台 - 优惠劵模板 Response VO") |
| 14 | 14 | @Data |
| ... | ... | @@ -30,6 +30,6 @@ public class CouponTemplateRespVO extends CouponTemplateBaseVO { |
| 30 | 30 | private Integer useCount; |
| 31 | 31 | |
| 32 | 32 | @ApiModelProperty(value = "创建时间", required = true) |
| 33 | - private Date createTime; | |
| 33 | + private LocalDateTime createTime; | |
| 34 | 34 | |
| 35 | 35 | } | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java
| ... | ... | @@ -12,7 +12,7 @@ import org.springframework.format.annotation.DateTimeFormat; |
| 12 | 12 | import javax.validation.constraints.AssertTrue; |
| 13 | 13 | import javax.validation.constraints.Min; |
| 14 | 14 | import javax.validation.constraints.NotNull; |
| 15 | -import java.util.Date; | |
| 15 | +import java.time.LocalDateTime; | |
| 16 | 16 | |
| 17 | 17 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 18 | 18 | |
| ... | ... | @@ -30,12 +30,12 @@ public class DiscountActivityBaseVO { |
| 30 | 30 | @ApiModelProperty(value = "开始时间", required = true) |
| 31 | 31 | @NotNull(message = "开始时间不能为空") |
| 32 | 32 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 33 | - private Date startTime; | |
| 33 | + private LocalDateTime startTime; | |
| 34 | 34 | |
| 35 | 35 | @ApiModelProperty(value = "结束时间", required = true) |
| 36 | 36 | @NotNull(message = "结束时间不能为空") |
| 37 | 37 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 38 | - private Date endTime; | |
| 38 | + private LocalDateTime endTime; | |
| 39 | 39 | |
| 40 | 40 | @ApiModelProperty(value = "备注", example = "我是备注") |
| 41 | 41 | private String remark; | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityPageReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.promotion.controller.admin.discount.vo; |
| 2 | 2 | |
| 3 | -import lombok.*; | |
| 4 | -import java.util.*; | |
| 5 | -import io.swagger.annotations.*; | |
| 6 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import io.swagger.annotations.ApiModel; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | +import lombok.EqualsAndHashCode; | |
| 8 | +import lombok.ToString; | |
| 7 | 9 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 10 | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | + | |
| 9 | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 10 | 14 | |
| 11 | 15 | @ApiModel("管理后台 - 限时折扣活动分页 Request VO") |
| ... | ... | @@ -22,6 +26,6 @@ public class DiscountActivityPageReqVO extends PageParam { |
| 22 | 26 | |
| 23 | 27 | @ApiModelProperty(value = "创建时间") |
| 24 | 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 25 | - private Date[] createTime; | |
| 29 | + private LocalDateTime[] createTime; | |
| 26 | 30 | |
| 27 | 31 | } | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.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 |
| ... | ... | @@ -23,6 +23,6 @@ public class DiscountActivityRespVO extends DiscountActivityBaseVO { |
| 23 | 23 | private Integer status; |
| 24 | 24 | |
| 25 | 25 | @ApiModelProperty(value = "创建时间", required = true) |
| 26 | - private Date createTime; | |
| 26 | + private LocalDateTime createTime; | |
| 27 | 27 | |
| 28 | 28 | } | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java
| ... | ... | @@ -14,7 +14,7 @@ import javax.validation.constraints.AssertTrue; |
| 14 | 14 | import javax.validation.constraints.Future; |
| 15 | 15 | import javax.validation.constraints.Min; |
| 16 | 16 | import javax.validation.constraints.NotNull; |
| 17 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | 18 | import java.util.List; |
| 19 | 19 | |
| 20 | 20 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| ... | ... | @@ -33,13 +33,13 @@ public class RewardActivityBaseVO { |
| 33 | 33 | @ApiModelProperty(value = "开始时间", required = true) |
| 34 | 34 | @NotNull(message = "开始时间不能为空") |
| 35 | 35 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 36 | - private Date startTime; | |
| 36 | + private LocalDateTime startTime; | |
| 37 | 37 | |
| 38 | 38 | @ApiModelProperty(value = "结束时间", required = true) |
| 39 | 39 | @NotNull(message = "结束时间不能为空") |
| 40 | 40 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 41 | 41 | @Future(message = "结束时间必须大于当前时间") |
| 42 | - private Date endTime; | |
| 42 | + private LocalDateTime endTime; | |
| 43 | 43 | |
| 44 | 44 | @ApiModelProperty(value = "备注", example = "biubiubiu") |
| 45 | 45 | private String remark; | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.promotion.controller.admin.reward.vo; |
| 2 | 2 | |
| 3 | -import lombok.*; | |
| 4 | -import java.util.*; | |
| 5 | -import io.swagger.annotations.*; | |
| 3 | +import io.swagger.annotations.ApiModel; | |
| 4 | +import io.swagger.annotations.ApiModelProperty; | |
| 5 | +import lombok.Data; | |
| 6 | +import lombok.EqualsAndHashCode; | |
| 7 | +import lombok.ToString; | |
| 8 | + | |
| 9 | +import java.time.LocalDateTime; | |
| 6 | 10 | |
| 7 | 11 | @ApiModel("管理后台 - 满减送活动 Response VO") |
| 8 | 12 | @Data |
| ... | ... | @@ -17,6 +21,6 @@ public class RewardActivityRespVO extends RewardActivityBaseVO { |
| 17 | 21 | private Integer status; |
| 18 | 22 | |
| 19 | 23 | @ApiModelProperty(value = "创建时间", required = true) |
| 20 | - private Date createTime; | |
| 24 | + private LocalDateTime createTime; | |
| 21 | 25 | |
| 22 | 26 | } | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponDO.java
| ... | ... | @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 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 | /** |
| ... | ... | @@ -77,11 +77,11 @@ public class CouponDO extends BaseDO { |
| 77 | 77 | /** |
| 78 | 78 | * 生效开始时间 |
| 79 | 79 | */ |
| 80 | - private Date validStartTime; | |
| 80 | + private LocalDateTime validStartTime; | |
| 81 | 81 | /** |
| 82 | 82 | * 生效结束时间 |
| 83 | 83 | */ |
| 84 | - private Date validEndTime; | |
| 84 | + private LocalDateTime validEndTime; | |
| 85 | 85 | /** |
| 86 | 86 | * 商品范围 |
| 87 | 87 | * |
| ... | ... | @@ -132,7 +132,7 @@ public class CouponDO extends BaseDO { |
| 132 | 132 | /** |
| 133 | 133 | * 使用时间 |
| 134 | 134 | */ |
| 135 | - private Date useTime; | |
| 135 | + private LocalDateTime useTime; | |
| 136 | 136 | |
| 137 | 137 | // ========== 使用情况 END ========== |
| 138 | 138 | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponTemplateDO.java
| ... | ... | @@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
| 14 | 14 | import lombok.Data; |
| 15 | 15 | import lombok.EqualsAndHashCode; |
| 16 | 16 | |
| 17 | -import java.util.Date; | |
| 17 | +import java.time.LocalDateTime; | |
| 18 | 18 | import java.util.List; |
| 19 | 19 | |
| 20 | 20 | /** |
| ... | ... | @@ -100,13 +100,13 @@ public class CouponTemplateDO extends BaseDO { |
| 100 | 100 | * |
| 101 | 101 | * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#DATE} |
| 102 | 102 | */ |
| 103 | - private Date validStartTime; | |
| 103 | + private LocalDateTime validStartTime; | |
| 104 | 104 | /** |
| 105 | 105 | * 固定日期 - 生效结束时间 |
| 106 | 106 | * |
| 107 | 107 | * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#DATE} |
| 108 | 108 | */ |
| 109 | - private Date validEndTime; | |
| 109 | + private LocalDateTime validEndTime; | |
| 110 | 110 | /** |
| 111 | 111 | * 领取日期 - 开始天数 |
| 112 | 112 | * | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java
| ... | ... | @@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil; |
| 5 | 5 | import cn.hutool.core.util.StrUtil; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | 7 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 8 | -import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 8 | +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; | |
| 9 | 9 | import cn.iocoder.yudao.module.member.api.user.MemberUserApi; |
| 10 | 10 | import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; |
| 11 | 11 | import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO; |
| ... | ... | @@ -17,7 +17,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 17 | 17 | import org.springframework.validation.annotation.Validated; |
| 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.Set; |
| 23 | 23 | |
| ... | ... | @@ -60,7 +60,7 @@ public class CouponServiceImpl implements CouponService { |
| 60 | 60 | throw exception(COUPON_STATUS_NOT_UNUSED); |
| 61 | 61 | } |
| 62 | 62 | // 校验有效期;为避免定时器没跑,实际优惠劵已经过期 |
| 63 | - if (DateUtils.isBetween(coupon.getValidStartTime(), coupon.getValidEndTime())) { | |
| 63 | + if (LocalDateTimeUtils.isBetween(coupon.getValidStartTime(), coupon.getValidEndTime())) { | |
| 64 | 64 | throw exception(COUPON_VALID_TIME_NOT_NOW); |
| 65 | 65 | } |
| 66 | 66 | } |
| ... | ... | @@ -87,7 +87,7 @@ public class CouponServiceImpl implements CouponService { |
| 87 | 87 | // 更新状态 |
| 88 | 88 | int updateCount = couponMapper.updateByIdAndStatus(id, CouponStatusEnum.UNUSED.getStatus(), |
| 89 | 89 | new CouponDO().setStatus(CouponStatusEnum.USED.getStatus()) |
| 90 | - .setUseOrderId(orderId).setUseTime(new Date())); | |
| 90 | + .setUseOrderId(orderId).setUseTime(LocalDateTime.now())); | |
| 91 | 91 | if (updateCount == 0) { |
| 92 | 92 | throw exception(COUPON_STATUS_NOT_UNUSED); |
| 93 | 93 | } | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/util/PromotionUtils.java
| 1 | 1 | package cn.iocoder.yudao.module.promotion.util; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 3 | +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; | |
| 4 | 4 | import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum; |
| 5 | 5 | |
| 6 | -import java.util.Date; | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * 活动工具类 |
| ... | ... | @@ -19,11 +19,11 @@ public class PromotionUtils { |
| 19 | 19 | * @param endTime 结束时间 |
| 20 | 20 | * @return 活动状态 |
| 21 | 21 | */ |
| 22 | - public static Integer calculateActivityStatus(Date startTime, Date endTime) { | |
| 23 | - if (DateUtils.beforeNow(endTime)) { | |
| 22 | + public static Integer calculateActivityStatus(LocalDateTime startTime, LocalDateTime endTime) { | |
| 23 | + if (LocalDateTimeUtils.beforeNow(endTime)) { | |
| 24 | 24 | return PromotionActivityStatusEnum.END.getStatus(); |
| 25 | 25 | } |
| 26 | - if (DateUtils.afterNow(startTime)) { | |
| 26 | + if (LocalDateTimeUtils.afterNow(startTime)) { | |
| 27 | 27 | return PromotionActivityStatusEnum.WAIT.getStatus(); |
| 28 | 28 | } |
| 29 | 29 | return PromotionActivityStatusEnum.RUN.getStatus(); | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImplTest.java
| ... | ... | @@ -17,10 +17,12 @@ import org.springframework.context.annotation.Import; |
| 17 | 17 | |
| 18 | 18 | import javax.annotation.Resource; |
| 19 | 19 | import java.time.Duration; |
| 20 | +import java.time.LocalDateTime; | |
| 20 | 21 | import java.util.Date; |
| 21 | 22 | import java.util.List; |
| 22 | 23 | |
| 23 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; | |
| 24 | +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime; | |
| 25 | +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; | |
| 24 | 26 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 25 | 27 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 26 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| ... | ... | @@ -182,7 +184,7 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest { |
| 182 | 184 | DiscountActivityDO dbDiscountActivity = randomPojo(DiscountActivityDO.class, o -> { // 等会查询到 |
| 183 | 185 | o.setName("芋艿"); |
| 184 | 186 | o.setStatus(PromotionActivityStatusEnum.WAIT.getStatus()); |
| 185 | - o.setCreateTime(buildLocalDateTime(2021, 1, 15)); | |
| 187 | + o.setCreateTime(buildTime(2021, 1, 15)); | |
| 186 | 188 | }); |
| 187 | 189 | discountActivityMapper.insert(dbDiscountActivity); |
| 188 | 190 | // 测试 name 不匹配 |
| ... | ... | @@ -190,12 +192,12 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest { |
| 190 | 192 | // 测试 status 不匹配 |
| 191 | 193 | discountActivityMapper.insert(cloneIgnoreId(dbDiscountActivity, o -> o.setStatus(PromotionActivityStatusEnum.END.getStatus()))); |
| 192 | 194 | // 测试 createTime 不匹配 |
| 193 | - discountActivityMapper.insert(cloneIgnoreId(dbDiscountActivity, o -> o.setCreateTime(buildLocalDateTime(2021, 2, 10)))); | |
| 195 | + discountActivityMapper.insert(cloneIgnoreId(dbDiscountActivity, o -> o.setCreateTime(buildTime(2021, 2, 10)))); | |
| 194 | 196 | // 准备参数 |
| 195 | 197 | DiscountActivityPageReqVO reqVO = new DiscountActivityPageReqVO(); |
| 196 | 198 | reqVO.setName("芋艿"); |
| 197 | 199 | reqVO.setStatus(PromotionActivityStatusEnum.WAIT.getStatus()); |
| 198 | - reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 1), buildTime(2021, 1, 31)})); | |
| 200 | + reqVO.setCreateTime((new LocalDateTime[]{buildTime(2021, 1, 1), buildTime(2021, 1, 31)})); | |
| 199 | 201 | |
| 200 | 202 | // 调用 |
| 201 | 203 | PageResult<DiscountActivityDO> pageResult = discountActivityService.getDiscountActivityPage(reqVO); | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceTest.java
| ... | ... | @@ -495,7 +495,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { |
| 495 | 495 | CouponMeetRespDTO couponMeetRespDTO03 = list.get(2); |
| 496 | 496 | assertPojoEquals(couponMeetRespDTO03, coupon03); |
| 497 | 497 | assertFalse(couponMeetRespDTO03.getMeet()); |
| 498 | - assertEquals(couponMeetRespDTO03.getMeetTip(), "差 1.00 元可用优惠劵"); | |
| 498 | + assertEquals(couponMeetRespDTO03.getMeetTip(), "所结算的商品中未满足使用的金额"); | |
| 499 | 499 | // 断言情况四:满足条件 |
| 500 | 500 | CouponMeetRespDTO couponMeetRespDTO04 = list.get(3); |
| 501 | 501 | assertPojoEquals(couponMeetRespDTO04, coupon04); | ... | ... |
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImplTest.java
| ... | ... | @@ -20,7 +20,7 @@ import java.util.Set; |
| 20 | 20 | |
| 21 | 21 | import static cn.hutool.core.util.RandomUtil.randomEle; |
| 22 | 22 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| 23 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; | |
| 23 | +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime; | |
| 24 | 24 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 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; | ... | ... |
yudao-server/pom.xml
| ... | ... | @@ -41,21 +41,21 @@ |
| 41 | 41 | <artifactId>yudao-module-pay-biz</artifactId> |
| 42 | 42 | <version>${revision}</version> |
| 43 | 43 | </dependency> |
| 44 | -<!-- <dependency>--> | |
| 45 | -<!-- <groupId>cn.iocoder.boot</groupId>--> | |
| 46 | -<!-- <artifactId>yudao-module-promotion-biz</artifactId>--> | |
| 47 | -<!-- <version>${revision}</version>--> | |
| 48 | -<!-- </dependency>--> | |
| 49 | -<!-- <dependency>--> | |
| 50 | -<!-- <groupId>cn.iocoder.boot</groupId>--> | |
| 51 | -<!-- <artifactId>yudao-module-product-biz</artifactId>--> | |
| 52 | -<!-- <version>${revision}</version>--> | |
| 53 | -<!-- </dependency>--> | |
| 54 | -<!-- <dependency>--> | |
| 55 | -<!-- <groupId>cn.iocoder.boot</groupId>--> | |
| 56 | -<!-- <artifactId>yudao-module-trade-biz</artifactId>--> | |
| 57 | -<!-- <version>${revision}</version>--> | |
| 58 | -<!-- </dependency>--> | |
| 44 | + <dependency> | |
| 45 | + <groupId>cn.iocoder.boot</groupId> | |
| 46 | + <artifactId>yudao-module-promotion-biz</artifactId> | |
| 47 | + <version>${revision}</version> | |
| 48 | + </dependency> | |
| 49 | + <dependency> | |
| 50 | + <groupId>cn.iocoder.boot</groupId> | |
| 51 | + <artifactId>yudao-module-product-biz</artifactId> | |
| 52 | + <version>${revision}</version> | |
| 53 | + </dependency> | |
| 54 | + <dependency> | |
| 55 | + <groupId>cn.iocoder.boot</groupId> | |
| 56 | + <artifactId>yudao-module-trade-biz</artifactId> | |
| 57 | + <version>${revision}</version> | |
| 58 | + </dependency> | |
| 59 | 59 | <!-- 数据报表 --> |
| 60 | 60 | <!-- <dependency>--> |
| 61 | 61 | <!-- <groupId>cn.iocoder.boot</groupId>--> | ... | ... |
yudao-server/src/main/resources/application-local.yaml
| ... | ... | @@ -30,7 +30,7 @@ spring: |
| 30 | 30 | multi-statement-allow: true |
| 31 | 31 | dynamic: # 多数据源配置 |
| 32 | 32 | druid: # Druid 【连接池】相关的全局配置 |
| 33 | - initial-size: 1 # 初始连接数 | |
| 33 | + initial-size: 5 # 初始连接数 | |
| 34 | 34 | min-idle: 10 # 最小连接池数量 |
| 35 | 35 | max-active: 20 # 最大连接池数量 |
| 36 | 36 | max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 |
| ... | ... | @@ -45,33 +45,33 @@ spring: |
| 45 | 45 | datasource: |
| 46 | 46 | master: |
| 47 | 47 | name: ruoyi-vue-pro |
| 48 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 48 | + url: jdbc:mysql://139.9.196.247:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 49 | 49 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 50 | 50 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 51 | 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 52 | 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 |
| 53 | 53 | username: root |
| 54 | - password: 123456 | |
| 54 | + password: ${RUOYI_VUE_PRO} | |
| 55 | 55 | # username: sa |
| 56 | 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 57 | 57 | slave: # 模拟从库,可根据自己需要修改 |
| 58 | 58 | name: ruoyi-vue-pro |
| 59 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 59 | + url: jdbc:mysql://139.9.196.247:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 60 | 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 61 | 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 62 | 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 63 | 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 |
| 64 | 64 | username: root |
| 65 | - password: 123456 | |
| 65 | + password: ${RUOYI_VUE_PRO} | |
| 66 | 66 | # username: sa |
| 67 | 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 68 | 68 | |
| 69 | 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| 70 | 70 | redis: |
| 71 | - host: 127.0.0.1 # 地址 | |
| 71 | + host: 139.9.196.247 # 地址 | |
| 72 | 72 | port: 6379 # 端口 |
| 73 | 73 | database: 0 # 数据库索引 |
| 74 | -# password: 123456 # 密码,建议生产环境开启 | |
| 74 | + password: 123456 # 密码,建议生产环境开启 | |
| 75 | 75 | |
| 76 | 76 | --- #################### 定时任务相关配置 #################### |
| 77 | 77 | ... | ... |