refactor: 代码生成支持排除指定表

This commit is contained in:
ray
2024-07-29 23:08:37 +08:00
parent 436638827f
commit 846a547254
5 changed files with 35 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -30,7 +31,6 @@ public class GeneratorProperties {
*/ */
private Map<String, TemplateConfig> templateConfigs = MapUtil.newHashMap(true); private Map<String, TemplateConfig> templateConfigs = MapUtil.newHashMap(true);
/** /**
* 后端应用名 * 后端应用名
*/ */
@@ -42,6 +42,11 @@ public class GeneratorProperties {
*/ */
private String frontendAppName; private String frontendAppName;
/**
* 排除数据表
*/
private List<String> excludeTables;
/** /**
* 模板配置 * 模板配置
*/ */

View File

@@ -1,10 +1,13 @@
package com.youlai.system.model.query; package com.youlai.system.model.query;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.youlai.system.common.base.BasePageQuery; import com.youlai.system.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
/** /**
* 数据表分页查询对象 * 数据表分页查询对象
* *
@@ -19,4 +22,10 @@ public class TablePageQuery extends BasePageQuery {
@Schema(description="关键字(表名)") @Schema(description="关键字(表名)")
private String keywords; private String keywords;
/**
* 排除的表名
*/
@JsonIgnore
private List<String> excludeTables;
} }

View File

@@ -60,6 +60,10 @@ public class GeneratorServiceImpl implements GeneratorService {
*/ */
public Page<TablePageVO> getTablePage(TablePageQuery queryParams) { public Page<TablePageVO> getTablePage(TablePageQuery queryParams) {
Page<TablePageVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); Page<TablePageVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
// 设置排除的表
List<String> excludeTables = generatorProperties.getExcludeTables();
queryParams.setExcludeTables(excludeTables);
return databaseMapper.getTablePage(page, queryParams); return databaseMapper.getTablePage(page, queryParams);
} }

View File

@@ -1,9 +1,16 @@
# 代码生成器配置 # 代码生成器配置
generator: generator:
# 后端项目名称
backendAppName: youlai-boot
# 前端项目名称
frontendAppName: vue3-element-admin
# 默认配置
defaultConfig: defaultConfig:
author: youlaitech author: youlaitech
backendAppName: youlai-boot # 排除数据表
frontendAppName: vue3-element-admin excludeTables:
- gen_config
- gen_field_config
## 模板配置 ## 模板配置
templateConfigs: templateConfigs:
Controller: Controller:

View File

@@ -20,6 +20,13 @@
<if test="queryParams.keywords != null and queryParams.keywords.trim() neq ''"> <if test="queryParams.keywords != null and queryParams.keywords.trim() neq ''">
AND TABLE_NAME LIKE CONCAT('%',#{queryParams.keywords},'%') AND TABLE_NAME LIKE CONCAT('%',#{queryParams.keywords},'%')
</if> </if>
<!-- 排除的表 -->
<if test="queryParams.excludeTables != null and queryParams.excludeTables.size() > 0">
AND TABLE_NAME NOT IN
<foreach collection="queryParams.excludeTables" item="excludeTable" open="(" close=")" separator=",">
#{excludeTable}
</foreach>
</if>
ORDER BY ORDER BY
CREATE_TIME DESC CREATE_TIME DESC
</select> </select>