Skip to content

Commit

Permalink
feat(代码生成): 支持anyline 动态获取表元数据
Browse files Browse the repository at this point in the history
- 1. 支持代码生成模板 从 github获取
- 2. 重构代码生成的默认值从配置类获取
  • Loading branch information
lltx committed Jul 15, 2024
1 parent c8d4eeb commit 921732a
Show file tree
Hide file tree
Showing 38 changed files with 1,566 additions and 1,214 deletions.
37 changes: 1 addition & 36 deletions db/pig.sql

Large diffs are not rendered by default.

90 changes: 56 additions & 34 deletions pig-visual/pig-codegen/pom.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
Expand All @@ -30,12 +14,13 @@

<description>代码生成模块</description>

<properties>
<screw.version>0.0.6</screw.version>
<anyline.version>8.7.2-jdk17-20240530</anyline.version>
<configuration.version>1.10</configuration.version>
</properties>

<dependencies>
<!--接口文档-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-swagger</artifactId>
</dependency>
<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
Expand All @@ -46,16 +31,17 @@
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--断路器依赖-->
<!--数据操作-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-feign</artifactId>
<artifactId>pig-common-mybatis</artifactId>
</dependency>
<!--数据源-->
<!--动态数据源 数据操作-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-datasource</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
Expand All @@ -64,30 +50,49 @@
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!--common-->
<!--anyline-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-json</artifactId>
<groupId>org.anyline</groupId>
<artifactId>anyline-environment-spring-data-jdbc</artifactId>
<version>${anyline.version}</version>
</dependency>
<dependency>
<groupId>org.anyline</groupId>
<artifactId>anyline-data-jdbc-mysql</artifactId>
<version>${anyline.version}</version>
</dependency>
<!--common-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-json</artifactId>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${configuration.version}</version>
</dependency>
<!--日志处理-->
<!--swagger-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-log</artifactId>
<artifactId>pig-common-swagger</artifactId>
</dependency>
<!--安全模块-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-xss</artifactId>
</dependency>
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-security</artifactId>
</dependency>
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-log</artifactId>
</dependency>
<!--代码生成模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
Expand All @@ -101,10 +106,15 @@
</dependency>
<!--生成文档-->
<dependency>
<groupId>io.springboot.plugin</groupId>
<groupId>group.springframework.plugin</groupId>
<artifactId>screw-spring-boot-starter</artifactId>
<version>${screw.version}</version>
</dependency>
<!--web 模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand All @@ -113,27 +123,39 @@
</dependencies>

<profiles>
<profile>
<id>boot</id>
</profile>
<profile>
<id>cloud</id>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<loaderImplementation>CLASSIC</loaderImplementation>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>boot</id>
</profile>
</profiles>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.pig4cloud.pig.common.datasource.annotation.EnableDynamicDataSource;
import com.pig4cloud.pig.common.feign.annotation.EnablePigFeignClients;
import com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer;
import com.pig4cloud.pig.common.swagger.annotation.EnablePigDoc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
Expand All @@ -30,6 +31,7 @@
*/
@EnableDynamicDataSource
@EnablePigFeignClients
@EnablePigDoc("gen")
@EnableDiscoveryClient
@EnablePigResourceServer
@SpringBootApplication
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.pig4cloud.pig.codegen.config;

import cn.smallbun.screw.core.constant.DefaultConstants;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
* 代码生成默认配置类
*
* @author lengleng
* @date 2024/7/15
*/
@Data
@Configuration(proxyBeanMethods = false)
@ConfigurationProperties(prefix = PigCodeGenDefaultProperties.PREFIX)
public class PigCodeGenDefaultProperties {

public static final String PREFIX = "codegen";

/**
* 是否开启在线更新
*/
private boolean autoCheckVersion = true;

/**
* 模板项目地址
*/
private String onlineUrl = DefaultConstants.CGTM_URL;

/**
* 生成代码的包名
*/
private String packageName = "com.pig4cloud.pig";

/**
* 生成代码的版本
*/
private String version = "1.0.0";

/**
* 生成代码的模块名
*/
private String moduleName = "admin";

/**
* 生成代码的后端路径
*/
private String backendPath = "pig";

/**
* 生成代码的前端路径
*/
private String frontendPath = "pig-ui";

/**
* 生成代码的作者
*/
private String author = "pig";

/**
* 生成代码的邮箱
*/
private String email = "sw@pigx.vip";

/**
* 表单布局(一列、两列)
*/
private Integer formLayout = 2;

/**
* 下载方式 (0 文件下载、1写入目录)
*/
private String generatorType = "0";
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.ContentType;
import cn.smallbun.screw.boot.config.Screw;
import cn.smallbun.screw.boot.properties.ScrewProperties;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
Expand All @@ -30,6 +29,7 @@
import com.pig4cloud.pig.common.core.util.R;
import com.pig4cloud.pig.common.core.util.SpringContextHolder;
import com.pig4cloud.pig.common.security.annotation.Inner;
import com.pig4cloud.pig.common.xss.core.XssCleanIgnore;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
Expand Down Expand Up @@ -93,6 +93,7 @@ public R getById(@PathVariable("id") Long id) {
* @return R
*/
@PostMapping
@XssCleanIgnore
public R save(@RequestBody GenDatasourceConf datasourceConf) {
return R.ok(datasourceConfService.saveDsByEnc(datasourceConf));
}
Expand All @@ -103,6 +104,7 @@ public R save(@RequestBody GenDatasourceConf datasourceConf) {
* @return R
*/
@PutMapping
@XssCleanIgnore
public R updateById(@RequestBody GenDatasourceConf conf) {
return R.ok(datasourceConfService.updateDsByEnc(conf));
}
Expand Down Expand Up @@ -133,11 +135,11 @@ public void generatorDoc(String dsName, HttpServletResponse response) {
ScrewProperties screwProperties = SpringContextHolder.getBean(ScrewProperties.class);

// 生成
byte[] data = screw.documentGeneration(dataSource, screwProperties).toByteArray();
byte[] data = screw.documentGeneration(dsName, dataSource, screwProperties).toByteArray();
response.reset();
response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(data.length));
response.setContentType(ContentType.OCTET_STREAM.getValue());
IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
response.setContentType("application/octet-stream");
IoUtil.write(response.getOutputStream(), Boolean.FALSE, data);
}

}
Loading

0 comments on commit 921732a

Please sign in to comment.