diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductBaseController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductBaseController.java index f5e2b6cc..09045110 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductBaseController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductBaseController.java @@ -166,7 +166,7 @@ public class ProductBaseController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/publishHonor") - public ApiResult publishHonor(@Valid @RequestBody ProductPublishRequest request){ + public ApiResult publishHonor(@Valid @RequestBody BatchPublishRequest request) { productHonorService.publish(request); return ApiResult.success(); } @@ -233,7 +233,7 @@ public class ProductBaseController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/publishCase") - public ApiResult publishCase(@Valid @RequestBody ProductPublishRequest request){ + public ApiResult publishCase(@Valid @RequestBody BatchPublishRequest request) { productCaseService.publish(request); return ApiResult.success(); } 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 e7df5a1d..bcadcda8 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 @@ -62,9 +62,6 @@ public class ProductModelController extends ControllerBase{ @Resource private IProductModelParamsItemService productModelParamsItemService; - @Resource - private IProductModelImageService productModelImageService; - @Resource private IProductModelVideoService productModelVideoService; @@ -848,7 +845,7 @@ public class ProductModelController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/publishVideo") - public ApiResult publishVideo(@Valid @RequestBody ProductPublishRequest request){ + public ApiResult publishVideo(@Valid @RequestBody BatchPublishRequest request) { productModelVideoService.publish(request); return ApiResult.success(); } @@ -934,7 +931,7 @@ public class ProductModelController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/publishFile") - public ApiResult publishFile(@Valid @RequestBody ProductModelPublishRequest request) { + public ApiResult publishFile(@Valid @RequestBody BatchPublishRequest 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/BatchPublishRequest.java similarity index 78% rename from nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelPublishRequest.java rename to nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/BatchPublishRequest.java index 2b981526..d6a2e772 100644 --- 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/BatchPublishRequest.java @@ -1,13 +1,15 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; +import lombok.experimental.Accessors; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @Data -public class ProductModelPublishRequest { +@Accessors(chain = true) +public class BatchPublishRequest { @NotEmpty private List ids; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductCaseService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductCaseService.java index 41e661d3..73954853 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductCaseService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductCaseService.java @@ -34,7 +34,7 @@ public interface IProductCaseService extends IService { void delete(@Valid BatchDeleteRequest request); - void publish(@Valid ProductPublishRequest request); + void publish(@Valid BatchPublishRequest request); ProductCaseInfoVO getInfo(@Valid @NotNull Integer caseId); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductHonorService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductHonorService.java index 6fbec226..e1ca9ef6 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductHonorService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductHonorService.java @@ -30,7 +30,7 @@ public interface IProductHonorService extends IService { List get(String language); - void publish(@Valid ProductPublishRequest request); + void publish(@Valid BatchPublishRequest request); void delete(@Valid BatchDeleteRequest request); 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 e5307452..63b0a0bb 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 ProductModelPublishRequest request); + void publish(@Valid BatchPublishRequest request); IPage getList(@Valid ProductModelImageSearchRequest request); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelImageService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelImageService.java index eceaf174..90312682 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelImageService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelImageService.java @@ -27,7 +27,7 @@ public interface IProductModelImageService extends IService { void delete(@Valid BatchDeleteRequest request); - void publish(@Valid ProductPublishRequest request); + void publish(@Valid BatchPublishRequest request); IPage getList(@Valid ProductModelImageSearchRequest request); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelVideoService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelVideoService.java index 92ab1d11..8dca7594 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelVideoService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelVideoService.java @@ -29,7 +29,7 @@ public interface IProductModelVideoService extends IService { void delete(@Valid BatchDeleteRequest request); - void publish(@Valid ProductPublishRequest request); + void publish(@Valid BatchPublishRequest request); IPage getList(@Valid ProductModelImageSearchRequest request); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductCaseServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductCaseServiceImpl.java index faadcfc7..d8710038 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductCaseServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductCaseServiceImpl.java @@ -1,7 +1,9 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -27,6 +29,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -54,8 +57,8 @@ public class ProductCaseServiceImpl extends ServiceImpl list = listByIds(request.getIds()); + List names = list.stream().filter(ph -> Objects.equals(ph.getState(), request.getState())).map(ProductCase::getTitle).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)) + .throwMessage("以下案例不需要设置为" + PublishState.findByValue(request.getState()).getDescription() + ":" + StrUtil.join(",", names)); if (Objects.equals(request.getState(), PublishState.Published.getState())) { - VUtils.trueThrowBusinessError(!info.getEnable()).throwMessage("不能发布已禁用的数据"); + names = list.stream().filter(ph -> !ph.getEnable()).map(ProductCase::getTitle).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)).throwMessage("以下案例被禁用不能发布:" + StrUtil.join(",", names)); + } + list.forEach(it -> publish(it, request.getState())); + } + + private void publish(ProductCase info, Integer state) { + if (Objects.equals(state, PublishState.Published.getState())) { info.setState(PublishState.Published.getState()); info.setPublishBy(AdminUserUtil.getUserName()); info.setPublishTime(LocalDateTime.now()); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductHonorServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductHonorServiceImpl.java index 4d674e57..cdac2e73 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductHonorServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductHonorServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -23,6 +24,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -55,8 +57,8 @@ public class ProductHonorServiceImpl extends ServiceImpl list = listByIds(request.getIds()); + List names = list.stream().filter(ph -> Objects.equals(ph.getState(), request.getState())).map(ProductHonor::getTitle).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)) + .throwMessage("以下荣誉不需要设置为" + PublishState.findByValue(request.getState()).getDescription() + ":" + StrUtil.join(",", names)); if (Objects.equals(request.getState(), PublishState.Published.getState())) { - VUtils.trueThrowBusinessError(!info.getEnable()).throwMessage("不能发布已禁用的数据"); + names = list.stream().filter(ph -> !ph.getEnable()).map(ProductHonor::getTitle).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)).throwMessage("以下荣誉被禁用不能发布:" + StrUtil.join(",", names)); + } + list.forEach(it -> publish(it, request.getState())); + } + + private void publish(ProductHonor info, Integer state) { + if (Objects.equals(state, PublishState.Published.getState())) { info.setState(PublishState.Published.getState()); info.setPublishBy(AdminUserUtil.getUserName()); info.setPublishTime(LocalDateTime.now()); 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 9812e739..4209be3f 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 @@ -132,7 +132,7 @@ public class ProductModelFileServiceImpl extends ServiceImpl datas = listByIds(request.getIds()); datas.removeIf(item -> !item.getEnable()); datas.forEach(info -> { diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelImageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelImageServiceImpl.java index 8344e8ca..055e311f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelImageServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelImageServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -89,12 +91,20 @@ public class ProductModelImageServiceImpl extends ServiceImpl list = listByIds(request.getIds()); + List names = list.stream().filter(ph -> Objects.equals(ph.getState(), request.getState())).map(ProductModelImage::getName).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)) + .throwMessage("以下图片不需要设置为" + PublishState.findByValue(request.getState()).getDescription() + ":" + StrUtil.join(",", names)); if (Objects.equals(request.getState(), PublishState.Published.getState())) { + names = list.stream().filter(ph -> !ph.getEnable()).map(ProductModelImage::getName).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)).throwMessage("以下图片被禁用不能发布:" + StrUtil.join(",", names)); + } + list.forEach(it -> publish(it, request.getState())); + } + + private void publish(ProductModelImage info, Integer state) { + if (Objects.equals(state, PublishState.Published.getState())) { VUtils.trueThrowBusinessError(!info.getEnable()).throwMessage("不能发布已禁用的数据"); info.setState(PublishState.Published.getState()); info.setPublishBy(AdminUserUtil.getUserName()); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoServiceImpl.java index 3244e2cd..54d0001c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -110,26 +112,33 @@ public class ProductModelVideoServiceImpl extends ServiceImpl list = listByIds(request.getIds()); + List names = list.stream().filter(ph -> Objects.equals(ph.getState(), request.getState())).map(ProductModelVideo::getName).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)) + .throwMessage("以下视频不需要设置为" + PublishState.findByValue(request.getState()).getDescription() + ":" + StrUtil.join(",", names)); if (Objects.equals(request.getState(), PublishState.Published.getState())) { - VUtils.trueThrowBusinessError(!info.getEnable()).throwMessage("不能发布已禁用的数据"); + names = list.stream().filter(ph -> !ph.getEnable()).map(ProductModelVideo::getName).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(CollectionUtil.isNotEmpty(names)).throwMessage("以下视频被禁用不能发布:" + StrUtil.join(",", names)); + } + list.forEach(it -> publish(it, request.getState())); + } + + private void publish(ProductModelVideo info, Integer state) { + if (Objects.equals(state, PublishState.Published.getState())) { info.setState(PublishState.Published.getState()); info.setPublishBy(AdminUserUtil.getUserName()); info.setPublishTime(LocalDateTime.now()); lambdaUpdate() .set(ProductModelVideo::getState, PublishState.Obsolete.getState()) .eq(ProductModelVideo::getModelId, info.getModelId()) - .eq(ProductModelVideo::getBatchNumber,info.getBatchNumber()) + .eq(ProductModelVideo::getBatchNumber, info.getBatchNumber()) .eq(ProductModelVideo::getState, PublishState.Published.getState()) .update(); } else { ProductModelVideo obsolete = lambdaQuery() .eq(ProductModelVideo::getModelId, info.getModelId()) - .eq(ProductModelVideo::getBatchNumber,info.getBatchNumber()) + .eq(ProductModelVideo::getBatchNumber, info.getBatchNumber()) .eq(ProductModelVideo::getState, PublishState.Obsolete.getState()) .orderByDesc(ProductModelVideo::getPublishTime) .last("Limit 1")