Compare commits

...

7 Commits

13 changed files with 86 additions and 47 deletions

View File

@ -166,7 +166,7 @@ public class ProductBaseController extends ControllerBase{
* @param request 请求参数
*/
@PostMapping("/publishHonor")
public ApiResult<Void> publishHonor(@Valid @RequestBody ProductPublishRequest request){
public ApiResult<Void> 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<Void> publishCase(@Valid @RequestBody ProductPublishRequest request){
public ApiResult<Void> publishCase(@Valid @RequestBody BatchPublishRequest request) {
productCaseService.publish(request);
return ApiResult.success();
}

View File

@ -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<Void> publishVideo(@Valid @RequestBody ProductPublishRequest request){
public ApiResult<Void> 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<Void> publishFile(@Valid @RequestBody ProductModelPublishRequest request) {
public ApiResult<Void> publishFile(@Valid @RequestBody BatchPublishRequest request) {
productModelFileService.publish(request);
return ApiResult.success();
}

View File

@ -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<Integer> ids;

View File

@ -34,7 +34,7 @@ public interface IProductCaseService extends IService<ProductCase> {
void delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductPublishRequest request);
void publish(@Valid BatchPublishRequest request);
ProductCaseInfoVO getInfo(@Valid @NotNull Integer caseId);

View File

@ -30,7 +30,7 @@ public interface IProductHonorService extends IService<ProductHonor> {
List<ProductHonorVO> get(String language);
void publish(@Valid ProductPublishRequest request);
void publish(@Valid BatchPublishRequest request);
void delete(@Valid BatchDeleteRequest request);

View File

@ -31,7 +31,7 @@ public interface IProductModelFileService extends IService<ProductModelFile> {
void delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductModelPublishRequest request);
void publish(@Valid BatchPublishRequest request);
IPage<ProductModelFile> getList(@Valid ProductModelImageSearchRequest request);

View File

@ -27,7 +27,7 @@ public interface IProductModelImageService extends IService<ProductModelImage> {
void delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductPublishRequest request);
void publish(@Valid BatchPublishRequest request);
IPage<ProductModelImage> getList(@Valid ProductModelImageSearchRequest request);

View File

@ -29,7 +29,7 @@ public interface IProductModelVideoService extends IService<ProductModelVideo> {
void delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductPublishRequest request);
void publish(@Valid BatchPublishRequest request);
IPage<ProductModelVideo> getList(@Valid ProductModelImageSearchRequest request);

View File

@ -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;
/**
* <p>
@ -54,8 +57,8 @@ public class ProductCaseServiceImpl extends ServiceImpl<ProductCaseMapper, Produ
.setCreateTime(LocalDateTime.now());
save(entity);
if (request.getPublish()) {
publish(new ProductPublishRequest()
.setId(entity.getId())
publish(new BatchPublishRequest()
.setIds(List.of(entity.getId()))
.setState(PublishState.Published.getState()));
}
productCaseInfoService.add(entity.getId(), request.getItems());
@ -79,8 +82,8 @@ public class ProductCaseServiceImpl extends ServiceImpl<ProductCaseMapper, Produ
info.setUpdateTime(LocalDateTime.now());
updateById(info);
if (request.getPublish()) {
publish(new ProductPublishRequest()
.setId(info.getId())
publish(new BatchPublishRequest()
.setIds(List.of(info.getId()))
.setState(PublishState.Published.getState()));
}
productCaseInfoService.update(request.getItems());
@ -145,14 +148,22 @@ public class ProductCaseServiceImpl extends ServiceImpl<ProductCaseMapper, Produ
productCaseInfoService.delete(request.getIds());
}
@Transactional
@Override
public void publish(ProductPublishRequest request) {
ProductCase info = getById(request.getId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
VUtils.trueThrowBusinessError(Objects.equals(info.getState(), request.getState()))
.throwMessage("请勿重复操作");
public void publish(BatchPublishRequest request) {
List<ProductCase> list = listByIds(request.getIds());
List<String> 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());

View File

@ -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;
/**
* <p>
@ -55,8 +57,8 @@ public class ProductHonorServiceImpl extends ServiceImpl<ProductHonorMapper, Pro
.setCreateTime(LocalDateTime.now());
save(productHonor);
if (request.getPublish()) {
publish(new ProductPublishRequest()
.setId(productHonor.getId())
publish(new BatchPublishRequest()
.setIds(List.of(productHonor.getId()))
.setState(PublishState.Published.getState()));
}
productHonorInfoService.add(productHonor.getId(), request.getItems());
@ -86,8 +88,8 @@ public class ProductHonorServiceImpl extends ServiceImpl<ProductHonorMapper, Pro
.eq(ProductHonor::getId, request.getId())
.update();
if (request.getPublish()) {
publish(new ProductPublishRequest()
.setId(request.getId())
publish(new BatchPublishRequest()
.setIds(List.of(request.getId()))
.setState(PublishState.Published.getState()));
}
productHonorInfoService.update(request.getItems());
@ -105,14 +107,22 @@ public class ProductHonorServiceImpl extends ServiceImpl<ProductHonorMapper, Pro
return baseMapper.get(language);
}
@Transactional
@Override
public void publish(ProductPublishRequest request) {
ProductHonor info = getById(request.getId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
VUtils.trueThrowBusinessError(Objects.equals(info.getState(), request.getState()))
.throwMessage("请勿重复操作");
public void publish(BatchPublishRequest request) {
List<ProductHonor> list = listByIds(request.getIds());
List<String> 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());

View File

@ -132,7 +132,7 @@ public class ProductModelFileServiceImpl extends ServiceImpl<ProductModelFileMap
@Transactional
@Override
public void publish(ProductModelPublishRequest request) {
public void publish(BatchPublishRequest request) {
List<ProductModelFile> datas = listByIds(request.getIds());
datas.removeIf(item -> !item.getEnable());
datas.forEach(info -> {

View File

@ -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;
/**
* <p>
@ -89,12 +91,20 @@ public class ProductModelImageServiceImpl extends ServiceImpl<ProductModelImageM
}
@Override
public void publish(ProductPublishRequest request) {
ProductModelImage info = getById(request.getId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
VUtils.trueThrowBusinessError(Objects.equals(info.getState(), request.getState()))
.throwMessage("请勿重复操作");
public void publish(BatchPublishRequest request) {
List<ProductModelImage> list = listByIds(request.getIds());
List<String> 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());

View File

@ -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;
/**
* <p>
@ -110,26 +112,33 @@ public class ProductModelVideoServiceImpl extends ServiceImpl<ProductModelVideoM
}
@Override
public void publish(ProductPublishRequest request) {
ProductModelVideo info = getById(request.getId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
VUtils.trueThrowBusinessError(Objects.equals(info.getState(), request.getState()))
.throwMessage("请勿重复操作");
public void publish(BatchPublishRequest request) {
List<ProductModelVideo> list = listByIds(request.getIds());
List<String> 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")