|
|
|
@ -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<Code> 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<ModelPrototype> 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<ModelPrototype> 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("代码生成成功"); |
|
|
|
|