diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml
index 03a903845..b53f71804 100644
--- a/pigx-common/pigx-common-core/pom.xml
+++ b/pigx-common/pigx-common-core/pom.xml
@@ -64,5 +64,12 @@
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
+
+
+ com.baomidou
+ mybatis-plus-core
+ ${mbp.boot.version}
+ compile
+
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/Query.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/Query.java
similarity index 58%
rename from pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/Query.java
rename to pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/Query.java
index 8b4a53802..a64941996 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/Query.java
+++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/Query.java
@@ -1,23 +1,21 @@
/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
*
- * Copyright (c) 2018-2025, lengleng All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * Neither the name of the pig4cloud.com developer nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * Author: lengleng (wangiegie@gmail.com)
- *
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.admin.api.dto;
+package com.pig4cloud.pigx.common.core.util;
import com.baomidou.mybatisplus.plugins.Page;
import org.apache.commons.lang.StringUtils;
diff --git a/pigx-config/src/main/resources/config/application-dev.yml b/pigx-config/src/main/resources/config/application-dev.yml
index c07ebe4ac..917bd37dd 100644
--- a/pigx-config/src/main/resources/config/application-dev.yml
+++ b/pigx-config/src/main/resources/config/application-dev.yml
@@ -45,6 +45,27 @@ ribbon:
ReadTimeout: 10000
ConnectTimeout: 10000
+#mybaits-plus配置,修改主键类型,mapper.xml、type 别名等
+mybatis-plus:
+ mapper-locations: classpath:/mapper/*Mapper.xml
+ global-config:
+ #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
+ id-type: 0
+ #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
+ field-strategy: 1
+ #驼峰下划线转换
+ db-column-underline: true
+ #刷新mapper 调试神器
+ refresh-mapper: false
+ # 逻辑删除字段
+ logic-delete-value: 1
+ logic-not-delete-value: 0
+ #自定义SQL注入器
+ sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+ configuration:
+ map-underscore-to-camel-case: true
+ cache-enabled: true
+
#swagger公共信息
swagger:
title: 'PigX Swagger API'
diff --git a/pigx-config/src/main/resources/config/pigx-auth-dev.yml b/pigx-config/src/main/resources/config/pigx-auth-dev.yml
index 8abdbf645..0c0a5346a 100644
--- a/pigx-config/src/main/resources/config/pigx-auth-dev.yml
+++ b/pigx-config/src/main/resources/config/pigx-auth-dev.yml
@@ -5,4 +5,4 @@ spring:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
- url: jdbc:mysql://127.0.0.1:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+ url: jdbc:mysql://114.116.45.246:13306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
diff --git a/pigx-config/src/main/resources/config/pigx-codegen-dev.yml b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml
new file mode 100644
index 000000000..a62c33ba0
--- /dev/null
+++ b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml
@@ -0,0 +1,18 @@
+# 数据源配置
+spring:
+ datasource:
+ type: com.zaxxer.hikari.HikariDataSource
+ driver-class-name: com.mysql.jdbc.Driver
+ username: root
+ password: root
+ url: jdbc:mysql://114.116.45.246:13306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+ jackson:
+ time-zone: GMT+8
+ date-format: yyyy-MM-dd HH:mm:ss
+ resources:
+ static-locations: classpath:/static/,classpath:/views/
+
+# mybaits 模块配置
+mybatis-plus:
+ typeAliasesPackage: com.pig4cloud.pigx.codegen.entity
+
diff --git a/pigx-config/src/main/resources/config/pigx-daemon-dev.yml b/pigx-config/src/main/resources/config/pigx-daemon-dev.yml
index 35d1d78dd..e96bf2193 100644
--- a/pigx-config/src/main/resources/config/pigx-daemon-dev.yml
+++ b/pigx-config/src/main/resources/config/pigx-daemon-dev.yml
@@ -5,11 +5,11 @@ spring:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
- url: jdbc:mysql://127.0.0.1:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+ url: jdbc:mysql://114.116.45.246:13306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
elasticjob:
# 分布式任务协调依赖zookeeper
zookeeper:
- server-lists: 127.0.0.1:2181
+ server-lists: 114.116.45.246:13181
namespace: pigx-daemon
# 普通任务
simples:
diff --git a/pigx-config/src/main/resources/config/pigx-gateway-dev.yml b/pigx-config/src/main/resources/config/pigx-gateway-dev.yml
index 30b6e0db8..a9467a58d 100644
--- a/pigx-config/src/main/resources/config/pigx-gateway-dev.yml
+++ b/pigx-config/src/main/resources/config/pigx-gateway-dev.yml
@@ -4,6 +4,7 @@ spring:
locator:
enabled: true
routes:
+ # 认证中心
- id: pigx-auth
uri: lb://pigx-auth
predicates:
@@ -14,6 +15,7 @@ spring:
# 前端密码解密
- PasswordDecoderFilter
- StripPrefix=1
+ #UPMS 模块
- id: pigx-upms
uri: lb://pigx-upms
predicates:
@@ -37,6 +39,13 @@ spring:
args:
name: default
fallbackUri: 'forward:/fallback'
+ # 代码生成模块
+ - id: pigx-codegen
+ uri: lb://pigx-codegen
+ predicates:
+ - Path=/gen/**
+ filters:
+ - StripPrefix=1
security:
encode:
diff --git a/pigx-config/src/main/resources/config/pigx-upms-dev.yml b/pigx-config/src/main/resources/config/pigx-upms-dev.yml
index d7d894a06..899c06078 100644
--- a/pigx-config/src/main/resources/config/pigx-upms-dev.yml
+++ b/pigx-config/src/main/resources/config/pigx-upms-dev.yml
@@ -15,29 +15,12 @@ spring:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
- url: jdbc:mysql://127.0.0.1:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+ url: jdbc:mysql://114.116.45.246:13306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
-#mybaits-plus配置,修改主键类型,mapper.xml、type 别名等
+# mybaits 模块配置
mybatis-plus:
- mapper-locations: classpath:/mapper/*Mapper.xml
typeAliasesPackage: com.pig4cloud.pigx.admin.api.entity
- global-config:
- #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
- id-type: 0
- #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
- field-strategy: 1
- #驼峰下划线转换
- db-column-underline: true
- #刷新mapper 调试神器
- refresh-mapper: true
- # 逻辑删除字段
- logic-delete-value: 1
- logic-not-delete-value: 0
- #自定义SQL注入器
- sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
- configuration:
- map-underscore-to-camel-case: true
- cache-enabled: true
+
# swagger相关配置,覆盖全局配置
swagger:
authorization:
diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml
index 14c5274e5..419f7c35a 100644
--- a/pigx-upms/pigx-upms-api/pom.xml
+++ b/pigx-upms/pigx-upms-api/pom.xml
@@ -35,12 +35,6 @@
-
-
- com.baomidou
- mybatis-plus
- ${mbp.boot.version}
-
com.pig4cloud
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
index 8ca986e8e..208a814de 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
@@ -22,7 +22,7 @@ package com.pig4cloud.pigx.admin.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.entity.SysDict;
import com.pig4cloud.pigx.admin.service.SysDictService;
import com.pig4cloud.pigx.common.core.constant.CommonConstant;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
index 47eefb0e9..b5b1a468b 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
@@ -22,7 +22,7 @@ package com.pig4cloud.pigx.admin.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.entity.SysLog;
import com.pig4cloud.pigx.admin.service.SysLogService;
import com.pig4cloud.pigx.common.core.constant.CommonConstant;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
index 66d9f9ee2..65252e3b5 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
@@ -21,7 +21,7 @@ package com.pig4cloud.pigx.admin.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails;
import com.pig4cloud.pigx.admin.service.SysOauthClientDetailsService;
import com.pig4cloud.pigx.common.core.util.R;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java
index 5dff704f1..4f8799fd3 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java
@@ -21,7 +21,7 @@ package com.pig4cloud.pigx.admin.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.RoleDTO;
import com.pig4cloud.pigx.admin.api.entity.SysRole;
import com.pig4cloud.pigx.admin.service.SysRoleMenuService;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
index 667de8afa..c95cb7afc 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
@@ -21,7 +21,7 @@ package com.pig4cloud.pigx.admin.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.plugins.Page;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.UserDTO;
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
import com.pig4cloud.pigx.admin.api.entity.SysUser;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysRoleMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysRoleMapper.java
index 36ed59c7c..b027e2305 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysRoleMapper.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysRoleMapper.java
@@ -20,7 +20,7 @@
package com.pig4cloud.pigx.admin.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.entity.SysRole;
import java.util.List;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserMapper.java
index 72a477535..7aa2af2ae 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserMapper.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserMapper.java
@@ -20,7 +20,7 @@
package com.pig4cloud.pigx.admin.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.entity.SysUser;
import com.pig4cloud.pigx.admin.api.vo.UserVO;
import org.apache.ibatis.annotations.Param;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java
index 95e320467..d35c8bb31 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java
@@ -22,7 +22,7 @@ package com.pig4cloud.pigx.admin.service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.RoleDTO;
import com.pig4cloud.pigx.admin.api.entity.SysRole;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java
index 435ed7a69..4bf7c1d48 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java
@@ -21,7 +21,7 @@ package com.pig4cloud.pigx.admin.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.UserDTO;
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
import com.pig4cloud.pigx.admin.api.entity.SysUser;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java
index dd82ea0da..497e0c3cb 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java
@@ -22,7 +22,7 @@ package com.pig4cloud.pigx.admin.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.RoleDTO;
import com.pig4cloud.pigx.admin.api.entity.SysRole;
import com.pig4cloud.pigx.admin.api.entity.SysRoleDept;
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java
index c9fef45fe..053bfcb45 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java
@@ -25,7 +25,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.pig4cloud.pigx.admin.api.dto.Query;
+import com.pig4cloud.pigx.common.core.util.Query;
import com.pig4cloud.pigx.admin.api.dto.UserDTO;
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
import com.pig4cloud.pigx.admin.api.entity.SysRole;
diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
new file mode 100755
index 000000000..2fae09534
--- /dev/null
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -0,0 +1,81 @@
+
+
+ 4.0.0
+
+
+ com.pig4cloud
+ pigx-visual
+ ${pigx.version}
+
+
+ pigx-codegen
+ ${pigx.version}
+ jar
+ pigx-codegen
+ 代码生成模块
+
+
+ 1.3.0
+ 2.6
+ 2.5
+ 1.10
+ 1.7
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-config
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mbp.boot.version}
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.pig4cloud
+ pigx-common-core
+ ${pigx.version}
+
+
+
+ velocity
+ org.apache.velocity
+ ${velocity.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ spring-boot-starter-tomcat
+ org.springframework.boot
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-undertow
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java
new file mode 100755
index 000000000..03c50be7a
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+
+/**
+ * @author lengleng
+ * @date 2018/07/29
+ * 代码生成模块
+ */
+@SpringCloudApplication
+public class PigxCodeGenApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(PigxCodeGenApplication.class, args);
+ }
+}
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/MybatisPlusConfigurer.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/MybatisPlusConfigurer.java
new file mode 100644
index 000000000..73e252f5e
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/MybatisPlusConfigurer.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen.config;
+
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author lengleng
+ * @date 2017/10/29
+ */
+@Configuration
+@MapperScan("com.pig4cloud.pigx.codegen.mapper")
+public class MybatisPlusConfigurer {
+ /**
+ * 分页插件
+ *
+ * @return PaginationInterceptor
+ */
+ @Bean
+ public PaginationInterceptor paginationInterceptor() {
+ return new PaginationInterceptor();
+ }
+}
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/SysGeneratorController.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/SysGeneratorController.java
new file mode 100755
index 000000000..94f2bcfd1
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/SysGeneratorController.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen.controller;
+
+import cn.hutool.core.io.IoUtil;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.pig4cloud.pigx.codegen.service.SysGeneratorService;
+import com.pig4cloud.pigx.common.core.util.R;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * 代码生成器
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2016年12月19日 下午9:12:58
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/generator")
+public class SysGeneratorController {
+ private final SysGeneratorService sysGeneratorService;
+
+ /**
+ * 列表
+ *
+ * @param params 参数集
+ * @return 数据库表
+ */
+ @GetMapping("/page")
+ public Page list(@RequestParam Map params) {
+ return sysGeneratorService.queryPage(params);
+ }
+
+ /**
+ * 生成代码
+ */
+ @GetMapping("/code/{tableName}")
+ public void code(@PathVariable String tableName, HttpServletResponse response) throws IOException {
+ byte[] data = sysGeneratorService.generatorCode(new String[]{tableName});
+
+ response.reset();
+ response.setHeader("Content-Disposition", String.format("attachment; filename=%s.zip", tableName));
+ response.addHeader("Content-Length", "" + data.length);
+ response.setContentType("application/octet-stream; charset=UTF-8");
+
+ IoUtil.write(response.getOutputStream(), Boolean.TRUE, data);
+ }
+}
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/ColumnEntity.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/ColumnEntity.java
new file mode 100755
index 000000000..91ef4cd7c
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/ColumnEntity.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen.entity;
+
+import lombok.Data;
+
+/**
+ * @author lengleng
+ * @date 2018/07/29
+ * 列属性: https://blog.csdn.net/lkforce/article/details/79557482
+ */
+@Data
+public class ColumnEntity {
+ /**
+ * 列表
+ */
+ private String columnName;
+ /**
+ * 数据类型
+ */
+ private String dataType;
+ /**
+ * 备注
+ */
+ private String comments;
+
+ /**
+ * 驼峰属性
+ */
+ private String caseAttrName;
+ /**
+ * 普通属性
+ */
+ private String lowerAttrName;
+ /**
+ * 属性类型
+ */
+ private String attrType;
+ /**
+ * 其他信息。
+ */
+ private String extra;
+}
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/TableEntity.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/TableEntity.java
new file mode 100755
index 000000000..d5f1bda66
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/TableEntity.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lengleng
+ * @date 2018/07/29
+ * 表属性: https://blog.csdn.net/lkforce/article/details/79557482
+ */
+@Data
+public class TableEntity {
+ /**
+ * 名称
+ */
+ private String tableName;
+ /**
+ * 备注
+ */
+ private String comments;
+ /**
+ * 主键
+ */
+ private ColumnEntity pk;
+ /**
+ * 列名
+ */
+ private List columns;
+ /**
+ * 驼峰类型
+ */
+ private String caseClassName;
+ /**
+ * 普通类型
+ */
+ private String lowerClassName;
+}
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/SysGeneratorMapper.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/SysGeneratorMapper.java
new file mode 100755
index 000000000..351981d78
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/SysGeneratorMapper.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.codegen.mapper;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.pig4cloud.pigx.common.core.util.Query;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 代码生成器
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2016年12月19日 下午3:32:04
+ */
+public interface SysGeneratorMapper {
+
+ /**
+ * 分页查询表格
+ *
+ * @param query
+ * @return
+ */
+ List