diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/ModelController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/ModelController.java index 0f843cc3..3feff461 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/ModelController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/ModelController.java @@ -127,7 +127,7 @@ public class ModelController extends BladeController { @ApiOperationSupport(order = 6) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { - return R.status(modelService.deleteLogic(Func.toLongList(ids))); + return R.status(modelService.delete(Func.toLongList(ids))); } /** diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelService.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelService.java index 20ca46ca..aa66ff05 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelService.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelService.java @@ -19,6 +19,8 @@ package org.springblade.develop.service; import org.springblade.core.mp.base.BaseService; import org.springblade.develop.entity.Model; +import java.util.List; + /** * 数据模型表 服务类 * @@ -26,4 +28,12 @@ import org.springblade.develop.entity.Model; */ public interface IModelService extends BaseService { + /** + * 删除模型 + * + * @param ids 主键集合 + * @return boolean + */ + boolean delete(List ids); + } diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelServiceImpl.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelServiceImpl.java index 6a5613c6..9f14d483 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelServiceImpl.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelServiceImpl.java @@ -16,11 +16,21 @@ */ package org.springblade.develop.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.develop.entity.Code; import org.springblade.develop.entity.Model; +import org.springblade.develop.entity.ModelPrototype; import org.springblade.develop.mapper.ModelMapper; +import org.springblade.develop.service.ICodeService; +import org.springblade.develop.service.IModelPrototypeService; import org.springblade.develop.service.IModelService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 数据模型表 服务实现类 @@ -28,6 +38,27 @@ import org.springframework.stereotype.Service; * @author Chill */ @Service +@RequiredArgsConstructor public class ModelServiceImpl extends BaseServiceImpl implements IModelService { + private final IModelPrototypeService modelPrototypeService; + private final ICodeService codeService; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List ids) { + boolean modelTemp = this.deleteLogic(ids); + if (modelTemp) { + boolean prototypeTemp = modelPrototypeService.remove(Wrappers.lambdaQuery().in(ModelPrototype::getModelId, ids)); + if (!prototypeTemp) { + throw new ServiceException("删除数据模型成功,关联数据原型删除失败"); + } + boolean codeTemp = codeService.remove(Wrappers.lambdaQuery().in(Code::getModelId, ids)); + if (!codeTemp) { + throw new ServiceException("删除数据模型成功,关联代码生成陪孩子删除失败"); + } + } + return false; + } + }