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