From bb6f47cfd22347b200337b2cf43545550a422430 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sat, 5 Aug 2023 00:08:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A8=A1=E5=9D=97=EF=BC=88=E5=AD=98=E6=94=BE?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=B7=A5=E5=85=B7=E6=A8=A1=E5=9D=97=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BE=8B=E5=A6=82=EF=BC=9A?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E3=80=81=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AD=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 46 +++- .../cnadmin/common/model/vo/PageDataVO.java | 4 +- continew-admin-tool/pom.xml | 26 +++ .../cnadmin/tool/model/query/TableQuery.java | 42 ++++ .../cnadmin/tool/model/vo/TableVO.java | 69 ++++++ .../tool/service/GeneratorService.java | 44 ++++ .../service/impl/GeneratorServiceImpl.java | 65 ++++++ .../cnadmin/tool/util/MetaUtils.java | 62 +++++ .../charles7c/cnadmin/tool/util/Table.java | 70 ++++++ continew-admin-ui/src/api/tool/generator.ts | 30 +++ continew-admin-ui/src/locale/en-US.ts | 5 + continew-admin-ui/src/locale/zh-CN.ts | 5 + .../src/router/routes/modules/monitor.ts | 2 +- .../src/router/routes/modules/tool.ts | 28 +++ .../src/views/tool/generator/index.vue | 214 ++++++++++++++++++ .../src/views/tool/generator/locale/en-US.ts | 3 + .../src/views/tool/generator/locale/zh-CN.ts | 3 + continew-admin-webapi/pom.xml | 6 + .../controller/tool/GeneratorController.java | 58 +++++ pom.xml | 8 + 20 files changed, 775 insertions(+), 15 deletions(-) create mode 100644 continew-admin-tool/pom.xml create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/query/TableQuery.java create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/vo/TableVO.java create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/MetaUtils.java create mode 100644 continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/Table.java create mode 100644 continew-admin-ui/src/api/tool/generator.ts create mode 100644 continew-admin-ui/src/router/routes/modules/tool.ts create mode 100644 continew-admin-ui/src/views/tool/generator/index.vue create mode 100644 continew-admin-ui/src/views/tool/generator/locale/en-US.ts create mode 100644 continew-admin-ui/src/views/tool/generator/locale/zh-CN.ts create mode 100644 continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java diff --git a/README.md b/README.md index 43a73a00..83273001 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ continew-admin # 全局通用项目配置及依赖版本管理 │ │ └─ service # 系统监控相关业务接口及实现类 │ │ └─ impl # 系统监控相关业务实现类 │ └─ resources # 工程配置目录 - │ └─ mapper # MyBatis Mapper XML 文件目录 + │ └─ mapper # MyBatis Mapper XML 文件目录 ├─ continew-admin-system # 系统管理模块(存放系统管理模块相关功能,例如:部门管理、角色管理、用户管理等) │ └─ src │ └─ main @@ -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 @@ -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 # 公共校验器(参数校验,业务校验) ``` diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/vo/PageDataVO.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/vo/PageDataVO.java index 5c26bbdf..4e012277 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/vo/PageDataVO.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/vo/PageDataVO.java @@ -76,7 +76,7 @@ public class PageDataVO implements Serializable { } PageDataVO pageDataVO = new PageDataVO<>(); pageDataVO.setList(BeanUtil.copyToList(page.getRecords(), targetClass)); - pageDataVO.setTotal((int) page.getTotal()); + pageDataVO.setTotal((int)page.getTotal()); return pageDataVO; } @@ -95,7 +95,7 @@ public class PageDataVO implements Serializable { } PageDataVO pageDataVO = new PageDataVO<>(); pageDataVO.setList(page.getRecords()); - pageDataVO.setTotal((int) page.getTotal()); + pageDataVO.setTotal((int)page.getTotal()); return pageDataVO; } diff --git a/continew-admin-tool/pom.xml b/continew-admin-tool/pom.xml new file mode 100644 index 00000000..34072e9a --- /dev/null +++ b/continew-admin-tool/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + + top.charles7c + continew-admin + ${revision} + + + continew-admin-tool + jar + + ${project.artifactId} + 系统工具模块(存放系统工具模块相关功能,例如:代码生成、文件管理等) + + + + + top.charles7c + continew-admin-common + + + \ No newline at end of file diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/query/TableQuery.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/query/TableQuery.java new file mode 100644 index 00000000..b0e81b99 --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/query/TableQuery.java @@ -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; +} diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/vo/TableVO.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/vo/TableVO.java new file mode 100644 index 00000000..a4e3d57b --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/vo/TableVO.java @@ -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; +} diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java new file mode 100644 index 00000000..ff6cd6a3 --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java @@ -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 pageTable(TableQuery query, PageQuery pageQuery) throws SQLException; +} diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java new file mode 100644 index 00000000..9ba4ffdf --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java @@ -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 pageTable(TableQuery query, PageQuery pageQuery) throws SQLException { + List 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 tableVOList = BeanUtil.copyToList(tableList, TableVO.class); + return PageDataVO.build(pageQuery.getPage(), pageQuery.getSize(), tableVOList); + } +} diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/MetaUtils.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/MetaUtils.java new file mode 100644 index 00000000..6a712a88 --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/MetaUtils.java @@ -0,0 +1,62 @@ +/* + * 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.util; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.db.Db; +import cn.hutool.db.Entity; + +/** + * 数据库元数据信息工具类 + * + * @author Charles7c + * @since 2023/4/26 21:39 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class MetaUtils { + + /** + * 获取所有表信息 + * + * @param dataSource + * 数据源 + * @return 表信息列表 + */ + public static List
getTables(DataSource dataSource) throws SQLException { + List tableEntityList = Db.use(dataSource).query("SHOW TABLE STATUS"); + List
tableList = new ArrayList<>(tableEntityList.size()); + for (Entity tableEntity : tableEntityList) { + Table table = new Table(tableEntity.getStr("NAME")); + table.setComment(tableEntity.getStr("COMMENT")); + table.setEngine(tableEntity.getStr("ENGINE")); + table.setCharset(tableEntity.getStr("COLLATION")); + table.setCreateTime(DateUtil.toLocalDateTime(tableEntity.getDate("CREATE_TIME"))); + table.setUpdateTime(DateUtil.toLocalDateTime(tableEntity.getDate("UPDATE_TIME"))); + tableList.add(table); + } + return tableList; + } +} diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/Table.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/Table.java new file mode 100644 index 00000000..bce38447 --- /dev/null +++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/util/Table.java @@ -0,0 +1,70 @@ +/* + * 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.util; + +import java.io.Serializable; +import java.time.LocalDateTime; + +import lombok.Getter; +import lombok.Setter; + +/** + * 数据库表信息 + * + * @author Charles7c + * @since 2023/4/26 21:41 + */ +@Getter +@Setter +public class Table implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 表名称 + */ + private String tableName; + + /** + * 注释 + */ + private String comment; + + /** + * 存储引擎 + */ + private String engine; + + /** + * 字符集 + */ + private String charset; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 修改时间 + */ + private LocalDateTime updateTime; + + public Table(String tableName) { + this.tableName = tableName; + } +} diff --git a/continew-admin-ui/src/api/tool/generator.ts b/continew-admin-ui/src/api/tool/generator.ts new file mode 100644 index 00000000..a091b9eb --- /dev/null +++ b/continew-admin-ui/src/api/tool/generator.ts @@ -0,0 +1,30 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/tool/generator'; + +export interface TableRecord { + tableName: string; + comment?: string; + engine: string; + charset: string; + createTime?: string; +} + +export interface TableParam { + tableName?: string; +} + +export interface TableListRes { + list: TableRecord[]; + total: number; +} + +export function listTable(params: TableParam) { + return axios.get(`${BASE_URL}/table`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} diff --git a/continew-admin-ui/src/locale/en-US.ts b/continew-admin-ui/src/locale/en-US.ts index 10d1262e..47bf20ca 100644 --- a/continew-admin-ui/src/locale/en-US.ts +++ b/continew-admin-ui/src/locale/en-US.ts @@ -5,6 +5,8 @@ import localeRole from '@/views/system/role/locale/en-US'; import localeMenu from '@/views/system/menu/locale/en-US'; import localeDept from '@/views/system/dept/locale/en-US'; +import localeGenerator from '@/views/tool/generator/locale/en-US'; + import localeOnlineUser from '@/views/monitor/online/locale/en-US'; import localeLoginLog from '@/views/monitor/log/login/locale/en-US'; import localeOperationLog from '@/views/monitor/log/operation/locale/en-US'; @@ -35,6 +37,7 @@ export default { 'menu.server.dashboard': 'Dashboard-Server', 'menu.server.workplace': 'Workplace-Server', 'menu.system': 'System management', + 'menu.tool': 'Tool', 'menu.monitor': 'Monitor', 'menu.list': 'List', 'menu.form': 'Form', @@ -56,6 +59,8 @@ export default { ...localeMenu, ...localeDept, + ...localeGenerator, + ...localeOnlineUser, ...localeLoginLog, ...localeOperationLog, diff --git a/continew-admin-ui/src/locale/zh-CN.ts b/continew-admin-ui/src/locale/zh-CN.ts index 88774c06..ef556ef0 100644 --- a/continew-admin-ui/src/locale/zh-CN.ts +++ b/continew-admin-ui/src/locale/zh-CN.ts @@ -5,6 +5,8 @@ import localeRole from '@/views/system/role/locale/zh-CN'; import localeMenu from '@/views/system/menu/locale/zh-CN'; import localeDept from '@/views/system/dept/locale/zh-CN'; +import localeGenerator from '@/views/tool/generator/locale/zh-CN'; + import localeOnlineUser from '@/views/monitor/online/locale/zh-CN'; import localeLoginLog from '@/views/monitor/log/login/locale/zh-CN'; import localeOperationLog from '@/views/monitor/log/operation/locale/zh-CN'; @@ -35,6 +37,7 @@ export default { 'menu.server.dashboard': '仪表盘-服务端', 'menu.server.workplace': '工作台-服务端', 'menu.system': '系统管理', + 'menu.tool': '系统工具', 'menu.monitor': '系统监控', 'menu.list': '列表页', 'menu.form': '表单页', @@ -56,6 +59,8 @@ export default { ...localeMenu, ...localeDept, + ...localeGenerator, + ...localeOnlineUser, ...localeLoginLog, ...localeOperationLog, diff --git a/continew-admin-ui/src/router/routes/modules/monitor.ts b/continew-admin-ui/src/router/routes/modules/monitor.ts index c7160bf7..a2e844b7 100644 --- a/continew-admin-ui/src/router/routes/modules/monitor.ts +++ b/continew-admin-ui/src/router/routes/modules/monitor.ts @@ -9,7 +9,7 @@ const Monitor: AppRouteRecordRaw = { locale: 'menu.monitor', icon: 'computer', requiresAuth: true, - order: 2, + order: 3, }, children: [ { diff --git a/continew-admin-ui/src/router/routes/modules/tool.ts b/continew-admin-ui/src/router/routes/modules/tool.ts new file mode 100644 index 00000000..dacf81b6 --- /dev/null +++ b/continew-admin-ui/src/router/routes/modules/tool.ts @@ -0,0 +1,28 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const Tool: AppRouteRecordRaw = { + path: '/tool', + name: 'tool', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.tool', + icon: 'tool', + requiresAuth: true, + order: 2, + }, + children: [ + { + path: '/tool/generator', + name: 'Generator', + component: () => import('@/views/tool/generator/index.vue'), + meta: { + locale: 'menu.tool.generator.list', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default Tool; diff --git a/continew-admin-ui/src/views/tool/generator/index.vue b/continew-admin-ui/src/views/tool/generator/index.vue new file mode 100644 index 00000000..69df076c --- /dev/null +++ b/continew-admin-ui/src/views/tool/generator/index.vue @@ -0,0 +1,214 @@ + + + + + + + diff --git a/continew-admin-ui/src/views/tool/generator/locale/en-US.ts b/continew-admin-ui/src/views/tool/generator/locale/en-US.ts new file mode 100644 index 00000000..62e8e072 --- /dev/null +++ b/continew-admin-ui/src/views/tool/generator/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.tool.generator.list': 'Code generate', +}; diff --git a/continew-admin-ui/src/views/tool/generator/locale/zh-CN.ts b/continew-admin-ui/src/views/tool/generator/locale/zh-CN.ts new file mode 100644 index 00000000..b118d67d --- /dev/null +++ b/continew-admin-ui/src/views/tool/generator/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.tool.generator.list': '代码生成', +}; diff --git a/continew-admin-webapi/pom.xml b/continew-admin-webapi/pom.xml index 7d354e3a..7bebae7a 100644 --- a/continew-admin-webapi/pom.xml +++ b/continew-admin-webapi/pom.xml @@ -49,6 +49,12 @@ limitations under the License. top.charles7c continew-admin-monitor + + + + top.charles7c + continew-admin-tool + diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java new file mode 100644 index 00000000..5a42162b --- /dev/null +++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java @@ -0,0 +1,58 @@ +/* + * 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.webapi.controller.tool; + +import java.sql.SQLException; + +import lombok.RequiredArgsConstructor; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; + +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import top.charles7c.cnadmin.common.model.query.PageQuery; +import top.charles7c.cnadmin.common.model.vo.PageDataVO; +import top.charles7c.cnadmin.common.model.vo.R; +import top.charles7c.cnadmin.tool.model.query.TableQuery; +import top.charles7c.cnadmin.tool.model.vo.TableVO; +import top.charles7c.cnadmin.tool.service.GeneratorService; + +/** + * 代码生成 API + * + * @author Charles7c + * @since 2023/8/3 22:58 + */ +@Tag(name = "代码生成 API") +@Validated +@RestController +@RequiredArgsConstructor +@RequestMapping("/tool/generator") +public class GeneratorController { + + private final GeneratorService generatorService; + + @Operation(summary = "分页查询数据表", description = "分页查询数据表") + @GetMapping("/table") + public R> pageTable(TableQuery query, @Validated PageQuery pageQuery) throws SQLException { + return R.ok(generatorService.pageTable(query, pageQuery)); + } +} diff --git a/pom.xml b/pom.xml index 1049e013..d074ef52 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,7 @@ limitations under the License. continew-admin-webapi continew-admin-monitor continew-admin-system + continew-admin-tool continew-admin-common @@ -207,6 +208,13 @@ limitations under the License. ${project.version} + + + top.charles7c + continew-admin-tool + ${project.version} + + top.charles7c