diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java index 5ae2d7ab..1ce07d9a 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java @@ -15,7 +15,10 @@ import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.dto.ProductModelParamsExcelDTO; import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.*; -import com.nflg.mobilebroken.common.util.*; +import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.EecExcelUtil; +import com.nflg.mobilebroken.common.util.PageUtil; +import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.*; import com.nflg.mobilebroken.repository.service.*; import lombok.extern.slf4j.Slf4j; @@ -931,7 +934,7 @@ public class ProductModelController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/publishFile") - public ApiResult publishFile(@Valid @RequestBody ProductPublishRequest request){ + public ApiResult publishFile(@Valid @RequestBody ProductModelPublishRequest request) { productModelFileService.publish(request); return ApiResult.success(); } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelPublishRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelPublishRequest.java new file mode 100644 index 00000000..2b981526 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelPublishRequest.java @@ -0,0 +1,20 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class ProductModelPublishRequest { + + @NotEmpty + private List ids; + + /** + * 发布状态,1:发布;2:取消发布; + */ + @NotNull + private Integer state; +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java index 312b7ca1..e5307452 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java @@ -31,7 +31,7 @@ public interface IProductModelFileService extends IService { void delete(@Valid BatchDeleteRequest request); - void publish(@Valid ProductPublishRequest request); + void publish(@Valid ProductModelPublishRequest request); IPage getList(@Valid ProductModelImageSearchRequest request); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java index 15f94349..835e5a2a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java @@ -131,40 +131,42 @@ public class ProductModelFileServiceImpl extends ServiceImpl datas = listByIds(request.getIds()); + datas.removeIf(item -> !item.getEnable()); + datas.forEach(info -> { + if (!Objects.equals(info.getState(), request.getState())) { + if (Objects.equals(request.getState(), PublishState.Published.getState())) { + info.setState(PublishState.Published.getState()); + info.setPublishBy(AdminUserUtil.getUserName()); + info.setPublishTime(LocalDateTime.now()); + lambdaUpdate() + .set(ProductModelFile::getState, PublishState.Obsolete.getState()) + .eq(ProductModelFile::getModelId, info.getModelId()) + .eq(ProductModelFile::getBatchNumber, info.getBatchNumber()) + .eq(ProductModelFile::getState, PublishState.Published.getState()) + .update(); + } else { + ProductModelFile obsolete = lambdaQuery() + .eq(ProductModelFile::getModelId, info.getModelId()) + .eq(ProductModelFile::getBatchNumber, info.getBatchNumber()) + .eq(ProductModelFile::getState, PublishState.Obsolete.getState()) + .orderByDesc(ProductModelFile::getPublishTime) + .last("Limit 1") + .one(); + if (Objects.nonNull(obsolete)) { + obsolete.setState(PublishState.Published.getState()); + obsolete.setPublishBy(AdminUserUtil.getUserName()); + obsolete.setPublishTime(LocalDateTime.now()); + updateById(obsolete); + } + info.setState(PublishState.Obsolete.getState()); + } + updateById(info); } - info.setState(PublishState.Obsolete.getState()); - } - updateById(info); + }); } @Override