Merge branch 'feature/bug-596' into develop

This commit is contained in:
曹鹏飞 2025-08-26 10:59:39 +08:00
commit c407f62199
7 changed files with 44 additions and 47 deletions

View File

@ -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("【产品中心-机型-新品】执行完毕");
}
}

View File

@ -4,6 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data @Data
public class ProductModelAddRequest { public class ProductModelAddRequest {
@ -48,6 +49,11 @@ public class ProductModelAddRequest {
*/ */
private Boolean recommend; private Boolean recommend;
/**
* 新品过期时间
*/
private LocalDateTime recommendExpireTime;
/** /**
* 是否发布 * 是否发布
*/ */

View File

@ -3,7 +3,9 @@ package com.nflg.mobilebroken.common.pojo.vo;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
@Data @Data
@Accessors @Accessors
@ -56,6 +58,15 @@ public class FrontendProductModelSearchVO {
*/ */
private Boolean recommend; private Boolean recommend;
public Boolean getRecommend() {
return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime));
}
/**
* 新品过期时间
*/
private LocalDateTime recommendExpireTime;
/** /**
* 机型介绍 * 机型介绍
*/ */

View File

@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.vo;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Objects;
@Data @Data
public class ProductModelSearchVO { public class ProductModelSearchVO {
@ -54,6 +55,15 @@ public class ProductModelSearchVO {
*/ */
private Boolean recommend; private Boolean recommend;
public Boolean getRecommend() {
return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime));
}
/**
* 新品过期时间
*/
private LocalDateTime recommendExpireTime;
/** /**
* 是否启用 * 是否启用
*/ */

View File

@ -3,7 +3,9 @@ package com.nflg.mobilebroken.common.pojo.vo;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@ -26,6 +28,15 @@ public class ProductModelVO {
*/ */
private Boolean recommend; private Boolean recommend;
public Boolean getRecommend() {
return recommend && (Objects.nonNull(recommendExpireTime) && LocalDateTime.now().isBefore(recommendExpireTime));
}
/**
* 新品过期时间
*/
private LocalDateTime recommendExpireTime;
/** /**
* 主要参数列表 * 主要参数列表
*/ */

View File

@ -65,9 +65,9 @@ public class ProductModel implements Serializable {
private Boolean recommend; private Boolean recommend;
/** /**
* 设置为新品的时间 * 新品过期时间
*/ */
private LocalDateTime recommendTime; private LocalDateTime recommendExpireTime;
/** /**
* 排序 * 排序

View File

@ -67,13 +67,11 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
// .setBatchNumber(request.getBatchNumber()) // .setBatchNumber(request.getBatchNumber())
.setNo(request.getNo()) .setNo(request.getNo())
.setRecommend(request.getRecommend()) .setRecommend(request.getRecommend())
.setRecommendExpireTime(request.getRecommendExpireTime())
.setSort(RandomUtil.randomInt(0,10000)) .setSort(RandomUtil.randomInt(0,10000))
.setImage(request.getImage()) .setImage(request.getImage())
.setCreateBy(AdminUserUtil.getUserName()) .setCreateBy(AdminUserUtil.getUserName())
.setCreateTime(LocalDateTime.now()); .setCreateTime(LocalDateTime.now());
if (request.getRecommend()){
productModel.setRecommendTime(LocalDateTime.now());
}
save(productModel); save(productModel);
if (request.getPublish()) { if (request.getPublish()) {
publish(new ProductPublishRequest() publish(new ProductPublishRequest()
@ -95,15 +93,8 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
} else { } else {
info.setNo(request.getNo()); info.setNo(request.getNo());
// info.setSort(request.getSort()); // info.setSort(request.getSort());
if (request.getRecommend()) { info.setRecommend(request.getRecommend());
if (!info.getRecommend()) { info.setRecommendExpireTime(request.getRecommendExpireTime());
info.setRecommend(true);
info.setRecommendTime(LocalDateTime.now());
}
} else {
info.setRecommend(false);
info.setRecommendTime(null);
}
info.setModuleId(request.getModuleId()); info.setModuleId(request.getModuleId());
info.setSeriesNumber(request.getSeriesNumber()); info.setSeriesNumber(request.getSeriesNumber());
info.setTypeNumber(request.getTypeNumber()); info.setTypeNumber(request.getTypeNumber());
@ -205,6 +196,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
.setId(item.getId()) .setId(item.getId())
.setNo(item.getNo()) .setNo(item.getNo())
.setRecommend(item.getRecommend()) .setRecommend(item.getRecommend())
.setRecommendExpireTime(item.getRecommendExpireTime())
.setImage(item.getImage()) .setImage(item.getImage())
.setParams(productPartParamsService.getMainListByLanguage(item.getId(), language)) .setParams(productPartParamsService.getMainListByLanguage(item.getId(), language))
.setFile(productModelFileService.getDefaultByLanguage(item.getId(), language))) .setFile(productModelFileService.getDefaultByLanguage(item.getId(), language)))