From 9556c4371ac85a53f397d928decf53a5bd6e568d Mon Sep 17 00:00:00 2001 From: smallchill Date: Mon, 15 Aug 2022 00:01:49 +0800 Subject: [PATCH] =?UTF-8?q?:tada:=20=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../develop/controller/CodeController.java | 30 ++++++++++++++++++- .../service/IModelPrototypeService.java | 11 ++++++- .../impl/ModelPrototypeServiceImpl.java | 6 ++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java index 31e4c0ea..e9c6abeb 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java @@ -27,12 +27,16 @@ import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; import org.springblade.develop.entity.Code; import org.springblade.develop.entity.Datasource; import org.springblade.develop.entity.Model; +import org.springblade.develop.entity.ModelPrototype; import org.springblade.develop.service.ICodeService; import org.springblade.develop.service.IDatasourceService; +import org.springblade.develop.service.IModelPrototypeService; import org.springblade.develop.service.IModelService; import org.springblade.develop.support.BladeCodeGenerator; import org.springframework.web.bind.annotation.*; @@ -40,6 +44,7 @@ import springfox.documentation.annotations.ApiIgnore; import javax.validation.Valid; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -58,6 +63,7 @@ public class CodeController extends BladeController { private final ICodeService codeService; private final IDatasourceService datasourceService; private final IModelService modelService; + private final IModelPrototypeService modelPrototypeService; /** * 详情 @@ -130,8 +136,21 @@ public class CodeController extends BladeController { Collection codes = codeService.listByIds(Func.toLongList(ids)); codes.forEach(code -> { BladeCodeGenerator generator = new BladeCodeGenerator(); - // 设置数据源 + // 设置基础模型 Model model = modelService.getById(code.getModelId()); + generator.setModelCode(model.getModelCode()); + generator.setModelClass(model.getModelClass()); + // 设置模型集合 + List prototypes = modelPrototypeService.prototypeList(model.getId()); + generator.setModel(JsonUtil.readMap(JsonUtil.toJson(model))); + generator.setPrototypes(JsonUtil.readListMap(JsonUtil.toJson(prototypes))); + if (StringUtil.isNotBlank(code.getSubModelId())) { + Model subModel = modelService.getById(Func.toLong(code.getSubModelId())); + List subPrototypes = modelPrototypeService.prototypeList(subModel.getId()); + generator.setSubModel(JsonUtil.readMap(JsonUtil.toJson(subModel))); + generator.setSubPrototypes(JsonUtil.readListMap(JsonUtil.toJson(subPrototypes))); + } + // 设置数据源 Datasource datasource = datasourceService.getById(model.getDatasourceId()); generator.setDriverName(datasource.getDriverClass()); generator.setUrl(datasource.getUrl()); @@ -146,6 +165,14 @@ public class CodeController extends BladeController { generator.setPackageWebDir(code.getWebPath()); generator.setTablePrefix(Func.toStrArray(code.getTablePrefix())); generator.setIncludeTables(Func.toStrArray(code.getTableName())); + // 设置模版信息 + generator.setTemplateType(code.getTemplateType()); + generator.setAuthor(code.getAuthor()); + generator.setSubModelId(code.getSubModelId()); + generator.setSubFkId(code.getSubFkId()); + generator.setTreeId(code.getTreeId()); + generator.setTreePid(code.getTreePid()); + generator.setTreeName(code.getTreeName()); // 设置是否继承基础业务字段 generator.setHasSuperEntity(code.getBaseMode() == 2); // 设置是否开启包装器模式 @@ -154,6 +181,7 @@ public class CodeController extends BladeController { generator.setHasFeign(code.getFeignMode() == 2); // 设置控制器服务名前缀 generator.setHasServiceName(Boolean.TRUE); + // 启动代码生成 generator.run(); }); return R.success("代码生成成功"); diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelPrototypeService.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelPrototypeService.java index 953e7059..98978c5d 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelPrototypeService.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IModelPrototypeService.java @@ -29,10 +29,19 @@ import java.util.List; public interface IModelPrototypeService extends BaseService { /** - * 批量体检 + * 批量提交 * * @param modelPrototypes 原型集合 + * @return boolean */ boolean submitList(List modelPrototypes); + /** + * 原型列表 + * + * @param modelId 模型ID + * @return List + */ + List prototypeList(Long modelId); + } diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelPrototypeServiceImpl.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelPrototypeServiceImpl.java index 0d914e26..c10c1e59 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelPrototypeServiceImpl.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/ModelPrototypeServiceImpl.java @@ -16,6 +16,7 @@ */ package org.springblade.develop.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.develop.entity.ModelPrototype; import org.springblade.develop.mapper.ModelPrototypeMapper; @@ -46,4 +47,9 @@ public class ModelPrototypeServiceImpl extends BaseServiceImpl prototypeList(Long modelId) { + return this.list(Wrappers.lambdaQuery().eq(ModelPrototype::getModelId, modelId)); + } + }