update - 添加产品重名相关的校验

This commit is contained in:
wangli 2023-09-18 10:19:18 +08:00
parent 7e2cb2d11d
commit 17b2bc9d75
2 changed files with 6 additions and 3 deletions

View File

@ -23,7 +23,7 @@ public class ProductUpdateReq {
* 产品 ID
*/
@NotNull(message = "产品 ID 不能为空")
private String id;
private Long id;
/**
* 产品名称

View File

@ -76,9 +76,12 @@ public class ProductServiceImpl implements ProductService {
@Override
public ApiResult<ProductVO> update(ProductUpdateReq req) {
Optional<ProductModule> optProduct = productModuleDao.lambdaQuery()
.eq(ProductModule::getProductName, req.getProductName())
.eq(ProductModule::getDictWorkspaceTypeId, req.getDictWorkspaceTypeId())
.oneOpt();
AssertUtil.isTrue(!optProduct.isPresent() || Objects.equals(req.getId(), optProduct.get().getId()), "产品名称在相同工作台类型下不允许重复");
ProductModule productModule = productModuleDao.getById(req.getId());
AssertUtil.isTrue(Objects.equals(req.getProductName(), productModule.getProductName())
&& Objects.equals(req.getDictWorkspaceTypeId(), productModule.getDictWorkspaceTypeId()), "产品名称在相同工作台类型下不允许重复");
BeanMapper.copyBeanIgnoreNull(req, () -> productModule);
productModuleDao.updateById(productModule);
return ApiResult.ok(BeanMapper.copyBeanIgnoreNull(productModule, ProductVO.class));