Skip to content

Commit

Permalink
feat: 新增系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等)
Browse files Browse the repository at this point in the history
  • Loading branch information
Charles7c committed Aug 4, 2023
1 parent 6681245 commit bb6f47c
Show file tree
Hide file tree
Showing 20 changed files with 775 additions and 15 deletions.
46 changes: 34 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ continew-admin # 全局通用项目配置及依赖版本管理
│ │ └─ service # 系统监控相关业务接口及实现类
│ │ └─ impl # 系统监控相关业务实现类
│ └─ resources # 工程配置目录
│ └─ mapper # MyBatis Mapper XML 文件目录
│ └─ mapper # MyBatis Mapper XML 文件目录
├─ continew-admin-system # 系统管理模块(存放系统管理模块相关功能,例如:部门管理、角色管理、用户管理等)
│ └─ src
│ └─ main
Expand All @@ -169,6 +169,28 @@ continew-admin # 全局通用项目配置及依赖版本管理
│ │ └─ impl # 系统管理相关业务实现类
│ └─ resources # 工程配置目录
│ └─ mapper # MyBatis Mapper XML 文件目录
├─ continew-admin-tool # 系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等)
│ └─ src
│ └─ main
│ ├─ java # 工程源文件代码目录
│ │ └─ top
│ │ └─ charles7c
│ │ └─ cnadmin
│ │ └─ tool
│ │ ├─ mapper # 系统工具相关 Mapper
│ │ ├─ model # 系统工具相关模型
│ │ │ ├─ entity # 系统工具相关实体对象
│ │ │ ├─ query # 系统工具相关查询条件
│ │ │ ├─ request # 系统工具相关请求对象
│ │ │ └─ vo # 系统工具相关 VO(View Object)
│ │ └─ service # 系统工具相关业务接口及实现类
│ │ └─ impl # 系统工具相关业务实现类
│ └─ resources # 工程配置目录
│ ├─ mapper # MyBatis Mapper XML 文件目录
│ └─ templates # 模板文件
│ └─ generator # 代码生成器模板
│ ├─ admin-backend # 管理系统后端模板
│ └─ admin-frontend # 管理系统前端模板
├─ continew-admin-common # 公共模块(存放公共工具类,公共配置等)
│ └─ src
│ └─ main
Expand All @@ -177,26 +199,26 @@ continew-admin # 全局通用项目配置及依赖版本管理
│ └─ charles7c
│ └─ cnadmin
│ └─ common
│ ├─ annotation # 公共注解
│ ├─ base # 公共基类
│ ├─ config # 公共配置
│ ├─ annotation # 公共注解
│ ├─ base # 公共基类
│ ├─ config # 公共配置
│ │ ├─ easyexcel # Easy Excel 配置
│ │ ├─ jackson # Jackson 配置
│ │ ├─ mybatis # MyBatis Plus 配置
│ │ ├─ threadpool # 线程池配置
│ │ └─ properties # 公共配置属性
│ ├─ constant # 公共常量
│ ├─ enums # 公共枚举
│ ├─ exception # 公共异常
│ ├─ handler # 公共处理器
│ ├─ model # 公共模型
│ ├─ constant # 公共常量
│ ├─ enums # 公共枚举
│ ├─ exception # 公共异常
│ ├─ handler # 公共处理器
│ ├─ model # 公共模型
│ │ ├─ dto # 公共 DTO(Data Transfer Object)
│ │ ├─ query # 公共查询条件
│ │ ├─ request # 公共请求对象
│ │ └─ vo # 公共 VO(View Object)
│ ├─ service # 公共业务接口
│ └─ util # 公共工具类
│ ├─ helper # 公共 Helper(助手)
│ ├─ service # 公共业务接口
│ └─ util # 公共工具类
│ ├─ helper # 公共 Helper(助手)
│ ├─ holder # 公共 Holder(持有者)
│ └─ validate # 公共校验器(参数校验,业务校验)
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public static <T, V> PageDataVO<V> build(IPage<T> page, Class<V> targetClass) {
}
PageDataVO<V> pageDataVO = new PageDataVO<>();
pageDataVO.setList(BeanUtil.copyToList(page.getRecords(), targetClass));
pageDataVO.setTotal((int) page.getTotal());
pageDataVO.setTotal((int)page.getTotal());
return pageDataVO;
}

Expand All @@ -95,7 +95,7 @@ public static <V> PageDataVO<V> build(IPage<V> page) {
}
PageDataVO<V> pageDataVO = new PageDataVO<>();
pageDataVO.setList(page.getRecords());
pageDataVO.setTotal((int) page.getTotal());
pageDataVO.setTotal((int)page.getTotal());
return pageDataVO;
}

Expand Down
26 changes: 26 additions & 0 deletions continew-admin-tool/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>

<parent>
<groupId>top.charles7c</groupId>
<artifactId>continew-admin</artifactId>
<version>${revision}</version>
</parent>

<artifactId>continew-admin-tool</artifactId>
<packaging>jar</packaging>

<name>${project.artifactId}</name>
<description>系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等)</description>

<dependencies>
<!-- 公共模块(存放公共工具类,公共配置等) -->
<dependency>
<groupId>top.charles7c</groupId>
<artifactId>continew-admin-common</artifactId>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright (c) 2022-present Charles7c 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.
*/

package top.charles7c.cnadmin.tool.model.query;

import java.io.Serializable;

import lombok.Data;

import io.swagger.v3.oas.annotations.media.Schema;

/**
* 表信息查询条件
*
* @author Charles7c
* @since 2023/4/12 20:21
*/
@Data
@Schema(description = "表信息查询条件")
public class TableQuery implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 表名称
*/
@Schema(description = "表名称")
private String tableName;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright (c) 2022-present Charles7c 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.
*/

package top.charles7c.cnadmin.tool.model.vo;

import java.io.Serializable;
import java.time.LocalDateTime;

import lombok.Data;
import lombok.experimental.Accessors;

import io.swagger.v3.oas.annotations.media.Schema;

/**
* 表信息
*
* @author Charles7c
* @since 2023/4/12 20:21
*/
@Data
@Accessors(chain = true)
@Schema(description = "表信息")
public class TableVO implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 表名称
*/
@Schema(description = "表名称")
private String tableName;

/**
* 注释
*/
@Schema(description = "注释")
private String comment;

/**
* 存储引擎
*/
@Schema(description = "存储引擎")
private String engine;

/**
* 字符集
*/
@Schema(description = "字符集")
private String charset;

/**
* 创建时间
*/
@Schema(description = "创建时间")
private LocalDateTime createTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright (c) 2022-present Charles7c 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.
*/

package top.charles7c.cnadmin.tool.service;

import java.sql.SQLException;

import top.charles7c.cnadmin.common.model.query.PageQuery;
import top.charles7c.cnadmin.common.model.vo.PageDataVO;
import top.charles7c.cnadmin.tool.model.query.TableQuery;
import top.charles7c.cnadmin.tool.model.vo.TableVO;

/**
* 代码生成业务接口
*
* @author Charles7c
* @since 2023/4/12 23:57
*/
public interface GeneratorService {

/**
* 分页查询列表
*
* @param query
* 查询条件
* @param pageQuery
* 分页查询条件
* @return 分页列表信息
*/
PageDataVO<TableVO> pageTable(TableQuery query, PageQuery pageQuery) throws SQLException;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* Copyright (c) 2022-present Charles7c 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.
*/

package top.charles7c.cnadmin.tool.service.impl;

import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import org.springframework.stereotype.Service;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;

import top.charles7c.cnadmin.common.model.query.PageQuery;
import top.charles7c.cnadmin.common.model.vo.PageDataVO;
import top.charles7c.cnadmin.tool.model.query.TableQuery;
import top.charles7c.cnadmin.tool.model.vo.TableVO;
import top.charles7c.cnadmin.tool.service.GeneratorService;
import top.charles7c.cnadmin.tool.util.MetaUtils;
import top.charles7c.cnadmin.tool.util.Table;

/**
* 代码生成业务实现
*
* @author Charles7c
* @since 2023/4/12 23:58
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class GeneratorServiceImpl implements GeneratorService {

private final DataSource dataSource;

@Override
public PageDataVO<TableVO> pageTable(TableQuery query, PageQuery pageQuery) throws SQLException {
List<Table> tableList = MetaUtils.getTables(dataSource);
String tableName = query.getTableName();
if (StrUtil.isNotBlank(tableName)) {
tableList.removeIf(table -> !StrUtil.containsAny(table.getTableName(), tableName));
}
tableList
.removeIf(table -> StrUtil.equalsAny(table.getTableName(), "DATABASECHANGELOG", "DATABASECHANGELOGLOCK"));
List<TableVO> tableVOList = BeanUtil.copyToList(tableList, TableVO.class);
return PageDataVO.build(pageQuery.getPage(), pageQuery.getSize(), tableVOList);
}
}
Loading

0 comments on commit bb6f47c

Please sign in to comment.