diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
index 022fa8f91..51e45c7bc 100755
--- a/pigx-visual/pigx-codegen/pom.xml
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -15,6 +15,7 @@
代码生成模块
+ 0.0.1
4.0
11.5.0.0
12.1.0.1-atlassian-hosted
@@ -123,6 +124,12 @@
org.apache.velocity
${velocity.version}
+
+
+ io.springboot.plugin
+ screw-spring-boot-starter
+ ${screw.version}
+
org.springframework.boot
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GeneratorController.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GeneratorController.java
index 38d7b5d93..c272a0bb3 100755
--- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GeneratorController.java
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GeneratorController.java
@@ -17,18 +17,25 @@
package com.pig4cloud.pigx.codegen.controller;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
+import cn.smallbun.screw.boot.config.Screw;
+import cn.smallbun.screw.boot.properties.ScrewProperties;
+import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pig4cloud.pigx.codegen.entity.GenConfig;
import com.pig4cloud.pigx.codegen.service.GenTableColumnService;
import com.pig4cloud.pigx.codegen.service.GeneratorService;
import com.pig4cloud.pigx.common.core.util.R;
+import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import javax.sql.DataSource;
/**
* 代码生成器
@@ -41,6 +48,8 @@ import javax.servlet.http.HttpServletResponse;
@RequestMapping("/generator")
public class GeneratorController {
+ private final Screw screw;
+
private final GeneratorService generatorService;
private final GenTableColumnService columnService;
@@ -94,4 +103,24 @@ public class GeneratorController {
IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
}
+ @SneakyThrows
+ @GetMapping("/doc")
+ public void generatorDoc(String[] tableNames, String dsName, HttpServletResponse response) {
+ // 设置指定的数据源
+ DynamicRoutingDataSource dynamicRoutingDataSource = SpringContextHolder.getBean(DynamicRoutingDataSource.class);
+ DynamicDataSourceContextHolder.push(dsName);
+ DataSource dataSource = dynamicRoutingDataSource.determineDataSource();
+
+ // 设置指定的目标表
+ ScrewProperties screwProperties = SpringContextHolder.getBean(ScrewProperties.class);
+ screwProperties.setDesignatedTableName(CollUtil.toList(tableNames));
+
+ // 生成
+ byte[] data = screw.documentGeneration(dataSource, screwProperties).toByteArray();
+ response.reset();
+ response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(data.length));
+ response.setContentType("application/octet-stream; charset=UTF-8");
+ IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
+ }
+
}
diff --git a/pom.xml b/pom.xml
index ac1a79f27..b6a5d24b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
- 2.5.6
+ 2.5.7
2020.0.4
2021.1
UTF-8