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