From 04d6bae1f687baacee7ca651d9e5041c472fd40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 21 Aug 2025 12:23:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bug-596=20=E4=BA=A7=E5=93=81=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=E6=96=B0=E5=93=81=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/task/ProductScheduledTasks.java | 33 ------------------- .../pojo/request/ProductModelAddRequest.java | 6 ++++ .../pojo/vo/FrontendProductModelSearchVO.java | 11 +++++++ .../common/pojo/vo/ProductModelSearchVO.java | 10 ++++++ .../common/pojo/vo/ProductModelVO.java | 11 +++++++ .../repository/entity/ProductModel.java | 4 +-- .../service/impl/ProductModelServiceImpl.java | 16 +++------ 7 files changed, 44 insertions(+), 47 deletions(-) delete mode 100644 nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/ProductScheduledTasks.java diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/ProductScheduledTasks.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/ProductScheduledTasks.java deleted file mode 100644 index aa619b4d..00000000 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/ProductScheduledTasks.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.nflg.mobilebroken.admin.task; - -import com.nflg.mobilebroken.repository.entity.ProductModel; -import com.nflg.mobilebroken.repository.service.IProductModelService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.time.LocalDateTime; - -@Slf4j -@Component -public class ProductScheduledTasks { - - @Resource - private IProductModelService productModelService; - - /** - * 机型是否新版本设置 - * 每天午夜12点执行一次 - */ - @Scheduled(cron = "0 0 0 * * ?") - public void resetRecommend() { - log.info("【产品中心-机型-新品】开始执行"); - productModelService.lambdaUpdate() - .set(ProductModel::getRecommend, false) - .eq(ProductModel::getRecommend, true) - .gt(ProductModel::getRecommendTime, LocalDateTime.now().minusYears(2)) - .update(); - log.info("【产品中心-机型-新品】执行完毕"); - } -} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java index fa5ec4e8..a83b156e 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; @Data public class ProductModelAddRequest { @@ -48,6 +49,11 @@ public class ProductModelAddRequest { */ private Boolean recommend; + /** + * 新品过期时间 + */ + private LocalDateTime recommendExpireTime; + /** * 是否发布 */ diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FrontendProductModelSearchVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FrontendProductModelSearchVO.java index dfad3e9e..843ded2e 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FrontendProductModelSearchVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FrontendProductModelSearchVO.java @@ -3,7 +3,9 @@ package com.nflg.mobilebroken.common.pojo.vo; import lombok.Data; import lombok.experimental.Accessors; +import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; @Data @Accessors @@ -56,6 +58,15 @@ public class FrontendProductModelSearchVO { */ private Boolean recommend; + public Boolean getRecommend() { + return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime)); + } + + /** + * 新品过期时间 + */ + private LocalDateTime recommendExpireTime; + /** * 机型介绍 */ diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSearchVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSearchVO.java index 922eb2b1..41e95180 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSearchVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSearchVO.java @@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.vo; import lombok.Data; import java.time.LocalDateTime; +import java.util.Objects; @Data public class ProductModelSearchVO { @@ -54,6 +55,15 @@ public class ProductModelSearchVO { */ private Boolean recommend; + public Boolean getRecommend() { + return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime)); + } + + /** + * 新品过期时间 + */ + private LocalDateTime recommendExpireTime; + /** * 是否启用 */ diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java index c0fdf3a4..8e947ce2 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java @@ -3,7 +3,9 @@ package com.nflg.mobilebroken.common.pojo.vo; import lombok.Data; import lombok.experimental.Accessors; +import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; @Data @Accessors(chain = true) @@ -26,6 +28,15 @@ public class ProductModelVO { */ private Boolean recommend; + public Boolean getRecommend() { + return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime)); + } + + /** + * 新品过期时间 + */ + private LocalDateTime recommendExpireTime; + /** * 主要参数列表 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java index fbc116f3..2baf6c3a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java @@ -65,9 +65,9 @@ public class ProductModel implements Serializable { private Boolean recommend; /** - * 设置为新品的时间 + * 新品过期时间 */ - private LocalDateTime recommendTime; + private LocalDateTime recommendExpireTime; /** * 排序 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java index ce383a6b..b147e62d 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java @@ -67,13 +67,11 @@ public class ProductModelServiceImpl extends ServiceImpl