From 20f550d527c979c596f7a87ed8da2f17e6ecf931 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 27 Jun 2023 09:55:39 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/me/zhengjie/utils/GenUtil.java | 12 ++++++------ .../src/main/resources/generator.properties | 2 +- .../main/resources/template}/admin/Controller.ftl | 0 .../src/main/resources/template}/admin/Dto.ftl | 0 .../src/main/resources/template}/admin/Entity.ftl | 0 .../src/main/resources/template}/admin/Mapper.ftl | 0 .../main/resources/template}/admin/QueryCriteria.ftl | 0 .../main/resources/template}/admin/Repository.ftl | 0 .../src/main/resources/template}/admin/Service.ftl | 0 .../main/resources/template}/admin/ServiceImpl.ftl | 0 .../src/main/resources/template}/front/api.ftl | 0 .../src/main/resources/template}/front/index.ftl | 0 12 files changed, 7 insertions(+), 7 deletions(-) rename {eladmin-system => eladmin-generator}/src/main/resources/generator.properties (85%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Controller.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Dto.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Entity.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Mapper.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/QueryCriteria.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Repository.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/Service.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/admin/ServiceImpl.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/front/api.ftl (100%) rename {eladmin-system/src/main/resources/template/generator => eladmin-generator/src/main/resources/template}/front/index.ftl (100%) diff --git a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java index b62efa2d..8c8a95aa 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java +++ b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java @@ -87,7 +87,7 @@ public class GenUtil { TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); for (String templateName : templates) { Map map = new HashMap<>(1); - Template template = engine.getTemplate("generator/admin/" + templateName + ".ftl"); + Template template = engine.getTemplate("admin/" + templateName + ".ftl"); map.put("content", template.render(genMap)); map.put("name", templateName); genList.add(map); @@ -96,7 +96,7 @@ public class GenUtil { templates = getFrontTemplateNames(); for (String templateName : templates) { Map map = new HashMap<>(1); - Template template = engine.getTemplate("generator/front/" + templateName + ".ftl"); + Template template = engine.getTemplate("front/" + templateName + ".ftl"); map.put(templateName, template.render(genMap)); map.put("content", template.render(genMap)); map.put("name", templateName); @@ -114,7 +114,7 @@ public class GenUtil { // 生成后端代码 List templates = getAdminTemplateNames(); for (String templateName : templates) { - Template template = engine.getTemplate("generator/admin/" + templateName + ".ftl"); + Template template = engine.getTemplate("admin/" + templateName + ".ftl"); String filePath = getAdminFilePath(templateName, genConfig, genMap.get("className").toString(), tempPath + "eladmin" + File.separator); assert filePath != null; File file = new File(filePath); @@ -128,7 +128,7 @@ public class GenUtil { // 生成前端代码 templates = getFrontTemplateNames(); for (String templateName : templates) { - Template template = engine.getTemplate("generator/front/" + templateName + ".ftl"); + Template template = engine.getTemplate("front/" + templateName + ".ftl"); String path = tempPath + "eladmin-web" + File.separator; String apiPath = path + "src" + File.separator + "api" + File.separator; String srcPath = path + "src" + File.separator + "views" + File.separator + genMap.get("changeClassName").toString() + File.separator; @@ -151,7 +151,7 @@ public class GenUtil { // 生成后端代码 List templates = getAdminTemplateNames(); for (String templateName : templates) { - Template template = engine.getTemplate("generator/admin/" + templateName + ".ftl"); + Template template = engine.getTemplate("admin/" + templateName + ".ftl"); String rootPath = System.getProperty("user.dir"); String filePath = getAdminFilePath(templateName, genConfig, genMap.get("className").toString(), rootPath); @@ -169,7 +169,7 @@ public class GenUtil { // 生成前端代码 templates = getFrontTemplateNames(); for (String templateName : templates) { - Template template = engine.getTemplate("generator/front/" + templateName + ".ftl"); + Template template = engine.getTemplate("front/" + templateName + ".ftl"); String filePath = getFrontFilePath(templateName, genConfig.getApiPath(), genConfig.getPath(), genMap.get("changeClassName").toString()); assert filePath != null; diff --git a/eladmin-system/src/main/resources/generator.properties b/eladmin-generator/src/main/resources/generator.properties similarity index 85% rename from eladmin-system/src/main/resources/generator.properties rename to eladmin-generator/src/main/resources/generator.properties index 2ed93706..e64d0608 100644 --- a/eladmin-system/src/main/resources/generator.properties +++ b/eladmin-generator/src/main/resources/generator.properties @@ -1,4 +1,4 @@ -#数据库类型转Java类型 +# Database type to Java type tinyint=Integer smallint=Integer mediumint=Integer diff --git a/eladmin-system/src/main/resources/template/generator/admin/Controller.ftl b/eladmin-generator/src/main/resources/template/admin/Controller.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Controller.ftl rename to eladmin-generator/src/main/resources/template/admin/Controller.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/Dto.ftl b/eladmin-generator/src/main/resources/template/admin/Dto.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Dto.ftl rename to eladmin-generator/src/main/resources/template/admin/Dto.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/Entity.ftl b/eladmin-generator/src/main/resources/template/admin/Entity.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Entity.ftl rename to eladmin-generator/src/main/resources/template/admin/Entity.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/Mapper.ftl b/eladmin-generator/src/main/resources/template/admin/Mapper.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Mapper.ftl rename to eladmin-generator/src/main/resources/template/admin/Mapper.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/QueryCriteria.ftl b/eladmin-generator/src/main/resources/template/admin/QueryCriteria.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/QueryCriteria.ftl rename to eladmin-generator/src/main/resources/template/admin/QueryCriteria.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/Repository.ftl b/eladmin-generator/src/main/resources/template/admin/Repository.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Repository.ftl rename to eladmin-generator/src/main/resources/template/admin/Repository.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/Service.ftl b/eladmin-generator/src/main/resources/template/admin/Service.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/Service.ftl rename to eladmin-generator/src/main/resources/template/admin/Service.ftl diff --git a/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl b/eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl rename to eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl diff --git a/eladmin-system/src/main/resources/template/generator/front/api.ftl b/eladmin-generator/src/main/resources/template/front/api.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/front/api.ftl rename to eladmin-generator/src/main/resources/template/front/api.ftl diff --git a/eladmin-system/src/main/resources/template/generator/front/index.ftl b/eladmin-generator/src/main/resources/template/front/index.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/generator/front/index.ftl rename to eladmin-generator/src/main/resources/template/front/index.ftl From 4a6e6953dfc2481acfb185cc6779f5f60a01fc68 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 27 Jun 2023 10:07:44 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/quartz/utils/ExecutionJob.java | 2 +- .../service/impl/VerifyServiceImpl.java | 2 +- .../resources/template/{email => }/email.ftl | 0 .../template/{email => }/taskAlarm.ftl | 0 sql/eladmin.sql | 76 +++++++++---------- 5 files changed, 39 insertions(+), 41 deletions(-) rename eladmin-system/src/main/resources/template/{email => }/email.ftl (100%) rename eladmin-system/src/main/resources/template/{email => }/taskAlarm.ftl (100%) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java index 5929995c..4de11205 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java @@ -124,7 +124,7 @@ public class ExecutionJob extends QuartzJobBean { data.put("task", quartzJob); data.put("msg", msg); TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); - Template template = engine.getTemplate("email/taskAlarm.ftl"); + Template template = engine.getTemplate("taskAlarm.ftl"); emailVo.setContent(template.render(data)); List emails = Arrays.asList(quartzJob.getEmail().split("[,,]")); emailVo.setTos(emails); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/VerifyServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/VerifyServiceImpl.java index 79d307f9..9f8c8ac5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/VerifyServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/VerifyServiceImpl.java @@ -51,7 +51,7 @@ public class VerifyServiceImpl implements VerifyService { String redisKey = key + email; // 如果不存在有效的验证码,就创建一个新的 TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); - Template template = engine.getTemplate("email/email.ftl"); + Template template = engine.getTemplate("email.ftl"); Object oldCode = redisUtils.get(redisKey); if(oldCode == null){ String code = RandomUtil.randomNumbers (6); diff --git a/eladmin-system/src/main/resources/template/email/email.ftl b/eladmin-system/src/main/resources/template/email.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/email/email.ftl rename to eladmin-system/src/main/resources/template/email.ftl diff --git a/eladmin-system/src/main/resources/template/email/taskAlarm.ftl b/eladmin-system/src/main/resources/template/taskAlarm.ftl similarity index 100% rename from eladmin-system/src/main/resources/template/email/taskAlarm.ftl rename to eladmin-system/src/main/resources/template/taskAlarm.ftl diff --git a/sql/eladmin.sql b/sql/eladmin.sql index 00234d29..72e78e59 100644 --- a/sql/eladmin.sql +++ b/sql/eladmin.sql @@ -23,7 +23,7 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `code_column_config`; CREATE TABLE `code_column_config` ( `column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `table_name` varchar(255) DEFAULT NULL, + `table_name` varchar(180) DEFAULT NULL, `column_name` varchar(255) DEFAULT NULL, `column_type` varchar(255) DEFAULT NULL, `dict_name` varchar(255) DEFAULT NULL, @@ -35,10 +35,9 @@ CREATE TABLE `code_column_config` ( `not_null` bit(1) DEFAULT NULL, `query_type` varchar(255) DEFAULT NULL, `remark` varchar(255) DEFAULT NULL, - `date_annotation` varchar(255) DEFAULT NULL, PRIMARY KEY (`column_id`) USING BTREE, KEY `idx_table_name` (`table_name`) -) ENGINE=InnoDB AUTO_INCREMENT=191 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成字段信息存储'; +) ENGINE=InnoDB AUTO_INCREMENT=191 ROW_FORMAT=COMPACT COMMENT='代码生成字段信息存储'; -- ---------------------------- -- Table structure for code_gen_config @@ -57,7 +56,7 @@ CREATE TABLE `code_gen_config` ( `api_alias` varchar(255) DEFAULT NULL COMMENT '接口名称', PRIMARY KEY (`config_id`) USING BTREE, KEY `idx_table_name` (`table_name`(100)) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成器配置'; +) ENGINE=InnoDB AUTO_INCREMENT=7 ROW_FORMAT=COMPACT COMMENT='代码生成器配置'; -- ---------------------------- -- Table structure for mnt_app @@ -77,7 +76,7 @@ CREATE TABLE `mnt_app` ( `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`app_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='应用管理'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='应用管理'; -- ---------------------------- -- Records of mnt_app @@ -100,7 +99,7 @@ CREATE TABLE `mnt_database` ( `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`db_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='数据库管理'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='数据库管理'; -- ---------------------------- -- Records of mnt_database @@ -121,7 +120,7 @@ CREATE TABLE `mnt_deploy` ( `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`deploy_id`) USING BTREE, KEY `FK6sy157pseoxx4fmcqr1vnvvhy` (`app_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='部署管理'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='部署管理'; -- ---------------------------- -- Records of mnt_deploy @@ -141,7 +140,7 @@ CREATE TABLE `mnt_deploy_history` ( `ip` varchar(20) NOT NULL COMMENT '服务器IP', `deploy_id` bigint(20) DEFAULT NULL COMMENT '部署编号', PRIMARY KEY (`history_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='部署历史管理'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='部署历史管理'; -- ---------------------------- -- Records of mnt_deploy_history @@ -158,7 +157,7 @@ CREATE TABLE `mnt_deploy_server` ( `server_id` bigint(20) NOT NULL COMMENT '服务ID', PRIMARY KEY (`deploy_id`,`server_id`) USING BTREE, KEY `FKeaaha7jew9a02b3bk9ghols53` (`server_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='应用与服务器关联'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='应用与服务器关联'; -- ---------------------------- -- Records of mnt_deploy_server @@ -183,7 +182,7 @@ CREATE TABLE `mnt_server` ( `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`server_id`) USING BTREE, KEY `idx_ip` (`ip`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='服务器管理'; +) ENGINE=InnoDB AUTO_INCREMENT=2 ROW_FORMAT=COMPACT COMMENT='服务器管理'; -- ---------------------------- -- Table structure for sys_dept @@ -203,7 +202,7 @@ CREATE TABLE `sys_dept` ( PRIMARY KEY (`dept_id`) USING BTREE, KEY `inx_pid` (`pid`), KEY `inx_enabled` (`enabled`) -) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='部门'; +) ENGINE=InnoDB AUTO_INCREMENT=18 ROW_FORMAT=COMPACT COMMENT='部门'; -- ---------------------------- -- Records of sys_dept @@ -231,7 +230,7 @@ CREATE TABLE `sys_dict` ( `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`dict_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='数据字典'; +) ENGINE=InnoDB AUTO_INCREMENT=6 ROW_FORMAT=COMPACT COMMENT='数据字典'; -- ---------------------------- -- Records of sys_dict @@ -258,7 +257,7 @@ CREATE TABLE `sys_dict_detail` ( `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`detail_id`) USING BTREE, KEY `FK5tpkputc6d9nboxojdbgnpmyb` (`dict_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='数据字典详情'; +) ENGINE=InnoDB AUTO_INCREMENT=7 ROW_FORMAT=COMPACT COMMENT='数据字典详情'; -- ---------------------------- -- Records of sys_dict_detail @@ -278,7 +277,7 @@ COMMIT; DROP TABLE IF EXISTS `sys_job`; CREATE TABLE `sys_job` ( `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `name` varchar(255) NOT NULL COMMENT '岗位名称', + `name` varchar(180) NOT NULL COMMENT '岗位名称', `enabled` bit(1) NOT NULL COMMENT '岗位状态', `job_sort` int(5) DEFAULT NULL COMMENT '排序', `create_by` varchar(255) DEFAULT NULL COMMENT '创建者', @@ -288,7 +287,7 @@ CREATE TABLE `sys_job` ( PRIMARY KEY (`job_id`) USING BTREE, UNIQUE KEY `uniq_name` (`name`), KEY `inx_enabled` (`enabled`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='岗位'; +) ENGINE=InnoDB AUTO_INCREMENT=13 ROW_FORMAT=COMPACT COMMENT='岗位'; -- ---------------------------- -- Records of sys_job @@ -307,7 +306,7 @@ DROP TABLE IF EXISTS `sys_log`; CREATE TABLE `sys_log` ( `log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `description` varchar(255) DEFAULT NULL, - `log_type` varchar(255) DEFAULT NULL, + `log_type` varchar(10) DEFAULT NULL, `method` varchar(255) DEFAULT NULL, `params` text DEFAULT NULL, `request_ip` varchar(255) DEFAULT NULL, @@ -320,7 +319,7 @@ CREATE TABLE `sys_log` ( PRIMARY KEY (`log_id`) USING BTREE, KEY `log_create_time_index` (`create_time`), KEY `inx_log_type` (`log_type`) -) ENGINE=InnoDB AUTO_INCREMENT=3537 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统日志'; +) ENGINE=InnoDB AUTO_INCREMENT=3537 ROW_FORMAT=COMPACT COMMENT='系统日志'; -- ---------------------------- -- Table structure for sys_menu @@ -331,8 +330,8 @@ CREATE TABLE `sys_menu` ( `pid` bigint(20) DEFAULT NULL COMMENT '上级菜单ID', `sub_count` int(5) DEFAULT 0 COMMENT '子菜单数目', `type` int(11) DEFAULT NULL COMMENT '菜单类型', - `title` varchar(255) DEFAULT NULL COMMENT '菜单标题', - `name` varchar(255) DEFAULT NULL COMMENT '组件名称', + `title` varchar(100) DEFAULT NULL COMMENT '菜单标题', + `name` varchar(100) DEFAULT NULL COMMENT '组件名称', `component` varchar(255) DEFAULT NULL COMMENT '组件', `menu_sort` int(5) DEFAULT NULL COMMENT '排序', `icon` varchar(255) DEFAULT NULL COMMENT '图标', @@ -349,7 +348,7 @@ CREATE TABLE `sys_menu` ( UNIQUE KEY `uniq_title` (`title`), UNIQUE KEY `uniq_name` (`name`), KEY `inx_pid` (`pid`) -) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统菜单'; +) ENGINE=InnoDB AUTO_INCREMENT=118 ROW_FORMAT=COMPACT COMMENT='系统菜单'; -- ---------------------------- -- Records of sys_menu @@ -456,7 +455,7 @@ CREATE TABLE `sys_quartz_job` ( `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`job_id`) USING BTREE, KEY `inx_is_pause` (`is_pause`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='定时任务'; +) ENGINE=InnoDB AUTO_INCREMENT=7 ROW_FORMAT=COMPACT COMMENT='定时任务'; -- ---------------------------- -- Records of sys_quartz_job @@ -484,7 +483,7 @@ CREATE TABLE `sys_quartz_log` ( `params` varchar(255) DEFAULT NULL, `time` bigint(20) DEFAULT NULL, PRIMARY KEY (`log_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=151 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='定时任务日志'; +) ENGINE=InnoDB AUTO_INCREMENT=151 ROW_FORMAT=COMPACT COMMENT='定时任务日志'; -- ---------------------------- -- Table structure for sys_role @@ -492,8 +491,8 @@ CREATE TABLE `sys_quartz_log` ( DROP TABLE IF EXISTS `sys_role`; CREATE TABLE `sys_role` ( `role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `name` varchar(255) NOT NULL COMMENT '名称', - `level` int(255) DEFAULT NULL COMMENT '角色级别', + `name` varchar(100) NOT NULL COMMENT '名称', + `level` int(50) DEFAULT NULL COMMENT '角色级别', `description` varchar(255) DEFAULT NULL COMMENT '描述', `data_scope` varchar(255) DEFAULT NULL COMMENT '数据权限', `create_by` varchar(255) DEFAULT NULL COMMENT '创建者', @@ -503,7 +502,7 @@ CREATE TABLE `sys_role` ( PRIMARY KEY (`role_id`) USING BTREE, UNIQUE KEY `uniq_name` (`name`), KEY `role_name_index` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='角色表'; +) ENGINE=InnoDB AUTO_INCREMENT=3 ROW_FORMAT=COMPACT COMMENT='角色表'; -- ---------------------------- -- Records of sys_role @@ -522,7 +521,7 @@ CREATE TABLE `sys_roles_depts` ( `dept_id` bigint(20) NOT NULL, PRIMARY KEY (`role_id`,`dept_id`) USING BTREE, KEY `FK7qg6itn5ajdoa9h9o78v9ksur` (`dept_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='角色部门关联'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='角色部门关联'; -- ---------------------------- -- Table structure for sys_roles_menus @@ -533,7 +532,7 @@ CREATE TABLE `sys_roles_menus` ( `role_id` bigint(20) NOT NULL COMMENT '角色ID', PRIMARY KEY (`menu_id`,`role_id`) USING BTREE, KEY `FKcngg2qadojhi3a651a5adkvbq` (`role_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='角色菜单关联'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='角色菜单关联'; -- ---------------------------- -- Records of sys_roles_menus @@ -649,11 +648,11 @@ DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `dept_id` bigint(20) DEFAULT NULL COMMENT '部门名称', - `username` varchar(255) DEFAULT NULL COMMENT '用户名', + `username` varchar(180) DEFAULT NULL COMMENT '用户名', `nick_name` varchar(255) DEFAULT NULL COMMENT '昵称', `gender` varchar(2) DEFAULT NULL COMMENT '性别', `phone` varchar(255) DEFAULT NULL COMMENT '手机号码', - `email` varchar(255) DEFAULT NULL COMMENT '邮箱', + `email` varchar(180) DEFAULT NULL COMMENT '邮箱', `avatar_name` varchar(255) DEFAULT NULL COMMENT '头像地址', `avatar_path` varchar(255) DEFAULT NULL COMMENT '头像真实路径', `password` varchar(255) DEFAULT NULL COMMENT '密码', @@ -670,9 +669,8 @@ CREATE TABLE `sys_user` ( UNIQUE KEY `uniq_username` (`username`), UNIQUE KEY `uniq_email` (`email`), KEY `FK5rwmryny6jthaaxkogownknqp` (`dept_id`) USING BTREE, - KEY `FKpq2dhypk2qgt68nauh2by22jb` (`avatar_name`) USING BTREE, KEY `inx_enabled` (`enabled`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统用户'; +) ENGINE=InnoDB AUTO_INCREMENT=3 ROW_FORMAT=COMPACT COMMENT='系统用户'; -- ---------------------------- -- Records of sys_user @@ -709,7 +707,7 @@ CREATE TABLE `sys_users_roles` ( `role_id` bigint(20) NOT NULL COMMENT '角色ID', PRIMARY KEY (`user_id`,`role_id`) USING BTREE, KEY `FKq4eq273l04bpu4efj0jd0jb98` (`role_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='用户角色关联'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='用户角色关联'; -- ---------------------------- -- Records of sys_users_roles @@ -736,7 +734,7 @@ CREATE TABLE `tool_alipay_config` ( `sign_type` varchar(255) DEFAULT NULL COMMENT '签名方式', `sys_service_provider_id` varchar(255) DEFAULT NULL COMMENT '商户号', PRIMARY KEY (`config_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='支付宝配置类'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='支付宝配置类'; -- ---------------------------- -- Records of tool_alipay_config @@ -757,7 +755,7 @@ CREATE TABLE `tool_email_config` ( `port` varchar(255) DEFAULT NULL COMMENT '端口', `user` varchar(255) DEFAULT NULL COMMENT '发件者用户名', PRIMARY KEY (`config_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='邮箱配置'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='邮箱配置'; -- ---------------------------- -- Table structure for tool_local_storage @@ -776,7 +774,7 @@ CREATE TABLE `tool_local_storage` ( `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`storage_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='本地存储'; +) ENGINE=InnoDB AUTO_INCREMENT=10 ROW_FORMAT=COMPACT COMMENT='本地存储'; -- ---------------------------- -- Records of tool_local_storage @@ -797,7 +795,7 @@ CREATE TABLE `tool_qiniu_config` ( `type` varchar(255) DEFAULT NULL COMMENT '空间类型', `zone` varchar(255) DEFAULT NULL COMMENT '机房', PRIMARY KEY (`config_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='七牛云配置'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='七牛云配置'; -- ---------------------------- -- Table structure for tool_qiniu_content @@ -806,7 +804,7 @@ DROP TABLE IF EXISTS `tool_qiniu_content`; CREATE TABLE `tool_qiniu_content` ( `content_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `bucket` varchar(255) DEFAULT NULL COMMENT 'Bucket 识别符', - `name` varchar(255) DEFAULT NULL COMMENT '文件名称', + `name` varchar(180) DEFAULT NULL COMMENT '文件名称', `size` varchar(255) DEFAULT NULL COMMENT '文件大小', `type` varchar(255) DEFAULT NULL COMMENT '文件类型:私有或公开', `url` varchar(255) DEFAULT NULL COMMENT '文件url', @@ -814,7 +812,7 @@ CREATE TABLE `tool_qiniu_content` ( `update_time` datetime DEFAULT NULL COMMENT '上传或同步的时间', PRIMARY KEY (`content_id`) USING BTREE, UNIQUE KEY `uniq_name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='七牛云文件存储'; +) ENGINE=InnoDB ROW_FORMAT=COMPACT COMMENT='七牛云文件存储'; -- ---------------------------- -- Records of tool_qiniu_content @@ -822,4 +820,4 @@ CREATE TABLE `tool_qiniu_content` ( BEGIN; COMMIT; -SET FOREIGN_KEY_CHECKS = 1; +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file From 59ecc33b661436ab7611d1c082e23f158ceeb70f Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 27 Jun 2023 10:48:52 +0800 Subject: [PATCH 03/17] update --- sql/eladmin.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/eladmin.sql b/sql/eladmin.sql index 72e78e59..30ce1118 100644 --- a/sql/eladmin.sql +++ b/sql/eladmin.sql @@ -54,6 +54,7 @@ CREATE TABLE `code_gen_config` ( `api_path` varchar(255) DEFAULT NULL COMMENT '前端Api文件路径', `prefix` varchar(255) DEFAULT NULL COMMENT '表前缀', `api_alias` varchar(255) DEFAULT NULL COMMENT '接口名称', + `date_annotation` varchar(255) DEFAULT NULL, PRIMARY KEY (`config_id`) USING BTREE, KEY `idx_table_name` (`table_name`(100)) ) ENGINE=InnoDB AUTO_INCREMENT=7 ROW_FORMAT=COMPACT COMMENT='代码生成器配置'; From 8ce9db9a5c6e93c24b9c7505a1d50de3a5ad4f59 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Wed, 28 Jun 2023 15:47:07 +0800 Subject: [PATCH 04/17] update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 66cf86ad..9739141a 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ - 感谢 [d15801543974](https://github.com/d15801543974) 大佬提供的基于注解的通用查询方式 #### 项目捐赠 -项目的发展离不开你的支持,请作者喝杯咖啡吧☕ [Donate](https://eladmin.vip/donation/) +项目的发展离不开你的支持,请作者喝杯咖啡吧☕ [Donate](https://eladmin.vip/pages/030101/) #### 反馈交流 -- QQ交流群:一群:891137268 、二群:947578238、三群:659622532 \ No newline at end of file +- QQ交流群:891137268 、947578238、659622532 \ No newline at end of file From a74cf51c0a5707ec5576adaa10ef821f4e21c14e Mon Sep 17 00:00:00 2001 From: Jover Date: Fri, 30 Jun 2023 13:43:45 +0800 Subject: [PATCH 05/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=AE=9E=E4=BD=93=20APage=EF=BC=8C=E4=BD=BF=20Swagger?= =?UTF-8?q?=20=E5=8F=AF=E6=98=BE=E7=A4=BA=E6=8E=A5=E5=8F=A3=E7=9A=84?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E7=A4=BA=E4=BE=8B=20(#800)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 增加分页实体 APage,使 Swagger 可显示接口的响应示例 1. 增加类 APage,并重构 PageUtils 2. 调整 UserController 的 `查询用户` 接口的返回值类型 * refactor: rename APage -> PageResult --- .../java/me/zhengjie/utils/PageResult.java | 17 +++++++++++++++++ .../main/java/me/zhengjie/utils/PageUtil.java | 18 ++++++------------ .../service/impl/GeneratorServiceImpl.java | 2 +- .../security/service/OnlineUserService.java | 5 +++-- .../modules/system/rest/UserController.java | 3 ++- .../system/service/DictDetailService.java | 6 +++--- .../modules/system/service/DictService.java | 6 +++--- .../modules/system/service/JobService.java | 6 +++--- .../modules/system/service/UserService.java | 3 ++- .../service/impl/DictDetailServiceImpl.java | 6 +++--- .../system/service/impl/DictServiceImpl.java | 5 +++-- .../system/service/impl/JobServiceImpl.java | 5 +++-- .../system/service/impl/UserServiceImpl.java | 3 ++- 13 files changed, 51 insertions(+), 34 deletions(-) create mode 100644 eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java b/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java new file mode 100644 index 00000000..6e29f571 --- /dev/null +++ b/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java @@ -0,0 +1,17 @@ +package me.zhengjie.utils; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +@Getter +@RequiredArgsConstructor(access = AccessLevel.PACKAGE) +public class PageResult { + + private final List content; + + private final long totalElements; + +} diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java index 44db68dd..72c5e10b 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java @@ -28,11 +28,11 @@ public class PageUtil extends cn.hutool.core.util.PageUtil { /** * List 分页 */ - public static List toPage(int page, int size , List list) { + public static List paging(int page, int size , List list) { int fromIndex = page * size; int toIndex = page * size + size; if(fromIndex > list.size()){ - return new ArrayList(); + return Collections.emptyList(); } else if(toIndex >= list.size()) { return list.subList(fromIndex,list.size()); } else { @@ -43,21 +43,15 @@ public class PageUtil extends cn.hutool.core.util.PageUtil { /** * Page 数据处理,预防redis反序列化报错 */ - public static Map toPage(Page page) { - Map map = new LinkedHashMap<>(2); - map.put("content",page.getContent()); - map.put("totalElements",page.getTotalElements()); - return map; + public static PageResult toPage(Page page) { + return new PageResult<>(page.getContent(), page.getTotalElements()); } /** * 自定义分页 */ - public static Map toPage(Object object, Object totalElements) { - Map map = new LinkedHashMap<>(2); - map.put("content",object); - map.put("totalElements",totalElements); - return map; + public static PageResult toPage(List list, long totalElements) { + return new PageResult<>(list, totalElements); } } diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java index 0341b115..0238c84a 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java @@ -90,7 +90,7 @@ public class GeneratorServiceImpl implements GeneratorService { "where table_schema = (select database()) and table_name like :table"; Query queryCount = em.createNativeQuery(countSql); queryCount.setParameter("table", StringUtils.isNotBlank(name) ? ("%" + name + "%") : "%%"); - Object totalElements = queryCount.getSingleResult(); + long totalElements = (long) queryCount.getSingleResult(); return PageUtil.toPage(tableInfos, totalElements); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java index af8d2986..b9ac48f8 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java @@ -16,6 +16,7 @@ package me.zhengjie.modules.security.service; import lombok.extern.slf4j.Slf4j; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.security.config.bean.SecurityProperties; import me.zhengjie.modules.security.service.dto.JwtUserDto; import me.zhengjie.modules.security.service.dto.OnlineUserDto; @@ -70,10 +71,10 @@ public class OnlineUserService { * @param pageable / * @return / */ - public Map getAll(String filter, Pageable pageable){ + public PageResult getAll(String filter, Pageable pageable){ List onlineUserDtos = getAll(filter); return PageUtil.toPage( - PageUtil.toPage(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos), + PageUtil.paging(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos), onlineUserDtos.size() ); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java index ed8e51fb..d9860b5e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java @@ -20,6 +20,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; +import me.zhengjie.utils.PageResult; import me.zhengjie.config.RsaProperties; import me.zhengjie.modules.system.domain.Dept; import me.zhengjie.modules.system.service.DataService; @@ -77,7 +78,7 @@ public class UserController { @ApiOperation("查询用户") @GetMapping @PreAuthorize("@el.check('user:list')") - public ResponseEntity queryUser(UserQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryUser(UserQueryCriteria criteria, Pageable pageable){ if (!ObjectUtils.isEmpty(criteria.getDeptId())) { criteria.getDeptIds().add(criteria.getDeptId()); // 先查找是否存在子节点 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java index 3912a475..7e2efb7f 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java @@ -15,12 +15,12 @@ */ package me.zhengjie.modules.system.service; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.DictDetail; import me.zhengjie.modules.system.service.dto.DictDetailDto; import me.zhengjie.modules.system.service.dto.DictDetailQueryCriteria; import org.springframework.data.domain.Pageable; import java.util.List; -import java.util.Map; /** * @author Zheng Jie @@ -52,7 +52,7 @@ public interface DictDetailService { * @param pageable 分页参数 * @return / */ - Map queryAll(DictDetailQueryCriteria criteria, Pageable pageable); + PageResult queryAll(DictDetailQueryCriteria criteria, Pageable pageable); /** * 根据字典名称获取字典详情 @@ -60,4 +60,4 @@ public interface DictDetailService { * @return / */ List getDictByName(String name); -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java index 9a89e4c2..05077b7e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java @@ -15,6 +15,7 @@ */ package me.zhengjie.modules.system.service; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.service.dto.DictDto; import me.zhengjie.modules.system.service.dto.DictQueryCriteria; @@ -22,7 +23,6 @@ import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -37,7 +37,7 @@ public interface DictService { * @param pageable 分页参数 * @return / */ - Map queryAll(DictQueryCriteria criteria, Pageable pageable); + PageResult queryAll(DictQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 @@ -72,4 +72,4 @@ public interface DictService { * @throws IOException / */ void download(List queryAll, HttpServletResponse response) throws IOException; -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java index 5b6fa85b..dab9f586 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java @@ -15,6 +15,7 @@ */ package me.zhengjie.modules.system.service; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.Job; import me.zhengjie.modules.system.service.dto.JobDto; import me.zhengjie.modules.system.service.dto.JobQueryCriteria; @@ -22,7 +23,6 @@ import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -63,7 +63,7 @@ public interface JobService { * @param pageable 分页参数 * @return / */ - Map queryAll(JobQueryCriteria criteria, Pageable pageable); + PageResult queryAll(JobQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 @@ -85,4 +85,4 @@ public interface JobService { * @param ids / */ void verification(Set ids); -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java index 8d63fa86..24fc6677 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java @@ -15,6 +15,7 @@ */ package me.zhengjie.modules.system.service; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.User; import me.zhengjie.modules.system.service.dto.UserDto; import me.zhengjie.modules.system.service.dto.UserLoginDto; @@ -100,7 +101,7 @@ public interface UserService { * @param pageable 分页参数 * @return / */ - Object queryAll(UserQueryCriteria criteria, Pageable pageable); + PageResult queryAll(UserQueryCriteria criteria, Pageable pageable); /** * 查询全部不分页 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java index 3f5fc742..5da4d056 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java @@ -16,6 +16,7 @@ package me.zhengjie.modules.system.service.impl; import lombok.RequiredArgsConstructor; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.domain.DictDetail; import me.zhengjie.modules.system.repository.DictRepository; @@ -32,7 +33,6 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; -import java.util.Map; /** * @author Zheng Jie @@ -49,7 +49,7 @@ public class DictDetailServiceImpl implements DictDetailService { private final RedisUtils redisUtils; @Override - public Map queryAll(DictDetailQueryCriteria criteria, Pageable pageable) { + public PageResult queryAll(DictDetailQueryCriteria criteria, Pageable pageable) { Page page = dictDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(dictDetailMapper::toDto)); } @@ -92,4 +92,4 @@ public class DictDetailServiceImpl implements DictDetailService { Dict dict = dictRepository.findById(dictDetail.getDict().getId()).orElseGet(Dict::new); redisUtils.del(CacheKey.DICT_NAME + dict.getName()); } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java index 3a2bcd9d..68265121 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java @@ -17,6 +17,7 @@ package me.zhengjie.modules.system.service.impl; import cn.hutool.core.collection.CollectionUtil; import lombok.RequiredArgsConstructor; +import me.zhengjie.utils.PageResult; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.service.dto.DictDetailDto; import me.zhengjie.modules.system.service.dto.DictQueryCriteria; @@ -48,7 +49,7 @@ public class DictServiceImpl implements DictService { private final RedisUtils redisUtils; @Override - public Map queryAll(DictQueryCriteria dict, Pageable pageable){ + public PageResult queryAll(DictQueryCriteria dict, Pageable pageable){ Page page = dictRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable); return PageUtil.toPage(page.map(dictMapper::toDto)); } @@ -118,4 +119,4 @@ public class DictServiceImpl implements DictService { public void delCaches(Dict dict){ redisUtils.del(CacheKey.DICT_NAME + dict.getName()); } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java index f98782ce..a608b97a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java @@ -16,6 +16,7 @@ package me.zhengjie.modules.system.service.impl; import lombok.RequiredArgsConstructor; +import me.zhengjie.utils.PageResult; import me.zhengjie.exception.BadRequestException; import me.zhengjie.exception.EntityExistException; import me.zhengjie.modules.system.domain.Job; @@ -52,7 +53,7 @@ public class JobServiceImpl implements JobService { private final UserRepository userRepository; @Override - public Map queryAll(JobQueryCriteria criteria, Pageable pageable) { + public PageResult queryAll(JobQueryCriteria criteria, Pageable pageable) { Page page = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(jobMapper::toDto).getContent(),page.getTotalElements()); } @@ -122,4 +123,4 @@ public class JobServiceImpl implements JobService { throw new BadRequestException("所选的岗位中存在用户关联,请解除关联再试!"); } } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java index 867509d3..a9fef8c0 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java @@ -16,6 +16,7 @@ package me.zhengjie.modules.system.service.impl; import lombok.RequiredArgsConstructor; +import me.zhengjie.utils.PageResult; import me.zhengjie.config.FileProperties; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.security.service.OnlineUserService; @@ -61,7 +62,7 @@ public class UserServiceImpl implements UserService { private final UserLoginMapper userLoginMapper; @Override - public Object queryAll(UserQueryCriteria criteria, Pageable pageable) { + public PageResult queryAll(UserQueryCriteria criteria, Pageable pageable) { Page page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); return PageUtil.toPage(page.map(userMapper::toDto)); } From 5b9213f25f3965df5a9c6c87c4beddf53fa88ee8 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 30 Jun 2023 14:12:55 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/me/zhengjie/utils/PageUtil.java | 6 ++++++ .../java/me/zhengjie/rest/GenConfigController.java | 2 +- .../java/me/zhengjie/rest/GeneratorController.java | 10 ++++++---- .../java/me/zhengjie/service/GeneratorService.java | 4 +++- .../service/impl/GeneratorServiceImpl.java | 7 ++----- .../java/me/zhengjie/rest/SysLogController.java | 4 +++- .../java/me/zhengjie/service/SysLogService.java | 4 +++- .../zhengjie/service/impl/SysLogServiceImpl.java | 5 +++-- .../zhengjie/modules/mnt/rest/AppController.java | 4 +++- .../modules/mnt/rest/DatabaseController.java | 3 ++- .../modules/mnt/rest/DeployController.java | 4 +++- .../modules/mnt/rest/DeployHistoryController.java | 4 +++- .../modules/mnt/rest/ServerDeployController.java | 4 +++- .../zhengjie/modules/mnt/service/AppService.java | 3 ++- .../modules/mnt/service/DatabaseService.java | 3 ++- .../modules/mnt/service/DeployHistoryService.java | 3 ++- .../modules/mnt/service/DeployService.java | 3 ++- .../modules/mnt/service/ServerDeployService.java | 3 ++- .../modules/mnt/service/impl/AppServiceImpl.java | 7 ++----- .../mnt/service/impl/DatabaseServiceImpl.java | 7 ++----- .../mnt/service/impl/DeployHistoryServiceImpl.java | 7 ++----- .../mnt/service/impl/DeployServiceImpl.java | 2 +- .../mnt/service/impl/ServerDeployServiceImpl.java | 7 ++----- .../modules/quartz/rest/QuartzJobController.java | 6 ++++-- .../modules/quartz/service/QuartzJobService.java | 5 +++-- .../quartz/service/impl/QuartzJobServiceImpl.java | 4 ++-- .../security/rest/AuthorizationController.java | 3 ++- .../modules/security/rest/OnlineController.java | 4 +++- .../modules/system/rest/DeptController.java | 13 +++++++------ .../modules/system/rest/DictController.java | 8 ++++++-- .../modules/system/rest/DictDetailController.java | 5 +++-- .../modules/system/rest/JobController.java | 4 +++- .../modules/system/rest/MenuController.java | 14 ++++++++------ .../modules/system/rest/RoleController.java | 7 ++++--- .../modules/system/rest/UserController.java | 2 +- .../modules/system/service/DeptService.java | 4 ++-- .../modules/system/service/MenuService.java | 3 ++- .../modules/system/service/RoleService.java | 3 ++- .../system/service/impl/RoleServiceImpl.java | 2 +- .../java/me/zhengjie/rest/EmailController.java | 2 +- .../me/zhengjie/rest/LocalStorageController.java | 6 ++++-- .../java/me/zhengjie/rest/QiniuController.java | 5 +++-- .../java/me/zhengjie/service/EmailService.java | 1 - .../me/zhengjie/service/LocalStorageService.java | 3 ++- .../java/me/zhengjie/service/QiNiuService.java | 3 ++- .../service/impl/LocalStorageServiceImpl.java | 2 +- .../me/zhengjie/service/impl/QiNiuServiceImpl.java | 8 ++------ 47 files changed, 128 insertions(+), 95 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java index 72c5e10b..56020d98 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java @@ -54,4 +54,10 @@ public class PageUtil extends cn.hutool.core.util.PageUtil { return new PageResult<>(list, totalElements); } + /** + * 返回空数据 + */ + public static PageResult noData () { + return new PageResult<>(null, 0); + } } diff --git a/eladmin-generator/src/main/java/me/zhengjie/rest/GenConfigController.java b/eladmin-generator/src/main/java/me/zhengjie/rest/GenConfigController.java index 1c099993..d4cbec91 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/rest/GenConfigController.java +++ b/eladmin-generator/src/main/java/me/zhengjie/rest/GenConfigController.java @@ -39,7 +39,7 @@ public class GenConfigController { @ApiOperation("查询") @GetMapping(value = "/{tableName}") - public ResponseEntity queryGenConfig(@PathVariable String tableName){ + public ResponseEntity queryGenConfig(@PathVariable String tableName){ return new ResponseEntity<>(genConfigService.find(tableName), HttpStatus.OK); } diff --git a/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java b/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java index bfdfecc0..4a1f1e4e 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java +++ b/eladmin-generator/src/main/java/me/zhengjie/rest/GeneratorController.java @@ -19,9 +19,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.domain.ColumnInfo; +import me.zhengjie.domain.vo.TableInfo; import me.zhengjie.exception.BadRequestException; import me.zhengjie.service.GenConfigService; import me.zhengjie.service.GeneratorService; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.PageUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; @@ -55,16 +57,16 @@ public class GeneratorController { @ApiOperation("查询数据库数据") @GetMapping(value = "/tables") - public ResponseEntity queryTables(@RequestParam(defaultValue = "") String name, - @RequestParam(defaultValue = "0")Integer page, - @RequestParam(defaultValue = "10")Integer size){ + public ResponseEntity> queryTables(@RequestParam(defaultValue = "") String name, + @RequestParam(defaultValue = "0")Integer page, + @RequestParam(defaultValue = "10")Integer size){ int[] startEnd = PageUtil.transToStartEnd(page, size); return new ResponseEntity<>(generatorService.getTables(name,startEnd), HttpStatus.OK); } @ApiOperation("查询字段数据") @GetMapping(value = "/columns") - public ResponseEntity queryColumns(@RequestParam String tableName){ + public ResponseEntity> queryColumns(@RequestParam String tableName){ List columnInfos = generatorService.getColumns(tableName); return new ResponseEntity<>(PageUtil.toPage(columnInfos,columnInfos.size()), HttpStatus.OK); } diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java b/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java index b5a1e0a5..b9c2a2f5 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/GeneratorService.java @@ -17,6 +17,8 @@ package me.zhengjie.service; import me.zhengjie.domain.GenConfig; import me.zhengjie.domain.ColumnInfo; +import me.zhengjie.domain.vo.TableInfo; +import me.zhengjie.utils.PageResult; import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; import javax.servlet.http.HttpServletRequest; @@ -35,7 +37,7 @@ public interface GeneratorService { * @param startEnd 分页参数 * @return / */ - Object getTables(String name, int[] startEnd); + PageResult getTables(String name, int[] startEnd); /** * 得到数据表的元数据 diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java index 0238c84a..fcc28cb5 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java @@ -25,10 +25,7 @@ import me.zhengjie.domain.vo.TableInfo; import me.zhengjie.exception.BadRequestException; import me.zhengjie.repository.ColumnInfoRepository; import me.zhengjie.service.GeneratorService; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.GenUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.StringUtils; +import me.zhengjie.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; @@ -71,7 +68,7 @@ public class GeneratorServiceImpl implements GeneratorService { } @Override - public Object getTables(String name, int[] startEnd) { + public PageResult getTables(String name, int[] startEnd) { // 使用预编译防止sql注入 String sql = "select table_name ,create_time , engine, table_collation, table_comment from information_schema.tables " + "where table_schema = (select database()) " + diff --git a/eladmin-logging/src/main/java/me/zhengjie/rest/SysLogController.java b/eladmin-logging/src/main/java/me/zhengjie/rest/SysLogController.java index 163988cb..fa173705 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/rest/SysLogController.java +++ b/eladmin-logging/src/main/java/me/zhengjie/rest/SysLogController.java @@ -21,6 +21,8 @@ import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.service.SysLogService; import me.zhengjie.service.dto.SysLogQueryCriteria; +import me.zhengjie.service.dto.SysLogSmallDto; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.SecurityUtils; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -69,7 +71,7 @@ public class SysLogController { @GetMapping(value = "/user") @ApiOperation("用户日志查询") - public ResponseEntity queryUserLog(SysLogQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryUserLog(SysLogQueryCriteria criteria, Pageable pageable){ criteria.setLogType("INFO"); criteria.setUsername(SecurityUtils.getCurrentUsername()); return new ResponseEntity<>(sysLogService.queryAllByUser(criteria,pageable), HttpStatus.OK); diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/SysLogService.java b/eladmin-logging/src/main/java/me/zhengjie/service/SysLogService.java index 3f7eebb4..80f2d1c4 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/SysLogService.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/SysLogService.java @@ -17,6 +17,8 @@ package me.zhengjie.service; import me.zhengjie.domain.SysLog; import me.zhengjie.service.dto.SysLogQueryCriteria; +import me.zhengjie.service.dto.SysLogSmallDto; +import me.zhengjie.utils.PageResult; import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.data.domain.Pageable; import org.springframework.scheduling.annotation.Async; @@ -52,7 +54,7 @@ public interface SysLogService { * @param pageable 分页参数 * @return - */ - Object queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable); + PageResult queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable); /** * 保存日志数据 diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/impl/SysLogServiceImpl.java b/eladmin-logging/src/main/java/me/zhengjie/service/impl/SysLogServiceImpl.java index 528bc20b..19089bf8 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/impl/SysLogServiceImpl.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/impl/SysLogServiceImpl.java @@ -24,6 +24,7 @@ import me.zhengjie.domain.SysLog; import me.zhengjie.repository.LogRepository; import me.zhengjie.service.SysLogService; import me.zhengjie.service.dto.SysLogQueryCriteria; +import me.zhengjie.service.dto.SysLogSmallDto; import me.zhengjie.service.mapstruct.LogErrorMapper; import me.zhengjie.service.mapstruct.LogSmallMapper; import me.zhengjie.utils.*; @@ -60,7 +61,7 @@ public class SysLogServiceImpl implements SysLogService { if (status.equals(criteria.getLogType())) { return PageUtil.toPage(page.map(logErrorMapper::toDto)); } - return page; + return PageUtil.toPage(page); } @Override @@ -69,7 +70,7 @@ public class SysLogServiceImpl implements SysLogService { } @Override - public Object queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable) { + public PageResult queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable) { Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); return PageUtil.toPage(page.map(logSmallMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/AppController.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/AppController.java index 61ce07c1..5dac15eb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/AppController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/AppController.java @@ -21,7 +21,9 @@ import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.modules.mnt.domain.App; import me.zhengjie.modules.mnt.service.AppService; +import me.zhengjie.modules.mnt.service.dto.AppDto; import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -54,7 +56,7 @@ public class AppController { @ApiOperation(value = "查询应用") @GetMapping @PreAuthorize("@el.check('app:list')") - public ResponseEntity queryApp(AppQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryApp(AppQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(appService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DatabaseController.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DatabaseController.java index 215c802a..0ce1a4e8 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DatabaseController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DatabaseController.java @@ -26,6 +26,7 @@ import me.zhengjie.modules.mnt.service.dto.DatabaseDto; import me.zhengjie.modules.mnt.service.dto.DatabaseQueryCriteria; import me.zhengjie.modules.mnt.util.SqlUtils; import me.zhengjie.utils.FileUtil; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -62,7 +63,7 @@ public class DatabaseController { @ApiOperation(value = "查询数据库") @GetMapping @PreAuthorize("@el.check('database:list')") - public ResponseEntity queryDatabase(DatabaseQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryDatabase(DatabaseQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(databaseService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployController.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployController.java index 38197e82..3f13813b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployController.java @@ -22,8 +22,10 @@ import me.zhengjie.annotation.Log; import me.zhengjie.modules.mnt.domain.Deploy; import me.zhengjie.modules.mnt.domain.DeployHistory; import me.zhengjie.modules.mnt.service.DeployService; +import me.zhengjie.modules.mnt.service.dto.DeployDto; import me.zhengjie.modules.mnt.service.dto.DeployQueryCriteria; import me.zhengjie.utils.FileUtil; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -64,7 +66,7 @@ public class DeployController { @ApiOperation(value = "查询部署") @GetMapping @PreAuthorize("@el.check('deploy:list')") - public ResponseEntity queryDeployData(DeployQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryDeployData(DeployQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(deployService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployHistoryController.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployHistoryController.java index 2d1037ba..8d3c902d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployHistoryController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployHistoryController.java @@ -20,7 +20,9 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.modules.mnt.service.DeployHistoryService; +import me.zhengjie.modules.mnt.service.dto.DeployHistoryDto; import me.zhengjie.modules.mnt.service.dto.DeployHistoryQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -52,7 +54,7 @@ public class DeployHistoryController { @ApiOperation(value = "查询部署历史") @GetMapping @PreAuthorize("@el.check('deployHistory:list')") - public ResponseEntity queryDeployHistory(DeployHistoryQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryDeployHistory(DeployHistoryQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(deployhistoryService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/ServerDeployController.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/ServerDeployController.java index 894a90a9..5ccb0ed3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/ServerDeployController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/ServerDeployController.java @@ -21,7 +21,9 @@ import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.modules.mnt.domain.ServerDeploy; import me.zhengjie.modules.mnt.service.ServerDeployService; +import me.zhengjie.modules.mnt.service.dto.ServerDeployDto; import me.zhengjie.modules.mnt.service.dto.ServerDeployQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -54,7 +56,7 @@ public class ServerDeployController { @ApiOperation(value = "查询服务器") @GetMapping @PreAuthorize("@el.check('serverDeploy:list')") - public ResponseEntity queryServerDeploy(ServerDeployQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryServerDeploy(ServerDeployQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(serverDeployService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/AppService.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/AppService.java index c8227785..9bded4d8 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/AppService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/AppService.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.mnt.service; import me.zhengjie.modules.mnt.domain.App; import me.zhengjie.modules.mnt.service.dto.AppDto; import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -37,7 +38,7 @@ public interface AppService { * @param pageable 分页参数 * @return / */ - Object queryAll(AppQueryCriteria criteria, Pageable pageable); + PageResult queryAll(AppQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DatabaseService.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DatabaseService.java index e8a3acb7..904f73ca 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DatabaseService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DatabaseService.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.mnt.service; import me.zhengjie.modules.mnt.domain.Database; import me.zhengjie.modules.mnt.service.dto.DatabaseDto; import me.zhengjie.modules.mnt.service.dto.DatabaseQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -37,7 +38,7 @@ public interface DatabaseService { * @param pageable 分页参数 * @return / */ - Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable); + PageResult queryAll(DatabaseQueryCriteria criteria, Pageable pageable); /** * 查询全部 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployHistoryService.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployHistoryService.java index 5eb1b3de..07bcb642 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployHistoryService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployHistoryService.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.mnt.service; import me.zhengjie.modules.mnt.domain.DeployHistory; import me.zhengjie.modules.mnt.service.dto.DeployHistoryDto; import me.zhengjie.modules.mnt.service.dto.DeployHistoryQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -36,7 +37,7 @@ public interface DeployHistoryService { * @param pageable 分页参数 * @return / */ - Object queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable); + PageResult queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable); /** * 查询全部 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployService.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployService.java index 583474d7..7fb78f59 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployService.java @@ -19,6 +19,7 @@ import me.zhengjie.modules.mnt.domain.Deploy; import me.zhengjie.modules.mnt.domain.DeployHistory; import me.zhengjie.modules.mnt.service.dto.DeployDto; import me.zhengjie.modules.mnt.service.dto.DeployQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -38,7 +39,7 @@ public interface DeployService { * @param pageable 分页参数 * @return / */ - Object queryAll(DeployQueryCriteria criteria, Pageable pageable); + PageResult queryAll(DeployQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/ServerDeployService.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/ServerDeployService.java index be8bb573..6dd343fd 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/ServerDeployService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/ServerDeployService.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.mnt.service; import me.zhengjie.modules.mnt.domain.ServerDeploy; import me.zhengjie.modules.mnt.service.dto.ServerDeployDto; import me.zhengjie.modules.mnt.service.dto.ServerDeployQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -37,7 +38,7 @@ public interface ServerDeployService { * @param pageable 分页参数 * @return / */ - Object queryAll(ServerDeployQueryCriteria criteria, Pageable pageable); + PageResult queryAll(ServerDeployQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/AppServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/AppServiceImpl.java index 42b088ff..7d66d0bf 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/AppServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/AppServiceImpl.java @@ -23,10 +23,7 @@ import me.zhengjie.modules.mnt.service.AppService; import me.zhengjie.modules.mnt.service.dto.AppDto; import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria; import me.zhengjie.modules.mnt.service.mapstruct.AppMapper; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.QueryHelp; -import me.zhengjie.utils.ValidationUtil; +import me.zhengjie.utils.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -47,7 +44,7 @@ public class AppServiceImpl implements AppService { private final AppMapper appMapper; @Override - public Object queryAll(AppQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(AppQueryCriteria criteria, Pageable pageable){ Page page = appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(appMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DatabaseServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DatabaseServiceImpl.java index c7740285..fa55782e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DatabaseServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DatabaseServiceImpl.java @@ -25,10 +25,7 @@ import me.zhengjie.modules.mnt.service.dto.DatabaseDto; import me.zhengjie.modules.mnt.service.dto.DatabaseQueryCriteria; import me.zhengjie.modules.mnt.service.mapstruct.DatabaseMapper; import me.zhengjie.modules.mnt.util.SqlUtils; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.QueryHelp; -import me.zhengjie.utils.ValidationUtil; +import me.zhengjie.utils.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -50,7 +47,7 @@ public class DatabaseServiceImpl implements DatabaseService { private final DatabaseMapper databaseMapper; @Override - public Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(DatabaseQueryCriteria criteria, Pageable pageable){ Page page = databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(databaseMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployHistoryServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployHistoryServiceImpl.java index 7431113d..762b783e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployHistoryServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployHistoryServiceImpl.java @@ -23,10 +23,7 @@ import me.zhengjie.modules.mnt.service.DeployHistoryService; import me.zhengjie.modules.mnt.service.dto.DeployHistoryDto; import me.zhengjie.modules.mnt.service.dto.DeployHistoryQueryCriteria; import me.zhengjie.modules.mnt.service.mapstruct.DeployHistoryMapper; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.QueryHelp; -import me.zhengjie.utils.ValidationUtil; +import me.zhengjie.utils.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -47,7 +44,7 @@ public class DeployHistoryServiceImpl implements DeployHistoryService { private final DeployHistoryMapper deployhistoryMapper; @Override - public Object queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable){ Page page = deployhistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(deployhistoryMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployServiceImpl.java index f2491cda..1c16f9c6 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployServiceImpl.java @@ -68,7 +68,7 @@ public class DeployServiceImpl implements DeployService { @Override - public Object queryAll(DeployQueryCriteria criteria, Pageable pageable) { + public PageResult queryAll(DeployQueryCriteria criteria, Pageable pageable) { Page page = deployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); return PageUtil.toPage(page.map(deployMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/ServerDeployServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/ServerDeployServiceImpl.java index 63272dae..9e25eb4a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/ServerDeployServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/ServerDeployServiceImpl.java @@ -23,10 +23,7 @@ import me.zhengjie.modules.mnt.service.dto.ServerDeployDto; import me.zhengjie.modules.mnt.service.dto.ServerDeployQueryCriteria; import me.zhengjie.modules.mnt.service.mapstruct.ServerDeployMapper; import me.zhengjie.modules.mnt.util.ExecuteShellUtil; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.QueryHelp; -import me.zhengjie.utils.ValidationUtil; +import me.zhengjie.utils.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -47,7 +44,7 @@ public class ServerDeployServiceImpl implements ServerDeployService { private final ServerDeployMapper serverDeployMapper; @Override - public Object queryAll(ServerDeployQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(ServerDeployQueryCriteria criteria, Pageable pageable){ Page page = serverDeployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(serverDeployMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest/QuartzJobController.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest/QuartzJobController.java index 0ffee652..e1b5da76 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest/QuartzJobController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest/QuartzJobController.java @@ -22,8 +22,10 @@ import lombok.extern.slf4j.Slf4j; import me.zhengjie.annotation.Log; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.quartz.domain.QuartzJob; +import me.zhengjie.modules.quartz.domain.QuartzLog; import me.zhengjie.modules.quartz.service.QuartzJobService; import me.zhengjie.modules.quartz.service.dto.JobQueryCriteria; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.SpringContextHolder; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -52,7 +54,7 @@ public class QuartzJobController { @ApiOperation("查询定时任务") @GetMapping @PreAuthorize("@el.check('timing:list')") - public ResponseEntity queryQuartzJob(JobQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryQuartzJob(JobQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(quartzJobService.queryAll(criteria,pageable), HttpStatus.OK); } @@ -73,7 +75,7 @@ public class QuartzJobController { @ApiOperation("查询任务执行日志") @GetMapping(value = "/logs") @PreAuthorize("@el.check('timing:list')") - public ResponseEntity queryQuartzJobLog(JobQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryQuartzJobLog(JobQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(quartzJobService.queryAllLog(criteria,pageable), HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java index b32850e9..2e93c7b8 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.quartz.service; import me.zhengjie.modules.quartz.domain.QuartzJob; import me.zhengjie.modules.quartz.domain.QuartzLog; import me.zhengjie.modules.quartz.service.dto.JobQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -36,7 +37,7 @@ public interface QuartzJobService { * @param pageable 分页参数 * @return / */ - Object queryAll(JobQueryCriteria criteria, Pageable pageable); + PageResult queryAll(JobQueryCriteria criteria, Pageable pageable); /** * 查询全部 @@ -51,7 +52,7 @@ public interface QuartzJobService { * @param pageable 分页参数 * @return / */ - Object queryAllLog(JobQueryCriteria criteria, Pageable pageable); + PageResult queryAllLog(JobQueryCriteria criteria, Pageable pageable); /** * 查询全部 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java index 42ee326f..06341e20 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java @@ -50,12 +50,12 @@ public class QuartzJobServiceImpl implements QuartzJobService { private final RedisUtils redisUtils; @Override - public Object queryAll(JobQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(JobQueryCriteria criteria, Pageable pageable){ return PageUtil.toPage(quartzJobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable)); } @Override - public Object queryAllLog(JobQueryCriteria criteria, Pageable pageable){ + public PageResult queryAllLog(JobQueryCriteria criteria, Pageable pageable){ return PageUtil.toPage(quartzLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java index a157874f..a03e1c90 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java @@ -44,6 +44,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -113,7 +114,7 @@ public class AuthorizationController { @ApiOperation("获取用户信息") @GetMapping(value = "/info") - public ResponseEntity getUserInfo() { + public ResponseEntity getUserInfo() { return ResponseEntity.ok(SecurityUtils.getCurrentUser()); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java index 8b91fdfd..cc5968cc 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java @@ -19,7 +19,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.modules.security.service.OnlineUserService; +import me.zhengjie.modules.security.service.dto.OnlineUserDto; import me.zhengjie.utils.EncryptUtils; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -43,7 +45,7 @@ public class OnlineController { @ApiOperation("查询在线用户") @GetMapping @PreAuthorize("@el.check()") - public ResponseEntity queryOnlineUser(String filter, Pageable pageable){ + public ResponseEntity> queryOnlineUser(String filter, Pageable pageable){ return new ResponseEntity<>(onlineUserService.getAll(filter, pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java index 99624306..39d96934 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java @@ -25,6 +25,7 @@ import me.zhengjie.modules.system.domain.Dept; import me.zhengjie.modules.system.service.DeptService; import me.zhengjie.modules.system.service.dto.DeptDto; import me.zhengjie.modules.system.service.dto.DeptQueryCriteria; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.PageUtil; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -57,22 +58,22 @@ public class DeptController { @ApiOperation("查询部门") @GetMapping @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity queryDept(DeptQueryCriteria criteria) throws Exception { - List deptDtos = deptService.queryAll(criteria, true); - return new ResponseEntity<>(PageUtil.toPage(deptDtos, deptDtos.size()),HttpStatus.OK); + public ResponseEntity> queryDept(DeptQueryCriteria criteria) throws Exception { + List depts = deptService.queryAll(criteria, true); + return new ResponseEntity<>(PageUtil.toPage(depts, depts.size()),HttpStatus.OK); } @ApiOperation("查询部门:根据ID获取同级与上级数据") @PostMapping("/superior") @PreAuthorize("@el.check('user:list','dept:list')") public ResponseEntity getDeptSuperior(@RequestBody List ids) { - Set deptDtos = new LinkedHashSet<>(); + Set deptSet = new LinkedHashSet<>(); for (Long id : ids) { DeptDto deptDto = deptService.findById(id); List depts = deptService.getSuperior(deptDto, new ArrayList<>()); - deptDtos.addAll(depts); + deptSet.addAll(depts); } - return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptDtos)),HttpStatus.OK); + return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptSet)),HttpStatus.OK); } @Log("新增部门") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java index 70705781..6161f544 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java @@ -22,7 +22,10 @@ import me.zhengjie.annotation.Log; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.service.DictService; +import me.zhengjie.modules.system.service.dto.DictDto; import me.zhengjie.modules.system.service.dto.DictQueryCriteria; +import me.zhengjie.utils.PageResult; +import me.zhengjie.utils.PageUtil; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -31,6 +34,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; import java.util.Set; /** @@ -56,14 +60,14 @@ public class DictController { @ApiOperation("查询字典") @GetMapping(value = "/all") @PreAuthorize("@el.check('dict:list')") - public ResponseEntity queryAllDict(){ + public ResponseEntity> queryAllDict(){ return new ResponseEntity<>(dictService.queryAll(new DictQueryCriteria()),HttpStatus.OK); } @ApiOperation("查询字典") @GetMapping @PreAuthorize("@el.check('dict:list')") - public ResponseEntity queryDict(DictQueryCriteria resources, Pageable pageable){ + public ResponseEntity> queryDict(DictQueryCriteria resources, Pageable pageable){ return new ResponseEntity<>(dictService.queryAll(resources,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictDetailController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictDetailController.java index 8ddbfe4b..3cea7a1b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictDetailController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictDetailController.java @@ -24,6 +24,7 @@ import me.zhengjie.modules.system.domain.DictDetail; import me.zhengjie.modules.system.service.DictDetailService; import me.zhengjie.modules.system.service.dto.DictDetailDto; import me.zhengjie.modules.system.service.dto.DictDetailQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault; @@ -51,8 +52,8 @@ public class DictDetailController { @ApiOperation("查询字典详情") @GetMapping - public ResponseEntity queryDictDetail(DictDetailQueryCriteria criteria, - @PageableDefault(sort = {"dictSort"}, direction = Sort.Direction.ASC) Pageable pageable){ + public ResponseEntity> queryDictDetail(DictDetailQueryCriteria criteria, + @PageableDefault(sort = {"dictSort"}, direction = Sort.Direction.ASC) Pageable pageable){ return new ResponseEntity<>(dictDetailService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java index d904e278..fa10176e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java @@ -22,7 +22,9 @@ import me.zhengjie.annotation.Log; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.domain.Job; import me.zhengjie.modules.system.service.JobService; +import me.zhengjie.modules.system.service.dto.JobDto; import me.zhengjie.modules.system.service.dto.JobQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -56,7 +58,7 @@ public class JobController { @ApiOperation("查询岗位") @GetMapping @PreAuthorize("@el.check('job:list','user:list')") - public ResponseEntity queryJob(JobQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryJob(JobQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(jobService.queryAll(criteria, pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java index 66a1e82c..4ad3695b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java @@ -22,10 +22,12 @@ import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.exception.BadRequestException; +import me.zhengjie.modules.system.domain.vo.MenuVo; import me.zhengjie.modules.system.service.MenuService; import me.zhengjie.modules.system.service.dto.MenuDto; import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.mapstruct.MenuMapper; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.SecurityUtils; import org.springframework.http.HttpStatus; @@ -61,16 +63,16 @@ public class MenuController { @GetMapping(value = "/build") @ApiOperation("获取前端所需菜单") - public ResponseEntity buildMenus(){ + public ResponseEntity> buildMenus(){ List menuDtoList = menuService.findByUser(SecurityUtils.getCurrentUserId()); - List menuDtos = menuService.buildTree(menuDtoList); - return new ResponseEntity<>(menuService.buildMenus(menuDtos),HttpStatus.OK); + List menus = menuService.buildTree(menuDtoList); + return new ResponseEntity<>(menuService.buildMenus(menus),HttpStatus.OK); } @ApiOperation("返回全部的菜单") @GetMapping(value = "/lazy") @PreAuthorize("@el.check('menu:list','roles:list')") - public ResponseEntity queryAllMenu(@RequestParam Long pid){ + public ResponseEntity> queryAllMenu(@RequestParam Long pid){ return new ResponseEntity<>(menuService.getMenus(pid),HttpStatus.OK); } @@ -89,7 +91,7 @@ public class MenuController { @GetMapping @ApiOperation("查询菜单") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity queryMenu(MenuQueryCriteria criteria) throws Exception { + public ResponseEntity> queryMenu(MenuQueryCriteria criteria) throws Exception { List menuDtoList = menuService.queryAll(criteria, true); return new ResponseEntity<>(PageUtil.toPage(menuDtoList, menuDtoList.size()),HttpStatus.OK); } @@ -97,7 +99,7 @@ public class MenuController { @ApiOperation("查询菜单:根据ID获取同级与上级数据") @PostMapping("/superior") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity getMenuSuperior(@RequestBody List ids) { + public ResponseEntity> getMenuSuperior(@RequestBody List ids) { Set menuDtos = new LinkedHashSet<>(); if(CollectionUtil.isNotEmpty(ids)){ for (Long id : ids) { diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java index f4f9f5e3..69884322 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java @@ -26,6 +26,7 @@ import me.zhengjie.modules.system.service.RoleService; import me.zhengjie.modules.system.service.dto.RoleDto; import me.zhengjie.modules.system.service.dto.RoleQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDto; +import me.zhengjie.utils.PageResult; import me.zhengjie.utils.SecurityUtils; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -57,7 +58,7 @@ public class RoleController { @ApiOperation("获取单个role") @GetMapping(value = "/{id}") @PreAuthorize("@el.check('roles:list')") - public ResponseEntity findRoleById(@PathVariable Long id){ + public ResponseEntity findRoleById(@PathVariable Long id){ return new ResponseEntity<>(roleService.findById(id), HttpStatus.OK); } @@ -71,14 +72,14 @@ public class RoleController { @ApiOperation("返回全部的角色") @GetMapping(value = "/all") @PreAuthorize("@el.check('roles:list','user:add','user:edit')") - public ResponseEntity queryAllRole(){ + public ResponseEntity> queryAllRole(){ return new ResponseEntity<>(roleService.queryAll(),HttpStatus.OK); } @ApiOperation("查询角色") @GetMapping @PreAuthorize("@el.check('roles:list')") - public ResponseEntity queryRole(RoleQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryRole(RoleQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(roleService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java index d9860b5e..92a9fb6b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java @@ -100,7 +100,7 @@ public class UserController { criteria.getDeptIds().addAll(dataScopes); return new ResponseEntity<>(userService.queryAll(criteria,pageable),HttpStatus.OK); } - return new ResponseEntity<>(PageUtil.toPage(null,0),HttpStatus.OK); + return new ResponseEntity<>(PageUtil.noData(),HttpStatus.OK); } @Log("新增用户") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java index d589bf88..902f6034 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java @@ -111,8 +111,8 @@ public interface DeptService { /** * 获取 - * @param deptList - * @return + * @param deptList / + * @return / */ List getDeptChildren(List deptList); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java index f7b8ecea..1116d10a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java @@ -16,6 +16,7 @@ package me.zhengjie.modules.system.service; import me.zhengjie.modules.system.domain.Menu; +import me.zhengjie.modules.system.domain.vo.MenuVo; import me.zhengjie.modules.system.service.dto.MenuDto; import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; @@ -78,7 +79,7 @@ public interface MenuService { * @param menuDtos / * @return / */ - Object buildMenus(List menuDtos); + List buildMenus(List menuDtos); /** * 根据ID查询 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java index feb614b9..6bc8cce7 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java @@ -21,6 +21,7 @@ import me.zhengjie.modules.system.service.dto.RoleDto; import me.zhengjie.modules.system.service.dto.RoleQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDto; import me.zhengjie.modules.system.service.dto.UserDto; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -97,7 +98,7 @@ public interface RoleService { * @param pageable 分页参数 * @return / */ - Object queryAll(RoleQueryCriteria criteria, Pageable pageable); + PageResult queryAll(RoleQueryCriteria criteria, Pageable pageable); /** * 查询全部 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java index def575ea..e416aa89 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java @@ -74,7 +74,7 @@ public class RoleServiceImpl implements RoleService { } @Override - public Object queryAll(RoleQueryCriteria criteria, Pageable pageable) { + public PageResult queryAll(RoleQueryCriteria criteria, Pageable pageable) { Page page = roleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); return PageUtil.toPage(page.map(roleMapper::toDto)); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java index 952f8ba2..eb7832c8 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java @@ -41,7 +41,7 @@ public class EmailController { private final EmailService emailService; @GetMapping - public ResponseEntity queryEmailConfig(){ + public ResponseEntity queryEmailConfig(){ return new ResponseEntity<>(emailService.find(),HttpStatus.OK); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/LocalStorageController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/LocalStorageController.java index 45f39366..2b61260d 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/LocalStorageController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/LocalStorageController.java @@ -20,8 +20,10 @@ import me.zhengjie.annotation.Log; import me.zhengjie.domain.LocalStorage; import me.zhengjie.exception.BadRequestException; import me.zhengjie.service.LocalStorageService; +import me.zhengjie.service.dto.LocalStorageDto; import me.zhengjie.service.dto.LocalStorageQueryCriteria; import me.zhengjie.utils.FileUtil; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -48,7 +50,7 @@ public class LocalStorageController { @GetMapping @ApiOperation("查询文件") @PreAuthorize("@el.check('storage:list')") - public ResponseEntity queryFile(LocalStorageQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryFile(LocalStorageQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(localStorageService.queryAll(criteria,pageable),HttpStatus.OK); } @@ -69,7 +71,7 @@ public class LocalStorageController { @ApiOperation("上传图片") @PostMapping("/pictures") - public ResponseEntity uploadPicture(@RequestParam MultipartFile file){ + public ResponseEntity uploadPicture(@RequestParam MultipartFile file){ // 判断文件是否为图片 String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); if(!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))){ diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java index a601bdfd..f414579c 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java @@ -24,6 +24,7 @@ import me.zhengjie.domain.QiniuConfig; import me.zhengjie.domain.QiniuContent; import me.zhengjie.service.dto.QiniuQueryCriteria; import me.zhengjie.service.QiNiuService; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -50,7 +51,7 @@ public class QiniuController { private final QiNiuService qiNiuService; @GetMapping(value = "/config") - public ResponseEntity queryQiNiuConfig(){ + public ResponseEntity queryQiNiuConfig(){ return new ResponseEntity<>(qiNiuService.find(), HttpStatus.OK); } @@ -71,7 +72,7 @@ public class QiniuController { @ApiOperation("查询文件") @GetMapping - public ResponseEntity queryQiNiu(QiniuQueryCriteria criteria, Pageable pageable){ + public ResponseEntity> queryQiNiu(QiniuQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(qiNiuService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java b/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java index aabfcb0a..d62cadc2 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java @@ -43,7 +43,6 @@ public interface EmailService { * 发送邮件 * @param emailVo 邮件发送的内容 * @param emailConfig 邮件配置 - * @throws Exception / */ void send(EmailVo emailVo, EmailConfig emailConfig); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java b/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java index 6df06243..71c57d27 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java @@ -18,6 +18,7 @@ package me.zhengjie.service; import me.zhengjie.domain.LocalStorage; import me.zhengjie.service.dto.LocalStorageDto; import me.zhengjie.service.dto.LocalStorageQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -36,7 +37,7 @@ public interface LocalStorageService { * @param pageable 分页参数 * @return / */ - Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable); + PageResult queryAll(LocalStorageQueryCriteria criteria, Pageable pageable); /** * 查询全部数据 diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java index 09dca6a8..5321208e 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java @@ -18,6 +18,7 @@ package me.zhengjie.service; import me.zhengjie.domain.QiniuConfig; import me.zhengjie.domain.QiniuContent; import me.zhengjie.service.dto.QiniuQueryCriteria; +import me.zhengjie.utils.PageResult; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; @@ -50,7 +51,7 @@ public interface QiNiuService { * @param pageable 分页参数 * @return / */ - Object queryAll(QiniuQueryCriteria criteria, Pageable pageable); + PageResult queryAll(QiniuQueryCriteria criteria, Pageable pageable); /** * 查询全部 diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/LocalStorageServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/LocalStorageServiceImpl.java index 77174c44..94548538 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/LocalStorageServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/LocalStorageServiceImpl.java @@ -52,7 +52,7 @@ public class LocalStorageServiceImpl implements LocalStorageService { private final FileProperties properties; @Override - public Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(LocalStorageQueryCriteria criteria, Pageable pageable){ Page page = localStorageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(localStorageMapper::toDto)); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java index 942f437e..485b54b7 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java @@ -29,14 +29,10 @@ import me.zhengjie.domain.QiniuConfig; import me.zhengjie.domain.QiniuContent; import me.zhengjie.repository.QiniuContentRepository; import me.zhengjie.service.dto.QiniuQueryCriteria; -import me.zhengjie.utils.QiNiuUtil; +import me.zhengjie.utils.*; import me.zhengjie.exception.BadRequestException; import me.zhengjie.repository.QiNiuConfigRepository; import me.zhengjie.service.QiNiuService; -import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.PageUtil; -import me.zhengjie.utils.QueryHelp; -import me.zhengjie.utils.ValidationUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CachePut; @@ -84,7 +80,7 @@ public class QiNiuServiceImpl implements QiNiuService { } @Override - public Object queryAll(QiniuQueryCriteria criteria, Pageable pageable){ + public PageResult queryAll(QiniuQueryCriteria criteria, Pageable pageable){ return PageUtil.toPage(qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable)); } From e7ef764438a7f1cc2ff860adf3bc57001d147aa3 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 30 Jun 2023 14:33:14 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/zhengjie/service/impl/GeneratorServiceImpl.java | 5 +++-- .../src/main/resources/template/admin/Controller.ftl | 7 +++++-- .../src/main/resources/template/admin/Service.ftl | 6 +++--- .../src/main/resources/template/admin/ServiceImpl.ftl | 7 ++++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java index fcc28cb5..604cf2db 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java @@ -38,6 +38,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; +import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -87,8 +88,8 @@ public class GeneratorServiceImpl implements GeneratorService { "where table_schema = (select database()) and table_name like :table"; Query queryCount = em.createNativeQuery(countSql); queryCount.setParameter("table", StringUtils.isNotBlank(name) ? ("%" + name + "%") : "%%"); - long totalElements = (long) queryCount.getSingleResult(); - return PageUtil.toPage(tableInfos, totalElements); + BigInteger totalElements = (BigInteger) queryCount.getSingleResult(); + return PageUtil.toPage(tableInfos, totalElements.longValue()); } @Override diff --git a/eladmin-generator/src/main/resources/template/admin/Controller.ftl b/eladmin-generator/src/main/resources/template/admin/Controller.ftl index 5af73ddb..a7d6d754 100644 --- a/eladmin-generator/src/main/resources/template/admin/Controller.ftl +++ b/eladmin-generator/src/main/resources/template/admin/Controller.ftl @@ -29,6 +29,8 @@ import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import me.zhengjie.utils.PageResult; +import ${package}.service.dto.${className}Dto; /** * @website https://eladmin.vip @@ -55,7 +57,7 @@ public class ${className}Controller { @Log("查询${apiAlias}") @ApiOperation("查询${apiAlias}") @PreAuthorize("@el.check('${changeClassName}:list')") - public ResponseEntity query${className}(${className}QueryCriteria criteria, Pageable pageable){ + public ResponseEntity> query${className}(${className}QueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK); } @@ -64,7 +66,8 @@ public class ${className}Controller { @ApiOperation("新增${apiAlias}") @PreAuthorize("@el.check('${changeClassName}:add')") public ResponseEntity create${className}(@Validated @RequestBody ${className} resources){ - return new ResponseEntity<>(${changeClassName}Service.create(resources),HttpStatus.CREATED); + ${changeClassName}Service.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping diff --git a/eladmin-generator/src/main/resources/template/admin/Service.ftl b/eladmin-generator/src/main/resources/template/admin/Service.ftl index ef337149..9329e8b5 100644 --- a/eladmin-generator/src/main/resources/template/admin/Service.ftl +++ b/eladmin-generator/src/main/resources/template/admin/Service.ftl @@ -23,6 +23,7 @@ import java.util.Map; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import me.zhengjie.utils.PageResult; /** * @website https://eladmin.vip @@ -38,7 +39,7 @@ public interface ${className}Service { * @param pageable 分页参数 * @return Map */ - Map queryAll(${className}QueryCriteria criteria, Pageable pageable); + PageResult<${className}Dto> queryAll(${className}QueryCriteria criteria, Pageable pageable); /** * 查询所有数据不分页 @@ -57,9 +58,8 @@ public interface ${className}Service { /** * 创建 * @param resources / - * @return ${className}Dto */ - ${className}Dto create(${className} resources); + void create(${className} resources); /** * 编辑 diff --git a/eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl b/eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl index 4f1f07da..e79205c2 100644 --- a/eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl +++ b/eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl @@ -52,6 +52,7 @@ import java.io.IOException; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.LinkedHashMap; +import me.zhengjie.utils.PageResult; /** * @website https://eladmin.vip @@ -67,7 +68,7 @@ public class ${className}ServiceImpl implements ${className}Service { private final ${className}Mapper ${changeClassName}Mapper; @Override - public Map queryAll(${className}QueryCriteria criteria, Pageable pageable){ + public PageResult<${className}Dto> queryAll(${className}QueryCriteria criteria, Pageable pageable){ Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto)); } @@ -87,7 +88,7 @@ public class ${className}ServiceImpl implements ${className}Service { @Override @Transactional(rollbackFor = Exception.class) - public ${className}Dto create(${className} resources) { + public void create(${className} resources) { <#if !auto && pkColumnType = 'Long'> Snowflake snowflake = IdUtil.createSnowflake(1, 1); resources.set${pkCapitalColName}(snowflake.nextId()); @@ -104,7 +105,7 @@ public class ${className}ServiceImpl implements ${className}Service { - return ${changeClassName}Mapper.toDto(${changeClassName}Repository.save(resources)); + ${changeClassName}Repository.save(resources); } @Override From ca0f529323bfabfd994440102d315b50075b19b0 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 30 Jun 2023 14:34:19 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/FUNDING.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 0cd1ba99..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,5 +0,0 @@ -# These are supported funding model platforms - -github: # [user1, user2] -otechie: c9635b6fcfabfeed -custom: https://aurora-1255840532.cos.ap-chengdu.myqcloud.com/donation.png From 45cda7cf6a34aba808bf7d31c004e0077243ca84 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 30 Jun 2023 14:34:44 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index ca38718f..9f53f735 100644 --- a/LICENSE +++ b/LICENSE @@ -176,7 +176,7 @@ recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2019-2020 Zheng Jie + Copyright 2019-2023 Zheng Jie Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 362353330a2b5437528b63d12e5222f9722a95c5 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 30 Jun 2023 14:35:28 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java | 1 - 1 file changed, 1 deletion(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java b/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java index 6e29f571..0f1fdfe2 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/PageResult.java @@ -13,5 +13,4 @@ public class PageResult { private final List content; private final long totalElements; - } From 17820dec633243fd15550f5cd848c808164e9873 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 16:33:52 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + eladmin-system/src/main/java/me/zhengjie/AppRun.java | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 9739141a..aab4e9d2 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ #### 项目简介 一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统 +现已发布基于 mybatis-plus 版本,项目地址:[https://github.com/elunez/eladmin-mp](https://github.com/elunez/eladmin-mp)。 **开发文档:** [https://eladmin.vip](https://eladmin.vip) diff --git a/eladmin-system/src/main/java/me/zhengjie/AppRun.java b/eladmin-system/src/main/java/me/zhengjie/AppRun.java index fa4d67ff..ad126018 100644 --- a/eladmin-system/src/main/java/me/zhengjie/AppRun.java +++ b/eladmin-system/src/main/java/me/zhengjie/AppRun.java @@ -21,8 +21,6 @@ import me.zhengjie.utils.SpringContextHolder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.ApplicationPidFileWriter; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.scheduling.annotation.EnableAsync; From 22680d17f403d29dc3a60f6440e6689538963929 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 16:41:22 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3e086e8e..4764c708 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,6 @@ org.springframework.boot spring-boot-starter-web - From 47345037f63e0c097ba794d523d24fc4557a6960 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 16:43:40 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RelaxedQueryCharsConnectorCustomizer | 16 ---------- .../RelaxedQueryCharsConnectorCustomizer.java | 31 +++++++++++++++++++ 2 files changed, 31 insertions(+), 16 deletions(-) delete mode 100644 eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer create mode 100644 eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer.java diff --git a/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer b/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer deleted file mode 100644 index 2ca2ad47..00000000 --- a/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer +++ /dev/null @@ -1,16 +0,0 @@ -package me.zhengjie.config; - -import org.apache.catalina.connector.Connector; -import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; -import org.springframework.context.annotation.Configuration; - -/** - * @author bearBoy80 - */ -@Configuration(proxyBeanMethods = false) -public class RelaxedQueryCharsConnectorCustomizer implements TomcatConnectorCustomizer { - @Override - public void customize(Connector connector) { - connector.setProperty("relaxedQueryChars", "[]{}"); - } -} diff --git a/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer.java b/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer.java new file mode 100644 index 00000000..14a6b20d --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/config/RelaxedQueryCharsConnectorCustomizer.java @@ -0,0 +1,31 @@ +/* + * Copyright 2019-2023 Zheng Jie + * + * 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 me.zhengjie.config; + +import org.apache.catalina.connector.Connector; +import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; +import org.springframework.context.annotation.Configuration; + +/** + * @author bearBoy80 + */ +@Configuration(proxyBeanMethods = false) +public class RelaxedQueryCharsConnectorCustomizer implements TomcatConnectorCustomizer { + @Override + public void customize(Connector connector) { + connector.setProperty("relaxedQueryChars", "[]{}"); + } +} From 4f31a0ade8ed9102609064531bd313d8e014eb92 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 16:54:59 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E6=9D=83=E9=99=90bug:=20https://github.com/e?= =?UTF-8?q?lunez/eladmin/issues/801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhengjie/modules/system/service/impl/DataServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DataServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DataServiceImpl.java index cd9cfd43..782fbd8f 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DataServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DataServiceImpl.java @@ -65,7 +65,7 @@ public class DataServiceImpl implements DataService { deptIds.addAll(getCustomize(deptIds, role)); break; default: - return new ArrayList<>(deptIds); + return new ArrayList<>(); } } return new ArrayList<>(deptIds); From f72efb804480323b1f3788e716f1124a41a1c52a Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 17:14:10 +0800 Subject: [PATCH 15/17] =?UTF-8?q?RedisUtils=20key=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=A2=9E=E5=8A=A0=E6=8F=90=E7=A4=BA=20close?= =?UTF-8?q?=20https://github.com/elunez/eladmin/issues/763?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhengjie/utils/RedisUtils.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java index eb292ed9..9ffbe5ca 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java @@ -51,7 +51,7 @@ public class RedisUtils { * 指定缓存失效时间 * * @param key 键 - * @param time 时间(秒) + * @param time 时间(秒) 注意:这里将会替换原有的时间 */ public boolean expire(String key, long time) { try { @@ -69,7 +69,7 @@ public class RedisUtils { * 指定缓存失效时间 * * @param key 键 - * @param time 时间(秒) + * @param time 时间(秒) 注意:这里将会替换原有的时间 * @param timeUnit 单位 */ public boolean expire(String key, long time, TimeUnit timeUnit) { @@ -244,7 +244,7 @@ public class RedisUtils { * * @param key 键 * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期,注意:这里将会替换原有的时间 * @return true成功 false 失败 */ public boolean set(String key, Object value, long time) { @@ -266,7 +266,7 @@ public class RedisUtils { * * @param key 键 * @param value 值 - * @param time 时间 + * @param time 时间,注意:这里将会替换原有的时间 * @param timeUnit 类型 * @return true成功 false 失败 */ @@ -326,11 +326,11 @@ public class RedisUtils { } /** - * HashSet 并设置时间 + * HashSet * * @param key 键 * @param map 对应多个键值 - * @param time 时间(秒) + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 * @return true成功 false失败 */ public boolean hmset(String key, Map map, long time) { @@ -484,7 +484,7 @@ public class RedisUtils { * 将set数据放入缓存 * * @param key 键 - * @param time 时间(秒) + * @param time 时间(秒) 注意:这里将会替换原有的时间 * @param values 值 可以是多个 * @return 成功个数 */ @@ -605,7 +605,7 @@ public class RedisUtils { * * @param key 键 * @param value 值 - * @param time 时间(秒) + * @param time 时间(秒) 注意:这里将会替换原有的时间 * @return */ public boolean lSet(String key, Object value, long time) { @@ -643,7 +643,7 @@ public class RedisUtils { * * @param key 键 * @param value 值 - * @param time 时间(秒) + * @param time 时间(秒) 注意:这里将会替换原有的时间 * @return */ public boolean lSet(String key, List value, long time) { From f0ed88c51eeb35707b4f674ab9ea376b9f556c58 Mon Sep 17 00:00:00 2001 From: Aborn Jiang Date: Tue, 4 Jul 2023 17:32:22 +0800 Subject: [PATCH 16/17] support FIND_IN_SET cond (#745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix weird prefixes keys when use RedisUtils.scan * Column use `` for reserved key ref: https://stackoverflow.com/questions/2224503/how-to-map-an-entity-field-whose-name-is-a-reserved-word-in-jpa * add FIND_IN_SET 条件查询 * note --- .../src/main/java/me/zhengjie/annotation/Query.java | 4 +++- eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java b/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java index e1758c9b..fe616f1c 100644 --- a/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java +++ b/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java @@ -74,7 +74,9 @@ public @interface Query { // 不为空 ,NOT_NULL // 为空 - ,IS_NULL + ,IS_NULL, + // Aborn Jiang 2022/06/01, 对应SQL: SELECT * FROM table WHERE FIND_IN_SET('querytag', table.tags); + FIND_IN_SET } /** diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java index 671fff71..5b542faa 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java @@ -166,6 +166,10 @@ public class QueryHelp { (Comparable) between.get(0), (Comparable) between.get(1))); } break; + case FIND_IN_SET: + list.add(cb.greaterThan(cb.function("FIND_IN_SET", Integer.class, + cb.literal(val.toString()), root.get(attributeName)), 0)); + break; default: break; } } From cf3655adf49d6e941cfc3237c99eddfbd76a6f59 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Tue, 4 Jul 2023 22:30:30 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E8=B8=A2=E5=87=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96=EF=BC=8C=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9F=A5=E8=AF=A2=E6=80=A7=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20close=20https://github.com/elunez/eladmin/issues/80?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhengjie/utils/RedisUtils.java | 20 ++++- .../security/config/bean/LoginProperties.java | 2 +- .../rest/AuthorizationController.java | 9 +- .../security/rest/OnlineController.java | 14 +-- .../security/security/TokenFilter.java | 3 +- .../security/security/TokenProvider.java | 12 +++ .../security/service/OnlineUserService.java | 85 +++++-------------- .../security/service/UserCacheManager.java | 6 +- .../main/resources/config/application-dev.yml | 6 +- .../resources/config/application-prod.yml | 6 +- 10 files changed, 73 insertions(+), 90 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java index 9ffbe5ca..65d02789 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java @@ -19,13 +19,11 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component; - import java.util.*; import java.util.concurrent.TimeUnit; @@ -36,9 +34,8 @@ import java.util.concurrent.TimeUnit; @SuppressWarnings({"unchecked", "all"}) public class RedisUtils { private static final Logger log = LoggerFactory.getLogger(RedisUtils.class); + private RedisTemplate redisTemplate; - @Value("${jwt.online-key}") - private String onlineKey; public RedisUtils(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; @@ -197,6 +194,21 @@ public class RedisUtils { } } + /** + * 批量模糊删除key + * @param pattern + */ + public void scanDel(String pattern){ + ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); + try (Cursor cursor = redisTemplate.executeWithStickyConnection( + (RedisCallback>) connection -> (Cursor) new ConvertingCursor<>( + connection.scan(options), redisTemplate.getKeySerializer()::deserialize))) { + while (cursor.hasNext()) { + redisTemplate.delete(cursor.next()); + } + } + } + // ============================String============================= /** diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java index 164c0073..0201a13d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java @@ -39,7 +39,7 @@ public class LoginProperties { private LoginCode loginCode; - public static final String cacheKey = "USER-LOGIN-DATA"; + public static final String cacheKey = "user-login-cache:"; public boolean isSingleLogin() { return singleLogin; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java index a03e1c90..effb15f5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthorizationController.java @@ -98,17 +98,18 @@ public class AuthorizationController { // SecurityContextHolder.getContext().setAuthentication(authentication); String token = tokenProvider.createToken(authentication); final JwtUserDto jwtUserDto = (JwtUserDto) authentication.getPrincipal(); - // 保存在线信息 - onlineUserService.save(jwtUserDto, token, request); // 返回 token 与 用户信息 Map authInfo = new HashMap(2) {{ put("token", properties.getTokenStartWith() + token); put("user", jwtUserDto); }}; if (loginProperties.isSingleLogin()) { - //踢掉之前已经登录的token - onlineUserService.checkLoginOnUser(authUser.getUsername(), token); + // 踢掉之前已经登录的token + onlineUserService.kickOutForUsername(authUser.getUsername()); } + // 保存在线信息 + onlineUserService.save(jwtUserDto, token, request); + // 返回登录信息 return ResponseEntity.ok(authInfo); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java index cc5968cc..2e46859d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/OnlineController.java @@ -45,25 +45,25 @@ public class OnlineController { @ApiOperation("查询在线用户") @GetMapping @PreAuthorize("@el.check()") - public ResponseEntity> queryOnlineUser(String filter, Pageable pageable){ - return new ResponseEntity<>(onlineUserService.getAll(filter, pageable),HttpStatus.OK); + public ResponseEntity> queryOnlineUser(String username, Pageable pageable){ + return new ResponseEntity<>(onlineUserService.getAll(username, pageable),HttpStatus.OK); } @ApiOperation("导出数据") @GetMapping(value = "/download") @PreAuthorize("@el.check()") - public void exportOnlineUser(HttpServletResponse response, String filter) throws IOException { - onlineUserService.download(onlineUserService.getAll(filter), response); + public void exportOnlineUser(HttpServletResponse response, String username) throws IOException { + onlineUserService.download(onlineUserService.getAll(username), response); } @ApiOperation("踢出用户") @DeleteMapping @PreAuthorize("@el.check()") public ResponseEntity deleteOnlineUser(@RequestBody Set keys) throws Exception { - for (String key : keys) { + for (String token : keys) { // 解密Key - key = EncryptUtils.desDecrypt(key); - onlineUserService.kickOut(key); + token = EncryptUtils.desDecrypt(token); + onlineUserService.logout(token); } return new ResponseEntity<>(HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenFilter.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenFilter.java index d235cb81..7cb8a03f 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenFilter.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenFilter.java @@ -70,7 +70,8 @@ public class TokenFilter extends GenericFilterBean { OnlineUserDto onlineUserDto = null; boolean cleanUserCache = false; try { - onlineUserDto = onlineUserService.getOne(properties.getOnlineKey() + token); + String loginKey = tokenProvider.loginKey(token); + onlineUserDto = onlineUserService.getOne(loginKey); } catch (ExpiredJwtException e) { log.error(e.getMessage()); cleanUserCache = true; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenProvider.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenProvider.java index db98fba4..d2db83c0 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenProvider.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/TokenProvider.java @@ -18,6 +18,7 @@ package me.zhengjie.modules.security.security; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.crypto.digest.DigestUtil; import io.jsonwebtoken.*; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; @@ -120,4 +121,15 @@ public class TokenProvider implements InitializingBean { } return null; } + + /** + * 获取登录用户RedisKey + * @param token / + * @return key + */ + public String loginKey(String token) { + Claims claims = getClaims(token); + String md5Token = DigestUtil.md5Hex(token); + return properties.getOnlineKey() + claims.getSubject() + "-" + md5Token; + } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java index b9ac48f8..ede78681 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java @@ -15,7 +15,9 @@ */ package me.zhengjie.modules.security.service; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import me.zhengjie.modules.security.security.TokenProvider; import me.zhengjie.utils.PageResult; import me.zhengjie.modules.security.config.bean.SecurityProperties; import me.zhengjie.modules.security.service.dto.JwtUserDto; @@ -28,6 +30,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.concurrent.TimeUnit; /** * @author Zheng Jie @@ -35,16 +38,13 @@ import java.util.*; */ @Service @Slf4j +@AllArgsConstructor public class OnlineUserService { private final SecurityProperties properties; + private final TokenProvider tokenProvider; private final RedisUtils redisUtils; - public OnlineUserService(SecurityProperties properties, RedisUtils redisUtils) { - this.properties = properties; - this.redisUtils = redisUtils; - } - /** * 保存在线用户信息 * @param jwtUserDto / @@ -62,17 +62,18 @@ public class OnlineUserService { } catch (Exception e) { log.error(e.getMessage(),e); } - redisUtils.set(properties.getOnlineKey() + token, onlineUserDto, properties.getTokenValidityInSeconds()/1000); + String loginKey = tokenProvider.loginKey(token); + redisUtils.set(loginKey, onlineUserDto, properties.getTokenValidityInSeconds(), TimeUnit.MILLISECONDS); } /** * 查询全部数据 - * @param filter / + * @param username / * @param pageable / * @return / */ - public PageResult getAll(String filter, Pageable pageable){ - List onlineUserDtos = getAll(filter); + public PageResult getAll(String username, Pageable pageable){ + List onlineUserDtos = getAll(username); return PageUtil.toPage( PageUtil.paging(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos), onlineUserDtos.size() @@ -81,43 +82,29 @@ public class OnlineUserService { /** * 查询全部数据,不分页 - * @param filter / + * @param username / * @return / */ - public List getAll(String filter){ - List keys = redisUtils.scan(properties.getOnlineKey() + "*"); + public List getAll(String username){ + String loginKey = properties.getOnlineKey() + + (StringUtils.isBlank(username) ? "" : "*" + username); + List keys = redisUtils.scan(loginKey + "*"); Collections.reverse(keys); List onlineUserDtos = new ArrayList<>(); for (String key : keys) { - OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); - if(StringUtils.isNotBlank(filter)){ - if(onlineUserDto.toString().contains(filter)){ - onlineUserDtos.add(onlineUserDto); - } - } else { - onlineUserDtos.add(onlineUserDto); - } + onlineUserDtos.add((OnlineUserDto) redisUtils.get(key)); } onlineUserDtos.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime())); return onlineUserDtos; } - /** - * 踢出用户 - * @param key / - */ - public void kickOut(String key){ - key = properties.getOnlineKey() + key; - redisUtils.del(key); - } - /** * 退出登录 * @param token / */ public void logout(String token) { - String key = properties.getOnlineKey() + token; - redisUtils.del(key); + String loginKey = tokenProvider.loginKey(token); + redisUtils.del(loginKey); } /** @@ -150,43 +137,13 @@ public class OnlineUserService { return (OnlineUserDto)redisUtils.get(key); } - /** - * 检测用户是否在之前已经登录,已经登录踢下线 - * @param userName 用户名 - */ - public void checkLoginOnUser(String userName, String igoreToken){ - List onlineUserDtos = getAll(userName); - if(onlineUserDtos ==null || onlineUserDtos.isEmpty()){ - return; - } - for(OnlineUserDto onlineUserDto : onlineUserDtos){ - if(onlineUserDto.getUserName().equals(userName)){ - try { - String token =EncryptUtils.desDecrypt(onlineUserDto.getKey()); - if(StringUtils.isNotBlank(igoreToken)&&!igoreToken.equals(token)){ - this.kickOut(token); - }else if(StringUtils.isBlank(igoreToken)){ - this.kickOut(token); - } - } catch (Exception e) { - log.error("checkUser is error",e); - } - } - } - } - /** * 根据用户名强退用户 * @param username / */ @Async - public void kickOutForUsername(String username) throws Exception { - List onlineUsers = getAll(username); - for (OnlineUserDto onlineUser : onlineUsers) { - if (onlineUser.getUserName().equals(username)) { - String token =EncryptUtils.desDecrypt(onlineUser.getKey()); - kickOut(token); - } - } + public void kickOutForUsername(String username) { + String loginKey = properties.getOnlineKey() + username + "*"; + redisUtils.scanDel(loginKey); } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserCacheManager.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserCacheManager.java index 3a8afe72..0808e65d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserCacheManager.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserCacheManager.java @@ -46,7 +46,7 @@ public class UserCacheManager { public JwtUserDto getUserCache(String userName) { if (StringUtils.isNotEmpty(userName)) { // 获取数据 - Object obj = redisUtils.hget(LoginProperties.cacheKey, userName); + Object obj = redisUtils.get(LoginProperties.cacheKey + userName); if(obj != null){ return (JwtUserDto)obj; } @@ -63,7 +63,7 @@ public class UserCacheManager { if (StringUtils.isNotEmpty(userName)) { // 添加数据, 避免数据同时过期 long time = idleTime + RandomUtil.randomInt(900, 1800); - redisUtils.hset(LoginProperties.cacheKey, userName, user, time); + redisUtils.set(LoginProperties.cacheKey + userName, user, time); } } @@ -76,7 +76,7 @@ public class UserCacheManager { public void cleanUserCache(String userName) { if (StringUtils.isNotEmpty(userName)) { // 清除数据 - redisUtils.hdel(LoginProperties.cacheKey, userName); + redisUtils.del(LoginProperties.cacheKey + userName); } } } \ No newline at end of file diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index 79373aaf..6c5c47bb 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -56,7 +56,7 @@ login: # Redis用户登录缓存配置 user-cache: # 存活时间/秒 - idle-time: 7200 + idle-time: 21600 # 验证码 login-code: # 验证码类型配置 查看 LoginProperties 类 @@ -84,9 +84,9 @@ jwt: # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html token-validity-in-seconds: 14400000 # 在线用户key - online-key: online-token- + online-key: "online-token:" # 验证码 - code-key: code-key- + code-key: "captcha-code:" # token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期 detect: 1800000 # 续期时间范围,默认1小时,单位毫秒 diff --git a/eladmin-system/src/main/resources/config/application-prod.yml b/eladmin-system/src/main/resources/config/application-prod.yml index 851b26c4..39d6a11f 100644 --- a/eladmin-system/src/main/resources/config/application-prod.yml +++ b/eladmin-system/src/main/resources/config/application-prod.yml @@ -58,7 +58,7 @@ login: # Redis用户登录缓存配置 user-cache: # 存活时间/秒 - idle-time: 7200 + idle-time: 21600 # 验证码 login-code: # 验证码类型配置 查看 LoginProperties 类 @@ -86,9 +86,9 @@ jwt: # 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html token-validity-in-seconds: 7200000 # 在线用户key - online-key: online-token- + online-key: "online-token:" # 验证码 - code-key: code-key- + code-key: "captcha-code:" # token 续期检查时间范围(默认30分钟,单位默认毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期 detect: 1800000 # 续期时间范围,默认 1小时,这里单位毫秒