From a5fb62f1e52f2ea4ba191572cfa1f1d884d0ecec Mon Sep 17 00:00:00 2001 From: Galudisu Date: Sun, 14 Dec 2025 15:00:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0google-style=20=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96maven=E6=8F=92=E4=BB=B6=EF=BC=8Cfix=20utf8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 10 + .java-version | 1 + .mvn/jvm.config | 12 + .mvn/maven.config | 3 + bin/clean.bat | 22 +- bin/package.bat | 22 +- bin/run-auth.bat | 26 +- bin/run-gateway.bat | 26 +- bin/run-modules-file.bat | 26 +- bin/run-modules-gen.bat | 26 +- bin/run-modules-job.bat | 26 +- bin/run-modules-system.bat | 26 +- bin/run-monitor.bat | 26 +- docker/docker-compose.yml | 14 +- docker/mysql/Dockerfile | 7 + docker/mysql/db/readme.txt | 2 +- docker/mysql/dockerfile | 7 - docker/nacos/{dockerfile => Dockerfile} | 14 +- docker/nginx/{dockerfile => Dockerfile} | 30 +- docker/nginx/html/dist/readme.txt | 2 +- docker/redis/{dockerfile => Dockerfile} | 26 +- docker/ruoyi/auth/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/auth/jar/readme.txt | 2 +- .../ruoyi/gateway/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/gateway/jar/readme.txt | 2 +- .../modules/file/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/modules/file/jar/readme.txt | 2 +- .../modules/gen/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/modules/gen/jar/readme.txt | 2 +- .../modules/job/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/modules/job/jar/readme.txt | 2 +- .../modules/system/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/modules/system/jar/readme.txt | 2 +- .../visual/monitor/{dockerfile => Dockerfile} | 28 +- docker/ruoyi/visual/monitor/jar/readme.txt | 2 +- pom.xml | 689 ++-- .../ruoyi/system/api/RemoteFileService.java | 50 +- .../ruoyi/system/api/RemoteLogService.java | 59 +- .../ruoyi/system/api/RemoteUserService.java | 80 +- .../com/ruoyi/system/api/domain/SysDept.java | 349 +-- .../ruoyi/system/api/domain/SysDictData.java | 308 +- .../ruoyi/system/api/domain/SysDictType.java | 133 +- .../com/ruoyi/system/api/domain/SysFile.java | 71 +- .../system/api/domain/SysLogininfor.java | 169 +- .../ruoyi/system/api/domain/SysOperLog.java | 451 ++- .../com/ruoyi/system/api/domain/SysRole.java | 421 ++- .../com/ruoyi/system/api/domain/SysUser.java | 597 ++-- .../factory/RemoteFileFallbackFactory.java | 45 +- .../api/factory/RemoteLogFallbackFactory.java | 48 +- .../factory/RemoteUserFallbackFactory.java | 56 +- .../com/ruoyi/system/api/model/LoginUser.java | 241 +- .../com/ruoyi/auth/RuoYiAuthApplication.java | 37 +- .../auth/controller/TokenController.java | 95 +- .../java/com/ruoyi/auth/form/LoginBody.java | 45 +- .../com/ruoyi/auth/form/RegisterBody.java | 7 +- .../ruoyi/auth/service/SysLoginService.java | 213 +- .../auth/service/SysPasswordService.java | 102 +- .../auth/service/SysRecordLogService.java | 57 +- .../ruoyi/common/core/annotation/Excel.java | 276 +- .../ruoyi/common/core/annotation/Excels.java | 9 +- .../common/core/constant/CacheConstants.java | 83 +- .../ruoyi/common/core/constant/Constants.java | 227 +- .../common/core/constant/GenConstants.java | 166 +- .../common/core/constant/HttpStatus.java | 139 +- .../core/constant/ScheduleConstants.java | 76 +- .../core/constant/SecurityConstants.java | 67 +- .../core/constant/ServiceNameConstants.java | 23 +- .../common/core/constant/TokenConstants.java | 18 +- .../common/core/constant/UserConstants.java | 109 +- .../core/context/SecurityContextHolder.java | 134 +- .../java/com/ruoyi/common/core/domain/R.java | 192 +- .../ruoyi/common/core/enums/UserStatus.java | 36 +- .../core/exception/CaptchaException.java | 14 +- .../core/exception/CheckedException.java | 36 +- .../core/exception/DemoModeException.java | 11 +- .../core/exception/GlobalException.java | 92 +- .../core/exception/InnerAuthException.java | 14 +- .../core/exception/PreAuthorizeException.java | 11 +- .../core/exception/ServiceException.java | 120 +- .../common/core/exception/UtilException.java | 28 +- .../exception/auth/NotLoginException.java | 14 +- .../auth/NotPermissionException.java | 21 +- .../core/exception/auth/NotRoleException.java | 21 +- .../core/exception/base/BaseException.java | 100 +- .../core/exception/file/FileException.java | 15 +- .../FileNameLengthLimitExceededException.java | 17 +- .../file/FileSizeLimitExceededException.java | 14 +- .../exception/file/FileUploadException.java | 75 +- .../file/InvalidExtensionException.java | 108 +- .../core/exception/job/TaskException.java | 46 +- .../user/CaptchaExpireException.java | 14 +- .../core/exception/user/UserException.java | 14 +- .../user/UserPasswordNotMatchException.java | 14 +- .../ruoyi/common/core/text/CharsetKit.java | 130 +- .../com/ruoyi/common/core/text/Convert.java | 1856 +++++------ .../ruoyi/common/core/text/StrFormatter.java | 140 +- .../ruoyi/common/core/utils/DateUtils.java | 307 +- .../common/core/utils/ExceptionUtil.java | 43 +- .../com/ruoyi/common/core/utils/JwtUtils.java | 189 +- .../ruoyi/common/core/utils/PageUtils.java | 37 +- .../ruoyi/common/core/utils/ServletUtils.java | 477 ++- .../ruoyi/common/core/utils/SpringUtils.java | 170 +- .../ruoyi/common/core/utils/StringUtils.java | 1110 +++---- .../common/core/utils/bean/BeanUtils.java | 156 +- .../core/utils/bean/BeanValidators.java | 19 +- .../common/core/utils/file/FileTypeUtils.java | 142 +- .../common/core/utils/file/FileUtils.java | 409 ++- .../common/core/utils/file/ImageUtils.java | 105 +- .../common/core/utils/file/MimeTypeUtils.java | 118 +- .../common/core/utils/html/EscapeUtil.java | 257 +- .../common/core/utils/html/HTMLFilter.java | 949 +++--- .../ruoyi/common/core/utils/ip/IpUtils.java | 621 ++-- .../core/utils/poi/ExcelHandlerAdapter.java | 26 +- .../common/core/utils/poi/ExcelUtil.java | 2784 ++++++++--------- .../core/utils/reflect/ReflectUtils.java | 604 ++-- .../ruoyi/common/core/utils/sign/Base64.java | 461 ++- .../ruoyi/common/core/utils/sql/SqlUtil.java | 86 +- .../ruoyi/common/core/utils/uuid/IdUtils.java | 73 +- .../com/ruoyi/common/core/utils/uuid/Seq.java | 127 +- .../ruoyi/common/core/utils/uuid/UUID.java | 861 +++-- .../core/web/controller/BaseController.java | 215 +- .../common/core/web/domain/AjaxResult.java | 390 ++- .../common/core/web/domain/BaseEntity.java | 151 +- .../common/core/web/domain/TreeEntity.java | 127 +- .../common/core/web/page/PageDomain.java | 146 +- .../common/core/web/page/TableDataInfo.java | 138 +- .../common/core/web/page/TableSupport.java | 77 +- .../java/com/ruoyi/common/core/xss/Xss.java | 22 +- .../ruoyi/common/core/xss/XssValidator.java | 43 +- .../datascope/annotation/DataScope.java | 23 +- .../datascope/aspect/DataScopeAspect.java | 279 +- .../common/datasource/annotation/Master.java | 11 +- .../common/datasource/annotation/Slave.java | 11 +- .../com/ruoyi/common/log/annotation/Log.java | 48 +- .../ruoyi/common/log/aspect/LogAspect.java | 420 ++- .../common/log/enums/BusinessStatus.java | 18 +- .../ruoyi/common/log/enums/BusinessType.java | 83 +- .../ruoyi/common/log/enums/OperatorType.java | 23 +- .../log/filter/PropertyPreExcludeFilter.java | 21 +- .../common/log/service/AsyncLogService.java | 27 +- .../FastJson2JsonRedisSerializer.java | 58 +- .../common/redis/configure/RedisConfig.java | 36 +- .../common/redis/service/RedisService.java | 474 ++- .../annotation/EnableCustomConfig.java | 11 +- .../annotation/EnableRyFeignClients.java | 20 +- .../common/security/annotation/InnerAuth.java | 13 +- .../common/security/annotation/Logical.java | 18 +- .../security/annotation/RequiresLogin.java | 9 +- .../annotation/RequiresPermissions.java | 20 +- .../security/annotation/RequiresRoles.java | 19 +- .../security/aspect/InnerAuthAspect.java | 59 +- .../security/aspect/PreAuthorizeAspect.java | 113 +- .../ruoyi/common/security/auth/AuthLogic.java | 565 ++-- .../ruoyi/common/security/auth/AuthUtil.java | 290 +- .../security/config/ApplicationConfig.java | 16 +- .../common/security/config/WebMvcConfig.java | 36 +- .../feign/FeignAutoConfiguration.java | 16 +- .../feign/FeignRequestInterceptor.java | 69 +- .../handler/GlobalExceptionHandler.java | 237 +- .../interceptor/HeaderInterceptor.java | 67 +- .../common/security/service/TokenService.java | 275 +- .../common/security/utils/DictUtils.java | 104 +- .../common/security/utils/SecurityUtils.java | 160 +- .../sensitive/annotation/Sensitive.java | 13 +- .../config/SensitiveJsonSerializer.java | 74 +- .../sensitive/enums/DesensitizedType.java | 81 +- .../sensitive/utils/DesensitizedUtil.java | 68 +- .../config/SpringDocAutoConfiguration.java | 87 +- .../properties/SpringDocProperties.java | 192 +- .../gateway/RuoYiGatewayApplication.java | 35 +- .../ruoyi/gateway/config/CaptchaConfig.java | 145 +- .../ruoyi/gateway/config/GatewayConfig.java | 20 +- .../gateway/config/KaptchaTextCreator.java | 115 +- .../config/RouterFunctionConfiguration.java | 25 +- .../ruoyi/gateway/config/SpringDocConfig.java | 117 +- .../config/properties/CaptchaProperties.java | 45 +- .../properties/IgnoreWhiteProperties.java | 25 +- .../config/properties/XssProperties.java | 45 +- .../com/ruoyi/gateway/filter/AuthFilter.java | 184 +- .../gateway/filter/BlackListUrlFilter.java | 83 +- .../gateway/filter/ValidateCodeFilter.java | 91 +- .../com/ruoyi/gateway/filter/XssFilter.java | 171 +- .../handler/GatewayExceptionHandler.java | 64 +- .../handler/SentinelFallbackHandler.java | 40 +- .../gateway/handler/ValidateCodeHandler.java | 34 +- .../gateway/service/ValidateCodeService.java | 17 +- .../service/impl/ValidateCodeServiceImpl.java | 153 +- .../com/ruoyi/file/RuoYiFileApplication.java | 35 +- .../com/ruoyi/file/config/FilterConfig.java | 52 +- .../com/ruoyi/file/config/MinioConfig.java | 94 +- .../ruoyi/file/config/ResourcesConfig.java | 62 +- .../file/controller/SysFileController.java | 87 +- .../com/ruoyi/file/filter/RefererFilter.java | 90 +- .../service/FastDfsSysFileServiceImpl.java | 100 +- .../ruoyi/file/service/ISysFileService.java | 35 +- .../file/service/LocalSysFileServiceImpl.java | 87 +- .../file/service/MinioSysFileServiceImpl.java | 107 +- .../com/ruoyi/file/utils/FileUploadUtils.java | 275 +- .../com/ruoyi/gen/RuoYiGenApplication.java | 37 +- .../java/com/ruoyi/gen/config/GenConfig.java | 123 +- .../ruoyi/gen/controller/GenController.java | 336 +- .../java/com/ruoyi/gen/domain/GenTable.java | 527 ++-- .../com/ruoyi/gen/domain/GenTableColumn.java | 578 ++-- .../gen/mapper/GenTableColumnMapper.java | 93 +- .../com/ruoyi/gen/mapper/GenTableMapper.java | 133 +- .../service/GenTableColumnServiceImpl.java | 104 +- .../gen/service/GenTableServiceImpl.java | 889 +++--- .../gen/service/IGenTableColumnService.java | 63 +- .../ruoyi/gen/service/IGenTableService.java | 195 +- .../java/com/ruoyi/gen/util/GenUtils.java | 426 ++- .../ruoyi/gen/util/VelocityInitializer.java | 41 +- .../com/ruoyi/gen/util/VelocityUtils.java | 660 ++-- .../com/ruoyi/job/RuoYiJobApplication.java | 39 +- .../com/ruoyi/job/config/ScheduleConfig.java | 30 +- .../job/controller/SysJobController.java | 258 +- .../job/controller/SysJobLogController.java | 117 +- .../java/com/ruoyi/job/domain/SysJob.java | 295 +- .../java/com/ruoyi/job/domain/SysJobLog.java | 269 +- .../com/ruoyi/job/mapper/SysJobLogMapper.java | 107 +- .../com/ruoyi/job/mapper/SysJobMapper.java | 103 +- .../ruoyi/job/service/ISysJobLogService.java | 81 +- .../com/ruoyi/job/service/ISysJobService.java | 165 +- .../job/service/SysJobLogServiceImpl.java | 126 +- .../ruoyi/job/service/SysJobServiceImpl.java | 437 ++- .../main/java/com/ruoyi/job/task/RyTask.java | 29 +- .../com/ruoyi/job/util/AbstractQuartzJob.java | 148 +- .../java/com/ruoyi/job/util/CronUtils.java | 85 +- .../com/ruoyi/job/util/JobInvokeUtil.java | 297 +- .../QuartzDisallowConcurrentExecution.java | 18 +- .../ruoyi/job/util/QuartzJobExecution.java | 18 +- .../com/ruoyi/job/util/ScheduleUtils.java | 208 +- .../ruoyi/system/RuoYiSystemApplication.java | 37 +- .../controller/SysConfigController.java | 176 +- .../system/controller/SysDeptController.java | 180 +- .../controller/SysDictDataController.java | 161 +- .../controller/SysDictTypeController.java | 176 +- .../controller/SysLogininforController.java | 117 +- .../system/controller/SysMenuController.java | 224 +- .../controller/SysNoticeController.java | 115 +- .../controller/SysOperlogController.java | 99 +- .../system/controller/SysPostController.java | 171 +- .../controller/SysProfileController.java | 234 +- .../system/controller/SysRoleController.java | 373 +-- .../system/controller/SysUserController.java | 569 ++-- .../controller/SysUserOnlineController.java | 99 +- .../com/ruoyi/system/domain/SysConfig.java | 187 +- .../java/com/ruoyi/system/domain/SysMenu.java | 475 ++- .../com/ruoyi/system/domain/SysNotice.java | 169 +- .../java/com/ruoyi/system/domain/SysPost.java | 209 +- .../com/ruoyi/system/domain/SysRoleDept.java | 67 +- .../com/ruoyi/system/domain/SysRoleMenu.java | 67 +- .../ruoyi/system/domain/SysUserOnline.java | 171 +- .../com/ruoyi/system/domain/SysUserPost.java | 67 +- .../com/ruoyi/system/domain/SysUserRole.java | 67 +- .../com/ruoyi/system/domain/vo/MetaVo.java | 152 +- .../com/ruoyi/system/domain/vo/RouterVo.java | 237 +- .../ruoyi/system/domain/vo/TreeSelect.java | 146 +- .../ruoyi/system/mapper/SysConfigMapper.java | 121 +- .../ruoyi/system/mapper/SysDeptMapper.java | 193 +- .../system/mapper/SysDictDataMapper.java | 153 +- .../system/mapper/SysDictTypeMapper.java | 131 +- .../system/mapper/SysLogininforMapper.java | 59 +- .../ruoyi/system/mapper/SysMenuMapper.java | 205 +- .../ruoyi/system/mapper/SysNoticeMapper.java | 93 +- .../ruoyi/system/mapper/SysOperLogMapper.java | 67 +- .../ruoyi/system/mapper/SysPostMapper.java | 159 +- .../system/mapper/SysRoleDeptMapper.java | 63 +- .../ruoyi/system/mapper/SysRoleMapper.java | 173 +- .../system/mapper/SysRoleMenuMapper.java | 63 +- .../ruoyi/system/mapper/SysUserMapper.java | 267 +- .../system/mapper/SysUserPostMapper.java | 63 +- .../system/mapper/SysUserRoleMapper.java | 93 +- .../system/service/ISysConfigService.java | 121 +- .../ruoyi/system/service/ISysDeptService.java | 201 +- .../system/service/ISysDictDataService.java | 91 +- .../system/service/ISysDictTypeService.java | 147 +- .../system/service/ISysLogininforService.java | 53 +- .../ruoyi/system/service/ISysMenuService.java | 265 +- .../system/service/ISysNoticeService.java | 93 +- .../system/service/ISysOperLogService.java | 69 +- .../system/service/ISysPermissionService.java | 36 +- .../ruoyi/system/service/ISysPostService.java | 159 +- .../ruoyi/system/service/ISysRoleService.java | 325 +- .../system/service/ISysUserOnlineService.java | 69 +- .../ruoyi/system/service/ISysUserService.java | 409 ++- .../service/impl/SysConfigServiceImpl.java | 340 +- .../service/impl/SysDeptServiceImpl.java | 533 ++-- .../service/impl/SysDictDataServiceImpl.java | 167 +- .../service/impl/SysDictTypeServiceImpl.java | 370 +-- .../impl/SysLogininforServiceImpl.java | 88 +- .../service/impl/SysMenuServiceImpl.java | 953 +++--- .../service/impl/SysNoticeServiceImpl.java | 140 +- .../service/impl/SysOperLogServiceImpl.java | 111 +- .../impl/SysPermissionServiceImpl.java | 122 +- .../service/impl/SysPostServiceImpl.java | 276 +- .../service/impl/SysRoleServiceImpl.java | 685 ++-- .../impl/SysUserOnlineServiceImpl.java | 130 +- .../service/impl/SysUserServiceImpl.java | 976 +++--- .../monitor/RuoYiMonitorApplication.java | 35 +- .../monitor/config/WebSecurityConfigurer.java | 73 +- 300 files changed, 22092 insertions(+), 26032 deletions(-) create mode 100644 .editorconfig create mode 100644 .java-version create mode 100644 .mvn/jvm.config create mode 100644 .mvn/maven.config create mode 100644 docker/mysql/Dockerfile delete mode 100644 docker/mysql/dockerfile rename docker/nacos/{dockerfile => Dockerfile} (76%) rename docker/nginx/{dockerfile => Dockerfile} (88%) rename docker/redis/{dockerfile => Dockerfile} (83%) rename docker/ruoyi/auth/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/gateway/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/modules/file/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/modules/gen/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/modules/job/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/modules/system/{dockerfile => Dockerfile} (73%) rename docker/ruoyi/visual/monitor/{dockerfile => Dockerfile} (73%) diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..1d167b0f4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +charset = utf-8 +max_line_length = 120 +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +end_of_line = lf +insert_final_newline = true diff --git a/.java-version b/.java-version new file mode 100644 index 000000000..468437494 --- /dev/null +++ b/.java-version @@ -0,0 +1 @@ +1.8 \ No newline at end of file diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 000000000..b23750845 --- /dev/null +++ b/.mvn/jvm.config @@ -0,0 +1,12 @@ +--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED +-Xmx1024m +-Xms1024m +-XX:+TieredCompilation +-Xshare:on +-Djava.net.preferIPv4Stack=true +-Djava.security.egd=file:/dev/./urandom \ No newline at end of file diff --git a/.mvn/maven.config b/.mvn/maven.config new file mode 100644 index 000000000..06ceb5e0b --- /dev/null +++ b/.mvn/maven.config @@ -0,0 +1,3 @@ +-Djava.version=1.8 +-Drevision=1.0.0 +-Dchangelist=-SNAPSHOT \ No newline at end of file diff --git a/bin/clean.bat b/bin/clean.bat index af841d8e0..578e77da7 100644 --- a/bin/clean.bat +++ b/bin/clean.bat @@ -1,12 +1,12 @@ -@echo off -echo. -echo [信息] 清理工程target生成路径。 -echo. - -%~d0 -cd %~dp0 - -cd .. -call mvn clean - +@echo off +echo. +echo [淇℃伅] 娓呯悊宸ョ▼target鐢熸垚璺緞銆 +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean + pause \ No newline at end of file diff --git a/bin/package.bat b/bin/package.bat index af8af8ece..735b65ea0 100644 --- a/bin/package.bat +++ b/bin/package.bat @@ -1,12 +1,12 @@ -@echo off -echo. -echo [信息] 打包Web工程,生成war/jar包文件。 -echo. - -%~d0 -cd %~dp0 - -cd .. -call mvn clean package -Dmaven.test.skip=true - +@echo off +echo. +echo [淇℃伅] 鎵撳寘Web宸ョ▼锛岀敓鎴恮ar/jar鍖呮枃浠躲 +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean package -Dmaven.test.skip=true + pause \ No newline at end of file diff --git a/bin/run-auth.bat b/bin/run-auth.bat index 4c09a7430..954500ffa 100644 --- a/bin/run-auth.bat +++ b/bin/run-auth.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Auth工程。 -echo. - -cd %~dp0 -cd ../ruoyi-auth/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-auth.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Auth宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-auth/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-auth.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-gateway.bat b/bin/run-gateway.bat index d0d78af58..413990706 100644 --- a/bin/run-gateway.bat +++ b/bin/run-gateway.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Gateway工程。 -echo. - -cd %~dp0 -cd ../ruoyi-gateway/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-gateway.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Gateway宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-gateway/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-gateway.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-modules-file.bat b/bin/run-modules-file.bat index 61f890688..1072d30c6 100644 --- a/bin/run-modules-file.bat +++ b/bin/run-modules-file.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Modules-File工程。 -echo. - -cd %~dp0 -cd ../ruoyi-modules/ruoyi-file/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-file.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-File宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-modules/ruoyi-file/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-file.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-modules-gen.bat b/bin/run-modules-gen.bat index cbb7e7b24..1da7d9e89 100644 --- a/bin/run-modules-gen.bat +++ b/bin/run-modules-gen.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Modules-Gen工程。 -echo. - -cd %~dp0 -cd ../ruoyi-modules/ruoyi-gen/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-gen.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-Gen宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-modules/ruoyi-gen/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-gen.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-modules-job.bat b/bin/run-modules-job.bat index b419237a4..88efa7e94 100644 --- a/bin/run-modules-job.bat +++ b/bin/run-modules-job.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Modules-Job工程。 -echo. - -cd %~dp0 -cd ../ruoyi-modules/ruoyi-job/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-job.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-Job宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-modules/ruoyi-job/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-job.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-modules-system.bat b/bin/run-modules-system.bat index 0d232fefb..16c8dd17e 100644 --- a/bin/run-modules-system.bat +++ b/bin/run-modules-system.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Modules-System工程。 -echo. - -cd %~dp0 -cd ../ruoyi-modules/ruoyi-system/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-system.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-System宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-modules/ruoyi-system/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-system.jar + +cd bin pause \ No newline at end of file diff --git a/bin/run-monitor.bat b/bin/run-monitor.bat index 6149abd19..6643ba0f5 100644 --- a/bin/run-monitor.bat +++ b/bin/run-monitor.bat @@ -1,14 +1,14 @@ -@echo off -echo. -echo [信息] 使用Jar命令运行Monitor工程。 -echo. - -cd %~dp0 -cd ../ruoyi-visual/ruoyi-monitor/target - -set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m - -java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-visual-monitor.jar - -cd bin +@echo off +echo. +echo [淇℃伅] 浣跨敤Jar鍛戒护杩愯Monitor宸ョ▼銆 +echo. + +cd %~dp0 +cd ../ruoyi-visual/ruoyi-monitor/target + +set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-visual-monitor.jar + +cd bin pause \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 5fb8da1c0..b792f15bf 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -69,7 +69,7 @@ services: container_name: ruoyi-gateway build: context: ./ruoyi/gateway - dockerfile: dockerfile + dockerfile: ruoyi/gateway/Dockerfile ports: - "8080:8080" depends_on: @@ -80,7 +80,7 @@ services: container_name: ruoyi-auth build: context: ./ruoyi/auth - dockerfile: dockerfile + dockerfile: ruoyi/auth/Dockerfile ports: - "9200:9200" depends_on: @@ -91,7 +91,7 @@ services: container_name: ruoyi-modules-system build: context: ./ruoyi/modules/system - dockerfile: dockerfile + dockerfile: ruoyi/modules/system/Dockerfile ports: - "9201:9201" depends_on: @@ -104,7 +104,7 @@ services: container_name: ruoyi-modules-gen build: context: ./ruoyi/modules/gen - dockerfile: dockerfile + dockerfile: ruoyi/modules/gen/Dockerfile ports: - "9202:9202" depends_on: @@ -115,7 +115,7 @@ services: container_name: ruoyi-modules-job build: context: ./ruoyi/modules/job - dockerfile: dockerfile + dockerfile: ruoyi/modules/job/Dockerfile ports: - "9203:9203" depends_on: @@ -126,7 +126,7 @@ services: container_name: ruoyi-modules-file build: context: ./ruoyi/modules/file - dockerfile: dockerfile + dockerfile: ruoyi/modules/file/Dockerfile ports: - "9300:9300" volumes: @@ -135,6 +135,6 @@ services: container_name: ruoyi-visual-monitor build: context: ./ruoyi/visual/monitor - dockerfile: dockerfile + dockerfile: ruoyi/visual/monitor/Dockerfile ports: - "9100:9100" diff --git a/docker/mysql/Dockerfile b/docker/mysql/Dockerfile new file mode 100644 index 000000000..a99fa16eb --- /dev/null +++ b/docker/mysql/Dockerfile @@ -0,0 +1,7 @@ +# 鍩虹闀滃儚 +FROM mysql:5.7 +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎵цsql鑴氭湰 +COPY ./db/*.sql /docker-entrypoint-initdb.d/ diff --git a/docker/mysql/db/readme.txt b/docker/mysql/db/readme.txt index 0b22f3fe7..dd89fe0aa 100644 --- a/docker/mysql/db/readme.txt +++ b/docker/mysql/db/readme.txt @@ -1 +1 @@ -存放sql目录下的所有脚本,用于docker自动执行。 \ No newline at end of file +瀛樻斁sql鐩綍涓嬬殑鎵鏈夎剼鏈紝鐢ㄤ簬docker鑷姩鎵ц銆 \ No newline at end of file diff --git a/docker/mysql/dockerfile b/docker/mysql/dockerfile deleted file mode 100644 index b35dc5fde..000000000 --- a/docker/mysql/dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# 鍩虹闀滃儚 -FROM mysql:5.7 -# author -MAINTAINER ruoyi - -# 鎵цsql鑴氭湰 -ADD ./db/*.sql /docker-entrypoint-initdb.d/ diff --git a/docker/nacos/dockerfile b/docker/nacos/Dockerfile similarity index 76% rename from docker/nacos/dockerfile rename to docker/nacos/Dockerfile index a9f72d995..44b5672a9 100644 --- a/docker/nacos/dockerfile +++ b/docker/nacos/Dockerfile @@ -1,7 +1,7 @@ -# 鍩虹闀滃儚 -FROM nacos/nacos-server -# author -MAINTAINER ruoyi - -# 澶嶅埗conf鏂囦欢鍒拌矾寰 -COPY ./conf/application.properties /home/nacos/conf/application.properties +# 鍩虹闀滃儚 +FROM nacos/nacos-server +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 澶嶅埗conf鏂囦欢鍒拌矾寰 +COPY ./conf/application.properties /home/nacos/conf/application.properties diff --git a/docker/nginx/dockerfile b/docker/nginx/Dockerfile similarity index 88% rename from docker/nginx/dockerfile rename to docker/nginx/Dockerfile index e0025b1b4..18a73aa91 100644 --- a/docker/nginx/dockerfile +++ b/docker/nginx/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM nginx -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi/projects/ruoyi-ui -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi/projects/ruoyi-ui -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi/projects/ruoyi-ui -# 澶嶅埗conf鏂囦欢鍒拌矾寰 -COPY ./conf/nginx.conf /etc/nginx/nginx.conf -# 澶嶅埗html鏂囦欢鍒拌矾寰 -COPY ./html/dist /home/ruoyi/projects/ruoyi-ui +# 鍩虹闀滃儚 +FROM nginx +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi/projects/ruoyi-ui +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi/projects/ruoyi-ui +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi/projects/ruoyi-ui +# 澶嶅埗conf鏂囦欢鍒拌矾寰 +COPY ./conf/nginx.conf /etc/nginx/nginx.conf +# 澶嶅埗html鏂囦欢鍒拌矾寰 +COPY ./html/dist /home/ruoyi/projects/ruoyi-ui diff --git a/docker/nginx/html/dist/readme.txt b/docker/nginx/html/dist/readme.txt index eea3a3281..2179af784 100644 --- a/docker/nginx/html/dist/readme.txt +++ b/docker/nginx/html/dist/readme.txt @@ -1 +1 @@ -存放前端ruoyi-ui构建好的静态文件,用于nginx请求访问。 \ No newline at end of file +瀛樻斁鍓嶇ruoyi-ui鏋勫缓濂界殑闈欐佹枃浠讹紝鐢ㄤ簬nginx璇锋眰璁块棶銆 \ No newline at end of file diff --git a/docker/redis/dockerfile b/docker/redis/Dockerfile similarity index 83% rename from docker/redis/dockerfile rename to docker/redis/Dockerfile index dd7eaa806..495604cfd 100644 --- a/docker/redis/dockerfile +++ b/docker/redis/Dockerfile @@ -1,13 +1,13 @@ -# 鍩虹闀滃儚 -FROM redis -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi/redis -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi/redis -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi/redis -# 澶嶅埗conf鏂囦欢鍒拌矾寰 -COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf +# 鍩虹闀滃儚 +FROM redis +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi/redis +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi/redis +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi/redis +# 澶嶅埗conf鏂囦欢鍒拌矾寰 +COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf diff --git a/docker/ruoyi/auth/dockerfile b/docker/ruoyi/auth/Dockerfile similarity index 73% rename from docker/ruoyi/auth/dockerfile rename to docker/ruoyi/auth/Dockerfile index 01e777f03..94bd93b8c 100644 --- a/docker/ruoyi/auth/dockerfile +++ b/docker/ruoyi/auth/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-auth.jar /home/ruoyi/ruoyi-auth.jar -# 鍚姩璁よ瘉鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-auth.jar /home/ruoyi/ruoyi-auth.jar +# 鍚姩璁よ瘉鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-auth.jar"] \ No newline at end of file diff --git a/docker/ruoyi/auth/jar/readme.txt b/docker/ruoyi/auth/jar/readme.txt index c35ba2768..eb21d619b 100644 --- a/docker/ruoyi/auth/jar/readme.txt +++ b/docker/ruoyi/auth/jar/readme.txt @@ -1 +1 @@ -存放认证中心打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁璁よ瘉涓績鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/gateway/dockerfile b/docker/ruoyi/gateway/Dockerfile similarity index 73% rename from docker/ruoyi/gateway/dockerfile rename to docker/ruoyi/gateway/Dockerfile index 016fdce7f..1185c4cee 100644 --- a/docker/ruoyi/gateway/dockerfile +++ b/docker/ruoyi/gateway/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar -# 鍚姩缃戝叧鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar +# 鍚姩缃戝叧鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"] \ No newline at end of file diff --git a/docker/ruoyi/gateway/jar/readme.txt b/docker/ruoyi/gateway/jar/readme.txt index 5dfbec761..48034ed9e 100644 --- a/docker/ruoyi/gateway/jar/readme.txt +++ b/docker/ruoyi/gateway/jar/readme.txt @@ -1 +1 @@ -存放网关模块打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁缃戝叧妯″潡鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/modules/file/dockerfile b/docker/ruoyi/modules/file/Dockerfile similarity index 73% rename from docker/ruoyi/modules/file/dockerfile rename to docker/ruoyi/modules/file/Dockerfile index 7178d134b..6c0a3b4d8 100644 --- a/docker/ruoyi/modules/file/dockerfile +++ b/docker/ruoyi/modules/file/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-modules-file.jar /home/ruoyi/ruoyi-modules-file.jar -# 鍚姩鏂囦欢鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-modules-file.jar /home/ruoyi/ruoyi-modules-file.jar +# 鍚姩鏂囦欢鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"] \ No newline at end of file diff --git a/docker/ruoyi/modules/file/jar/readme.txt b/docker/ruoyi/modules/file/jar/readme.txt index bf2b2a7fb..787b36405 100644 --- a/docker/ruoyi/modules/file/jar/readme.txt +++ b/docker/ruoyi/modules/file/jar/readme.txt @@ -1 +1 @@ -存放文件服务打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁鏂囦欢鏈嶅姟鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/modules/gen/dockerfile b/docker/ruoyi/modules/gen/Dockerfile similarity index 73% rename from docker/ruoyi/modules/gen/dockerfile rename to docker/ruoyi/modules/gen/Dockerfile index def260d36..cab31da9f 100644 --- a/docker/ruoyi/modules/gen/dockerfile +++ b/docker/ruoyi/modules/gen/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-modules-gen.jar /home/ruoyi/ruoyi-modules-gen.jar -# 鍚姩浠g爜鐢熸垚鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-modules-gen.jar /home/ruoyi/ruoyi-modules-gen.jar +# 鍚姩浠g爜鐢熸垚鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"] \ No newline at end of file diff --git a/docker/ruoyi/modules/gen/jar/readme.txt b/docker/ruoyi/modules/gen/jar/readme.txt index 2f25c0afa..09f84e0b0 100644 --- a/docker/ruoyi/modules/gen/jar/readme.txt +++ b/docker/ruoyi/modules/gen/jar/readme.txt @@ -1 +1 @@ -存放代码生成打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁浠g爜鐢熸垚鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/modules/job/dockerfile b/docker/ruoyi/modules/job/Dockerfile similarity index 73% rename from docker/ruoyi/modules/job/dockerfile rename to docker/ruoyi/modules/job/Dockerfile index 100ecae2a..b8e28b4a5 100644 --- a/docker/ruoyi/modules/job/dockerfile +++ b/docker/ruoyi/modules/job/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-modules-job.jar /home/ruoyi/ruoyi-modules-job.jar -# 鍚姩瀹氭椂浠诲姟鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-modules-job.jar /home/ruoyi/ruoyi-modules-job.jar +# 鍚姩瀹氭椂浠诲姟鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"] \ No newline at end of file diff --git a/docker/ruoyi/modules/job/jar/readme.txt b/docker/ruoyi/modules/job/jar/readme.txt index 58aea0b14..fbf13c4ae 100644 --- a/docker/ruoyi/modules/job/jar/readme.txt +++ b/docker/ruoyi/modules/job/jar/readme.txt @@ -1 +1 @@ -存放定时任务打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁瀹氭椂浠诲姟鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/modules/system/dockerfile b/docker/ruoyi/modules/system/Dockerfile similarity index 73% rename from docker/ruoyi/modules/system/dockerfile rename to docker/ruoyi/modules/system/Dockerfile index ced23b2ec..45270c0c9 100644 --- a/docker/ruoyi/modules/system/dockerfile +++ b/docker/ruoyi/modules/system/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar -# 鍚姩绯荤粺鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar +# 鍚姩绯荤粺鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"] \ No newline at end of file diff --git a/docker/ruoyi/modules/system/jar/readme.txt b/docker/ruoyi/modules/system/jar/readme.txt index cfc2a9277..4c68bab5b 100644 --- a/docker/ruoyi/modules/system/jar/readme.txt +++ b/docker/ruoyi/modules/system/jar/readme.txt @@ -1 +1 @@ -存放系统模块打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁绯荤粺妯″潡鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/docker/ruoyi/visual/monitor/dockerfile b/docker/ruoyi/visual/monitor/Dockerfile similarity index 73% rename from docker/ruoyi/visual/monitor/dockerfile rename to docker/ruoyi/visual/monitor/Dockerfile index ea9370a32..cc7cfbbaf 100644 --- a/docker/ruoyi/visual/monitor/dockerfile +++ b/docker/ruoyi/visual/monitor/Dockerfile @@ -1,15 +1,15 @@ -# 鍩虹闀滃儚 -FROM openjdk:8-jre -# author -MAINTAINER ruoyi - -# 鎸傝浇鐩綍 -VOLUME /home/ruoyi -# 鍒涘缓鐩綍 -RUN mkdir -p /home/ruoyi -# 鎸囧畾璺緞 -WORKDIR /home/ruoyi -# 澶嶅埗jar鏂囦欢鍒拌矾寰 -COPY ./jar/ruoyi-visual-monitor.jar /home/ruoyi/ruoyi-visual-monitor.jar -# 鍚姩绯荤粺鏈嶅姟 +# 鍩虹闀滃儚 +FROM openjdk:8-jre +# author +LABEL org.opencontainers.image.authors="ruoyi" + +# 鎸傝浇鐩綍 +VOLUME /home/ruoyi +# 鍒涘缓鐩綍 +RUN mkdir -p /home/ruoyi +# 鎸囧畾璺緞 +WORKDIR /home/ruoyi +# 澶嶅埗jar鏂囦欢鍒拌矾寰 +COPY ./jar/ruoyi-visual-monitor.jar /home/ruoyi/ruoyi-visual-monitor.jar +# 鍚姩绯荤粺鏈嶅姟 ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"] \ No newline at end of file diff --git a/docker/ruoyi/visual/monitor/jar/readme.txt b/docker/ruoyi/visual/monitor/jar/readme.txt index 62b284102..897e01d54 100644 --- a/docker/ruoyi/visual/monitor/jar/readme.txt +++ b/docker/ruoyi/visual/monitor/jar/readme.txt @@ -1 +1 @@ -存放监控中心打包好的jar文件,用于docker启动应用。 \ No newline at end of file +瀛樻斁鐩戞帶涓績鎵撳寘濂界殑jar鏂囦欢锛岀敤浜巇ocker鍚姩搴旂敤銆 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 6152e1bdf..aaa6b01b8 100644 --- a/pom.xml +++ b/pom.xml @@ -2,330 +2,373 @@ - 4.0.0 - - com.ruoyi - ruoyi - 3.6.6 - - ruoyi - http://www.ruoyi.vip - 鑻ヤ緷寰湇鍔$郴缁 - - - 3.6.6 - UTF-8 - UTF-8 - 1.8 - 2.7.18 - 2021.0.9 - 2021.0.6.1 - 2.7.16 - 1.27.2 - 2.3.3 - 2.0.0 - 1.2.23 - 4.3.1 - 2.19.0 - 2.3 - 2.0.57 - 0.9.1 - 8.2.2 - 4.1.2 - 1.6.9 - 2.14.4 - - 9.0.112 - 1.2.13 - 5.3.39 - - - - - - - - - org.springframework - spring-framework-bom - ${spring-framework.version} - pom - import - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - com.alibaba.cloud - spring-cloud-alibaba-dependencies - ${spring-cloud-alibaba.version} - pom - import - - - - - org.springframework.boot - spring-boot-dependencies - ${spring-boot.version} - pom - import - - - - - ch.qos.logback - logback-core - ${logback.version} - - - - ch.qos.logback - logback-classic - ${logback.version} - - - - - org.apache.tomcat.embed - tomcat-embed-core - ${tomcat.version} - - - - org.apache.tomcat.embed - tomcat-embed-el - ${tomcat.version} - - - - org.apache.tomcat.embed - tomcat-embed-websocket - ${tomcat.version} - - - - - com.github.tobato - fastdfs-client - ${tobato.version} - - - - - org.springdoc - springdoc-openapi-ui - ${springdoc.version} - - - - - pro.fessional - kaptcha - ${kaptcha.version} - - - - - com.github.pagehelper - pagehelper-spring-boot-starter - ${pagehelper.boot.version} - - - - - commons-io - commons-io - ${commons.io.version} - - - - - org.apache.poi - poi-ooxml - ${poi.version} - - - - - org.apache.velocity - velocity-engine-core - ${velocity.version} - - - - - com.alibaba.fastjson2 - fastjson2 - ${fastjson.version} - - - - - io.jsonwebtoken - jjwt - ${jjwt.version} - - - - - com.alibaba - transmittable-thread-local - ${transmittable-thread-local.version} - - - - - com.ruoyi - ruoyi-common-core - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-swagger - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-security - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-sensitive - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-datascope - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-datasource - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-seata - ${ruoyi.version} - - - - - com.ruoyi - ruoyi-common-log - ${ruoyi.version} - + 4.0.0 + + com.ruoyi + ruoyi + 3.6.6 + + ruoyi + http://www.ruoyi.vip + 鑻ヤ緷寰湇鍔$郴缁 + + + 3.6.6 + UTF-8 + UTF-8 + 1.8 + 2.7.18 + 2021.0.9 + 2021.0.6.1 + 2.7.16 + 1.27.2 + 2.3.3 + 2.0.0 + 1.2.23 + 4.3.1 + 2.19.0 + 2.3 + 2.0.57 + 0.9.1 + 8.2.2 + 4.1.2 + 1.6.9 + 2.14.4 + + 9.0.112 + 1.2.13 + 5.3.39 + + 5.4 + + + + + - - - com.ruoyi - ruoyi-common-redis - ${ruoyi.version} - + + + org.springframework + spring-framework-bom + ${spring-framework.version} + pom + import + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + ch.qos.logback + logback-core + ${logback.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + + + + + org.apache.tomcat.embed + tomcat-embed-core + ${tomcat.version} + + + + org.apache.tomcat.embed + tomcat-embed-el + ${tomcat.version} + + + + org.apache.tomcat.embed + tomcat-embed-websocket + ${tomcat.version} + + + + + com.github.tobato + fastdfs-client + ${tobato.version} + + + + + org.springdoc + springdoc-openapi-ui + ${springdoc.version} + + + + + pro.fessional + kaptcha + ${kaptcha.version} + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.boot.version} + + + + + commons-io + commons-io + ${commons.io.version} + + + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + + org.apache.velocity + velocity-engine-core + ${velocity.version} + + + + + com.alibaba.fastjson2 + fastjson2 + ${fastjson.version} + + + + + io.jsonwebtoken + jjwt + ${jjwt.version} + + + + + com.alibaba + transmittable-thread-local + ${transmittable-thread-local.version} + + + + + com.ruoyi + ruoyi-common-core + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-swagger + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-security + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-sensitive + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-datascope + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-datasource + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-seata + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-log + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common-redis + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-api-system + ${ruoyi.version} + - + + + + + ruoyi-auth + ruoyi-gateway + ruoyi-visual + ruoyi-modules + ruoyi-api + ruoyi-common + + pom + + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + com.cosium.code + git-code-format-maven-plugin + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + com.cosium.code + git-code-format-maven-plugin + ${git-code-format-maven-plugin.version} + + + install-formatter-hook + + install-hooks + + + + git-code-format + validate + + format-code + validate-code-format + + + + - com.ruoyi - ruoyi-api-system - ${ruoyi.version} + com.cosium.code + google-java-format + ${git-code-format-maven-plugin.version} - - - - - - ruoyi-auth - ruoyi-gateway - ruoyi-visual - ruoyi-modules - ruoyi-api - ruoyi-common - - pom - - - - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${java.version} - ${java.version} - ${project.build.sourceEncoding} - - - - - - - org.springframework.boot - spring-boot-maven-plugin - ${spring-boot.version} - - - - repackage - - - - - - - - - - - public - aliyun nexus - https://maven.aliyun.com/repository/public - - true - - - - - - - public - aliyun nexus - https://maven.aliyun.com/repository/public - - true - - - false - - - - - \ No newline at end of file + + + + false + true + false + false + false + + + + + + + + + + public + aliyun nexus + https://maven.aliyun.com/repository/public + + true + + + + + + + public + aliyun nexus + https://maven.aliyun.com/repository/public + + true + + + false + + + + + diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java index 688bb4684..77c8d802b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java @@ -1,5 +1,9 @@ package com.ruoyi.system.api; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.SysFile; +import com.ruoyi.system.api.factory.RemoteFileFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -7,34 +11,32 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.constant.ServiceNameConstants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.domain.SysFile; -import com.ruoyi.system.api.factory.RemoteFileFallbackFactory; /** * 鏂囦欢鏈嶅姟 - * + * * @author ruoyi */ -@FeignClient(contextId = "remoteFileService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class) -public interface RemoteFileService -{ - /** - * 涓婁紶鏂囦欢 - * - * @param file 鏂囦欢淇℃伅 - * @return 缁撴灉 - */ - @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R upload(@RequestPart(value = "file") MultipartFile file); +@FeignClient( + contextId = "remoteFileService", + value = ServiceNameConstants.FILE_SERVICE, + fallbackFactory = RemoteFileFallbackFactory.class) +public interface RemoteFileService { + /** + * 涓婁紶鏂囦欢 + * + * @param file 鏂囦欢淇℃伅 + * @return 缁撴灉 + */ + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R upload(@RequestPart(value = "file") MultipartFile file); - /** - * 鍒犻櫎鏂囦欢 - * - * @param fileUrl 鏂囦欢鍦板潃 - * @return 缁撴灉 - */ - @DeleteMapping(value = "/delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) - public R delete(@RequestParam("fileUrl") String fileUrl); + /** + * 鍒犻櫎鏂囦欢 + * + * @param fileUrl 鏂囦欢鍦板潃 + * @return 缁撴灉 + */ + @DeleteMapping(value = "/delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + public R delete(@RequestParam("fileUrl") String fileUrl); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java index 3402afad8..c71dbdba3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java @@ -1,41 +1,48 @@ package com.ruoyi.system.api; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.api.factory.RemoteLogFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; /** * 鏃ュ織鏈嶅姟 - * + * * @author ruoyi */ -@FeignClient(contextId = "remoteLogService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteLogFallbackFactory.class) -public interface RemoteLogService -{ - /** - * 淇濆瓨绯荤粺鏃ュ織 - * - * @param sysOperLog 鏃ュ織瀹炰綋 - * @param source 璇锋眰鏉ユ簮 - * @return 缁撴灉 - */ - @PostMapping("/operlog") - public R saveLog(@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; +@FeignClient( + contextId = "remoteLogService", + value = ServiceNameConstants.SYSTEM_SERVICE, + fallbackFactory = RemoteLogFallbackFactory.class) +public interface RemoteLogService { + /** + * 淇濆瓨绯荤粺鏃ュ織 + * + * @param sysOperLog 鏃ュ織瀹炰綋 + * @param source 璇锋眰鏉ユ簮 + * @return 缁撴灉 + */ + @PostMapping("/operlog") + public R saveLog( + @RequestBody SysOperLog sysOperLog, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source) + throws Exception; - /** - * 淇濆瓨璁块棶璁板綍 - * - * @param sysLogininfor 璁块棶瀹炰綋 - * @param source 璇锋眰鏉ユ簮 - * @return 缁撴灉 - */ - @PostMapping("/logininfor") - public R saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 淇濆瓨璁块棶璁板綍 + * + * @param sysLogininfor 璁块棶瀹炰綋 + * @param source 璇锋眰鏉ユ簮 + * @return 缁撴灉 + */ + @PostMapping("/logininfor") + public R saveLogininfor( + @RequestBody SysLogininfor sysLogininfor, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java index c1a94b3d5..4b5755d02 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java @@ -1,5 +1,11 @@ package com.ruoyi.system.api; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; +import com.ruoyi.system.api.model.LoginUser; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -7,48 +13,48 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; -import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.constant.ServiceNameConstants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; -import com.ruoyi.system.api.model.LoginUser; /** * 鐢ㄦ埛鏈嶅姟 - * + * * @author ruoyi */ -@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) -public interface RemoteUserService -{ - /** - * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴蜂俊鎭 - * - * @param username 鐢ㄦ埛鍚 - * @param source 璇锋眰鏉ユ簮 - * @return 缁撴灉 - */ - @GetMapping("/user/info/{username}") - public R getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +@FeignClient( + contextId = "remoteUserService", + value = ServiceNameConstants.SYSTEM_SERVICE, + fallbackFactory = RemoteUserFallbackFactory.class) +public interface RemoteUserService { + /** + * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴蜂俊鎭 + * + * @param username 鐢ㄦ埛鍚 + * @param source 璇锋眰鏉ユ簮 + * @return 缁撴灉 + */ + @GetMapping("/user/info/{username}") + public R getUserInfo( + @PathVariable("username") String username, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - /** - * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * - * @param sysUser 鐢ㄦ埛淇℃伅 - * @param source 璇锋眰鏉ユ簮 - * @return 缁撴灉 - */ - @PostMapping("/user/register") - public R registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 娉ㄥ唽鐢ㄦ埛淇℃伅 + * + * @param sysUser 鐢ㄦ埛淇℃伅 + * @param source 璇锋眰鏉ユ簮 + * @return 缁撴灉 + */ + @PostMapping("/user/register") + public R registerUserInfo( + @RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - /** - * 璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂 - * - * @param sysUser 鐢ㄦ埛淇℃伅 - * @param source 璇锋眰鏉ユ簮 - * @return 缁撴灉 - */ - @PutMapping("/user/recordlogin") - public R recordUserLogin(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂 + * + * @param sysUser 鐢ㄦ埛淇℃伅 + * @param source 璇锋眰鏉ユ簮 + * @return 缁撴灉 + */ + @PutMapping("/user/recordlogin") + public R recordUserLogin( + @RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java index 0290a0afd..59527814c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java @@ -1,5 +1,6 @@ package com.ruoyi.system.api.domain; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.Email; @@ -8,196 +9,170 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 閮ㄩ棬琛 sys_dept - * + * * @author ruoyi */ -public class SysDept extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 閮ㄩ棬ID */ - private Long deptId; - - /** 鐖堕儴闂↖D */ - private Long parentId; - - /** 绁栫骇鍒楄〃 */ - private String ancestors; - - /** 閮ㄩ棬鍚嶇О */ - private String deptName; - - /** 鏄剧ず椤哄簭 */ - private Integer orderNum; - - /** 璐熻矗浜 */ - private String leader; - - /** 鑱旂郴鐢佃瘽 */ - private String phone; - - /** 閭 */ - private String email; - - /** 閮ㄩ棬鐘舵:0姝e父,1鍋滅敤 */ - private String status; - - /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ - private String delFlag; - - /** 鐖堕儴闂ㄥ悕绉 */ - private String parentName; - - /** 瀛愰儴闂 */ - private List children = new ArrayList(); - - public Long getDeptId() - { - return deptId; - } - - public void setDeptId(Long deptId) - { - this.deptId = deptId; - } - - public Long getParentId() - { - return parentId; - } - - public void setParentId(Long parentId) - { - this.parentId = parentId; - } - - public String getAncestors() - { - return ancestors; - } - - public void setAncestors(String ancestors) - { - this.ancestors = ancestors; - } - - @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗") - public String getDeptName() - { - return deptName; - } - - public void setDeptName(String deptName) - { - this.deptName = deptName; - } - - @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") - public Integer getOrderNum() - { - return orderNum; - } - - public void setOrderNum(Integer orderNum) - { - this.orderNum = orderNum; - } - - public String getLeader() - { - return leader; - } - - public void setLeader(String leader) - { - this.leader = leader; - } - - @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃11涓瓧绗") - public String getPhone() - { - return phone; - } - - public void setPhone(String phone) - { - this.phone = phone; - } - - @Email(message = "閭鏍煎紡涓嶆纭") - @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗") - public String getEmail() - { - return email; - } - - public void setEmail(String email) - { - this.email = email; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getDelFlag() - { - return delFlag; - } - - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - public String getParentName() - { - return parentName; - } - - public void setParentName(String parentName) - { - this.parentName = parentName; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("deptId", getDeptId()) - .append("parentId", getParentId()) - .append("ancestors", getAncestors()) - .append("deptName", getDeptName()) - .append("orderNum", getOrderNum()) - .append("leader", getLeader()) - .append("phone", getPhone()) - .append("email", getEmail()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } +public class SysDept extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 閮ㄩ棬ID */ + private Long deptId; + + /** 鐖堕儴闂↖D */ + private Long parentId; + + /** 绁栫骇鍒楄〃 */ + private String ancestors; + + /** 閮ㄩ棬鍚嶇О */ + private String deptName; + + /** 鏄剧ず椤哄簭 */ + private Integer orderNum; + + /** 璐熻矗浜 */ + private String leader; + + /** 鑱旂郴鐢佃瘽 */ + private String phone; + + /** 閭 */ + private String email; + + /** 閮ㄩ棬鐘舵:0姝e父,1鍋滅敤 */ + private String status; + + /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ + private String delFlag; + + /** 鐖堕儴闂ㄥ悕绉 */ + private String parentName; + + /** 瀛愰儴闂 */ + private List children = new ArrayList(); + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗") + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") + public Integer getOrderNum() { + return orderNum; + } + + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + + public String getLeader() { + return leader; + } + + public void setLeader(String leader) { + this.leader = leader; + } + + @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃11涓瓧绗") + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + @Email(message = "閭鏍煎紡涓嶆纭") + @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗") + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("deptId", getDeptId()) + .append("parentId", getParentId()) + .append("ancestors", getAncestors()) + .append("deptName", getDeptName()) + .append("orderNum", getOrderNum()) + .append("leader", getLeader()) + .append("phone", getPhone()) + .append("email", getEmail()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java index 014a6915b..2972796e5 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java @@ -1,176 +1,156 @@ package com.ruoyi.system.api.domain; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.web.domain.BaseEntity; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; /** * 瀛楀吀鏁版嵁琛 sys_dict_data - * + * * @author ruoyi */ -public class SysDictData extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 瀛楀吀缂栫爜 */ - @Excel(name = "瀛楀吀缂栫爜", cellType = ColumnType.NUMERIC) - private Long dictCode; - - /** 瀛楀吀鎺掑簭 */ - @Excel(name = "瀛楀吀鎺掑簭", cellType = ColumnType.NUMERIC) - private Long dictSort; - - /** 瀛楀吀鏍囩 */ - @Excel(name = "瀛楀吀鏍囩") - private String dictLabel; - - /** 瀛楀吀閿 */ - @Excel(name = "瀛楀吀閿") - private String dictValue; - - /** 瀛楀吀绫诲瀷 */ - @Excel(name = "瀛楀吀绫诲瀷") - private String dictType; - - /** 鏍峰紡灞炴э紙鍏朵粬鏍峰紡鎵╁睍锛 */ - private String cssClass; - - /** 琛ㄦ牸瀛楀吀鏍峰紡 */ - private String listClass; - - /** 鏄惁榛樿锛圷鏄 N鍚︼級 */ - @Excel(name = "鏄惁榛樿", readConverterExp = "Y=鏄,N=鍚") - private String isDefault; - - /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ - @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") - private String status; - - public Long getDictCode() - { - return dictCode; - } - - public void setDictCode(Long dictCode) - { - this.dictCode = dictCode; - } - - public Long getDictSort() - { - return dictSort; - } - - public void setDictSort(Long dictSort) - { - this.dictSort = dictSort; - } - - @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getDictLabel() - { - return dictLabel; - } - - public void setDictLabel(String dictLabel) - { - this.dictLabel = dictLabel; - } - - @NotBlank(message = "瀛楀吀閿间笉鑳戒负绌") - @Size(min = 0, max = 100, message = "瀛楀吀閿奸暱搴︿笉鑳借秴杩100涓瓧绗") - public String getDictValue() - { - return dictValue; - } - - public void setDictValue(String dictValue) - { - this.dictValue = dictValue; - } - - @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getDictType() - { - return dictType; - } - - public void setDictType(String dictType) - { - this.dictType = dictType; - } - - @Size(min = 0, max = 100, message = "鏍峰紡灞炴ч暱搴︿笉鑳借秴杩100涓瓧绗") - public String getCssClass() - { - return cssClass; - } - - public void setCssClass(String cssClass) - { - this.cssClass = cssClass; - } - - public String getListClass() - { - return listClass; - } - - public void setListClass(String listClass) - { - this.listClass = listClass; - } - - public boolean getDefault() - { - return UserConstants.YES.equals(this.isDefault); - } - - public String getIsDefault() - { - return isDefault; - } - - public void setIsDefault(String isDefault) - { - this.isDefault = isDefault; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("dictCode", getDictCode()) - .append("dictSort", getDictSort()) - .append("dictLabel", getDictLabel()) - .append("dictValue", getDictValue()) - .append("dictType", getDictType()) - .append("cssClass", getCssClass()) - .append("listClass", getListClass()) - .append("isDefault", getIsDefault()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } +public class SysDictData extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 瀛楀吀缂栫爜 */ + @Excel(name = "瀛楀吀缂栫爜", cellType = ColumnType.NUMERIC) + private Long dictCode; + + /** 瀛楀吀鎺掑簭 */ + @Excel(name = "瀛楀吀鎺掑簭", cellType = ColumnType.NUMERIC) + private Long dictSort; + + /** 瀛楀吀鏍囩 */ + @Excel(name = "瀛楀吀鏍囩") + private String dictLabel; + + /** 瀛楀吀閿 */ + @Excel(name = "瀛楀吀閿") + private String dictValue; + + /** 瀛楀吀绫诲瀷 */ + @Excel(name = "瀛楀吀绫诲瀷") + private String dictType; + + /** 鏍峰紡灞炴э紙鍏朵粬鏍峰紡鎵╁睍锛 */ + private String cssClass; + + /** 琛ㄦ牸瀛楀吀鏍峰紡 */ + private String listClass; + + /** 鏄惁榛樿锛圷鏄 N鍚︼級 */ + @Excel(name = "鏄惁榛樿", readConverterExp = "Y=鏄,N=鍚") + private String isDefault; + + /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ + @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") + private String status; + + public Long getDictCode() { + return dictCode; + } + + public void setDictCode(Long dictCode) { + this.dictCode = dictCode; + } + + public Long getDictSort() { + return dictSort; + } + + public void setDictSort(Long dictSort) { + this.dictSort = dictSort; + } + + @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getDictLabel() { + return dictLabel; + } + + public void setDictLabel(String dictLabel) { + this.dictLabel = dictLabel; + } + + @NotBlank(message = "瀛楀吀閿间笉鑳戒负绌") + @Size(min = 0, max = 100, message = "瀛楀吀閿奸暱搴︿笉鑳借秴杩100涓瓧绗") + public String getDictValue() { + return dictValue; + } + + public void setDictValue(String dictValue) { + this.dictValue = dictValue; + } + + @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getDictType() { + return dictType; + } + + public void setDictType(String dictType) { + this.dictType = dictType; + } + + @Size(min = 0, max = 100, message = "鏍峰紡灞炴ч暱搴︿笉鑳借秴杩100涓瓧绗") + public String getCssClass() { + return cssClass; + } + + public void setCssClass(String cssClass) { + this.cssClass = cssClass; + } + + public String getListClass() { + return listClass; + } + + public void setListClass(String listClass) { + this.listClass = listClass; + } + + public boolean getDefault() { + return UserConstants.YES.equals(this.isDefault); + } + + public String getIsDefault() { + return isDefault; + } + + public void setIsDefault(String isDefault) { + this.isDefault = isDefault; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("dictCode", getDictCode()) + .append("dictSort", getDictSort()) + .append("dictLabel", getDictLabel()) + .append("dictValue", getDictValue()) + .append("dictType", getDictType()) + .append("cssClass", getCssClass()) + .append("listClass", getListClass()) + .append("isDefault", getIsDefault()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java index 4a558745f..d432fb837 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java @@ -1,96 +1,87 @@ package com.ruoyi.system.api.domain; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.web.domain.BaseEntity; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 瀛楀吀绫诲瀷琛 sys_dict_type - * + * * @author ruoyi */ -public class SysDictType extends BaseEntity -{ - private static final long serialVersionUID = 1L; +public class SysDictType extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 瀛楀吀涓婚敭 */ + @Excel(name = "瀛楀吀涓婚敭", cellType = ColumnType.NUMERIC) + private Long dictId; - /** 瀛楀吀涓婚敭 */ - @Excel(name = "瀛楀吀涓婚敭", cellType = ColumnType.NUMERIC) - private Long dictId; + /** 瀛楀吀鍚嶇О */ + @Excel(name = "瀛楀吀鍚嶇О") + private String dictName; - /** 瀛楀吀鍚嶇О */ - @Excel(name = "瀛楀吀鍚嶇О") - private String dictName; + /** 瀛楀吀绫诲瀷 */ + @Excel(name = "瀛楀吀绫诲瀷") + private String dictType; - /** 瀛楀吀绫诲瀷 */ - @Excel(name = "瀛楀吀绫诲瀷") - private String dictType; + /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ + @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") + private String status; - /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ - @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") - private String status; + public Long getDictId() { + return dictId; + } - public Long getDictId() - { - return dictId; - } + public void setDictId(Long dictId) { + this.dictId = dictId; + } - public void setDictId(Long dictId) - { - this.dictId = dictId; - } + @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getDictName() { + return dictName; + } - @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getDictName() - { - return dictName; - } + public void setDictName(String dictName) { + this.dictName = dictName; + } - public void setDictName(String dictName) - { - this.dictName = dictName; - } + @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "瀛楀吀绫诲瀷蹇呴』浠ュ瓧姣嶅紑澶达紝涓斿彧鑳戒负锛堝皬鍐欏瓧姣嶏紝鏁板瓧锛屼笅婊戠嚎锛") + public String getDictType() { + return dictType; + } - @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗") - @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "瀛楀吀绫诲瀷蹇呴』浠ュ瓧姣嶅紑澶达紝涓斿彧鑳戒负锛堝皬鍐欏瓧姣嶏紝鏁板瓧锛屼笅婊戠嚎锛") - public String getDictType() - { - return dictType; - } + public void setDictType(String dictType) { + this.dictType = dictType; + } - public void setDictType(String dictType) - { - this.dictType = dictType; - } + public String getStatus() { + return status; + } - public String getStatus() - { - return status; - } + public void setStatus(String status) { + this.status = status; + } - public void setStatus(String status) - { - this.status = status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("dictId", getDictId()) - .append("dictName", getDictName()) - .append("dictType", getDictType()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("dictId", getDictId()) + .append("dictName", getDictName()) + .append("dictType", getDictType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysFile.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysFile.java index 440df49d0..f79c33b9e 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysFile.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysFile.java @@ -5,46 +5,37 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** * 鏂囦欢淇℃伅 - * + * * @author ruoyi */ -public class SysFile -{ - /** - * 鏂囦欢鍚嶇О - */ - private String name; - - /** - * 鏂囦欢鍦板潃 - */ - private String url; - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } - - public String getUrl() - { - return url; - } - - public void setUrl(String url) - { - this.url = url; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("name", getName()) - .append("url", getUrl()) - .toString(); - } +public class SysFile { + /** 鏂囦欢鍚嶇О */ + private String name; + + /** 鏂囦欢鍦板潃 */ + private String url; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("name", getName()) + .append("url", getUrl()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysLogininfor.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysLogininfor.java index e586c930c..c2254013a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysLogininfor.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysLogininfor.java @@ -1,102 +1,89 @@ package com.ruoyi.system.api.domain; -import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; +import java.util.Date; /** * 绯荤粺璁块棶璁板綍琛 sys_logininfor - * + * * @author ruoyi */ -public class SysLogininfor extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** ID */ - @Excel(name = "搴忓彿", cellType = ColumnType.NUMERIC) - private Long infoId; - - /** 鐢ㄦ埛璐﹀彿 */ - @Excel(name = "鐢ㄦ埛璐﹀彿") - private String userName; - - /** 鐘舵 0鎴愬姛 1澶辫触 */ - @Excel(name = "鐘舵", readConverterExp = "0=鎴愬姛,1=澶辫触") - private String status; - - /** 鍦板潃 */ - @Excel(name = "鍦板潃") - private String ipaddr; - - /** 鎻忚堪 */ - @Excel(name = "鎻忚堪") - private String msg; - - /** 璁块棶鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "璁块棶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date accessTime; - - public Long getInfoId() - { - return infoId; - } - - public void setInfoId(Long infoId) - { - this.infoId = infoId; - } - - public String getUserName() - { - return userName; - } - - public void setUserName(String userName) - { - this.userName = userName; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getIpaddr() - { - return ipaddr; - } - - public void setIpaddr(String ipaddr) - { - this.ipaddr = ipaddr; - } - - public String getMsg() - { - return msg; - } - - public void setMsg(String msg) - { - this.msg = msg; - } - - public Date getAccessTime() - { - return accessTime; - } - - public void setAccessTime(Date accessTime) - { - this.accessTime = accessTime; - } -} \ No newline at end of file +public class SysLogininfor extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "搴忓彿", cellType = ColumnType.NUMERIC) + private Long infoId; + + /** 鐢ㄦ埛璐﹀彿 */ + @Excel(name = "鐢ㄦ埛璐﹀彿") + private String userName; + + /** 鐘舵 0鎴愬姛 1澶辫触 */ + @Excel(name = "鐘舵", readConverterExp = "0=鎴愬姛,1=澶辫触") + private String status; + + /** 鍦板潃 */ + @Excel(name = "鍦板潃") + private String ipaddr; + + /** 鎻忚堪 */ + @Excel(name = "鎻忚堪") + private String msg; + + /** 璁块棶鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "璁块棶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date accessTime; + + public Long getInfoId() { + return infoId; + } + + public void setInfoId(Long infoId) { + this.infoId = infoId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getIpaddr() { + return ipaddr; + } + + public void setIpaddr(String ipaddr) { + this.ipaddr = ipaddr; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Date getAccessTime() { + return accessTime; + } + + public void setAccessTime(Date accessTime) { + this.accessTime = accessTime; + } +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java index d815cb03d..1a7daddfa 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java @@ -1,255 +1,220 @@ package com.ruoyi.system.api.domain; -import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; +import java.util.Date; /** * 鎿嶄綔鏃ュ織璁板綍琛 oper_log - * + * * @author ruoyi */ -public class SysOperLog extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 鏃ュ織涓婚敭 */ - @Excel(name = "鎿嶄綔搴忓彿", cellType = ColumnType.NUMERIC) - private Long operId; - - /** 鎿嶄綔妯″潡 */ - @Excel(name = "鎿嶄綔妯″潡") - private String title; - - /** 涓氬姟绫诲瀷锛0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛 */ - @Excel(name = "涓氬姟绫诲瀷", readConverterExp = "0=鍏跺畠,1=鏂板,2=淇敼,3=鍒犻櫎,4=鎺堟潈,5=瀵煎嚭,6=瀵煎叆,7=寮洪,8=鐢熸垚浠g爜,9=娓呯┖鏁版嵁") - private Integer businessType; - - /** 涓氬姟绫诲瀷鏁扮粍 */ - private Integer[] businessTypes; - - /** 璇锋眰鏂规硶 */ - @Excel(name = "璇锋眰鏂规硶") - private String method; - - /** 璇锋眰鏂瑰紡 */ - @Excel(name = "璇锋眰鏂瑰紡") - private String requestMethod; - - /** 鎿嶄綔绫诲埆锛0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級 */ - @Excel(name = "鎿嶄綔绫诲埆", readConverterExp = "0=鍏跺畠,1=鍚庡彴鐢ㄦ埛,2=鎵嬫満绔敤鎴") - private Integer operatorType; - - /** 鎿嶄綔浜哄憳 */ - @Excel(name = "鎿嶄綔浜哄憳") - private String operName; - - /** 閮ㄩ棬鍚嶇О */ - @Excel(name = "閮ㄩ棬鍚嶇О") - private String deptName; - - /** 璇锋眰url */ - @Excel(name = "璇锋眰鍦板潃") - private String operUrl; - - /** 鎿嶄綔鍦板潃 */ - @Excel(name = "鎿嶄綔鍦板潃") - private String operIp; - - /** 璇锋眰鍙傛暟 */ - @Excel(name = "璇锋眰鍙傛暟") - private String operParam; - - /** 杩斿洖鍙傛暟 */ - @Excel(name = "杩斿洖鍙傛暟") - private String jsonResult; - - /** 鎿嶄綔鐘舵侊紙0姝e父 1寮傚父锛 */ - @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=寮傚父") - private Integer status; - - /** 閿欒娑堟伅 */ - @Excel(name = "閿欒娑堟伅") - private String errorMsg; - - /** 鎿嶄綔鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "鎿嶄綔鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date operTime; - - /** 娑堣楁椂闂 */ - @Excel(name = "娑堣楁椂闂", suffix = "姣") - private Long costTime; - - public Long getOperId() - { - return operId; - } - - public void setOperId(Long operId) - { - this.operId = operId; - } - - public String getTitle() - { - return title; - } - - public void setTitle(String title) - { - this.title = title; - } - - public Integer getBusinessType() - { - return businessType; - } - - public void setBusinessType(Integer businessType) - { - this.businessType = businessType; - } - - public Integer[] getBusinessTypes() - { - return businessTypes; - } - - public void setBusinessTypes(Integer[] businessTypes) - { - this.businessTypes = businessTypes; - } - - public String getMethod() - { - return method; - } - - public void setMethod(String method) - { - this.method = method; - } - - public String getRequestMethod() - { - return requestMethod; - } - - public void setRequestMethod(String requestMethod) - { - this.requestMethod = requestMethod; - } - - public Integer getOperatorType() - { - return operatorType; - } - - public void setOperatorType(Integer operatorType) - { - this.operatorType = operatorType; - } - - public String getOperName() - { - return operName; - } - - public void setOperName(String operName) - { - this.operName = operName; - } - - public String getDeptName() - { - return deptName; - } - - public void setDeptName(String deptName) - { - this.deptName = deptName; - } - - public String getOperUrl() - { - return operUrl; - } - - public void setOperUrl(String operUrl) - { - this.operUrl = operUrl; - } - - public String getOperIp() - { - return operIp; - } - - public void setOperIp(String operIp) - { - this.operIp = operIp; - } - - public String getOperParam() - { - return operParam; - } - - public void setOperParam(String operParam) - { - this.operParam = operParam; - } - - public String getJsonResult() - { - return jsonResult; - } - - public void setJsonResult(String jsonResult) - { - this.jsonResult = jsonResult; - } - - public Integer getStatus() - { - return status; - } - - public void setStatus(Integer status) - { - this.status = status; - } - - public String getErrorMsg() - { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) - { - this.errorMsg = errorMsg; - } - - public Date getOperTime() - { - return operTime; - } - - public void setOperTime(Date operTime) - { - this.operTime = operTime; - } - - public Long getCostTime() - { - return costTime; - } - - public void setCostTime(Long costTime) - { - this.costTime = costTime; - } +public class SysOperLog extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鏃ュ織涓婚敭 */ + @Excel(name = "鎿嶄綔搴忓彿", cellType = ColumnType.NUMERIC) + private Long operId; + + /** 鎿嶄綔妯″潡 */ + @Excel(name = "鎿嶄綔妯″潡") + private String title; + + /** 涓氬姟绫诲瀷锛0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛 */ + @Excel(name = "涓氬姟绫诲瀷", readConverterExp = "0=鍏跺畠,1=鏂板,2=淇敼,3=鍒犻櫎,4=鎺堟潈,5=瀵煎嚭,6=瀵煎叆,7=寮洪,8=鐢熸垚浠g爜,9=娓呯┖鏁版嵁") + private Integer businessType; + + /** 涓氬姟绫诲瀷鏁扮粍 */ + private Integer[] businessTypes; + + /** 璇锋眰鏂规硶 */ + @Excel(name = "璇锋眰鏂规硶") + private String method; + + /** 璇锋眰鏂瑰紡 */ + @Excel(name = "璇锋眰鏂瑰紡") + private String requestMethod; + + /** 鎿嶄綔绫诲埆锛0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級 */ + @Excel(name = "鎿嶄綔绫诲埆", readConverterExp = "0=鍏跺畠,1=鍚庡彴鐢ㄦ埛,2=鎵嬫満绔敤鎴") + private Integer operatorType; + + /** 鎿嶄綔浜哄憳 */ + @Excel(name = "鎿嶄綔浜哄憳") + private String operName; + + /** 閮ㄩ棬鍚嶇О */ + @Excel(name = "閮ㄩ棬鍚嶇О") + private String deptName; + + /** 璇锋眰url */ + @Excel(name = "璇锋眰鍦板潃") + private String operUrl; + + /** 鎿嶄綔鍦板潃 */ + @Excel(name = "鎿嶄綔鍦板潃") + private String operIp; + + /** 璇锋眰鍙傛暟 */ + @Excel(name = "璇锋眰鍙傛暟") + private String operParam; + + /** 杩斿洖鍙傛暟 */ + @Excel(name = "杩斿洖鍙傛暟") + private String jsonResult; + + /** 鎿嶄綔鐘舵侊紙0姝e父 1寮傚父锛 */ + @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=寮傚父") + private Integer status; + + /** 閿欒娑堟伅 */ + @Excel(name = "閿欒娑堟伅") + private String errorMsg; + + /** 鎿嶄綔鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "鎿嶄綔鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operTime; + + /** 娑堣楁椂闂 */ + @Excel(name = "娑堣楁椂闂", suffix = "姣") + private Long costTime; + + public Long getOperId() { + return operId; + } + + public void setOperId(Long operId) { + this.operId = operId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getBusinessType() { + return businessType; + } + + public void setBusinessType(Integer businessType) { + this.businessType = businessType; + } + + public Integer[] getBusinessTypes() { + return businessTypes; + } + + public void setBusinessTypes(Integer[] businessTypes) { + this.businessTypes = businessTypes; + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method; + } + + public String getRequestMethod() { + return requestMethod; + } + + public void setRequestMethod(String requestMethod) { + this.requestMethod = requestMethod; + } + + public Integer getOperatorType() { + return operatorType; + } + + public void setOperatorType(Integer operatorType) { + this.operatorType = operatorType; + } + + public String getOperName() { + return operName; + } + + public void setOperName(String operName) { + this.operName = operName; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getOperUrl() { + return operUrl; + } + + public void setOperUrl(String operUrl) { + this.operUrl = operUrl; + } + + public String getOperIp() { + return operIp; + } + + public void setOperIp(String operIp) { + this.operIp = operIp; + } + + public String getOperParam() { + return operParam; + } + + public void setOperParam(String operParam) { + this.operParam = operParam; + } + + public String getJsonResult() { + return jsonResult; + } + + public void setJsonResult(String jsonResult) { + this.jsonResult = jsonResult; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public Date getOperTime() { + return operTime; + } + + public void setOperTime(Date operTime) { + this.operTime = operTime; + } + + public Long getCostTime() { + return costTime; + } + + public void setCostTime(Long costTime) { + this.costTime = costTime; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java index f224b4222..4e4d4d814 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java @@ -1,241 +1,208 @@ package com.ruoyi.system.api.domain; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.Set; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 瑙掕壊琛 sys_role - * + * * @author ruoyi */ -public class SysRole extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 瑙掕壊ID */ - @Excel(name = "瑙掕壊搴忓彿", cellType = ColumnType.NUMERIC) - private Long roleId; - - /** 瑙掕壊鍚嶇О */ - @Excel(name = "瑙掕壊鍚嶇О") - private String roleName; - - /** 瑙掕壊鏉冮檺 */ - @Excel(name = "瑙掕壊鏉冮檺") - private String roleKey; - - /** 瑙掕壊鎺掑簭 */ - @Excel(name = "瑙掕壊鎺掑簭") - private Integer roleSort; - - /** 鏁版嵁鑼冨洿锛1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛 */ - @Excel(name = "鏁版嵁鑼冨洿", readConverterExp = "1=鎵鏈夋暟鎹潈闄,2=鑷畾涔夋暟鎹潈闄,3=鏈儴闂ㄦ暟鎹潈闄,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄") - private String dataScope; - - /** 鑿滃崟鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級 */ - private boolean menuCheckStrictly; - - /** 閮ㄩ棬鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀 锛 */ - private boolean deptCheckStrictly; - - /** 瑙掕壊鐘舵侊紙0姝e父 1鍋滅敤锛 */ - @Excel(name = "瑙掕壊鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") - private String status; - - /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ - private String delFlag; - - /** 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇 榛樿涓嶅瓨鍦 */ - private boolean flag = false; - - /** 鑿滃崟缁 */ - private Long[] menuIds; - - /** 閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛 */ - private Long[] deptIds; - - /** 瑙掕壊鑿滃崟鏉冮檺 */ - private Set permissions; - - public SysRole() - { - - } - - public SysRole(Long roleId) - { - this.roleId = roleId; - } - - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - public boolean isAdmin() - { - return isAdmin(this.roleId); - } - - public static boolean isAdmin(Long roleId) - { - return roleId != null && 1L == roleId; - } - - @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗") - public String getRoleName() - { - return roleName; - } - - public void setRoleName(String roleName) - { - this.roleName = roleName; - } - - @NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getRoleKey() - { - return roleKey; - } - - public void setRoleKey(String roleKey) - { - this.roleKey = roleKey; - } - - @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") - public Integer getRoleSort() - { - return roleSort; - } - - public void setRoleSort(Integer roleSort) - { - this.roleSort = roleSort; - } - - public String getDataScope() - { - return dataScope; - } - - public void setDataScope(String dataScope) - { - this.dataScope = dataScope; - } - - public boolean isMenuCheckStrictly() - { - return menuCheckStrictly; - } - - public void setMenuCheckStrictly(boolean menuCheckStrictly) - { - this.menuCheckStrictly = menuCheckStrictly; - } - - public boolean isDeptCheckStrictly() - { - return deptCheckStrictly; - } - - public void setDeptCheckStrictly(boolean deptCheckStrictly) - { - this.deptCheckStrictly = deptCheckStrictly; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getDelFlag() - { - return delFlag; - } - - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - public boolean isFlag() - { - return flag; - } - - public void setFlag(boolean flag) - { - this.flag = flag; - } - - public Long[] getMenuIds() - { - return menuIds; - } - - public void setMenuIds(Long[] menuIds) - { - this.menuIds = menuIds; - } - - public Long[] getDeptIds() - { - return deptIds; - } - - public void setDeptIds(Long[] deptIds) - { - this.deptIds = deptIds; - } - - public Set getPermissions() - { - return permissions; - } - - public void setPermissions(Set permissions) - { - this.permissions = permissions; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("roleName", getRoleName()) - .append("roleKey", getRoleKey()) - .append("roleSort", getRoleSort()) - .append("dataScope", getDataScope()) - .append("menuCheckStrictly", isMenuCheckStrictly()) - .append("deptCheckStrictly", isDeptCheckStrictly()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } +public class SysRole extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 瑙掕壊ID */ + @Excel(name = "瑙掕壊搴忓彿", cellType = ColumnType.NUMERIC) + private Long roleId; + + /** 瑙掕壊鍚嶇О */ + @Excel(name = "瑙掕壊鍚嶇О") + private String roleName; + + /** 瑙掕壊鏉冮檺 */ + @Excel(name = "瑙掕壊鏉冮檺") + private String roleKey; + + /** 瑙掕壊鎺掑簭 */ + @Excel(name = "瑙掕壊鎺掑簭") + private Integer roleSort; + + /** 鏁版嵁鑼冨洿锛1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛 */ + @Excel(name = "鏁版嵁鑼冨洿", readConverterExp = "1=鎵鏈夋暟鎹潈闄,2=鑷畾涔夋暟鎹潈闄,3=鏈儴闂ㄦ暟鎹潈闄,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄") + private String dataScope; + + /** 鑿滃崟鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級 */ + private boolean menuCheckStrictly; + + /** 閮ㄩ棬鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀 锛 */ + private boolean deptCheckStrictly; + + /** 瑙掕壊鐘舵侊紙0姝e父 1鍋滅敤锛 */ + @Excel(name = "瑙掕壊鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") + private String status; + + /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ + private String delFlag; + + /** 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇 榛樿涓嶅瓨鍦 */ + private boolean flag = false; + + /** 鑿滃崟缁 */ + private Long[] menuIds; + + /** 閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛 */ + private Long[] deptIds; + + /** 瑙掕壊鑿滃崟鏉冮檺 */ + private Set permissions; + + public SysRole() {} + + public SysRole(Long roleId) { + this.roleId = roleId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public boolean isAdmin() { + return isAdmin(this.roleId); + } + + public static boolean isAdmin(Long roleId) { + return roleId != null && 1L == roleId; + } + + @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗") + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + @NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getRoleKey() { + return roleKey; + } + + public void setRoleKey(String roleKey) { + this.roleKey = roleKey; + } + + @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") + public Integer getRoleSort() { + return roleSort; + } + + public void setRoleSort(Integer roleSort) { + this.roleSort = roleSort; + } + + public String getDataScope() { + return dataScope; + } + + public void setDataScope(String dataScope) { + this.dataScope = dataScope; + } + + public boolean isMenuCheckStrictly() { + return menuCheckStrictly; + } + + public void setMenuCheckStrictly(boolean menuCheckStrictly) { + this.menuCheckStrictly = menuCheckStrictly; + } + + public boolean isDeptCheckStrictly() { + return deptCheckStrictly; + } + + public void setDeptCheckStrictly(boolean deptCheckStrictly) { + this.deptCheckStrictly = deptCheckStrictly; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public boolean isFlag() { + return flag; + } + + public void setFlag(boolean flag) { + this.flag = flag; + } + + public Long[] getMenuIds() { + return menuIds; + } + + public void setMenuIds(Long[] menuIds) { + this.menuIds = menuIds; + } + + public Long[] getDeptIds() { + return deptIds; + } + + public void setDeptIds(Long[] deptIds) { + this.deptIds = deptIds; + } + + public Set getPermissions() { + return permissions; + } + + public void setPermissions(Set permissions) { + this.permissions = permissions; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("roleName", getRoleName()) + .append("roleKey", getRoleKey()) + .append("roleSort", getRoleSort()) + .append("dataScope", getDataScope()) + .append("menuCheckStrictly", isMenuCheckStrictly()) + .append("deptCheckStrictly", isDeptCheckStrictly()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java index 0658deef7..d8b34da1a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java @@ -1,339 +1,294 @@ package com.ruoyi.system.api.domain; -import java.util.Date; -import java.util.List; -import javax.validation.constraints.*; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.annotation.Excel.Type; -import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.annotation.Excels; +import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.xss.Xss; +import java.util.Date; +import java.util.List; +import javax.validation.constraints.*; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; /** * 鐢ㄦ埛瀵硅薄 sys_user - * + * * @author ruoyi */ -public class SysUser extends BaseEntity -{ - private static final long serialVersionUID = 1L; +public class SysUser extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鐢ㄦ埛ID */ + @Excel(name = "鐢ㄦ埛搴忓彿", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "鐢ㄦ埛缂栧彿") + private Long userId; + + /** 閮ㄩ棬ID */ + @Excel(name = "閮ㄩ棬缂栧彿", type = Type.IMPORT) + private Long deptId; + + /** 鐢ㄦ埛璐﹀彿 */ + @Excel(name = "鐧诲綍鍚嶇О") + private String userName; + + /** 鐢ㄦ埛鏄电О */ + @Excel(name = "鐢ㄦ埛鍚嶇О") + private String nickName; + + /** 鐢ㄦ埛閭 */ + @Excel(name = "鐢ㄦ埛閭") + private String email; + + /** 鎵嬫満鍙风爜 */ + @Excel(name = "鎵嬫満鍙风爜", cellType = ColumnType.TEXT) + private String phonenumber; + + /** 鐢ㄦ埛鎬у埆 */ + @Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢,1=濂,2=鏈煡") + private String sex; + + /** 鐢ㄦ埛澶村儚 */ + private String avatar; + + /** 瀵嗙爜 */ + private String password; + + /** 璐﹀彿鐘舵侊紙0姝e父 1鍋滅敤锛 */ + @Excel(name = "璐﹀彿鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") + private String status; + + /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ + private String delFlag; + + /** 鏈鍚庣櫥褰旾P */ + @Excel(name = "鏈鍚庣櫥褰旾P", type = Type.EXPORT) + private String loginIp; + + /** 鏈鍚庣櫥褰曟椂闂 */ + @Excel(name = "鏈鍚庣櫥褰曟椂闂", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) + private Date loginDate; + + /** 瀵嗙爜鏈鍚庢洿鏂版椂闂 */ + private Date pwdUpdateDate; + + /** 閮ㄩ棬瀵硅薄 */ + @Excels({ + @Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Type.EXPORT), + @Excel(name = "閮ㄩ棬璐熻矗浜", targetAttr = "leader", type = Type.EXPORT) + }) + private SysDept dept; + + /** 瑙掕壊瀵硅薄 */ + private List roles; + + /** 瑙掕壊缁 */ + private Long[] roleIds; + + /** 宀椾綅缁 */ + private Long[] postIds; + + /** 瑙掕壊ID */ + private Long roleId; + + public SysUser() {} + + public SysUser(Long userId) { + this.userId = userId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public boolean isAdmin() { + return isAdmin(this.userId); + } + + public static boolean isAdmin(Long userId) { + return UserConstants.isAdmin(userId); + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + @Xss(message = "鐢ㄦ埛鏄电О涓嶈兘鍖呭惈鑴氭湰瀛楃") + @Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗") + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + @Xss(message = "鐢ㄦ埛璐﹀彿涓嶈兘鍖呭惈鑴氭湰瀛楃") + @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖") + @Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗") + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + @Email(message = "閭鏍煎紡涓嶆纭") + @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗") + public String getEmail() { + return email; + } - /** 鐢ㄦ埛ID */ - @Excel(name = "鐢ㄦ埛搴忓彿", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "鐢ㄦ埛缂栧彿") - private Long userId; + public void setEmail(String email) { + this.email = email; + } + + @Size(min = 0, max = 11, message = "鎵嬫満鍙风爜闀垮害涓嶈兘瓒呰繃11涓瓧绗") + public String getPhonenumber() { + return phonenumber; + } - /** 閮ㄩ棬ID */ - @Excel(name = "閮ㄩ棬缂栧彿", type = Type.IMPORT) - private Long deptId; + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } - /** 鐢ㄦ埛璐﹀彿 */ - @Excel(name = "鐧诲綍鍚嶇О") - private String userName; + public String getSex() { + return sex; + } - /** 鐢ㄦ埛鏄电О */ - @Excel(name = "鐢ㄦ埛鍚嶇О") - private String nickName; - - /** 鐢ㄦ埛閭 */ - @Excel(name = "鐢ㄦ埛閭") - private String email; - - /** 鎵嬫満鍙风爜 */ - @Excel(name = "鎵嬫満鍙风爜", cellType = ColumnType.TEXT) - private String phonenumber; - - /** 鐢ㄦ埛鎬у埆 */ - @Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢,1=濂,2=鏈煡") - private String sex; - - /** 鐢ㄦ埛澶村儚 */ - private String avatar; - - /** 瀵嗙爜 */ - private String password; - - /** 璐﹀彿鐘舵侊紙0姝e父 1鍋滅敤锛 */ - @Excel(name = "璐﹀彿鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") - private String status; - - /** 鍒犻櫎鏍囧織锛0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛 */ - private String delFlag; - - /** 鏈鍚庣櫥褰旾P */ - @Excel(name = "鏈鍚庣櫥褰旾P", type = Type.EXPORT) - private String loginIp; - - /** 鏈鍚庣櫥褰曟椂闂 */ - @Excel(name = "鏈鍚庣櫥褰曟椂闂", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) - private Date loginDate; - - /** 瀵嗙爜鏈鍚庢洿鏂版椂闂 */ - private Date pwdUpdateDate; - - /** 閮ㄩ棬瀵硅薄 */ - @Excels({ - @Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Type.EXPORT), - @Excel(name = "閮ㄩ棬璐熻矗浜", targetAttr = "leader", type = Type.EXPORT) - }) - private SysDept dept; - - /** 瑙掕壊瀵硅薄 */ - private List roles; - - /** 瑙掕壊缁 */ - private Long[] roleIds; - - /** 宀椾綅缁 */ - private Long[] postIds; - - /** 瑙掕壊ID */ - private Long roleId; - - public SysUser() - { - - } - - public SysUser(Long userId) - { - this.userId = userId; - } - - public Long getUserId() - { - return userId; - } - - public void setUserId(Long userId) - { - this.userId = userId; - } - - public boolean isAdmin() - { - return isAdmin(this.userId); - } - - public static boolean isAdmin(Long userId) - { - return UserConstants.isAdmin(userId); - } - - public Long getDeptId() - { - return deptId; - } - - public void setDeptId(Long deptId) - { - this.deptId = deptId; - } - - @Xss(message = "鐢ㄦ埛鏄电О涓嶈兘鍖呭惈鑴氭湰瀛楃") - @Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗") - public String getNickName() - { - return nickName; - } - - public void setNickName(String nickName) - { - this.nickName = nickName; - } - - @Xss(message = "鐢ㄦ埛璐﹀彿涓嶈兘鍖呭惈鑴氭湰瀛楃") - @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖") - @Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗") - public String getUserName() - { - return userName; - } - - public void setUserName(String userName) - { - this.userName = userName; - } - - @Email(message = "閭鏍煎紡涓嶆纭") - @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗") - public String getEmail() - { - return email; - } - - public void setEmail(String email) - { - this.email = email; - } - - @Size(min = 0, max = 11, message = "鎵嬫満鍙风爜闀垮害涓嶈兘瓒呰繃11涓瓧绗") - public String getPhonenumber() - { - return phonenumber; - } - - public void setPhonenumber(String phonenumber) - { - this.phonenumber = phonenumber; - } - - public String getSex() - { - return sex; - } - - public void setSex(String sex) - { - this.sex = sex; - } - - public String getAvatar() - { - return avatar; - } - - public void setAvatar(String avatar) - { - this.avatar = avatar; - } - - public String getPassword() - { - return password; - } - - public void setPassword(String password) - { - this.password = password; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getDelFlag() - { - return delFlag; - } - - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - public String getLoginIp() - { - return loginIp; - } - - public void setLoginIp(String loginIp) - { - this.loginIp = loginIp; - } - - public Date getLoginDate() - { - return loginDate; - } - - public void setLoginDate(Date loginDate) - { - this.loginDate = loginDate; - } - - public Date getPwdUpdateDate() - { - return pwdUpdateDate; - } - - public void setPwdUpdateDate(Date pwdUpdateDate) - { - this.pwdUpdateDate = pwdUpdateDate; - } - - public SysDept getDept() - { - return dept; - } - - public void setDept(SysDept dept) - { - this.dept = dept; - } - - public List getRoles() - { - return roles; - } - - public void setRoles(List roles) - { - this.roles = roles; - } - - public Long[] getRoleIds() - { - return roleIds; - } - - public void setRoleIds(Long[] roleIds) - { - this.roleIds = roleIds; - } - - public Long[] getPostIds() - { - return postIds; - } - - public void setPostIds(Long[] postIds) - { - this.postIds = postIds; - } - - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("deptId", getDeptId()) - .append("userName", getUserName()) - .append("nickName", getNickName()) - .append("email", getEmail()) - .append("phonenumber", getPhonenumber()) - .append("sex", getSex()) - .append("avatar", getAvatar()) - .append("password", getPassword()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("loginIp", getLoginIp()) - .append("loginDate", getLoginDate()) - .append("pwdUpdateDate", getPwdUpdateDate()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .append("dept", getDept()) - .toString(); - } + public void setSex(String sex) { + this.sex = sex; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public Date getLoginDate() { + return loginDate; + } + + public void setLoginDate(Date loginDate) { + this.loginDate = loginDate; + } + + public Date getPwdUpdateDate() { + return pwdUpdateDate; + } + + public void setPwdUpdateDate(Date pwdUpdateDate) { + this.pwdUpdateDate = pwdUpdateDate; + } + + public SysDept getDept() { + return dept; + } + + public void setDept(SysDept dept) { + this.dept = dept; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public Long[] getRoleIds() { + return roleIds; + } + + public void setRoleIds(Long[] roleIds) { + this.roleIds = roleIds; + } + + public Long[] getPostIds() { + return postIds; + } + + public void setPostIds(Long[] postIds) { + this.postIds = postIds; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("email", getEmail()) + .append("phonenumber", getPhonenumber()) + .append("sex", getSex()) + .append("avatar", getAvatar()) + .append("password", getPassword()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("pwdUpdateDate", getPwdUpdateDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .toString(); + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java index 421eb9419..8523cd86d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java @@ -1,41 +1,36 @@ package com.ruoyi.system.api.factory; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.RemoteFileService; +import com.ruoyi.system.api.domain.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.RemoteFileService; -import com.ruoyi.system.api.domain.SysFile; /** * 鏂囦欢鏈嶅姟闄嶇骇澶勭悊 - * + * * @author ruoyi */ @Component -public class RemoteFileFallbackFactory implements FallbackFactory -{ - private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); +public class RemoteFileFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); - @Override - public RemoteFileService create(Throwable throwable) - { - log.error("鏂囦欢鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); - return new RemoteFileService() - { - @Override - public R upload(MultipartFile file) - { - return R.fail("涓婁紶鏂囦欢澶辫触:" + throwable.getMessage()); - } + @Override + public RemoteFileService create(Throwable throwable) { + log.error("鏂囦欢鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); + return new RemoteFileService() { + @Override + public R upload(MultipartFile file) { + return R.fail("涓婁紶鏂囦欢澶辫触:" + throwable.getMessage()); + } - @Override - public R delete(String fileUrl) - { - return R.fail("鍒犻櫎鏂囦欢澶辫触:" + throwable.getMessage()); - } - }; - } + @Override + public R delete(String fileUrl) { + return R.fail("鍒犻櫎鏂囦欢澶辫触:" + throwable.getMessage()); + } + }; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java index 7126b5bb0..c81ed4233 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java @@ -1,42 +1,36 @@ package com.ruoyi.system.api.factory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.cloud.openfeign.FallbackFactory; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.api.domain.SysOperLog; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; /** * 鏃ュ織鏈嶅姟闄嶇骇澶勭悊 - * + * * @author ruoyi */ @Component -public class RemoteLogFallbackFactory implements FallbackFactory -{ - private static final Logger log = LoggerFactory.getLogger(RemoteLogFallbackFactory.class); - - @Override - public RemoteLogService create(Throwable throwable) - { - log.error("鏃ュ織鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); - return new RemoteLogService() - { - @Override - public R saveLog(SysOperLog sysOperLog, String source) - { - return R.fail("淇濆瓨鎿嶄綔鏃ュ織澶辫触:" + throwable.getMessage()); - } +public class RemoteLogFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteLogFallbackFactory.class); - @Override - public R saveLogininfor(SysLogininfor sysLogininfor, String source) - { - return R.fail("淇濆瓨鐧诲綍鏃ュ織澶辫触:" + throwable.getMessage()); - } - }; + @Override + public RemoteLogService create(Throwable throwable) { + log.error("鏃ュ織鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); + return new RemoteLogService() { + @Override + public R saveLog(SysOperLog sysOperLog, String source) { + return R.fail("淇濆瓨鎿嶄綔鏃ュ織澶辫触:" + throwable.getMessage()); + } - } + @Override + public R saveLogininfor(SysLogininfor sysLogininfor, String source) { + return R.fail("淇濆瓨鐧诲綍鏃ュ織澶辫触:" + throwable.getMessage()); + } + }; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java index d0ae76a61..515080fb9 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java @@ -1,47 +1,41 @@ package com.ruoyi.system.api.factory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.cloud.openfeign.FallbackFactory; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; /** * 鐢ㄦ埛鏈嶅姟闄嶇骇澶勭悊 - * + * * @author ruoyi */ @Component -public class RemoteUserFallbackFactory implements FallbackFactory -{ - private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class); +public class RemoteUserFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class); - @Override - public RemoteUserService create(Throwable throwable) - { - log.error("鐢ㄦ埛鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); - return new RemoteUserService() - { - @Override - public R getUserInfo(String username, String source) - { - return R.fail("鑾峰彇鐢ㄦ埛澶辫触:" + throwable.getMessage()); - } + @Override + public RemoteUserService create(Throwable throwable) { + log.error("鐢ㄦ埛鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); + return new RemoteUserService() { + @Override + public R getUserInfo(String username, String source) { + return R.fail("鑾峰彇鐢ㄦ埛澶辫触:" + throwable.getMessage()); + } - @Override - public R registerUserInfo(SysUser sysUser, String source) - { - return R.fail("娉ㄥ唽鐢ㄦ埛澶辫触:" + throwable.getMessage()); - } + @Override + public R registerUserInfo(SysUser sysUser, String source) { + return R.fail("娉ㄥ唽鐢ㄦ埛澶辫触:" + throwable.getMessage()); + } - @Override - public R recordUserLogin(SysUser sysUser, String source) - { - return R.fail("璁板綍鐢ㄦ埛鐧诲綍淇℃伅澶辫触:" + throwable.getMessage()); - } - }; - } + @Override + public R recordUserLogin(SysUser sysUser, String source) { + return R.fail("璁板綍鐢ㄦ埛鐧诲綍淇℃伅澶辫触:" + throwable.getMessage()); + } + }; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java index 2f00e1021..3ff98e999 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java @@ -1,150 +1,113 @@ package com.ruoyi.system.api.model; +import com.ruoyi.system.api.domain.SysUser; import java.io.Serializable; import java.util.Set; -import com.ruoyi.system.api.domain.SysUser; /** * 鐢ㄦ埛淇℃伅 * * @author ruoyi */ -public class LoginUser implements Serializable -{ - private static final long serialVersionUID = 1L; - - /** - * 鐢ㄦ埛鍞竴鏍囪瘑 - */ - private String token; - - /** - * 鐢ㄦ埛鍚峣d - */ - private Long userid; - - /** - * 鐢ㄦ埛鍚 - */ - private String username; - - /** - * 鐧诲綍鏃堕棿 - */ - private Long loginTime; - - /** - * 杩囨湡鏃堕棿 - */ - private Long expireTime; - - /** - * 鐧诲綍IP鍦板潃 - */ - private String ipaddr; - - /** - * 鏉冮檺鍒楄〃 - */ - private Set permissions; - - /** - * 瑙掕壊鍒楄〃 - */ - private Set roles; - - /** - * 鐢ㄦ埛淇℃伅 - */ - private SysUser sysUser; - - public String getToken() - { - return token; - } - - public void setToken(String token) - { - this.token = token; - } - - public Long getUserid() - { - return userid; - } - - public void setUserid(Long userid) - { - this.userid = userid; - } - - public String getUsername() - { - return username; - } - - public void setUsername(String username) - { - this.username = username; - } - - public Long getLoginTime() - { - return loginTime; - } - - public void setLoginTime(Long loginTime) - { - this.loginTime = loginTime; - } - - public Long getExpireTime() - { - return expireTime; - } - - public void setExpireTime(Long expireTime) - { - this.expireTime = expireTime; - } - - public String getIpaddr() - { - return ipaddr; - } - - public void setIpaddr(String ipaddr) - { - this.ipaddr = ipaddr; - } - - public Set getPermissions() - { - return permissions; - } - - public void setPermissions(Set permissions) - { - this.permissions = permissions; - } - - public Set getRoles() - { - return roles; - } - - public void setRoles(Set roles) - { - this.roles = roles; - } - - public SysUser getSysUser() - { - return sysUser; - } - - public void setSysUser(SysUser sysUser) - { - this.sysUser = sysUser; - } +public class LoginUser implements Serializable { + private static final long serialVersionUID = 1L; + + /** 鐢ㄦ埛鍞竴鏍囪瘑 */ + private String token; + + /** 鐢ㄦ埛鍚峣d */ + private Long userid; + + /** 鐢ㄦ埛鍚 */ + private String username; + + /** 鐧诲綍鏃堕棿 */ + private Long loginTime; + + /** 杩囨湡鏃堕棿 */ + private Long expireTime; + + /** 鐧诲綍IP鍦板潃 */ + private String ipaddr; + + /** 鏉冮檺鍒楄〃 */ + private Set permissions; + + /** 瑙掕壊鍒楄〃 */ + private Set roles; + + /** 鐢ㄦ埛淇℃伅 */ + private SysUser sysUser; + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Long getUserid() { + return userid; + } + + public void setUserid(Long userid) { + this.userid = userid; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public Long getLoginTime() { + return loginTime; + } + + public void setLoginTime(Long loginTime) { + this.loginTime = loginTime; + } + + public Long getExpireTime() { + return expireTime; + } + + public void setExpireTime(Long expireTime) { + this.expireTime = expireTime; + } + + public String getIpaddr() { + return ipaddr; + } + + public void setIpaddr(String ipaddr) { + this.ipaddr = ipaddr; + } + + public Set getPermissions() { + return permissions; + } + + public void setPermissions(Set permissions) { + this.permissions = permissions; + } + + public Set getRoles() { + return roles; + } + + public void setRoles(Set roles) { + this.roles = roles; + } + + public SysUser getSysUser() { + return sysUser; + } + + public void setSysUser(SysUser sysUser) { + this.sysUser = sysUser; + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java index 00a499dfd..54d89328c 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java @@ -1,31 +1,30 @@ package com.ruoyi.auth; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import com.ruoyi.common.security.annotation.EnableRyFeignClients; /** * 璁よ瘉鎺堟潈涓績 - * + * * @author ruoyi */ @EnableRyFeignClients -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -public class RuoYiAuthApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiAuthApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 璁よ瘉鎺堟潈涓績鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class RuoYiAuthApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiAuthApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 璁よ瘉鎺堟潈涓績鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 3b93514ed..2a6f66692 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -1,11 +1,5 @@ package com.ruoyi.auth.controller; -import javax.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.auth.form.LoginBody; import com.ruoyi.auth.form.RegisterBody; import com.ruoyi.auth.service.SysLoginService; @@ -16,63 +10,60 @@ import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; /** * token 鎺у埗 - * + * * @author ruoyi */ @RestController -public class TokenController -{ - @Autowired - private TokenService tokenService; +public class TokenController { + @Autowired private TokenService tokenService; - @Autowired - private SysLoginService sysLoginService; + @Autowired private SysLoginService sysLoginService; - @PostMapping("login") - public R login(@RequestBody LoginBody form) - { - // 鐢ㄦ埛鐧诲綍 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); - // 鑾峰彇鐧诲綍token - return R.ok(tokenService.createToken(userInfo)); - } + @PostMapping("login") + public R login(@RequestBody LoginBody form) { + // 鐢ㄦ埛鐧诲綍 + LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + // 鑾峰彇鐧诲綍token + return R.ok(tokenService.createToken(userInfo)); + } - @DeleteMapping("logout") - public R logout(HttpServletRequest request) - { - String token = SecurityUtils.getToken(request); - if (StringUtils.isNotEmpty(token)) - { - String username = JwtUtils.getUserName(token); - // 鍒犻櫎鐢ㄦ埛缂撳瓨璁板綍 - AuthUtil.logoutByToken(token); - // 璁板綍鐢ㄦ埛閫鍑烘棩蹇 - sysLoginService.logout(username); - } - return R.ok(); + @DeleteMapping("logout") + public R logout(HttpServletRequest request) { + String token = SecurityUtils.getToken(request); + if (StringUtils.isNotEmpty(token)) { + String username = JwtUtils.getUserName(token); + // 鍒犻櫎鐢ㄦ埛缂撳瓨璁板綍 + AuthUtil.logoutByToken(token); + // 璁板綍鐢ㄦ埛閫鍑烘棩蹇 + sysLoginService.logout(username); } + return R.ok(); + } - @PostMapping("refresh") - public R refresh(HttpServletRequest request) - { - LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser)) - { - // 鍒锋柊浠ょ墝鏈夋晥鏈 - tokenService.refreshToken(loginUser); - return R.ok(); - } - return R.ok(); + @PostMapping("refresh") + public R refresh(HttpServletRequest request) { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) { + // 鍒锋柊浠ょ墝鏈夋晥鏈 + tokenService.refreshToken(loginUser); + return R.ok(); } + return R.ok(); + } - @PostMapping("register") - public R register(@RequestBody RegisterBody registerBody) - { - // 鐢ㄦ埛娉ㄥ唽 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); - return R.ok(); - } + @PostMapping("register") + public R register(@RequestBody RegisterBody registerBody) { + // 鐢ㄦ埛娉ㄥ唽 + sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + return R.ok(); + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java index b12fb3144..cc5bb0d3e 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java @@ -2,38 +2,29 @@ package com.ruoyi.auth.form; /** * 鐢ㄦ埛鐧诲綍瀵硅薄 - * + * * @author ruoyi */ -public class LoginBody -{ - /** - * 鐢ㄦ埛鍚 - */ - private String username; +public class LoginBody { + /** 鐢ㄦ埛鍚 */ + private String username; - /** - * 鐢ㄦ埛瀵嗙爜 - */ - private String password; + /** 鐢ㄦ埛瀵嗙爜 */ + private String password; - public String getUsername() - { - return username; - } + public String getUsername() { + return username; + } - public void setUsername(String username) - { - this.username = username; - } + public void setUsername(String username) { + this.username = username; + } - public String getPassword() - { - return password; - } + public String getPassword() { + return password; + } - public void setPassword(String password) - { - this.password = password; - } + public void setPassword(String password) { + this.password = password; + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/RegisterBody.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/RegisterBody.java index a8e16eed2..31efe2d8b 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/RegisterBody.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/RegisterBody.java @@ -2,10 +2,7 @@ package com.ruoyi.auth.form; /** * 鐢ㄦ埛娉ㄥ唽瀵硅薄 - * + * * @author ruoyi */ -public class RegisterBody extends LoginBody -{ - -} +public class RegisterBody extends LoginBody {} diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 9ba6046a3..3f2915ac2 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,7 +1,5 @@ package com.ruoyi.auth.service; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; @@ -18,139 +16,118 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 鐧诲綍鏍¢獙鏂规硶 - * + * * @author ruoyi */ @Component -public class SysLoginService -{ - @Autowired - private RemoteUserService remoteUserService; +public class SysLoginService { + @Autowired private RemoteUserService remoteUserService; - @Autowired - private SysPasswordService passwordService; + @Autowired private SysPasswordService passwordService; - @Autowired - private SysRecordLogService recordLogService; + @Autowired private SysRecordLogService recordLogService; - @Autowired - private RedisService redisService; + @Autowired private RedisService redisService; - /** - * 鐧诲綍 - */ - public LoginUser login(String username, String password) - { - // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒 - if (StringUtils.isAnyBlank(username, password)) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); - throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); - } - // 瀵嗙爜濡傛灉涓嶅湪鎸囧畾鑼冨洿鍐 閿欒 - if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿"); - throw new ServiceException("鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿"); - } - // 鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥村唴 閿欒 - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥"); - throw new ServiceException("鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥"); - } - // IP榛戝悕鍗曟牎楠 - String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); - if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗"); - throw new ServiceException("寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗"); - } - // 鏌ヨ鐢ㄦ埛淇℃伅 - R userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); - - if (R.FAIL == userResult.getCode()) - { - throw new ServiceException(userResult.getMsg()); - } - - LoginUser userInfo = userResult.getData(); - SysUser user = userResult.getData().getSysUser(); - if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿宸茶鍒犻櫎"); - throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛" + username + " 宸茶鍒犻櫎"); - } - if (UserStatus.DISABLE.getCode().equals(user.getStatus())) - { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳"); - throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛" + username + " 宸插仠鐢"); - } - passwordService.validate(user, password); - recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "鐧诲綍鎴愬姛"); - recordLoginInfo(user.getUserId()); - return userInfo; + /** 鐧诲綍 */ + public LoginUser login(String username, String password) { + // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒 + if (StringUtils.isAnyBlank(username, password)) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); + throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); + } + // 瀵嗙爜濡傛灉涓嶅湪鎸囧畾鑼冨洿鍐 閿欒 + if (password.length() < UserConstants.PASSWORD_MIN_LENGTH + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿"); + throw new ServiceException("鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿"); + } + // 鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥村唴 閿欒 + if (username.length() < UserConstants.USERNAME_MIN_LENGTH + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥"); + throw new ServiceException("鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥"); } + // IP榛戝悕鍗曟牎楠 + String blackStr = + Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗"); + throw new ServiceException("寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗"); + } + // 鏌ヨ鐢ㄦ埛淇℃伅 + R userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); - /** - * 璁板綍鐧诲綍淇℃伅 - * - * @param userId 鐢ㄦ埛ID - */ - public void recordLoginInfo(Long userId) - { - SysUser sysUser = new SysUser(); - sysUser.setUserId(userId); - // 鏇存柊鐢ㄦ埛鐧诲綍IP - sysUser.setLoginIp(IpUtils.getIpAddr()); - // 鏇存柊鐢ㄦ埛鐧诲綍鏃堕棿 - sysUser.setLoginDate(DateUtils.getNowDate()); - remoteUserService.recordUserLogin(sysUser, SecurityConstants.INNER); + if (R.FAIL == userResult.getCode()) { + throw new ServiceException(userResult.getMsg()); } - public void logout(String loginName) - { - recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "閫鍑烘垚鍔"); + LoginUser userInfo = userResult.getData(); + SysUser user = userResult.getData().getSysUser(); + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿宸茶鍒犻櫎"); + throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛" + username + " 宸茶鍒犻櫎"); + } + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳"); + throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛" + username + " 宸插仠鐢"); } + passwordService.validate(user, password); + recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "鐧诲綍鎴愬姛"); + recordLoginInfo(user.getUserId()); + return userInfo; + } + + /** + * 璁板綍鐧诲綍淇℃伅 + * + * @param userId 鐢ㄦ埛ID + */ + public void recordLoginInfo(Long userId) { + SysUser sysUser = new SysUser(); + sysUser.setUserId(userId); + // 鏇存柊鐢ㄦ埛鐧诲綍IP + sysUser.setLoginIp(IpUtils.getIpAddr()); + // 鏇存柊鐢ㄦ埛鐧诲綍鏃堕棿 + sysUser.setLoginDate(DateUtils.getNowDate()); + remoteUserService.recordUserLogin(sysUser, SecurityConstants.INNER); + } + + public void logout(String loginName) { + recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "閫鍑烘垚鍔"); + } - /** - * 娉ㄥ唽 - */ - public void register(String username, String password) - { - // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒 - if (StringUtils.isAnyBlank(username, password)) - { - throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); - } - if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) - { - throw new ServiceException("璐︽埛闀垮害蹇呴』鍦2鍒20涓瓧绗︿箣闂"); - } - if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) - { - throw new ServiceException("瀵嗙爜闀垮害蹇呴』鍦5鍒20涓瓧绗︿箣闂"); - } + /** 娉ㄥ唽 */ + public void register(String username, String password) { + // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒 + if (StringUtils.isAnyBlank(username, password)) { + throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓"); + } + if (username.length() < UserConstants.USERNAME_MIN_LENGTH + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + throw new ServiceException("璐︽埛闀垮害蹇呴』鍦2鍒20涓瓧绗︿箣闂"); + } + if (password.length() < UserConstants.PASSWORD_MIN_LENGTH + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { + throw new ServiceException("瀵嗙爜闀垮害蹇呴』鍦5鍒20涓瓧绗︿箣闂"); + } - // 娉ㄥ唽鐢ㄦ埛淇℃伅 - SysUser sysUser = new SysUser(); - sysUser.setUserName(username); - sysUser.setNickName(username); - sysUser.setPwdUpdateDate(DateUtils.getNowDate()); - sysUser.setPassword(SecurityUtils.encryptPassword(password)); - R registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); + // 娉ㄥ唽鐢ㄦ埛淇℃伅 + SysUser sysUser = new SysUser(); + sysUser.setUserName(username); + sysUser.setNickName(username); + sysUser.setPwdUpdateDate(DateUtils.getNowDate()); + sysUser.setPassword(SecurityUtils.encryptPassword(password)); + R registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); - if (R.FAIL == registerResult.getCode()) - { - throw new ServiceException(registerResult.getMsg()); - } - recordLogService.recordLogininfor(username, Constants.REGISTER, "娉ㄥ唽鎴愬姛"); + if (R.FAIL == registerResult.getCode()) { + throw new ServiceException(registerResult.getMsg()); } + recordLogService.recordLogininfor(username, Constants.REGISTER, "娉ㄥ唽鎴愬姛"); + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java index eb18ea876..fd6b9ff4e 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java @@ -1,85 +1,73 @@ package com.ruoyi.auth.service; -import java.util.concurrent.TimeUnit; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; +import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 鐧诲綍瀵嗙爜鏂规硶 - * + * * @author ruoyi */ @Component -public class SysPasswordService -{ - @Autowired - private RedisService redisService; - - private int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT; +public class SysPasswordService { + @Autowired private RedisService redisService; - private Long lockTime = CacheConstants.PASSWORD_LOCK_TIME; + private int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT; - @Autowired - private SysRecordLogService recordLogService; + private Long lockTime = CacheConstants.PASSWORD_LOCK_TIME; - /** - * 鐧诲綍璐︽埛瀵嗙爜閿欒娆℃暟缂撳瓨閿悕 - * - * @param username 鐢ㄦ埛鍚 - * @return 缂撳瓨閿甼ey - */ - private String getCacheKey(String username) - { - return CacheConstants.PWD_ERR_CNT_KEY + username; - } + @Autowired private SysRecordLogService recordLogService; - public void validate(SysUser user, String password) - { - String username = user.getUserName(); + /** + * 鐧诲綍璐︽埛瀵嗙爜閿欒娆℃暟缂撳瓨閿悕 + * + * @param username 鐢ㄦ埛鍚 + * @return 缂撳瓨閿甼ey + */ + private String getCacheKey(String username) { + return CacheConstants.PWD_ERR_CNT_KEY + username; + } - Integer retryCount = redisService.getCacheObject(getCacheKey(username)); + public void validate(SysUser user, String password) { + String username = user.getUserName(); - if (retryCount == null) - { - retryCount = 0; - } + Integer retryCount = redisService.getCacheObject(getCacheKey(username)); - if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) - { - String errMsg = String.format("瀵嗙爜杈撳叆閿欒%s娆★紝甯愭埛閿佸畾%s鍒嗛挓", maxRetryCount, lockTime); - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL,errMsg); - throw new ServiceException(errMsg); - } + if (retryCount == null) { + retryCount = 0; + } - if (!matches(user, password)) - { - retryCount = retryCount + 1; - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("瀵嗙爜杈撳叆閿欒%s娆", retryCount)); - redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES); - throw new ServiceException("鐢ㄦ埛涓嶅瓨鍦/瀵嗙爜閿欒"); - } - else - { - clearLoginRecordCache(username); - } + if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) { + String errMsg = String.format("瀵嗙爜杈撳叆閿欒%s娆★紝甯愭埛閿佸畾%s鍒嗛挓", maxRetryCount, lockTime); + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, errMsg); + throw new ServiceException(errMsg); } - public boolean matches(SysUser user, String rawPassword) - { - return SecurityUtils.matchesPassword(rawPassword, user.getPassword()); + if (!matches(user, password)) { + retryCount = retryCount + 1; + recordLogService.recordLogininfor( + username, Constants.LOGIN_FAIL, String.format("瀵嗙爜杈撳叆閿欒%s娆", retryCount)); + redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES); + throw new ServiceException("鐢ㄦ埛涓嶅瓨鍦/瀵嗙爜閿欒"); + } else { + clearLoginRecordCache(username); } + } + + public boolean matches(SysUser user, String rawPassword) { + return SecurityUtils.matchesPassword(rawPassword, user.getPassword()); + } - public void clearLoginRecordCache(String loginName) - { - if (redisService.hasKey(getCacheKey(loginName))) - { - redisService.deleteObject(getCacheKey(loginName)); - } + public void clearLoginRecordCache(String loginName) { + if (redisService.hasKey(getCacheKey(loginName))) { + redisService.deleteObject(getCacheKey(loginName)); } + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java index 7ca0f001f..3cdf67515 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java @@ -1,48 +1,43 @@ package com.ruoyi.auth.service; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.ip.IpUtils; import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.domain.SysLogininfor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 璁板綍鏃ュ織鏂规硶 - * + * * @author ruoyi */ @Component -public class SysRecordLogService -{ - @Autowired - private RemoteLogService remoteLogService; +public class SysRecordLogService { + @Autowired private RemoteLogService remoteLogService; - /** - * 璁板綍鐧诲綍淇℃伅 - * - * @param username 鐢ㄦ埛鍚 - * @param status 鐘舵 - * @param message 娑堟伅鍐呭 - * @return - */ - public void recordLogininfor(String username, String status, String message) - { - SysLogininfor logininfor = new SysLogininfor(); - logininfor.setUserName(username); - logininfor.setIpaddr(IpUtils.getIpAddr()); - logininfor.setMsg(message); - // 鏃ュ織鐘舵 - if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) - { - logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS); - } - else if (Constants.LOGIN_FAIL.equals(status)) - { - logininfor.setStatus(Constants.LOGIN_FAIL_STATUS); - } - remoteLogService.saveLogininfor(logininfor, SecurityConstants.INNER); + /** + * 璁板綍鐧诲綍淇℃伅 + * + * @param username 鐢ㄦ埛鍚 + * @param status 鐘舵 + * @param message 娑堟伅鍐呭 + * @return + */ + public void recordLogininfor(String username, String status, String message) { + SysLogininfor logininfor = new SysLogininfor(); + logininfor.setUserName(username); + logininfor.setIpaddr(IpUtils.getIpAddr()); + logininfor.setMsg(message); + // 鏃ュ織鐘舵 + if (StringUtils.equalsAny( + status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { + logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS); + } else if (Constants.LOGIN_FAIL.equals(status)) { + logininfor.setStatus(Constants.LOGIN_FAIL_STATUS); } + remoteLogService.saveLogininfor(logininfor, SecurityConstants.INNER); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java index ee44abb3a..ae0782aef 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.annotation; +import com.ruoyi.common.core.utils.poi.ExcelHandlerAdapter; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -7,181 +8,124 @@ import java.lang.annotation.Target; import java.math.BigDecimal; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; -import com.ruoyi.common.core.utils.poi.ExcelHandlerAdapter; /** * 鑷畾涔夊鍑篍xcel鏁版嵁娉ㄨВ - * + * * @author ruoyi */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) -public @interface Excel -{ - /** - * 瀵煎嚭鏃跺湪excel涓帓搴 - */ - public int sort() default Integer.MAX_VALUE; - - /** - * 瀵煎嚭鍒癊xcel涓殑鍚嶅瓧. - */ - public String name() default ""; - - /** - * 鏃ユ湡鏍煎紡, 濡: yyyy-MM-dd - */ - public String dateFormat() default ""; - - /** - * 璇诲彇鍐呭杞〃杈惧紡 (濡: 0=鐢,1=濂,2=鏈煡) - */ - public String readConverterExp() default ""; - - /** - * 鍒嗛殧绗︼紝璇诲彇瀛楃涓茬粍鍐呭 - */ - public String separator() default ","; - - /** - * BigDecimal 绮惧害 榛樿:-1(榛樿涓嶅紑鍚疊igDecimal鏍煎紡鍖) - */ - public int scale() default -1; - - /** - * BigDecimal 鑸嶅叆瑙勫垯 榛樿:BigDecimal.ROUND_HALF_EVEN - */ - public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; - - /** - * 瀵煎嚭鏃跺湪excel涓瘡涓垪鐨勯珮搴 - */ - public double height() default 14; - - /** - * 瀵煎嚭鏃跺湪excel涓瘡涓垪鐨勫搴 - */ - public double width() default 16; - - /** - * 鏂囧瓧鍚庣紑,濡% 90 鍙樻垚90% - */ - public String suffix() default ""; - - /** - * 褰撳间负绌烘椂,瀛楁鐨勯粯璁ゅ - */ - public String defaultValue() default ""; - - /** - * 鎻愮ず淇℃伅 - */ - public String prompt() default ""; - - /** - * 鏄惁鍏佽鍐呭鎹㈣ - */ - public boolean wrapText() default false; - - /** - * 璁剧疆鍙兘閫夋嫨涓嶈兘杈撳叆鐨勫垪鍐呭. - */ - public String[] combo() default {}; - - /** - * 鏄惁闇瑕佺旱鍚戝悎骞跺崟鍏冩牸,搴斿闇姹:鍚湁list闆嗗悎鍗曞厓鏍) - */ - public boolean needMerge() default false; - - /** - * 鏄惁瀵煎嚭鏁版嵁,搴斿闇姹:鏈夋椂鎴戜滑闇瑕佸鍑轰竴浠芥ā鏉,杩欐槸鏍囬闇瑕佷絾鍐呭闇瑕佺敤鎴锋墜宸ュ~鍐. - */ - public boolean isExport() default true; - - /** - * 鍙︿竴涓被涓殑灞炴у悕绉,鏀寔澶氱骇鑾峰彇,浠ュ皬鏁扮偣闅斿紑 - */ - public String targetAttr() default ""; - - /** - * 鏄惁鑷姩缁熻鏁版嵁,鍦ㄦ渶鍚庤拷鍔犱竴琛岀粺璁℃暟鎹诲拰 - */ - public boolean isStatistics() default false; - - /** - * 瀵煎嚭绫诲瀷锛0鏁板瓧 1瀛楃涓诧級 - */ - public ColumnType cellType() default ColumnType.STRING; - - /** - * 瀵煎嚭鍒楀ご鑳屾櫙棰滆壊 - */ - public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; - - /** - * 瀵煎嚭鍒楀ご瀛椾綋棰滆壊 - */ - public IndexedColors headerColor() default IndexedColors.WHITE; - - /** - * 瀵煎嚭鍗曞厓鏍艰儗鏅鑹 - */ - public IndexedColors backgroundColor() default IndexedColors.WHITE; - - /** - * 瀵煎嚭鍗曞厓鏍煎瓧浣撻鑹 - */ - public IndexedColors color() default IndexedColors.BLACK; - - /** - * 瀵煎嚭瀛楁瀵归綈鏂瑰紡 - */ - public HorizontalAlignment align() default HorizontalAlignment.CENTER; - - /** - * 鑷畾涔夋暟鎹鐞嗗櫒 - */ - public Class handler() default ExcelHandlerAdapter.class; - - /** - * 鑷畾涔夋暟鎹鐞嗗櫒鍙傛暟 - */ - public String[] args() default {}; - - /** - * 瀛楁绫诲瀷锛0锛氬鍑哄鍏ワ紱1锛氫粎瀵煎嚭锛2锛氫粎瀵煎叆锛 - */ - Type type() default Type.ALL; - - public enum Type - { - ALL(0), EXPORT(1), IMPORT(2); - private final int value; - - Type(int value) - { - this.value = value; - } - - public int value() - { - return this.value; - } +public @interface Excel { + /** 瀵煎嚭鏃跺湪excel涓帓搴 */ + public int sort() default Integer.MAX_VALUE; + + /** 瀵煎嚭鍒癊xcel涓殑鍚嶅瓧. */ + public String name() default ""; + + /** 鏃ユ湡鏍煎紡, 濡: yyyy-MM-dd */ + public String dateFormat() default ""; + + /** 璇诲彇鍐呭杞〃杈惧紡 (濡: 0=鐢,1=濂,2=鏈煡) */ + public String readConverterExp() default ""; + + /** 鍒嗛殧绗︼紝璇诲彇瀛楃涓茬粍鍐呭 */ + public String separator() default ","; + + /** BigDecimal 绮惧害 榛樿:-1(榛樿涓嶅紑鍚疊igDecimal鏍煎紡鍖) */ + public int scale() default -1; + + /** BigDecimal 鑸嶅叆瑙勫垯 榛樿:BigDecimal.ROUND_HALF_EVEN */ + public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; + + /** 瀵煎嚭鏃跺湪excel涓瘡涓垪鐨勯珮搴 */ + public double height() default 14; + + /** 瀵煎嚭鏃跺湪excel涓瘡涓垪鐨勫搴 */ + public double width() default 16; + + /** 鏂囧瓧鍚庣紑,濡% 90 鍙樻垚90% */ + public String suffix() default ""; + + /** 褰撳间负绌烘椂,瀛楁鐨勯粯璁ゅ */ + public String defaultValue() default ""; + + /** 鎻愮ず淇℃伅 */ + public String prompt() default ""; + + /** 鏄惁鍏佽鍐呭鎹㈣ */ + public boolean wrapText() default false; + + /** 璁剧疆鍙兘閫夋嫨涓嶈兘杈撳叆鐨勫垪鍐呭. */ + public String[] combo() default {}; + + /** 鏄惁闇瑕佺旱鍚戝悎骞跺崟鍏冩牸,搴斿闇姹:鍚湁list闆嗗悎鍗曞厓鏍) */ + public boolean needMerge() default false; + + /** 鏄惁瀵煎嚭鏁版嵁,搴斿闇姹:鏈夋椂鎴戜滑闇瑕佸鍑轰竴浠芥ā鏉,杩欐槸鏍囬闇瑕佷絾鍐呭闇瑕佺敤鎴锋墜宸ュ~鍐. */ + public boolean isExport() default true; + + /** 鍙︿竴涓被涓殑灞炴у悕绉,鏀寔澶氱骇鑾峰彇,浠ュ皬鏁扮偣闅斿紑 */ + public String targetAttr() default ""; + + /** 鏄惁鑷姩缁熻鏁版嵁,鍦ㄦ渶鍚庤拷鍔犱竴琛岀粺璁℃暟鎹诲拰 */ + public boolean isStatistics() default false; + + /** 瀵煎嚭绫诲瀷锛0鏁板瓧 1瀛楃涓诧級 */ + public ColumnType cellType() default ColumnType.STRING; + + /** 瀵煎嚭鍒楀ご鑳屾櫙棰滆壊 */ + public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; + + /** 瀵煎嚭鍒楀ご瀛椾綋棰滆壊 */ + public IndexedColors headerColor() default IndexedColors.WHITE; + + /** 瀵煎嚭鍗曞厓鏍艰儗鏅鑹 */ + public IndexedColors backgroundColor() default IndexedColors.WHITE; + + /** 瀵煎嚭鍗曞厓鏍煎瓧浣撻鑹 */ + public IndexedColors color() default IndexedColors.BLACK; + + /** 瀵煎嚭瀛楁瀵归綈鏂瑰紡 */ + public HorizontalAlignment align() default HorizontalAlignment.CENTER; + + /** 鑷畾涔夋暟鎹鐞嗗櫒 */ + public Class handler() default ExcelHandlerAdapter.class; + + /** 鑷畾涔夋暟鎹鐞嗗櫒鍙傛暟 */ + public String[] args() default {}; + + /** 瀛楁绫诲瀷锛0锛氬鍑哄鍏ワ紱1锛氫粎瀵煎嚭锛2锛氫粎瀵煎叆锛 */ + Type type() default Type.ALL; + + public enum Type { + ALL(0), + EXPORT(1), + IMPORT(2); + private final int value; + + Type(int value) { + this.value = value; + } + + public int value() { + return this.value; } + } - public enum ColumnType - { - NUMERIC(0), STRING(1), IMAGE(2), TEXT(3); - private final int value; + public enum ColumnType { + NUMERIC(0), + STRING(1), + IMAGE(2), + TEXT(3); + private final int value; - ColumnType(int value) - { - this.value = value; - } + ColumnType(int value) { + this.value = value; + } - public int value() - { - return this.value; - } + public int value() { + return this.value; } -} \ No newline at end of file + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excels.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excels.java index af2d9503a..2a52eef5b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excels.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excels.java @@ -7,12 +7,11 @@ import java.lang.annotation.Target; /** * Excel娉ㄨВ闆 - * + * * @author ruoyi */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) -public @interface Excels -{ - Excel[] value(); -} \ No newline at end of file +public @interface Excels { + Excel[] value(); +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java index e2df52b6a..98a4ed1b4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java @@ -2,58 +2,37 @@ package com.ruoyi.common.core.constant; /** * 缂撳瓨甯搁噺淇℃伅 - * + * * @author ruoyi */ -public class CacheConstants -{ - /** - * 缂撳瓨鏈夋晥鏈燂紝榛樿720锛堝垎閽燂級 - */ - public final static long EXPIRATION = 720; - - /** - * 缂撳瓨鍒锋柊鏃堕棿锛岄粯璁120锛堝垎閽燂級 - */ - public final static long REFRESH_TIME = 120; - - /** - * 瀵嗙爜鏈澶ч敊璇鏁 - */ - public final static int PASSWORD_MAX_RETRY_COUNT = 5; - - /** - * 瀵嗙爜閿佸畾鏃堕棿锛岄粯璁10锛堝垎閽燂級 - */ - public final static long PASSWORD_LOCK_TIME = 10; - - /** - * 鏉冮檺缂撳瓨鍓嶇紑 - */ - public final static String LOGIN_TOKEN_KEY = "login_tokens:"; - - /** - * 楠岃瘉鐮 redis key - */ - public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; - - /** - * 鍙傛暟绠$悊 cache key - */ - public static final String SYS_CONFIG_KEY = "sys_config:"; - - /** - * 瀛楀吀绠$悊 cache key - */ - public static final String SYS_DICT_KEY = "sys_dict:"; - - /** - * 鐧诲綍璐︽埛瀵嗙爜閿欒娆℃暟 redis key - */ - public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; - - /** - * 鐧诲綍IP榛戝悕鍗 cache key - */ - public static final String SYS_LOGIN_BLACKIPLIST = SYS_CONFIG_KEY + "sys.login.blackIPList"; +public class CacheConstants { + /** 缂撳瓨鏈夋晥鏈燂紝榛樿720锛堝垎閽燂級 */ + public static final long EXPIRATION = 720; + + /** 缂撳瓨鍒锋柊鏃堕棿锛岄粯璁120锛堝垎閽燂級 */ + public static final long REFRESH_TIME = 120; + + /** 瀵嗙爜鏈澶ч敊璇鏁 */ + public static final int PASSWORD_MAX_RETRY_COUNT = 5; + + /** 瀵嗙爜閿佸畾鏃堕棿锛岄粯璁10锛堝垎閽燂級 */ + public static final long PASSWORD_LOCK_TIME = 10; + + /** 鏉冮檺缂撳瓨鍓嶇紑 */ + public static final String LOGIN_TOKEN_KEY = "login_tokens:"; + + /** 楠岃瘉鐮 redis key */ + public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; + + /** 鍙傛暟绠$悊 cache key */ + public static final String SYS_CONFIG_KEY = "sys_config:"; + + /** 瀛楀吀绠$悊 cache key */ + public static final String SYS_DICT_KEY = "sys_dict:"; + + /** 鐧诲綍璐︽埛瀵嗙爜閿欒娆℃暟 redis key */ + public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; + + /** 鐧诲綍IP榛戝悕鍗 cache key */ + public static final String SYS_LOGIN_BLACKIPLIST = SYS_CONFIG_KEY + "sys.login.blackIPList"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java index c5cef8af0..cdfb2ca38 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java @@ -2,144 +2,95 @@ package com.ruoyi.common.core.constant; /** * 閫氱敤甯搁噺淇℃伅 - * + * * @author ruoyi */ -public class Constants -{ - /** - * UTF-8 瀛楃闆 - */ - public static final String UTF8 = "UTF-8"; - - /** - * GBK 瀛楃闆 - */ - public static final String GBK = "GBK"; - - /** - * www涓诲煙 - */ - public static final String WWW = "www."; - - /** - * RMI 杩滅▼鏂规硶璋冪敤 - */ - public static final String LOOKUP_RMI = "rmi:"; - - /** - * LDAP 杩滅▼鏂规硶璋冪敤 - */ - public static final String LOOKUP_LDAP = "ldap:"; - - /** - * LDAPS 杩滅▼鏂规硶璋冪敤 - */ - public static final String LOOKUP_LDAPS = "ldaps:"; - - /** - * http璇锋眰 - */ - public static final String HTTP = "http://"; - - /** - * https璇锋眰 - */ - public static final String HTTPS = "https://"; - - /** - * 鎴愬姛鏍囪 - */ - public static final Integer SUCCESS = 200; - - /** - * 澶辫触鏍囪 - */ - public static final Integer FAIL = 500; - - /** - * 鐧诲綍鎴愬姛鐘舵 - */ - public static final String LOGIN_SUCCESS_STATUS = "0"; - - /** - * 鐧诲綍澶辫触鐘舵 - */ - public static final String LOGIN_FAIL_STATUS = "1"; - - /** - * 鐧诲綍鎴愬姛 - */ - public static final String LOGIN_SUCCESS = "Success"; - - /** - * 娉ㄩ攢 - */ - public static final String LOGOUT = "Logout"; - - /** - * 娉ㄥ唽 - */ - public static final String REGISTER = "Register"; - - /** - * 鐧诲綍澶辫触 - */ - public static final String LOGIN_FAIL = "Error"; - - /** - * 鎵鏈夋潈闄愭爣璇 - */ - public static final String ALL_PERMISSION = "*:*:*"; - - /** - * 绠$悊鍛樿鑹叉潈闄愭爣璇 - */ - public static final String SUPER_ADMIN = "admin"; - - /** - * 褰撳墠璁板綍璧峰绱㈠紩 - */ - public static final String PAGE_NUM = "pageNum"; - - /** - * 姣忛〉鏄剧ず璁板綍鏁 - */ - public static final String PAGE_SIZE = "pageSize"; - - /** - * 鎺掑簭鍒 - */ - public static final String ORDER_BY_COLUMN = "orderByColumn"; - - /** - * 鎺掑簭鐨勬柟鍚 "desc" 鎴栬 "asc". - */ - public static final String IS_ASC = "isAsc"; - - /** - * 楠岃瘉鐮佹湁鏁堟湡锛堝垎閽燂級 - */ - public static final long CAPTCHA_EXPIRATION = 2; - - /** - * 璧勬簮鏄犲皠璺緞 鍓嶇紑 - */ - public static final String RESOURCE_PREFIX = "/profile"; - - /** - * 鑷姩璇嗗埆json瀵硅薄鐧藉悕鍗曢厤缃紙浠呭厑璁歌В鏋愮殑鍖呭悕锛岃寖鍥磋秺灏忚秺瀹夊叏锛 - */ - public static final String[] JSON_WHITELIST_STR = { "com.ruoyi" }; - - /** - * 瀹氭椂浠诲姟鐧藉悕鍗曢厤缃紙浠呭厑璁歌闂殑鍖呭悕锛屽鍏朵粬闇瑕佸彲浠ヨ嚜琛屾坊鍔狅級 - */ - public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.job.task" }; - - /** - * 瀹氭椂浠诲姟杩濊鐨勫瓧绗 - */ - public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", - "org.springframework", "org.apache", "com.ruoyi.common.core.utils.file" }; +public class Constants { + /** UTF-8 瀛楃闆 */ + public static final String UTF8 = "UTF-8"; + + /** GBK 瀛楃闆 */ + public static final String GBK = "GBK"; + + /** www涓诲煙 */ + public static final String WWW = "www."; + + /** RMI 杩滅▼鏂规硶璋冪敤 */ + public static final String LOOKUP_RMI = "rmi:"; + + /** LDAP 杩滅▼鏂规硶璋冪敤 */ + public static final String LOOKUP_LDAP = "ldap:"; + + /** LDAPS 杩滅▼鏂规硶璋冪敤 */ + public static final String LOOKUP_LDAPS = "ldaps:"; + + /** http璇锋眰 */ + public static final String HTTP = "http://"; + + /** https璇锋眰 */ + public static final String HTTPS = "https://"; + + /** 鎴愬姛鏍囪 */ + public static final Integer SUCCESS = 200; + + /** 澶辫触鏍囪 */ + public static final Integer FAIL = 500; + + /** 鐧诲綍鎴愬姛鐘舵 */ + public static final String LOGIN_SUCCESS_STATUS = "0"; + + /** 鐧诲綍澶辫触鐘舵 */ + public static final String LOGIN_FAIL_STATUS = "1"; + + /** 鐧诲綍鎴愬姛 */ + public static final String LOGIN_SUCCESS = "Success"; + + /** 娉ㄩ攢 */ + public static final String LOGOUT = "Logout"; + + /** 娉ㄥ唽 */ + public static final String REGISTER = "Register"; + + /** 鐧诲綍澶辫触 */ + public static final String LOGIN_FAIL = "Error"; + + /** 鎵鏈夋潈闄愭爣璇 */ + public static final String ALL_PERMISSION = "*:*:*"; + + /** 绠$悊鍛樿鑹叉潈闄愭爣璇 */ + public static final String SUPER_ADMIN = "admin"; + + /** 褰撳墠璁板綍璧峰绱㈠紩 */ + public static final String PAGE_NUM = "pageNum"; + + /** 姣忛〉鏄剧ず璁板綍鏁 */ + public static final String PAGE_SIZE = "pageSize"; + + /** 鎺掑簭鍒 */ + public static final String ORDER_BY_COLUMN = "orderByColumn"; + + /** 鎺掑簭鐨勬柟鍚 "desc" 鎴栬 "asc". */ + public static final String IS_ASC = "isAsc"; + + /** 楠岃瘉鐮佹湁鏁堟湡锛堝垎閽燂級 */ + public static final long CAPTCHA_EXPIRATION = 2; + + /** 璧勬簮鏄犲皠璺緞 鍓嶇紑 */ + public static final String RESOURCE_PREFIX = "/profile"; + + /** 鑷姩璇嗗埆json瀵硅薄鐧藉悕鍗曢厤缃紙浠呭厑璁歌В鏋愮殑鍖呭悕锛岃寖鍥磋秺灏忚秺瀹夊叏锛 */ + public static final String[] JSON_WHITELIST_STR = {"com.ruoyi"}; + + /** 瀹氭椂浠诲姟鐧藉悕鍗曢厤缃紙浠呭厑璁歌闂殑鍖呭悕锛屽鍏朵粬闇瑕佸彲浠ヨ嚜琛屾坊鍔狅級 */ + public static final String[] JOB_WHITELIST_STR = {"com.ruoyi.job.task"}; + + /** 瀹氭椂浠诲姟杩濊鐨勫瓧绗 */ + public static final String[] JOB_ERROR_STR = { + "java.net.URL", + "javax.naming.InitialContext", + "org.yaml.snakeyaml", + "org.springframework", + "org.apache", + "com.ruoyi.common.core.utils.file" + }; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java index b008e65e2..d049e95e4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java @@ -2,116 +2,130 @@ package com.ruoyi.common.core.constant; /** * 浠g爜鐢熸垚閫氱敤甯搁噺 - * + * * @author ruoyi */ -public class GenConstants -{ - /** 鍗曡〃锛堝鍒犳敼鏌ワ級 */ - public static final String TPL_CRUD = "crud"; +public class GenConstants { + /** 鍗曡〃锛堝鍒犳敼鏌ワ級 */ + public static final String TPL_CRUD = "crud"; - /** 鏍戣〃锛堝鍒犳敼鏌ワ級 */ - public static final String TPL_TREE = "tree"; + /** 鏍戣〃锛堝鍒犳敼鏌ワ級 */ + public static final String TPL_TREE = "tree"; - /** 涓诲瓙琛紙澧炲垹鏀规煡锛 */ - public static final String TPL_SUB = "sub"; + /** 涓诲瓙琛紙澧炲垹鏀规煡锛 */ + public static final String TPL_SUB = "sub"; - /** 鏍戠紪鐮佸瓧娈 */ - public static final String TREE_CODE = "treeCode"; + /** 鏍戠紪鐮佸瓧娈 */ + public static final String TREE_CODE = "treeCode"; - /** 鏍戠埗缂栫爜瀛楁 */ - public static final String TREE_PARENT_CODE = "treeParentCode"; + /** 鏍戠埗缂栫爜瀛楁 */ + public static final String TREE_PARENT_CODE = "treeParentCode"; - /** 鏍戝悕绉板瓧娈 */ - public static final String TREE_NAME = "treeName"; + /** 鏍戝悕绉板瓧娈 */ + public static final String TREE_NAME = "treeName"; - /** 涓婄骇鑿滃崟ID瀛楁 */ - public static final String PARENT_MENU_ID = "parentMenuId"; + /** 涓婄骇鑿滃崟ID瀛楁 */ + public static final String PARENT_MENU_ID = "parentMenuId"; - /** 涓婄骇鑿滃崟鍚嶇О瀛楁 */ - public static final String PARENT_MENU_NAME = "parentMenuName"; + /** 涓婄骇鑿滃崟鍚嶇О瀛楁 */ + public static final String PARENT_MENU_NAME = "parentMenuName"; - /** 鏁版嵁搴撳瓧绗︿覆绫诲瀷 */ - public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" }; + /** 鏁版嵁搴撳瓧绗︿覆绫诲瀷 */ + public static final String[] COLUMNTYPE_STR = {"char", "varchar", "nvarchar", "varchar2"}; - /** 鏁版嵁搴撴枃鏈被鍨 */ - public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" }; + /** 鏁版嵁搴撴枃鏈被鍨 */ + public static final String[] COLUMNTYPE_TEXT = {"tinytext", "text", "mediumtext", "longtext"}; - /** 鏁版嵁搴撴椂闂寸被鍨 */ - public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" }; + /** 鏁版嵁搴撴椂闂寸被鍨 */ + public static final String[] COLUMNTYPE_TIME = {"datetime", "time", "date", "timestamp"}; - /** 鏁版嵁搴撴暟瀛楃被鍨 */ - public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer", - "bit", "bigint", "float", "double", "decimal" }; + /** 鏁版嵁搴撴暟瀛楃被鍨 */ + public static final String[] COLUMNTYPE_NUMBER = { + "tinyint", + "smallint", + "mediumint", + "int", + "number", + "integer", + "bit", + "bigint", + "float", + "double", + "decimal" + }; - /** 椤甸潰涓嶉渶瑕佺紪杈戝瓧娈 */ - public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" }; + /** 椤甸潰涓嶉渶瑕佺紪杈戝瓧娈 */ + public static final String[] COLUMNNAME_NOT_EDIT = {"id", "create_by", "create_time", "del_flag"}; - /** 椤甸潰涓嶉渶瑕佹樉绀虹殑鍒楄〃瀛楁 */ - public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by", - "update_time" }; + /** 椤甸潰涓嶉渶瑕佹樉绀虹殑鍒楄〃瀛楁 */ + public static final String[] COLUMNNAME_NOT_LIST = { + "id", "create_by", "create_time", "del_flag", "update_by", "update_time" + }; - /** 椤甸潰涓嶉渶瑕佹煡璇㈠瓧娈 */ - public static final String[] COLUMNNAME_NOT_QUERY = { "id", "create_by", "create_time", "del_flag", "update_by", - "update_time", "remark" }; + /** 椤甸潰涓嶉渶瑕佹煡璇㈠瓧娈 */ + public static final String[] COLUMNNAME_NOT_QUERY = { + "id", "create_by", "create_time", "del_flag", "update_by", "update_time", "remark" + }; - /** Entity鍩虹被瀛楁 */ - public static final String[] BASE_ENTITY = { "createBy", "createTime", "updateBy", "updateTime", "remark" }; + /** Entity鍩虹被瀛楁 */ + public static final String[] BASE_ENTITY = { + "createBy", "createTime", "updateBy", "updateTime", "remark" + }; - /** Tree鍩虹被瀛楁 */ - public static final String[] TREE_ENTITY = { "parentName", "parentId", "orderNum", "ancestors" }; + /** Tree鍩虹被瀛楁 */ + public static final String[] TREE_ENTITY = {"parentName", "parentId", "orderNum", "ancestors"}; - /** 鏂囨湰妗 */ - public static final String HTML_INPUT = "input"; + /** 鏂囨湰妗 */ + public static final String HTML_INPUT = "input"; - /** 鏂囨湰鍩 */ - public static final String HTML_TEXTAREA = "textarea"; + /** 鏂囨湰鍩 */ + public static final String HTML_TEXTAREA = "textarea"; - /** 涓嬫媺妗 */ - public static final String HTML_SELECT = "select"; + /** 涓嬫媺妗 */ + public static final String HTML_SELECT = "select"; - /** 鍗曢夋 */ - public static final String HTML_RADIO = "radio"; + /** 鍗曢夋 */ + public static final String HTML_RADIO = "radio"; - /** 澶嶉夋 */ - public static final String HTML_CHECKBOX = "checkbox"; + /** 澶嶉夋 */ + public static final String HTML_CHECKBOX = "checkbox"; - /** 鏃ユ湡鎺т欢 */ - public static final String HTML_DATETIME = "datetime"; + /** 鏃ユ湡鎺т欢 */ + public static final String HTML_DATETIME = "datetime"; - /** 鍥剧墖涓婁紶鎺т欢 */ - public static final String HTML_IMAGE_UPLOAD = "imageUpload"; + /** 鍥剧墖涓婁紶鎺т欢 */ + public static final String HTML_IMAGE_UPLOAD = "imageUpload"; - /** 鏂囦欢涓婁紶鎺т欢 */ - public static final String HTML_FILE_UPLOAD = "fileUpload"; + /** 鏂囦欢涓婁紶鎺т欢 */ + public static final String HTML_FILE_UPLOAD = "fileUpload"; - /** 瀵屾枃鏈帶浠 */ - public static final String HTML_EDITOR = "editor"; + /** 瀵屾枃鏈帶浠 */ + public static final String HTML_EDITOR = "editor"; - /** 瀛楃涓茬被鍨 */ - public static final String TYPE_STRING = "String"; + /** 瀛楃涓茬被鍨 */ + public static final String TYPE_STRING = "String"; - /** 鏁村瀷 */ - public static final String TYPE_INTEGER = "Integer"; + /** 鏁村瀷 */ + public static final String TYPE_INTEGER = "Integer"; - /** 闀挎暣鍨 */ - public static final String TYPE_LONG = "Long"; + /** 闀挎暣鍨 */ + public static final String TYPE_LONG = "Long"; - /** 娴偣鍨 */ - public static final String TYPE_DOUBLE = "Double"; + /** 娴偣鍨 */ + public static final String TYPE_DOUBLE = "Double"; - /** 楂樼簿搴﹁绠楃被鍨 */ - public static final String TYPE_BIGDECIMAL = "BigDecimal"; + /** 楂樼簿搴﹁绠楃被鍨 */ + public static final String TYPE_BIGDECIMAL = "BigDecimal"; - /** 鏃堕棿绫诲瀷 */ - public static final String TYPE_DATE = "Date"; + /** 鏃堕棿绫诲瀷 */ + public static final String TYPE_DATE = "Date"; - /** 妯$硦鏌ヨ */ - public static final String QUERY_LIKE = "LIKE"; + /** 妯$硦鏌ヨ */ + public static final String QUERY_LIKE = "LIKE"; - /** 鐩哥瓑鏌ヨ */ - public static final String QUERY_EQ = "EQ"; + /** 鐩哥瓑鏌ヨ */ + public static final String QUERY_EQ = "EQ"; - /** 闇瑕 */ - public static final String REQUIRE = "1"; + /** 闇瑕 */ + public static final String REQUIRE = "1"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HttpStatus.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HttpStatus.java index 45b61601e..8d60905e2 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HttpStatus.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HttpStatus.java @@ -2,93 +2,58 @@ package com.ruoyi.common.core.constant; /** * 杩斿洖鐘舵佺爜 - * + * * @author ruoyi */ -public class HttpStatus -{ - /** - * 鎿嶄綔鎴愬姛 - */ - public static final int SUCCESS = 200; - - /** - * 瀵硅薄鍒涘缓鎴愬姛 - */ - public static final int CREATED = 201; - - /** - * 璇锋眰宸茬粡琚帴鍙 - */ - public static final int ACCEPTED = 202; - - /** - * 鎿嶄綔宸茬粡鎵ц鎴愬姛锛屼絾鏄病鏈夎繑鍥炴暟鎹 - */ - public static final int NO_CONTENT = 204; - - /** - * 璧勬簮宸茶绉婚櫎 - */ - public static final int MOVED_PERM = 301; - - /** - * 閲嶅畾鍚 - */ - public static final int SEE_OTHER = 303; - - /** - * 璧勬簮娌℃湁琚慨鏀 - */ - public static final int NOT_MODIFIED = 304; - - /** - * 鍙傛暟鍒楄〃閿欒锛堢己灏戯紝鏍煎紡涓嶅尮閰嶏級 - */ - public static final int BAD_REQUEST = 400; - - /** - * 鏈巿鏉 - */ - public static final int UNAUTHORIZED = 401; - - /** - * 璁块棶鍙楅檺锛屾巿鏉冭繃鏈 - */ - public static final int FORBIDDEN = 403; - - /** - * 璧勬簮锛屾湇鍔℃湭鎵惧埌 - */ - public static final int NOT_FOUND = 404; - - /** - * 涓嶅厑璁哥殑http鏂规硶 - */ - public static final int BAD_METHOD = 405; - - /** - * 璧勬簮鍐茬獊锛屾垨鑰呰祫婧愯閿 - */ - public static final int CONFLICT = 409; - - /** - * 涓嶆敮鎸佺殑鏁版嵁锛屽獟浣撶被鍨 - */ - public static final int UNSUPPORTED_TYPE = 415; - - /** - * 绯荤粺鍐呴儴閿欒 - */ - public static final int ERROR = 500; - - /** - * 鎺ュ彛鏈疄鐜 - */ - public static final int NOT_IMPLEMENTED = 501; - - /** - * 绯荤粺璀﹀憡娑堟伅 - */ - public static final int WARN = 601; +public class HttpStatus { + /** 鎿嶄綔鎴愬姛 */ + public static final int SUCCESS = 200; + + /** 瀵硅薄鍒涘缓鎴愬姛 */ + public static final int CREATED = 201; + + /** 璇锋眰宸茬粡琚帴鍙 */ + public static final int ACCEPTED = 202; + + /** 鎿嶄綔宸茬粡鎵ц鎴愬姛锛屼絾鏄病鏈夎繑鍥炴暟鎹 */ + public static final int NO_CONTENT = 204; + + /** 璧勬簮宸茶绉婚櫎 */ + public static final int MOVED_PERM = 301; + + /** 閲嶅畾鍚 */ + public static final int SEE_OTHER = 303; + + /** 璧勬簮娌℃湁琚慨鏀 */ + public static final int NOT_MODIFIED = 304; + + /** 鍙傛暟鍒楄〃閿欒锛堢己灏戯紝鏍煎紡涓嶅尮閰嶏級 */ + public static final int BAD_REQUEST = 400; + + /** 鏈巿鏉 */ + public static final int UNAUTHORIZED = 401; + + /** 璁块棶鍙楅檺锛屾巿鏉冭繃鏈 */ + public static final int FORBIDDEN = 403; + + /** 璧勬簮锛屾湇鍔℃湭鎵惧埌 */ + public static final int NOT_FOUND = 404; + + /** 涓嶅厑璁哥殑http鏂规硶 */ + public static final int BAD_METHOD = 405; + + /** 璧勬簮鍐茬獊锛屾垨鑰呰祫婧愯閿 */ + public static final int CONFLICT = 409; + + /** 涓嶆敮鎸佺殑鏁版嵁锛屽獟浣撶被鍨 */ + public static final int UNSUPPORTED_TYPE = 415; + + /** 绯荤粺鍐呴儴閿欒 */ + public static final int ERROR = 500; + + /** 鎺ュ彛鏈疄鐜 */ + public static final int NOT_IMPLEMENTED = 501; + + /** 绯荤粺璀﹀憡娑堟伅 */ + public static final int WARN = 601; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java index b562cff18..af1b5726b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java @@ -2,49 +2,41 @@ package com.ruoyi.common.core.constant; /** * 浠诲姟璋冨害閫氱敤甯搁噺 - * + * * @author ruoyi */ -public class ScheduleConstants -{ - public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; - - /** 鎵ц鐩爣key */ - public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; - - /** 榛樿 */ - public static final String MISFIRE_DEFAULT = "0"; - - /** 绔嬪嵆瑙﹀彂鎵ц */ - public static final String MISFIRE_IGNORE_MISFIRES = "1"; - - /** 瑙﹀彂涓娆℃墽琛 */ - public static final String MISFIRE_FIRE_AND_PROCEED = "2"; - - /** 涓嶈Е鍙戠珛鍗虫墽琛 */ - public static final String MISFIRE_DO_NOTHING = "3"; - - public enum Status - { - /** - * 姝e父 - */ - NORMAL("0"), - /** - * 鏆傚仠 - */ - PAUSE("1"); - - private String value; - - private Status(String value) - { - this.value = value; - } - - public String getValue() - { - return value; - } +public class ScheduleConstants { + public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; + + /** 鎵ц鐩爣key */ + public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; + + /** 榛樿 */ + public static final String MISFIRE_DEFAULT = "0"; + + /** 绔嬪嵆瑙﹀彂鎵ц */ + public static final String MISFIRE_IGNORE_MISFIRES = "1"; + + /** 瑙﹀彂涓娆℃墽琛 */ + public static final String MISFIRE_FIRE_AND_PROCEED = "2"; + + /** 涓嶈Е鍙戠珛鍗虫墽琛 */ + public static final String MISFIRE_DO_NOTHING = "3"; + + public enum Status { + /** 姝e父 */ + NORMAL("0"), + /** 鏆傚仠 */ + PAUSE("1"); + + private String value; + + private Status(String value) { + this.value = value; + } + + public String getValue() { + return value; } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java index 7e790ff96..e1ddf2e15 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java @@ -2,48 +2,31 @@ package com.ruoyi.common.core.constant; /** * 鏉冮檺鐩稿叧閫氱敤甯搁噺 - * + * * @author ruoyi */ -public class SecurityConstants -{ - /** - * 鐢ㄦ埛ID瀛楁 - */ - public static final String DETAILS_USER_ID = "user_id"; - - /** - * 鐢ㄦ埛鍚嶅瓧娈 - */ - public static final String DETAILS_USERNAME = "username"; - - /** - * 鎺堟潈淇℃伅瀛楁 - */ - public static final String AUTHORIZATION_HEADER = "Authorization"; - - /** - * 璇锋眰鏉ユ簮 - */ - public static final String FROM_SOURCE = "from-source"; - - /** - * 鍐呴儴璇锋眰 - */ - public static final String INNER = "inner"; - - /** - * 鐢ㄦ埛鏍囪瘑 - */ - public static final String USER_KEY = "user_key"; - - /** - * 鐧诲綍鐢ㄦ埛 - */ - public static final String LOGIN_USER = "login_user"; - - /** - * 瑙掕壊鏉冮檺 - */ - public static final String ROLE_PERMISSION = "role_permission"; +public class SecurityConstants { + /** 鐢ㄦ埛ID瀛楁 */ + public static final String DETAILS_USER_ID = "user_id"; + + /** 鐢ㄦ埛鍚嶅瓧娈 */ + public static final String DETAILS_USERNAME = "username"; + + /** 鎺堟潈淇℃伅瀛楁 */ + public static final String AUTHORIZATION_HEADER = "Authorization"; + + /** 璇锋眰鏉ユ簮 */ + public static final String FROM_SOURCE = "from-source"; + + /** 鍐呴儴璇锋眰 */ + public static final String INNER = "inner"; + + /** 鐢ㄦ埛鏍囪瘑 */ + public static final String USER_KEY = "user_key"; + + /** 鐧诲綍鐢ㄦ埛 */ + public static final String LOGIN_USER = "login_user"; + + /** 瑙掕壊鏉冮檺 */ + public static final String ROLE_PERMISSION = "role_permission"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index a7dcfdd63..12f00caae 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -2,23 +2,16 @@ package com.ruoyi.common.core.constant; /** * 鏈嶅姟鍚嶇О - * + * * @author ruoyi */ -public class ServiceNameConstants -{ - /** - * 璁よ瘉鏈嶅姟鐨剆erviceid - */ - public static final String AUTH_SERVICE = "ruoyi-auth"; +public class ServiceNameConstants { + /** 璁よ瘉鏈嶅姟鐨剆erviceid */ + public static final String AUTH_SERVICE = "ruoyi-auth"; - /** - * 绯荤粺妯″潡鐨剆erviceid - */ - public static final String SYSTEM_SERVICE = "ruoyi-system"; + /** 绯荤粺妯″潡鐨剆erviceid */ + public static final String SYSTEM_SERVICE = "ruoyi-system"; - /** - * 鏂囦欢鏈嶅姟鐨剆erviceid - */ - public static final String FILE_SERVICE = "ruoyi-file"; + /** 鏂囦欢鏈嶅姟鐨剆erviceid */ + public static final String FILE_SERVICE = "ruoyi-file"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java index a373028e4..a1bfa644f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java @@ -2,19 +2,13 @@ package com.ruoyi.common.core.constant; /** * Token鐨凨ey甯搁噺 - * + * * @author ruoyi */ -public class TokenConstants -{ - /** - * 浠ょ墝鍓嶇紑 - */ - public static final String PREFIX = "Bearer "; - - /** - * 浠ょ墝绉橀挜 - */ - public final static String SECRET = "abcdefghijklmnopqrstuvwxyz"; +public class TokenConstants { + /** 浠ょ墝鍓嶇紑 */ + public static final String PREFIX = "Bearer "; + /** 浠ょ墝绉橀挜 */ + public static final String SECRET = "abcdefghijklmnopqrstuvwxyz"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java index 3335095ec..1654bd937 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java @@ -2,87 +2,80 @@ package com.ruoyi.common.core.constant; /** * 鐢ㄦ埛甯搁噺淇℃伅 - * + * * @author ruoyi */ -public class UserConstants -{ - /** - * 骞冲彴鍐呯郴缁熺敤鎴风殑鍞竴鏍囧織 - */ - public static final String SYS_USER = "SYS_USER"; +public class UserConstants { + /** 骞冲彴鍐呯郴缁熺敤鎴风殑鍞竴鏍囧織 */ + public static final String SYS_USER = "SYS_USER"; - /** 姝e父鐘舵 */ - public static final String NORMAL = "0"; + /** 姝e父鐘舵 */ + public static final String NORMAL = "0"; - /** 寮傚父鐘舵 */ - public static final String EXCEPTION = "1"; + /** 寮傚父鐘舵 */ + public static final String EXCEPTION = "1"; - /** 鐢ㄦ埛灏佺鐘舵 */ - public static final String USER_DISABLE = "1"; + /** 鐢ㄦ埛灏佺鐘舵 */ + public static final String USER_DISABLE = "1"; - /** 瑙掕壊姝e父鐘舵 */ - public static final String ROLE_NORMAL = "0"; + /** 瑙掕壊姝e父鐘舵 */ + public static final String ROLE_NORMAL = "0"; - /** 瑙掕壊灏佺鐘舵 */ - public static final String ROLE_DISABLE = "1"; + /** 瑙掕壊灏佺鐘舵 */ + public static final String ROLE_DISABLE = "1"; - /** 閮ㄩ棬姝e父鐘舵 */ - public static final String DEPT_NORMAL = "0"; + /** 閮ㄩ棬姝e父鐘舵 */ + public static final String DEPT_NORMAL = "0"; - /** 閮ㄩ棬鍋滅敤鐘舵 */ - public static final String DEPT_DISABLE = "1"; + /** 閮ㄩ棬鍋滅敤鐘舵 */ + public static final String DEPT_DISABLE = "1"; - /** 瀛楀吀姝e父鐘舵 */ - public static final String DICT_NORMAL = "0"; + /** 瀛楀吀姝e父鐘舵 */ + public static final String DICT_NORMAL = "0"; - /** 鏄惁涓虹郴缁熼粯璁わ紙鏄級 */ - public static final String YES = "Y"; + /** 鏄惁涓虹郴缁熼粯璁わ紙鏄級 */ + public static final String YES = "Y"; - /** 鏄惁鑿滃崟澶栭摼锛堟槸锛 */ - public static final String YES_FRAME = "0"; + /** 鏄惁鑿滃崟澶栭摼锛堟槸锛 */ + public static final String YES_FRAME = "0"; - /** 鏄惁鑿滃崟澶栭摼锛堝惁锛 */ - public static final String NO_FRAME = "1"; + /** 鏄惁鑿滃崟澶栭摼锛堝惁锛 */ + public static final String NO_FRAME = "1"; - /** 鑿滃崟绫诲瀷锛堢洰褰曪級 */ - public static final String TYPE_DIR = "M"; + /** 鑿滃崟绫诲瀷锛堢洰褰曪級 */ + public static final String TYPE_DIR = "M"; - /** 鑿滃崟绫诲瀷锛堣彍鍗曪級 */ - public static final String TYPE_MENU = "C"; + /** 鑿滃崟绫诲瀷锛堣彍鍗曪級 */ + public static final String TYPE_MENU = "C"; - /** 鑿滃崟绫诲瀷锛堟寜閽級 */ - public static final String TYPE_BUTTON = "F"; + /** 鑿滃崟绫诲瀷锛堟寜閽級 */ + public static final String TYPE_BUTTON = "F"; - /** Layout缁勪欢鏍囪瘑 */ - public final static String LAYOUT = "Layout"; + /** Layout缁勪欢鏍囪瘑 */ + public static final String LAYOUT = "Layout"; - /** ParentView缁勪欢鏍囪瘑 */ - public final static String PARENT_VIEW = "ParentView"; + /** ParentView缁勪欢鏍囪瘑 */ + public static final String PARENT_VIEW = "ParentView"; - /** InnerLink缁勪欢鏍囪瘑 */ - public final static String INNER_LINK = "InnerLink"; + /** InnerLink缁勪欢鏍囪瘑 */ + public static final String INNER_LINK = "InnerLink"; - /** 鏍¢獙鏄惁鍞竴鐨勮繑鍥炴爣璇 */ - public final static boolean UNIQUE = true; - public final static boolean NOT_UNIQUE = false; + /** 鏍¢獙鏄惁鍞竴鐨勮繑鍥炴爣璇 */ + public static final boolean UNIQUE = true; - /** - * 鐢ㄦ埛鍚嶉暱搴﹂檺鍒 - */ - public static final int USERNAME_MIN_LENGTH = 2; + public static final boolean NOT_UNIQUE = false; - public static final int USERNAME_MAX_LENGTH = 20; + /** 鐢ㄦ埛鍚嶉暱搴﹂檺鍒 */ + public static final int USERNAME_MIN_LENGTH = 2; - /** - * 瀵嗙爜闀垮害闄愬埗 - */ - public static final int PASSWORD_MIN_LENGTH = 5; + public static final int USERNAME_MAX_LENGTH = 20; - public static final int PASSWORD_MAX_LENGTH = 20; + /** 瀵嗙爜闀垮害闄愬埗 */ + public static final int PASSWORD_MIN_LENGTH = 5; - public static boolean isAdmin(Long userId) - { - return userId != null && 1L == userId; - } + public static final int PASSWORD_MAX_LENGTH = 20; + + public static boolean isAdmin(Long userId) { + return userId != null && 1L == userId; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/context/SecurityContextHolder.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/context/SecurityContextHolder.java index 2a8dde846..c341500a0 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/context/SecurityContextHolder.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/context/SecurityContextHolder.java @@ -1,98 +1,82 @@ package com.ruoyi.common.core.context; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; import com.alibaba.ttl.TransmittableThreadLocal; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.StringUtils; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** - * 鑾峰彇褰撳墠绾跨▼鍙橀噺涓殑 鐢ㄦ埛id銆佺敤鎴峰悕绉般乀oken绛変俊鎭 - * 娉ㄦ剰锛 蹇呴』鍦ㄧ綉鍏抽氳繃璇锋眰澶寸殑鏂规硶浼犲叆锛屽悓鏃跺湪HeaderInterceptor鎷︽埅鍣ㄨ缃笺 鍚﹀垯杩欓噷鏃犳硶鑾峰彇 + * 鑾峰彇褰撳墠绾跨▼鍙橀噺涓殑 鐢ㄦ埛id銆佺敤鎴峰悕绉般乀oken绛変俊鎭 娉ㄦ剰锛 蹇呴』鍦ㄧ綉鍏抽氳繃璇锋眰澶寸殑鏂规硶浼犲叆锛屽悓鏃跺湪HeaderInterceptor鎷︽埅鍣ㄨ缃笺 鍚﹀垯杩欓噷鏃犳硶鑾峰彇 * * @author ruoyi */ -public class SecurityContextHolder -{ - private static final TransmittableThreadLocal> THREAD_LOCAL = new TransmittableThreadLocal<>(); - - public static void set(String key, Object value) - { - Map map = getLocalMap(); - map.put(key, value == null ? StringUtils.EMPTY : value); - } - - public static String get(String key) - { - Map map = getLocalMap(); - return Convert.toStr(map.getOrDefault(key, StringUtils.EMPTY)); - } - - public static T get(String key, Class clazz) - { - Map map = getLocalMap(); - return StringUtils.cast(map.getOrDefault(key, null)); - } - - public static Map getLocalMap() - { - Map map = THREAD_LOCAL.get(); - if (map == null) - { - map = new ConcurrentHashMap(); - THREAD_LOCAL.set(map); - } - return map; +public class SecurityContextHolder { + private static final TransmittableThreadLocal> THREAD_LOCAL = + new TransmittableThreadLocal<>(); + + public static void set(String key, Object value) { + Map map = getLocalMap(); + map.put(key, value == null ? StringUtils.EMPTY : value); + } + + public static String get(String key) { + Map map = getLocalMap(); + return Convert.toStr(map.getOrDefault(key, StringUtils.EMPTY)); + } + + public static T get(String key, Class clazz) { + Map map = getLocalMap(); + return StringUtils.cast(map.getOrDefault(key, null)); + } + + public static Map getLocalMap() { + Map map = THREAD_LOCAL.get(); + if (map == null) { + map = new ConcurrentHashMap(); + THREAD_LOCAL.set(map); } + return map; + } - public static void setLocalMap(Map threadLocalMap) - { - THREAD_LOCAL.set(threadLocalMap); - } + public static void setLocalMap(Map threadLocalMap) { + THREAD_LOCAL.set(threadLocalMap); + } - public static Long getUserId() - { - return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L); - } + public static Long getUserId() { + return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L); + } - public static void setUserId(String account) - { - set(SecurityConstants.DETAILS_USER_ID, account); - } + public static void setUserId(String account) { + set(SecurityConstants.DETAILS_USER_ID, account); + } - public static String getUserName() - { - return get(SecurityConstants.DETAILS_USERNAME); - } + public static String getUserName() { + return get(SecurityConstants.DETAILS_USERNAME); + } - public static void setUserName(String username) - { - set(SecurityConstants.DETAILS_USERNAME, username); - } + public static void setUserName(String username) { + set(SecurityConstants.DETAILS_USERNAME, username); + } - public static String getUserKey() - { - return get(SecurityConstants.USER_KEY); - } + public static String getUserKey() { + return get(SecurityConstants.USER_KEY); + } - public static void setUserKey(String userKey) - { - set(SecurityConstants.USER_KEY, userKey); - } + public static void setUserKey(String userKey) { + set(SecurityConstants.USER_KEY, userKey); + } - public static String getPermission() - { - return get(SecurityConstants.ROLE_PERMISSION); - } + public static String getPermission() { + return get(SecurityConstants.ROLE_PERMISSION); + } - public static void setPermission(String permissions) - { - set(SecurityConstants.ROLE_PERMISSION, permissions); - } + public static void setPermission(String permissions) { + set(SecurityConstants.ROLE_PERMISSION, permissions); + } - public static void remove() - { - THREAD_LOCAL.remove(); - } + public static void remove() { + THREAD_LOCAL.remove(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java index 1fe16e20c..4e1b8cf12 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,115 +1,97 @@ package com.ruoyi.common.core.domain; -import java.io.Serializable; import com.ruoyi.common.core.constant.Constants; +import java.io.Serializable; /** * 鍝嶅簲淇℃伅涓讳綋 * * @author ruoyi */ -public class R implements Serializable -{ - private static final long serialVersionUID = 1L; - - /** 鎴愬姛 */ - public static final int SUCCESS = Constants.SUCCESS; - - /** 澶辫触 */ - public static final int FAIL = Constants.FAIL; - - private int code; - - private String msg; - - private T data; - - public static R ok() - { - return restResult(null, SUCCESS, null); - } - - public static R ok(T data) - { - return restResult(data, SUCCESS, null); - } - - public static R ok(T data, String msg) - { - return restResult(data, SUCCESS, msg); - } - - public static R fail() - { - return restResult(null, FAIL, null); - } - - public static R fail(String msg) - { - return restResult(null, FAIL, msg); - } - - public static R fail(T data) - { - return restResult(data, FAIL, null); - } - - public static R fail(T data, String msg) - { - return restResult(data, FAIL, msg); - } - - public static R fail(int code, String msg) - { - return restResult(null, code, msg); - } - - private static R restResult(T data, int code, String msg) - { - R apiResult = new R<>(); - apiResult.setCode(code); - apiResult.setData(data); - apiResult.setMsg(msg); - return apiResult; - } - - public int getCode() - { - return code; - } - - public void setCode(int code) - { - this.code = code; - } - - public String getMsg() - { - return msg; - } - - public void setMsg(String msg) - { - this.msg = msg; - } - - public T getData() - { - return data; - } - - public void setData(T data) - { - this.data = data; - } - - public static Boolean isError(R ret) - { - return !isSuccess(ret); - } - - public static Boolean isSuccess(R ret) - { - return R.SUCCESS == ret.getCode(); - } +public class R implements Serializable { + private static final long serialVersionUID = 1L; + + /** 鎴愬姛 */ + public static final int SUCCESS = Constants.SUCCESS; + + /** 澶辫触 */ + public static final int FAIL = Constants.FAIL; + + private int code; + + private String msg; + + private T data; + + public static R ok() { + return restResult(null, SUCCESS, null); + } + + public static R ok(T data) { + return restResult(data, SUCCESS, null); + } + + public static R ok(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static R fail() { + return restResult(null, FAIL, null); + } + + public static R fail(String msg) { + return restResult(null, FAIL, msg); + } + + public static R fail(T data) { + return restResult(data, FAIL, null); + } + + public static R fail(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static R fail(int code, String msg) { + return restResult(null, code, msg); + } + + private static R restResult(T data, int code, String msg) { + R apiResult = new R<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + return apiResult; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public static Boolean isError(R ret) { + return !isSuccess(ret); + } + + public static Boolean isSuccess(R ret) { + return R.SUCCESS == ret.getCode(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/UserStatus.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/UserStatus.java index 9ff84960d..372ebd098 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/UserStatus.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/UserStatus.java @@ -2,29 +2,27 @@ package com.ruoyi.common.core.enums; /** * 鐢ㄦ埛鐘舵 - * + * * @author ruoyi */ -public enum UserStatus -{ - OK("0", "姝e父"), DISABLE("1", "鍋滅敤"), DELETED("2", "鍒犻櫎"); +public enum UserStatus { + OK("0", "姝e父"), + DISABLE("1", "鍋滅敤"), + DELETED("2", "鍒犻櫎"); - private final String code; - private final String info; + private final String code; + private final String info; - UserStatus(String code, String info) - { - this.code = code; - this.info = info; - } + UserStatus(String code, String info) { + this.code = code; + this.info = info; + } - public String getCode() - { - return code; - } + public String getCode() { + return code; + } - public String getInfo() - { - return info; - } + public String getInfo() { + return info; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CaptchaException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CaptchaException.java index 3e0185100..4cd395700 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CaptchaException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CaptchaException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception; /** * 楠岃瘉鐮侀敊璇紓甯哥被 - * + * * @author ruoyi */ -public class CaptchaException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class CaptchaException extends RuntimeException { + private static final long serialVersionUID = 1L; - public CaptchaException(String msg) - { - super(msg); - } + public CaptchaException(String msg) { + super(msg); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CheckedException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CheckedException.java index 862eefa50..c70eaf842 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CheckedException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/CheckedException.java @@ -2,30 +2,26 @@ package com.ruoyi.common.core.exception; /** * 妫鏌ュ紓甯 - * + * * @author ruoyi */ -public class CheckedException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class CheckedException extends RuntimeException { + private static final long serialVersionUID = 1L; - public CheckedException(String message) - { - super(message); - } + public CheckedException(String message) { + super(message); + } - public CheckedException(Throwable cause) - { - super(cause); - } + public CheckedException(Throwable cause) { + super(cause); + } - public CheckedException(String message, Throwable cause) - { - super(message, cause); - } + public CheckedException(String message, Throwable cause) { + super(message, cause); + } - public CheckedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) - { - super(message, cause, enableSuppression, writableStackTrace); - } + public CheckedException( + String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/DemoModeException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/DemoModeException.java index ac2a19e9a..4ae2b531a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/DemoModeException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/DemoModeException.java @@ -2,14 +2,11 @@ package com.ruoyi.common.core.exception; /** * 婕旂ず妯″紡寮傚父 - * + * * @author ruoyi */ -public class DemoModeException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class DemoModeException extends RuntimeException { + private static final long serialVersionUID = 1L; - public DemoModeException() - { - } + public DemoModeException() {} } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/GlobalException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/GlobalException.java index b55c7cd29..6596cc180 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/GlobalException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/GlobalException.java @@ -2,57 +2,45 @@ package com.ruoyi.common.core.exception; /** * 鍏ㄥ眬寮傚父 - * + * * @author ruoyi */ -public class GlobalException extends RuntimeException -{ - private static final long serialVersionUID = 1L; - - /** - * 閿欒鎻愮ず - */ - private String message; - - /** - * 閿欒鏄庣粏锛屽唴閮ㄨ皟璇曢敊璇 - * - * 鍜 {@link CommonResult#getDetailMessage()} 涓鑷寸殑璁捐 - */ - private String detailMessage; - - /** - * 绌烘瀯閫犳柟娉曪紝閬垮厤鍙嶅簭鍒楀寲闂 - */ - public GlobalException() - { - } - - public GlobalException(String message) - { - this.message = message; - } - - public String getDetailMessage() - { - return detailMessage; - } - - public GlobalException setDetailMessage(String detailMessage) - { - this.detailMessage = detailMessage; - return this; - } - - @Override - public String getMessage() - { - return message; - } - - public GlobalException setMessage(String message) - { - this.message = message; - return this; - } -} \ No newline at end of file +public class GlobalException extends RuntimeException { + private static final long serialVersionUID = 1L; + + /** 閿欒鎻愮ず */ + private String message; + + /** + * 閿欒鏄庣粏锛屽唴閮ㄨ皟璇曢敊璇 + * + *

鍜 {@link CommonResult#getDetailMessage()} 涓鑷寸殑璁捐 + */ + private String detailMessage; + + /** 绌烘瀯閫犳柟娉曪紝閬垮厤鍙嶅簭鍒楀寲闂 */ + public GlobalException() {} + + public GlobalException(String message) { + this.message = message; + } + + public String getDetailMessage() { + return detailMessage; + } + + public GlobalException setDetailMessage(String detailMessage) { + this.detailMessage = detailMessage; + return this; + } + + @Override + public String getMessage() { + return message; + } + + public GlobalException setMessage(String message) { + this.message = message; + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/InnerAuthException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/InnerAuthException.java index 8a7abe9f5..0e1a42955 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/InnerAuthException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/InnerAuthException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception; /** * 鍐呴儴璁よ瘉寮傚父 - * + * * @author ruoyi */ -public class InnerAuthException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class InnerAuthException extends RuntimeException { + private static final long serialVersionUID = 1L; - public InnerAuthException(String message) - { - super(message); - } + public InnerAuthException(String message) { + super(message); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/PreAuthorizeException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/PreAuthorizeException.java index 3d420c415..3f1f4dfca 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/PreAuthorizeException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/PreAuthorizeException.java @@ -2,14 +2,11 @@ package com.ruoyi.common.core.exception; /** * 鏉冮檺寮傚父 - * + * * @author ruoyi */ -public class PreAuthorizeException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class PreAuthorizeException extends RuntimeException { + private static final long serialVersionUID = 1L; - public PreAuthorizeException() - { - } + public PreAuthorizeException() {} } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/ServiceException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/ServiceException.java index 4983866d5..454a415b6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/ServiceException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/ServiceException.java @@ -2,73 +2,57 @@ package com.ruoyi.common.core.exception; /** * 涓氬姟寮傚父 - * + * * @author ruoyi */ -public final class ServiceException extends RuntimeException -{ - private static final long serialVersionUID = 1L; - - /** - * 閿欒鐮 - */ - private Integer code; - - /** - * 閿欒鎻愮ず - */ - private String message; - - /** - * 閿欒鏄庣粏锛屽唴閮ㄨ皟璇曢敊璇 - * - * 鍜 {@link CommonResult#getDetailMessage()} 涓鑷寸殑璁捐 - */ - private String detailMessage; - - /** - * 绌烘瀯閫犳柟娉曪紝閬垮厤鍙嶅簭鍒楀寲闂 - */ - public ServiceException() - { - } - - public ServiceException(String message) - { - this.message = message; - } - - public ServiceException(String message, Integer code) - { - this.message = message; - this.code = code; - } - - public String getDetailMessage() - { - return detailMessage; - } - - @Override - public String getMessage() - { - return message; - } - - public Integer getCode() - { - return code; - } - - public ServiceException setMessage(String message) - { - this.message = message; - return this; - } - - public ServiceException setDetailMessage(String detailMessage) - { - this.detailMessage = detailMessage; - return this; - } -} \ No newline at end of file +public final class ServiceException extends RuntimeException { + private static final long serialVersionUID = 1L; + + /** 閿欒鐮 */ + private Integer code; + + /** 閿欒鎻愮ず */ + private String message; + + /** + * 閿欒鏄庣粏锛屽唴閮ㄨ皟璇曢敊璇 + * + *

鍜 {@link CommonResult#getDetailMessage()} 涓鑷寸殑璁捐 + */ + private String detailMessage; + + /** 绌烘瀯閫犳柟娉曪紝閬垮厤鍙嶅簭鍒楀寲闂 */ + public ServiceException() {} + + public ServiceException(String message) { + this.message = message; + } + + public ServiceException(String message, Integer code) { + this.message = message; + this.code = code; + } + + public String getDetailMessage() { + return detailMessage; + } + + @Override + public String getMessage() { + return message; + } + + public Integer getCode() { + return code; + } + + public ServiceException setMessage(String message) { + this.message = message; + return this; + } + + public ServiceException setDetailMessage(String detailMessage) { + this.detailMessage = detailMessage; + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/UtilException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/UtilException.java index a1c16b533..db79f269d 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/UtilException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/UtilException.java @@ -2,25 +2,21 @@ package com.ruoyi.common.core.exception; /** * 宸ュ叿绫诲紓甯 - * + * * @author ruoyi */ -public class UtilException extends RuntimeException -{ - private static final long serialVersionUID = 8247610319171014183L; +public class UtilException extends RuntimeException { + private static final long serialVersionUID = 8247610319171014183L; - public UtilException(Throwable e) - { - super(e.getMessage(), e); - } + public UtilException(Throwable e) { + super(e.getMessage(), e); + } - public UtilException(String message) - { - super(message); - } + public UtilException(String message) { + super(message); + } - public UtilException(String message, Throwable throwable) - { - super(message, throwable); - } + public UtilException(String message, Throwable throwable) { + super(message, throwable); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotLoginException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotLoginException.java index eb6c3ae9e..2eac1f650 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotLoginException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotLoginException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception.auth; /** * 鏈兘閫氳繃鐨勭櫥褰曡璇佸紓甯 - * + * * @author ruoyi */ -public class NotLoginException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class NotLoginException extends RuntimeException { + private static final long serialVersionUID = 1L; - public NotLoginException(String message) - { - super(message); - } + public NotLoginException(String message) { + super(message); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotPermissionException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotPermissionException.java index a578a42ec..c5e6e3cda 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotPermissionException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotPermissionException.java @@ -4,20 +4,17 @@ import org.apache.commons.lang3.StringUtils; /** * 鏈兘閫氳繃鐨勬潈闄愯璇佸紓甯 - * + * * @author ruoyi */ -public class NotPermissionException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class NotPermissionException extends RuntimeException { + private static final long serialVersionUID = 1L; - public NotPermissionException(String permission) - { - super(permission); - } + public NotPermissionException(String permission) { + super(permission); + } - public NotPermissionException(String[] permissions) - { - super(StringUtils.join(permissions, ",")); - } + public NotPermissionException(String[] permissions) { + super(StringUtils.join(permissions, ",")); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotRoleException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotRoleException.java index d07118fba..6d39b9636 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotRoleException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/auth/NotRoleException.java @@ -4,20 +4,17 @@ import org.apache.commons.lang3.StringUtils; /** * 鏈兘閫氳繃鐨勮鑹茶璇佸紓甯 - * + * * @author ruoyi */ -public class NotRoleException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class NotRoleException extends RuntimeException { + private static final long serialVersionUID = 1L; - public NotRoleException(String role) - { - super(role); - } + public NotRoleException(String role) { + super(role); + } - public NotRoleException(String[] roles) - { - super(StringUtils.join(roles, ",")); - } + public NotRoleException(String[] roles) { + super(StringUtils.join(roles, ",")); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/base/BaseException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/base/BaseException.java index 3d2fa1052..cd597659d 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/base/BaseException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/base/BaseException.java @@ -2,78 +2,60 @@ package com.ruoyi.common.core.exception.base; /** * 鍩虹寮傚父 - * + * * @author ruoyi */ -public class BaseException extends RuntimeException -{ - private static final long serialVersionUID = 1L; +public class BaseException extends RuntimeException { + private static final long serialVersionUID = 1L; - /** - * 鎵灞炴ā鍧 - */ - private String module; + /** 鎵灞炴ā鍧 */ + private String module; - /** - * 閿欒鐮 - */ - private String code; + /** 閿欒鐮 */ + private String code; - /** - * 閿欒鐮佸搴旂殑鍙傛暟 - */ - private Object[] args; + /** 閿欒鐮佸搴旂殑鍙傛暟 */ + private Object[] args; - /** - * 閿欒娑堟伅 - */ - private String defaultMessage; + /** 閿欒娑堟伅 */ + private String defaultMessage; - public BaseException(String module, String code, Object[] args, String defaultMessage) - { - this.module = module; - this.code = code; - this.args = args; - this.defaultMessage = defaultMessage; - } + public BaseException(String module, String code, Object[] args, String defaultMessage) { + this.module = module; + this.code = code; + this.args = args; + this.defaultMessage = defaultMessage; + } - public BaseException(String module, String code, Object[] args) - { - this(module, code, args, null); - } + public BaseException(String module, String code, Object[] args) { + this(module, code, args, null); + } - public BaseException(String module, String defaultMessage) - { - this(module, null, null, defaultMessage); - } + public BaseException(String module, String defaultMessage) { + this(module, null, null, defaultMessage); + } - public BaseException(String code, Object[] args) - { - this(null, code, args, null); - } + public BaseException(String code, Object[] args) { + this(null, code, args, null); + } - public BaseException(String defaultMessage) - { - this(null, null, null, defaultMessage); - } + public BaseException(String defaultMessage) { + this(null, null, null, defaultMessage); + } - public String getModule() - { - return module; - } + public String getModule() { + return module; + } - public String getCode() - { - return code; - } + public String getCode() { + return code; + } - public Object[] getArgs() - { - return args; - } + public Object[] getArgs() { + return args; + } - public String getDefaultMessage() - { - return defaultMessage; - } + public String getDefaultMessage() { + return defaultMessage; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileException.java index b19f2d826..ba1c5adf7 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileException.java @@ -4,16 +4,13 @@ import com.ruoyi.common.core.exception.base.BaseException; /** * 鏂囦欢淇℃伅寮傚父绫 - * + * * @author ruoyi */ -public class FileException extends BaseException -{ - private static final long serialVersionUID = 1L; - - public FileException(String code, Object[] args, String msg) - { - super("file", code, args, msg); - } +public class FileException extends BaseException { + private static final long serialVersionUID = 1L; + public FileException(String code, Object[] args, String msg) { + super("file", code, args, msg); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileNameLengthLimitExceededException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileNameLengthLimitExceededException.java index 0962ca5ac..1aacd0092 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileNameLengthLimitExceededException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileNameLengthLimitExceededException.java @@ -2,15 +2,16 @@ package com.ruoyi.common.core.exception.file; /** * 鏂囦欢鍚嶇О瓒呴暱闄愬埗寮傚父绫 - * + * * @author ruoyi */ -public class FileNameLengthLimitExceededException extends FileException -{ - private static final long serialVersionUID = 1L; +public class FileNameLengthLimitExceededException extends FileException { + private static final long serialVersionUID = 1L; - public FileNameLengthLimitExceededException(int defaultFileNameLength) - { - super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }, "the filename is too long"); - } + public FileNameLengthLimitExceededException(int defaultFileNameLength) { + super( + "upload.filename.exceed.length", + new Object[] {defaultFileNameLength}, + "the filename is too long"); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileSizeLimitExceededException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileSizeLimitExceededException.java index f9a66b78c..a1f5740bb 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileSizeLimitExceededException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileSizeLimitExceededException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception.file; /** * 鏂囦欢鍚嶅ぇ灏忛檺鍒跺紓甯哥被 - * + * * @author ruoyi */ -public class FileSizeLimitExceededException extends FileException -{ - private static final long serialVersionUID = 1L; +public class FileSizeLimitExceededException extends FileException { + private static final long serialVersionUID = 1L; - public FileSizeLimitExceededException(long defaultMaxSize) - { - super("upload.exceed.maxSize", new Object[] { defaultMaxSize }, "the filesize is too large"); - } + public FileSizeLimitExceededException(long defaultMaxSize) { + super("upload.exceed.maxSize", new Object[] {defaultMaxSize}, "the filesize is too large"); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileUploadException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileUploadException.java index c0f57cb5d..9f5d0e43c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileUploadException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/FileUploadException.java @@ -5,57 +5,48 @@ import java.io.PrintWriter; /** * 鏂囦欢涓婁紶寮傚父绫 - * + * * @author ruoyi */ -public class FileUploadException extends Exception -{ +public class FileUploadException extends Exception { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - private final Throwable cause; + private final Throwable cause; - public FileUploadException() - { - this(null, null); - } + public FileUploadException() { + this(null, null); + } - public FileUploadException(final String msg) - { - this(msg, null); - } + public FileUploadException(final String msg) { + this(msg, null); + } - public FileUploadException(String msg, Throwable cause) - { - super(msg); - this.cause = cause; - } + public FileUploadException(String msg, Throwable cause) { + super(msg); + this.cause = cause; + } - @Override - public void printStackTrace(PrintStream stream) - { - super.printStackTrace(stream); - if (cause != null) - { - stream.println("Caused by:"); - cause.printStackTrace(stream); - } + @Override + public void printStackTrace(PrintStream stream) { + super.printStackTrace(stream); + if (cause != null) { + stream.println("Caused by:"); + cause.printStackTrace(stream); } - - @Override - public void printStackTrace(PrintWriter writer) - { - super.printStackTrace(writer); - if (cause != null) - { - writer.println("Caused by:"); - cause.printStackTrace(writer); - } + } + + @Override + public void printStackTrace(PrintWriter writer) { + super.printStackTrace(writer); + if (cause != null) { + writer.println("Caused by:"); + cause.printStackTrace(writer); } + } - @Override - public Throwable getCause() - { - return cause; - } + @Override + public Throwable getCause() { + return cause; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/InvalidExtensionException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/InvalidExtensionException.java index 2e978da36..7545d9068 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/InvalidExtensionException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/file/InvalidExtensionException.java @@ -4,77 +4,75 @@ import java.util.Arrays; /** * 鏂囦欢涓婁紶 璇紓甯哥被 - * + * * @author ruoyi */ -public class InvalidExtensionException extends FileUploadException -{ - private static final long serialVersionUID = 1L; +public class InvalidExtensionException extends FileUploadException { + private static final long serialVersionUID = 1L; - private String[] allowedExtension; - private String extension; - private String filename; + private String[] allowedExtension; + private String extension; + private String filename; - public InvalidExtensionException(String[] allowedExtension, String extension, String filename) - { - super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]"); - this.allowedExtension = allowedExtension; - this.extension = extension; - this.filename = filename; - } + public InvalidExtensionException(String[] allowedExtension, String extension, String filename) { + super( + "filename : [" + + filename + + "], extension : [" + + extension + + "], allowed extension : [" + + Arrays.toString(allowedExtension) + + "]"); + this.allowedExtension = allowedExtension; + this.extension = extension; + this.filename = filename; + } - public String[] getAllowedExtension() - { - return allowedExtension; - } + public String[] getAllowedExtension() { + return allowedExtension; + } - public String getExtension() - { - return extension; - } + public String getExtension() { + return extension; + } - public String getFilename() - { - return filename; - } + public String getFilename() { + return filename; + } - public static class InvalidImageExtensionException extends InvalidExtensionException - { - private static final long serialVersionUID = 1L; + public static class InvalidImageExtensionException extends InvalidExtensionException { + private static final long serialVersionUID = 1L; - public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) - { - super(allowedExtension, extension, filename); - } + public InvalidImageExtensionException( + String[] allowedExtension, String extension, String filename) { + super(allowedExtension, extension, filename); } + } - public static class InvalidFlashExtensionException extends InvalidExtensionException - { - private static final long serialVersionUID = 1L; + public static class InvalidFlashExtensionException extends InvalidExtensionException { + private static final long serialVersionUID = 1L; - public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) - { - super(allowedExtension, extension, filename); - } + public InvalidFlashExtensionException( + String[] allowedExtension, String extension, String filename) { + super(allowedExtension, extension, filename); } + } - public static class InvalidMediaExtensionException extends InvalidExtensionException - { - private static final long serialVersionUID = 1L; + public static class InvalidMediaExtensionException extends InvalidExtensionException { + private static final long serialVersionUID = 1L; - public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) - { - super(allowedExtension, extension, filename); - } + public InvalidMediaExtensionException( + String[] allowedExtension, String extension, String filename) { + super(allowedExtension, extension, filename); } - - public static class InvalidVideoExtensionException extends InvalidExtensionException - { - private static final long serialVersionUID = 1L; + } + + public static class InvalidVideoExtensionException extends InvalidExtensionException { + private static final long serialVersionUID = 1L; - public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) - { - super(allowedExtension, extension, filename); - } + public InvalidVideoExtensionException( + String[] allowedExtension, String extension, String filename) { + super(allowedExtension, extension, filename); } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/job/TaskException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/job/TaskException.java index c98397c1e..ed7358b17 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/job/TaskException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/job/TaskException.java @@ -2,33 +2,33 @@ package com.ruoyi.common.core.exception.job; /** * 璁″垝绛栫暐寮傚父 - * + * * @author ruoyi */ -public class TaskException extends Exception -{ - private static final long serialVersionUID = 1L; +public class TaskException extends Exception { + private static final long serialVersionUID = 1L; - private Code code; + private Code code; - public TaskException(String msg, Code code) - { - this(msg, code, null); - } + public TaskException(String msg, Code code) { + this(msg, code, null); + } - public TaskException(String msg, Code code, Exception nestedEx) - { - super(msg, nestedEx); - this.code = code; - } + public TaskException(String msg, Code code, Exception nestedEx) { + super(msg, nestedEx); + this.code = code; + } - public Code getCode() - { - return code; - } + public Code getCode() { + return code; + } - public enum Code - { - TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE - } -} \ No newline at end of file + public enum Code { + TASK_EXISTS, + NO_TASK_EXISTS, + TASK_ALREADY_STARTED, + UNKNOWN, + CONFIG_ERROR, + TASK_NODE_NOT_AVAILABLE + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/CaptchaExpireException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/CaptchaExpireException.java index 6924d7e54..53b925b1e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/CaptchaExpireException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/CaptchaExpireException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception.user; /** * 楠岃瘉鐮佸け鏁堝紓甯哥被 - * + * * @author ruoyi */ -public class CaptchaExpireException extends UserException -{ - private static final long serialVersionUID = 1L; +public class CaptchaExpireException extends UserException { + private static final long serialVersionUID = 1L; - public CaptchaExpireException() - { - super("user.jcaptcha.expire", null); - } + public CaptchaExpireException() { + super("user.jcaptcha.expire", null); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserException.java index 5493804cc..79ad950a4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserException.java @@ -4,15 +4,13 @@ import com.ruoyi.common.core.exception.base.BaseException; /** * 鐢ㄦ埛淇℃伅寮傚父绫 - * + * * @author ruoyi */ -public class UserException extends BaseException -{ - private static final long serialVersionUID = 1L; +public class UserException extends BaseException { + private static final long serialVersionUID = 1L; - public UserException(String code, Object[] args) - { - super("user", code, args, null); - } + public UserException(String code, Object[] args) { + super("user", code, args, null); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserPasswordNotMatchException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserPasswordNotMatchException.java index 7f514a604..d581920e4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserPasswordNotMatchException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserPasswordNotMatchException.java @@ -2,15 +2,13 @@ package com.ruoyi.common.core.exception.user; /** * 鐢ㄦ埛瀵嗙爜涓嶆纭垨涓嶇鍚堣鑼冨紓甯哥被 - * + * * @author ruoyi */ -public class UserPasswordNotMatchException extends UserException -{ - private static final long serialVersionUID = 1L; +public class UserPasswordNotMatchException extends UserException { + private static final long serialVersionUID = 1L; - public UserPasswordNotMatchException() - { - super("user.password.not.match", null); - } + public UserPasswordNotMatchException() { + super("user.password.not.match", null); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/CharsetKit.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/CharsetKit.java index 662f817f7..9d1315eab 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/CharsetKit.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/CharsetKit.java @@ -1,86 +1,82 @@ package com.ruoyi.common.core.text; +import com.ruoyi.common.core.utils.StringUtils; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import com.ruoyi.common.core.utils.StringUtils; /** * 瀛楃闆嗗伐鍏风被 - * + * * @author ruoyi */ -public class CharsetKit -{ - /** ISO-8859-1 */ - public static final String ISO_8859_1 = "ISO-8859-1"; - /** UTF-8 */ - public static final String UTF_8 = "UTF-8"; - /** GBK */ - public static final String GBK = "GBK"; +public class CharsetKit { + /** ISO-8859-1 */ + public static final String ISO_8859_1 = "ISO-8859-1"; - /** ISO-8859-1 */ - public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); - /** UTF-8 */ - public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); - /** GBK */ - public static final Charset CHARSET_GBK = Charset.forName(GBK); + /** UTF-8 */ + public static final String UTF_8 = "UTF-8"; - /** - * 杞崲涓篊harset瀵硅薄 - * - * @param charset 瀛楃闆嗭紝涓虹┖鍒欒繑鍥為粯璁ゅ瓧绗﹂泦 - * @return Charset - */ - public static Charset charset(String charset) - { - return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); - } + /** GBK */ + public static final String GBK = "GBK"; - /** - * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮 - * - * @param source 瀛楃涓 - * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 - * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 - * @return 杞崲鍚庣殑瀛楃闆 - */ - public static String convert(String source, String srcCharset, String destCharset) - { - return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); - } + /** ISO-8859-1 */ + public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); + + /** UTF-8 */ + public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); - /** - * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮 - * - * @param source 瀛楃涓 - * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 - * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 - * @return 杞崲鍚庣殑瀛楃闆 - */ - public static String convert(String source, Charset srcCharset, Charset destCharset) - { - if (null == srcCharset) - { - srcCharset = StandardCharsets.ISO_8859_1; - } + /** GBK */ + public static final Charset CHARSET_GBK = Charset.forName(GBK); - if (null == destCharset) - { - destCharset = StandardCharsets.UTF_8; - } + /** + * 杞崲涓篊harset瀵硅薄 + * + * @param charset 瀛楃闆嗭紝涓虹┖鍒欒繑鍥為粯璁ゅ瓧绗﹂泦 + * @return Charset + */ + public static Charset charset(String charset) { + return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); + } - if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) - { - return source; - } - return new String(source.getBytes(srcCharset), destCharset); + /** + * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮 + * + * @param source 瀛楃涓 + * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 + * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 + * @return 杞崲鍚庣殑瀛楃闆 + */ + public static String convert(String source, String srcCharset, String destCharset) { + return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); + } + + /** + * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮 + * + * @param source 瀛楃涓 + * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 + * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 + * @return 杞崲鍚庣殑瀛楃闆 + */ + public static String convert(String source, Charset srcCharset, Charset destCharset) { + if (null == srcCharset) { + srcCharset = StandardCharsets.ISO_8859_1; + } + + if (null == destCharset) { + destCharset = StandardCharsets.UTF_8; } - /** - * @return 绯荤粺瀛楃闆嗙紪鐮 - */ - public static String systemCharset() - { - return Charset.defaultCharset().name(); + if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) { + return source; } + return new String(source.getBytes(srcCharset), destCharset); + } + + /** + * @return 绯荤粺瀛楃闆嗙紪鐮 + */ + public static String systemCharset() { + return Charset.defaultCharset().name(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java index 9ccdcf4e9..924454b72 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.text; +import com.ruoyi.common.core.utils.StringUtils; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; @@ -7,1012 +8,861 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.text.NumberFormat; import java.util.Set; -import com.ruoyi.common.core.utils.StringUtils; /** * 绫诲瀷杞崲鍣 - * + * * @author ruoyi */ -public class Convert -{ - /** - * 杞崲涓哄瓧绗︿覆
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static String toStr(Object value, String defaultValue) - { - if (null == value) - { - return defaultValue; - } - if (value instanceof String) - { - return (String) value; - } - return value.toString(); - } - - /** - * 杞崲涓哄瓧绗︿覆
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static String toStr(Object value) - { - return toStr(value, null); - } - - /** - * 杞崲涓哄瓧绗
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Character toChar(Object value, Character defaultValue) - { - if (null == value) - { - return defaultValue; - } - if (value instanceof Character) - { - return (Character) value; - } - - final String valueStr = toStr(value, null); - return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); - } - - /** - * 杞崲涓哄瓧绗
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Character toChar(Object value) - { - return toChar(value, null); - } - - /** - * 杞崲涓篵yte
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Byte toByte(Object value, Byte defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Byte) - { - return (Byte) value; - } - if (value instanceof Number) - { - return ((Number) value).byteValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Byte.parseByte(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篵yte
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Byte toByte(Object value) - { - return toByte(value, null); - } - - /** - * 杞崲涓篠hort
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Short toShort(Object value, Short defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Short) - { - return (Short) value; - } - if (value instanceof Number) - { - return ((Number) value).shortValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Short.parseShort(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篠hort
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Short toShort(Object value) - { - return toShort(value, null); - } - - /** - * 杞崲涓篘umber
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Number toNumber(Object value, Number defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Number) - { - return (Number) value; - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return NumberFormat.getInstance().parse(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篘umber
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Number toNumber(Object value) - { - return toNumber(value, null); - } - - /** - * 杞崲涓篿nt
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Integer toInt(Object value, Integer defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Integer) - { - return (Integer) value; - } - if (value instanceof Number) - { - return ((Number) value).intValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Integer.parseInt(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篿nt
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Integer toInt(Object value) - { - return toInt(value, null); - } - - /** - * 杞崲涓篒nteger鏁扮粍
- * - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Integer[] toIntArray(String str) - { - return toIntArray(",", str); - } - - /** - * 杞崲涓篖ong鏁扮粍
- * - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Long[] toLongArray(String str) - { - return toLongArray(",", str); - } - - /** - * 杞崲涓篒nteger鏁扮粍
- * - * @param split 鍒嗛殧绗 - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Integer[] toIntArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Integer[] {}; - } - String[] arr = str.split(split); - final Integer[] ints = new Integer[arr.length]; - for (int i = 0; i < arr.length; i++) - { - final Integer v = toInt(arr[i], 0); - ints[i] = v; - } - return ints; - } - - /** - * 杞崲涓篖ong鏁扮粍
- * - * @param split 鍒嗛殧绗 - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Long[] toLongArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Long[] {}; - } - String[] arr = str.split(split); - final Long[] longs = new Long[arr.length]; - for (int i = 0; i < arr.length; i++) - { - final Long v = toLong(arr[i], null); - longs[i] = v; - } - return longs; - } - - /** - * 杞崲涓篠tring鏁扮粍
- * - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static String[] toStrArray(String str) - { - if (StringUtils.isEmpty(str)) - { - return new String[] {}; - } - return toStrArray(",", str); - } - - /** - * 杞崲涓篠tring鏁扮粍
- * - * @param split 鍒嗛殧绗 - * @param str 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static String[] toStrArray(String split, String str) - { - return str.split(split); - } - - /** - * 杞崲涓簂ong
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Long toLong(Object value, Long defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Long) - { - return (Long) value; - } - if (value instanceof Number) - { - return ((Number) value).longValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - // 鏀寔绉戝璁℃暟娉 - return new BigDecimal(valueStr.trim()).longValue(); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓簂ong
- * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Long toLong(Object value) - { - return toLong(value, null); - } - - /** - * 杞崲涓篸ouble
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Double toDouble(Object value, Double defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Double) - { - return (Double) value; - } - if (value instanceof Number) - { - return ((Number) value).doubleValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - // 鏀寔绉戝璁℃暟娉 - return new BigDecimal(valueStr.trim()).doubleValue(); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篸ouble
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Double toDouble(Object value) - { - return toDouble(value, null); - } - - /** - * 杞崲涓篎loat
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Float toFloat(Object value, Float defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Float) - { - return (Float) value; - } - if (value instanceof Number) - { - return ((Number) value).floatValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Float.parseFloat(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篎loat
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Float toFloat(Object value) - { - return toFloat(value, null); - } - - /** - * 杞崲涓篵oolean
- * String鏀寔鐨勫间负锛歵rue銆乫alse銆亂es銆乷k銆乶o銆1銆0銆佹槸銆佸惁, 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static Boolean toBool(Object value, Boolean defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Boolean) - { - return (Boolean) value; - } - String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - valueStr = valueStr.trim().toLowerCase(); - switch (valueStr) - { - case "true": - case "yes": - case "ok": - case "1": - case "鏄": - return true; - case "false": - case "no": - case "0": - case "鍚": - return false; - default: - return defaultValue; - } - } - - /** - * 杞崲涓篵oolean
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static Boolean toBool(Object value) - { - return toBool(value, null); - } - - /** - * 杞崲涓篍num瀵硅薄
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * - * @param clazz Enum鐨凜lass - * @param value 鍊 - * @param defaultValue 榛樿鍊 - * @return Enum - */ - public static > E toEnum(Class clazz, Object value, E defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (clazz.isAssignableFrom(value.getClass())) - { - @SuppressWarnings("unchecked") - E myE = (E) value; - return myE; - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Enum.valueOf(clazz, valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篍num瀵硅薄
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * - * @param clazz Enum鐨凜lass - * @param value 鍊 - * @return Enum - */ - public static > E toEnum(Class clazz, Object value) - { - return toEnum(clazz, value, null); - } - - /** - * 杞崲涓築igInteger
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static BigInteger toBigInteger(Object value, BigInteger defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof BigInteger) - { - return (BigInteger) value; - } - if (value instanceof Long) - { - return BigInteger.valueOf((Long) value); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return new BigInteger(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓築igInteger
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static BigInteger toBigInteger(Object value) - { - return toBigInteger(value, null); - } - - /** - * 杞崲涓築igDecimal
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 - * @return 缁撴灉 - */ - public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof BigDecimal) - { - return (BigDecimal) value; - } - if (value instanceof Long) - { - return new BigDecimal((Long) value); - } - if (value instanceof Double) - { - return BigDecimal.valueOf((Double) value); - } - if (value instanceof Integer) - { - return new BigDecimal((Integer) value); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return new BigDecimal(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓築igDecimal
- * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
- * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊 - * @return 缁撴灉 - */ - public static BigDecimal toBigDecimal(Object value) - { - return toBigDecimal(value, null); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆
- * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @return 瀛楃涓 - */ - public static String utf8Str(Object obj) - { - return str(obj, CharsetKit.CHARSET_UTF_8); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆
- * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @param charsetName 瀛楃闆 - * @return 瀛楃涓 - */ - public static String str(Object obj, String charsetName) - { - return str(obj, Charset.forName(charsetName)); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆
- * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @param charset 瀛楃闆 - * @return 瀛楃涓 - */ - public static String str(Object obj, Charset charset) - { - if (null == obj) - { - return null; - } - - if (obj instanceof String) - { - return (String) obj; - } - else if (obj instanceof byte[] || obj instanceof Byte[]) - { - if (obj instanceof byte[]) - { - return str((byte[]) obj, charset); - } - else - { - Byte[] bytes = (Byte[]) obj; - int length = bytes.length; - byte[] dest = new byte[length]; - for (int i = 0; i < length; i++) - { - dest[i] = bytes[i]; - } - return str(dest, charset); - } - } - else if (obj instanceof ByteBuffer) - { - return str((ByteBuffer) obj, charset); - } - return obj.toString(); - } - - /** - * 灏哹yte鏁扮粍杞负瀛楃涓 - * - * @param bytes byte鏁扮粍 - * @param charset 瀛楃闆 - * @return 瀛楃涓 - */ - public static String str(byte[] bytes, String charset) - { - return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); - } - - /** - * 瑙g爜瀛楄妭鐮 - * - * @param data 瀛楃涓 - * @param charset 瀛楃闆嗭紝濡傛灉姝ゅ瓧娈典负绌猴紝鍒欒В鐮佺殑缁撴灉鍙栧喅浜庡钩鍙 - * @return 瑙g爜鍚庣殑瀛楃涓 - */ - public static String str(byte[] data, Charset charset) - { - if (data == null) - { - return null; - } - - if (null == charset) - { - return new String(data); - } - return new String(data, charset); - } - - /** - * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 - * - * @param data 鏁版嵁 - * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆 - * @return 瀛楃涓 - */ - public static String str(ByteBuffer data, String charset) - { - if (data == null) - { - return null; - } - - return str(data, Charset.forName(charset)); - } - - /** - * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 - * - * @param data 鏁版嵁 - * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆 - * @return 瀛楃涓 - */ - public static String str(ByteBuffer data, Charset charset) - { - if (null == charset) - { - charset = Charset.defaultCharset(); - } - return charset.decode(data).toString(); - } - - // ----------------------------------------------------------------------- 鍏ㄨ鍗婅杞崲 - /** - * 鍗婅杞叏瑙 - * - * @param input String. - * @return 鍏ㄨ瀛楃涓. - */ - public static String toSBC(String input) - { - return toSBC(input, null); - } - - /** - * 鍗婅杞叏瑙 - * - * @param input String - * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 - * @return 鍏ㄨ瀛楃涓. - */ - public static String toSBC(String input, Set notConvertSet) - { - char[] c = input.toCharArray(); - for (int i = 0; i < c.length; i++) - { - if (null != notConvertSet && notConvertSet.contains(c[i])) - { - // 璺宠繃涓嶆浛鎹㈢殑瀛楃 - continue; - } - - if (c[i] == ' ') - { - c[i] = '\u3000'; - } - else if (c[i] < '\177') - { - c[i] = (char) (c[i] + 65248); - - } - } - return new String(c); - } - - /** - * 鍏ㄨ杞崐瑙 - * - * @param input String. - * @return 鍗婅瀛楃涓 - */ - public static String toDBC(String input) - { - return toDBC(input, null); - } - - /** - * 鏇挎崲鍏ㄨ涓哄崐瑙 - * - * @param text 鏂囨湰 - * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 - * @return 鏇挎崲鍚庣殑瀛楃 - */ - public static String toDBC(String text, Set notConvertSet) - { - char[] c = text.toCharArray(); - for (int i = 0; i < c.length; i++) - { - if (null != notConvertSet && notConvertSet.contains(c[i])) - { - // 璺宠繃涓嶆浛鎹㈢殑瀛楃 - continue; - } - - if (c[i] == '\u3000') - { - c[i] = ' '; - } - else if (c[i] > '\uFF00' && c[i] < '\uFF5F') - { - c[i] = (char) (c[i] - 65248); - } - } - return new String(c); - } - - /** - * 鏁板瓧閲戦澶у啓杞崲 鍏堝啓涓畬鏁寸殑鐒跺悗灏嗗闆舵嬀鏇挎崲鎴愰浂 - * - * @param n 鏁板瓧 - * @return 涓枃澶у啓鏁板瓧 - */ - public static String digitUppercase(double n) - { - String[] fraction = { "瑙", "鍒" }; - String[] digit = { "闆", "澹", "璐", "鍙", "鑲", "浼", "闄", "鏌", "鎹", "鐜" }; - String[][] unit = { { "鍏", "涓", "浜" }, { "", "鎷", "浣", "浠" } }; - - String head = n < 0 ? "璐" : ""; - n = Math.abs(n); - - String s = ""; - for (int i = 0; i < fraction.length; i++) - { - // 浼樺寲double璁$畻绮惧害涓㈠け闂 - BigDecimal nNum = new BigDecimal(n); - BigDecimal decimal = new BigDecimal(10); - BigDecimal scale = nNum.multiply(decimal).setScale(2, RoundingMode.HALF_EVEN); - double d = scale.doubleValue(); - s += (digit[(int) (Math.floor(d * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(闆.)+", ""); - } - if (s.length() < 1) - { - s = "鏁"; - } - int integerPart = (int) Math.floor(n); - - for (int i = 0; i < unit[0].length && integerPart > 0; i++) - { - String p = ""; - for (int j = 0; j < unit[1].length && n > 0; j++) - { - p = digit[integerPart % 10] + unit[1][j] + p; - integerPart = integerPart / 10; - } - s = p.replaceAll("(闆.)*闆$", "").replaceAll("^$", "闆") + unit[0][i] + s; - } - return head + s.replaceAll("(闆.)*闆跺厓", "鍏").replaceFirst("(闆.)+", "").replaceAll("(闆.)+", "闆").replaceAll("^鏁$", "闆跺厓鏁"); - } +public class Convert { + /** + * 杞崲涓哄瓧绗︿覆
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static String toStr(Object value, String defaultValue) { + if (null == value) { + return defaultValue; + } + if (value instanceof String) { + return (String) value; + } + return value.toString(); + } + + /** + * 杞崲涓哄瓧绗︿覆
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static String toStr(Object value) { + return toStr(value, null); + } + + /** + * 杞崲涓哄瓧绗
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Character toChar(Object value, Character defaultValue) { + if (null == value) { + return defaultValue; + } + if (value instanceof Character) { + return (Character) value; + } + + final String valueStr = toStr(value, null); + return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); + } + + /** + * 杞崲涓哄瓧绗
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Character toChar(Object value) { + return toChar(value, null); + } + + /** + * 杞崲涓篵yte
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Byte toByte(Object value, Byte defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Byte) { + return (Byte) value; + } + if (value instanceof Number) { + return ((Number) value).byteValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return Byte.parseByte(valueStr); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篵yte
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Byte toByte(Object value) { + return toByte(value, null); + } + + /** + * 杞崲涓篠hort
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Short toShort(Object value, Short defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Short) { + return (Short) value; + } + if (value instanceof Number) { + return ((Number) value).shortValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return Short.parseShort(valueStr.trim()); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篠hort
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Short toShort(Object value) { + return toShort(value, null); + } + + /** + * 杞崲涓篘umber
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Number toNumber(Object value, Number defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Number) { + return (Number) value; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return NumberFormat.getInstance().parse(valueStr); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篘umber
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Number toNumber(Object value) { + return toNumber(value, null); + } + + /** + * 杞崲涓篿nt
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Integer toInt(Object value, Integer defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Integer) { + return (Integer) value; + } + if (value instanceof Number) { + return ((Number) value).intValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return Integer.parseInt(valueStr.trim()); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篿nt
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Integer toInt(Object value) { + return toInt(value, null); + } + + /** + * 杞崲涓篒nteger鏁扮粍
+ * + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Integer[] toIntArray(String str) { + return toIntArray(",", str); + } + + /** + * 杞崲涓篖ong鏁扮粍
+ * + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Long[] toLongArray(String str) { + return toLongArray(",", str); + } + + /** + * 杞崲涓篒nteger鏁扮粍
+ * + * @param split 鍒嗛殧绗 + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Integer[] toIntArray(String split, String str) { + if (StringUtils.isEmpty(str)) { + return new Integer[] {}; + } + String[] arr = str.split(split); + final Integer[] ints = new Integer[arr.length]; + for (int i = 0; i < arr.length; i++) { + final Integer v = toInt(arr[i], 0); + ints[i] = v; + } + return ints; + } + + /** + * 杞崲涓篖ong鏁扮粍
+ * + * @param split 鍒嗛殧绗 + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Long[] toLongArray(String split, String str) { + if (StringUtils.isEmpty(str)) { + return new Long[] {}; + } + String[] arr = str.split(split); + final Long[] longs = new Long[arr.length]; + for (int i = 0; i < arr.length; i++) { + final Long v = toLong(arr[i], null); + longs[i] = v; + } + return longs; + } + + /** + * 杞崲涓篠tring鏁扮粍
+ * + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static String[] toStrArray(String str) { + if (StringUtils.isEmpty(str)) { + return new String[] {}; + } + return toStrArray(",", str); + } + + /** + * 杞崲涓篠tring鏁扮粍
+ * + * @param split 鍒嗛殧绗 + * @param str 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static String[] toStrArray(String split, String str) { + return str.split(split); + } + + /** + * 杞崲涓簂ong
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Long toLong(Object value, Long defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Long) { + return (Long) value; + } + if (value instanceof Number) { + return ((Number) value).longValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + // 鏀寔绉戝璁℃暟娉 + return new BigDecimal(valueStr.trim()).longValue(); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓簂ong
+ * 濡傛灉缁欏畾鐨勫间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Long toLong(Object value) { + return toLong(value, null); + } + + /** + * 杞崲涓篸ouble
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Double toDouble(Object value, Double defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Double) { + return (Double) value; + } + if (value instanceof Number) { + return ((Number) value).doubleValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + // 鏀寔绉戝璁℃暟娉 + return new BigDecimal(valueStr.trim()).doubleValue(); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篸ouble
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Double toDouble(Object value) { + return toDouble(value, null); + } + + /** + * 杞崲涓篎loat
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Float toFloat(Object value, Float defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Float) { + return (Float) value; + } + if (value instanceof Number) { + return ((Number) value).floatValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return Float.parseFloat(valueStr.trim()); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篎loat
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Float toFloat(Object value) { + return toFloat(value, null); + } + + /** + * 杞崲涓篵oolean
+ * String鏀寔鐨勫间负锛歵rue銆乫alse銆亂es銆乷k銆乶o銆1銆0銆佹槸銆佸惁, 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static Boolean toBool(Object value, Boolean defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof Boolean) { + return (Boolean) value; + } + String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + valueStr = valueStr.trim().toLowerCase(); + switch (valueStr) { + case "true": + case "yes": + case "ok": + case "1": + case "鏄": + return true; + case "false": + case "no": + case "0": + case "鍚": + return false; + default: + return defaultValue; + } + } + + /** + * 杞崲涓篵oolean
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static Boolean toBool(Object value) { + return toBool(value, null); + } + + /** + * 杞崲涓篍num瀵硅薄
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * + * @param clazz Enum鐨凜lass + * @param value 鍊 + * @param defaultValue 榛樿鍊 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value, E defaultValue) { + if (value == null) { + return defaultValue; + } + if (clazz.isAssignableFrom(value.getClass())) { + @SuppressWarnings("unchecked") + E myE = (E) value; + return myE; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return Enum.valueOf(clazz, valueStr); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓篍num瀵硅薄
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * + * @param clazz Enum鐨凜lass + * @param value 鍊 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value) { + return toEnum(clazz, value, null); + } + + /** + * 杞崲涓築igInteger
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static BigInteger toBigInteger(Object value, BigInteger defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof BigInteger) { + return (BigInteger) value; + } + if (value instanceof Long) { + return BigInteger.valueOf((Long) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return new BigInteger(valueStr); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓築igInteger
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊null
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static BigInteger toBigInteger(Object value) { + return toBigInteger(value, null); + } + + /** + * 杞崲涓築igDecimal
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊 + * @return 缁撴灉 + */ + public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) { + if (value == null) { + return defaultValue; + } + if (value instanceof BigDecimal) { + return (BigDecimal) value; + } + if (value instanceof Long) { + return new BigDecimal((Long) value); + } + if (value instanceof Double) { + return BigDecimal.valueOf((Double) value); + } + if (value instanceof Integer) { + return new BigDecimal((Integer) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) { + return defaultValue; + } + try { + return new BigDecimal(valueStr); + } catch (Exception e) { + return defaultValue; + } + } + + /** + * 杞崲涓築igDecimal
+ * 濡傛灉缁欏畾鐨勫间负绌猴紝鎴栬呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊
+ * 杞崲澶辫触涓嶄細鎶ラ敊 + * + * @param value 琚浆鎹㈢殑鍊 + * @return 缁撴灉 + */ + public static BigDecimal toBigDecimal(Object value) { + return toBigDecimal(value, null); + } + + /** + * 灏嗗璞¤浆涓哄瓧绗︿覆
+ * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 + * + * @param obj 瀵硅薄 + * @return 瀛楃涓 + */ + public static String utf8Str(Object obj) { + return str(obj, CharsetKit.CHARSET_UTF_8); + } + + /** + * 灏嗗璞¤浆涓哄瓧绗︿覆
+ * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 + * + * @param obj 瀵硅薄 + * @param charsetName 瀛楃闆 + * @return 瀛楃涓 + */ + public static String str(Object obj, String charsetName) { + return str(obj, Charset.forName(charsetName)); + } + + /** + * 灏嗗璞¤浆涓哄瓧绗︿覆
+ * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 + * + * @param obj 瀵硅薄 + * @param charset 瀛楃闆 + * @return 瀛楃涓 + */ + public static String str(Object obj, Charset charset) { + if (null == obj) { + return null; + } + + if (obj instanceof String) { + return (String) obj; + } else if (obj instanceof byte[] || obj instanceof Byte[]) { + if (obj instanceof byte[]) { + return str((byte[]) obj, charset); + } else { + Byte[] bytes = (Byte[]) obj; + int length = bytes.length; + byte[] dest = new byte[length]; + for (int i = 0; i < length; i++) { + dest[i] = bytes[i]; + } + return str(dest, charset); + } + } else if (obj instanceof ByteBuffer) { + return str((ByteBuffer) obj, charset); + } + return obj.toString(); + } + + /** + * 灏哹yte鏁扮粍杞负瀛楃涓 + * + * @param bytes byte鏁扮粍 + * @param charset 瀛楃闆 + * @return 瀛楃涓 + */ + public static String str(byte[] bytes, String charset) { + return str( + bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); + } + + /** + * 瑙g爜瀛楄妭鐮 + * + * @param data 瀛楃涓 + * @param charset 瀛楃闆嗭紝濡傛灉姝ゅ瓧娈典负绌猴紝鍒欒В鐮佺殑缁撴灉鍙栧喅浜庡钩鍙 + * @return 瑙g爜鍚庣殑瀛楃涓 + */ + public static String str(byte[] data, Charset charset) { + if (data == null) { + return null; + } + + if (null == charset) { + return new String(data); + } + return new String(data, charset); + } + + /** + * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 + * + * @param data 鏁版嵁 + * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆 + * @return 瀛楃涓 + */ + public static String str(ByteBuffer data, String charset) { + if (data == null) { + return null; + } + + return str(data, Charset.forName(charset)); + } + + /** + * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 + * + * @param data 鏁版嵁 + * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆 + * @return 瀛楃涓 + */ + public static String str(ByteBuffer data, Charset charset) { + if (null == charset) { + charset = Charset.defaultCharset(); + } + return charset.decode(data).toString(); + } + + // ----------------------------------------------------------------------- 鍏ㄨ鍗婅杞崲 + /** + * 鍗婅杞叏瑙 + * + * @param input String. + * @return 鍏ㄨ瀛楃涓. + */ + public static String toSBC(String input) { + return toSBC(input, null); + } + + /** + * 鍗婅杞叏瑙 + * + * @param input String + * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 + * @return 鍏ㄨ瀛楃涓. + */ + public static String toSBC(String input, Set notConvertSet) { + char[] c = input.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (null != notConvertSet && notConvertSet.contains(c[i])) { + // 璺宠繃涓嶆浛鎹㈢殑瀛楃 + continue; + } + + if (c[i] == ' ') { + c[i] = '\u3000'; + } else if (c[i] < '\177') { + c[i] = (char) (c[i] + 65248); + } + } + return new String(c); + } + + /** + * 鍏ㄨ杞崐瑙 + * + * @param input String. + * @return 鍗婅瀛楃涓 + */ + public static String toDBC(String input) { + return toDBC(input, null); + } + + /** + * 鏇挎崲鍏ㄨ涓哄崐瑙 + * + * @param text 鏂囨湰 + * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 + * @return 鏇挎崲鍚庣殑瀛楃 + */ + public static String toDBC(String text, Set notConvertSet) { + char[] c = text.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (null != notConvertSet && notConvertSet.contains(c[i])) { + // 璺宠繃涓嶆浛鎹㈢殑瀛楃 + continue; + } + + if (c[i] == '\u3000') { + c[i] = ' '; + } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { + c[i] = (char) (c[i] - 65248); + } + } + return new String(c); + } + + /** + * 鏁板瓧閲戦澶у啓杞崲 鍏堝啓涓畬鏁寸殑鐒跺悗灏嗗闆舵嬀鏇挎崲鎴愰浂 + * + * @param n 鏁板瓧 + * @return 涓枃澶у啓鏁板瓧 + */ + public static String digitUppercase(double n) { + String[] fraction = {"瑙", "鍒"}; + String[] digit = {"闆", "澹", "璐", "鍙", "鑲", "浼", "闄", "鏌", "鎹", "鐜"}; + String[][] unit = {{"鍏", "涓", "浜"}, {"", "鎷", "浣", "浠"}}; + + String head = n < 0 ? "璐" : ""; + n = Math.abs(n); + + String s = ""; + for (int i = 0; i < fraction.length; i++) { + // 浼樺寲double璁$畻绮惧害涓㈠け闂 + BigDecimal nNum = new BigDecimal(n); + BigDecimal decimal = new BigDecimal(10); + BigDecimal scale = nNum.multiply(decimal).setScale(2, RoundingMode.HALF_EVEN); + double d = scale.doubleValue(); + s += + (digit[(int) (Math.floor(d * Math.pow(10, i)) % 10)] + fraction[i]) + .replaceAll("(闆.)+", ""); + } + if (s.length() < 1) { + s = "鏁"; + } + int integerPart = (int) Math.floor(n); + + for (int i = 0; i < unit[0].length && integerPart > 0; i++) { + String p = ""; + for (int j = 0; j < unit[1].length && n > 0; j++) { + p = digit[integerPart % 10] + unit[1][j] + p; + integerPart = integerPart / 10; + } + s = p.replaceAll("(闆.)*闆$", "").replaceAll("^$", "闆") + unit[0][i] + s; + } + return head + + s.replaceAll("(闆.)*闆跺厓", "鍏") + .replaceFirst("(闆.)+", "") + .replaceAll("(闆.)+", "闆") + .replaceAll("^鏁$", "闆跺厓鏁"); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/StrFormatter.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/StrFormatter.java index a7d4d84cc..7ec017385 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/StrFormatter.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/StrFormatter.java @@ -4,89 +4,73 @@ import com.ruoyi.common.core.utils.StringUtils; /** * 瀛楃涓叉牸寮忓寲 - * + * * @author ruoyi */ -public class StrFormatter -{ - public static final String EMPTY_JSON = "{}"; - public static final char C_BACKSLASH = '\\'; - public static final char C_DELIM_START = '{'; - public static final char C_DELIM_END = '}'; +public class StrFormatter { + public static final String EMPTY_JSON = "{}"; + public static final char C_BACKSLASH = '\\'; + public static final char C_DELIM_START = '{'; + public static final char C_DELIM_END = '}'; - /** - * 鏍煎紡鍖栧瓧绗︿覆
- * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗 {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁
- * 濡傛灉鎯宠緭鍑 {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨 \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲
- * 渚嬶細
- * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b
- * 杞箟{}锛 format("this is \\{} for {}", "a", "b") -> this is \{} for a
- * 杞箟\锛 format("this is \\\\{} for {}", "a", "b") -> this is \a for b
- * - * @param strPattern 瀛楃涓叉ā鏉 - * @param argArray 鍙傛暟鍒楄〃 - * @return 缁撴灉 - */ - public static String format(final String strPattern, final Object... argArray) - { - if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) - { - return strPattern; - } - final int strPatternLength = strPattern.length(); + /** + * 鏍煎紡鍖栧瓧绗︿覆
+ * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗 {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁
+ * 濡傛灉鎯宠緭鍑 {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨 \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲
+ * 渚嬶細
+ * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b
+ * 杞箟{}锛 format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 杞箟\锛 format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param strPattern 瀛楃涓叉ā鏉 + * @param argArray 鍙傛暟鍒楄〃 + * @return 缁撴灉 + */ + public static String format(final String strPattern, final Object... argArray) { + if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) { + return strPattern; + } + final int strPatternLength = strPattern.length(); - // 鍒濆鍖栧畾涔夊ソ鐨勯暱搴︿互鑾峰緱鏇村ソ鐨勬ц兘 - StringBuilder sbuf = new StringBuilder(strPatternLength + 50); + // 鍒濆鍖栧畾涔夊ソ鐨勯暱搴︿互鑾峰緱鏇村ソ鐨勬ц兘 + StringBuilder sbuf = new StringBuilder(strPatternLength + 50); - int handledPosition = 0; - int delimIndex;// 鍗犱綅绗︽墍鍦ㄤ綅缃 - for (int argIndex = 0; argIndex < argArray.length; argIndex++) - { - delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); - if (delimIndex == -1) - { - if (handledPosition == 0) - { - return strPattern; - } - else - { // 瀛楃涓叉ā鏉垮墿浣欓儴鍒嗕笉鍐嶅寘鍚崰浣嶇锛屽姞鍏ュ墿浣欓儴鍒嗗悗杩斿洖缁撴灉 - sbuf.append(strPattern, handledPosition, strPatternLength); - return sbuf.toString(); - } - } - else - { - if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) - { - if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) - { - // 杞箟绗︿箣鍓嶈繕鏈変竴涓浆涔夌锛屽崰浣嶇渚濇棫鏈夋晥 - sbuf.append(strPattern, handledPosition, delimIndex - 1); - sbuf.append(Convert.utf8Str(argArray[argIndex])); - handledPosition = delimIndex + 2; - } - else - { - // 鍗犱綅绗﹁杞箟 - argIndex--; - sbuf.append(strPattern, handledPosition, delimIndex - 1); - sbuf.append(C_DELIM_START); - handledPosition = delimIndex + 1; - } - } - else - { - // 姝e父鍗犱綅绗 - sbuf.append(strPattern, handledPosition, delimIndex); - sbuf.append(Convert.utf8Str(argArray[argIndex])); - handledPosition = delimIndex + 2; - } - } + int handledPosition = 0; + int delimIndex; // 鍗犱綅绗︽墍鍦ㄤ綅缃 + for (int argIndex = 0; argIndex < argArray.length; argIndex++) { + delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); + if (delimIndex == -1) { + if (handledPosition == 0) { + return strPattern; + } else { // 瀛楃涓叉ā鏉垮墿浣欓儴鍒嗕笉鍐嶅寘鍚崰浣嶇锛屽姞鍏ュ墿浣欓儴鍒嗗悗杩斿洖缁撴灉 + sbuf.append(strPattern, handledPosition, strPatternLength); + return sbuf.toString(); } - // 鍔犲叆鏈鍚庝竴涓崰浣嶇鍚庢墍鏈夌殑瀛楃 - sbuf.append(strPattern, handledPosition, strPattern.length()); - - return sbuf.toString(); + } else { + if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) { + if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) { + // 杞箟绗︿箣鍓嶈繕鏈変竴涓浆涔夌锛屽崰浣嶇渚濇棫鏈夋晥 + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } else { + // 鍗犱綅绗﹁杞箟 + argIndex--; + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(C_DELIM_START); + handledPosition = delimIndex + 1; + } + } else { + // 姝e父鍗犱綅绗 + sbuf.append(strPattern, handledPosition, delimIndex); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } + } } + // 鍔犲叆鏈鍚庝竴涓崰浣嶇鍚庢墍鏈夌殑瀛楃 + sbuf.append(strPattern, handledPosition, strPattern.length()); + + return sbuf.toString(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java index ba680b2cb..7c0dadd64 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java @@ -16,176 +16,139 @@ import org.apache.commons.lang3.time.DateFormatUtils; * * @author ruoyi */ -public class DateUtils extends org.apache.commons.lang3.time.DateUtils -{ - public static String YYYY = "yyyy"; - - public static String YYYY_MM = "yyyy-MM"; - - public static String YYYY_MM_DD = "yyyy-MM-dd"; - - public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; - - public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; - - private static String[] parsePatterns = { - "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", - "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", - "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; - - /** - * 鑾峰彇褰撳墠Date鍨嬫棩鏈 - * - * @return Date() 褰撳墠鏃ユ湡 - */ - public static Date getNowDate() - { - return new Date(); - } - - /** - * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd - * - * @return String - */ - public static String getDate() - { - return dateTimeNow(YYYY_MM_DD); - } - - public static final String getTime() - { - return dateTimeNow(YYYY_MM_DD_HH_MM_SS); - } - - public static final String dateTimeNow() - { - return dateTimeNow(YYYYMMDDHHMMSS); - } - - public static final String dateTimeNow(final String format) - { - return parseDateToStr(format, new Date()); - } - - public static final String dateTime(final Date date) - { - return parseDateToStr(YYYY_MM_DD, date); - } - - public static final String parseDateToStr(final String format, final Date date) - { - return new SimpleDateFormat(format).format(date); - } - - public static final Date dateTime(final String format, final String ts) - { - try - { - return new SimpleDateFormat(format).parse(ts); - } - catch (ParseException e) - { - throw new RuntimeException(e); - } - } - - /** - * 鏃ユ湡璺緞 鍗冲勾/鏈/鏃 濡2018/08/08 - */ - public static final String datePath() - { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyy/MM/dd"); - } - - /** - * 鏃ユ湡璺緞 鍗冲勾/鏈/鏃 濡20180808 - */ - public static final String dateTime() - { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyyMMdd"); - } - - /** - * 鏃ユ湡鍨嬪瓧绗︿覆杞寲涓烘棩鏈 鏍煎紡 - */ - public static Date parseDate(Object str) - { - if (str == null) - { - return null; - } - try - { - return parseDate(str.toString(), parsePatterns); - } - catch (ParseException e) - { - return null; - } - } - - /** - * 鑾峰彇鏈嶅姟鍣ㄥ惎鍔ㄦ椂闂 - */ - public static Date getServerStartDate() - { - long time = ManagementFactory.getRuntimeMXBean().getStartTime(); - return new Date(time); - } - - /** - * 璁$畻鐩稿樊澶╂暟 - */ - public static int differentDaysByMillisecond(Date date1, Date date2) - { - return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); - } - - /** - * 璁$畻鏃堕棿宸 - * - * @param endDate 鏈鍚庢椂闂 - * @param startTime 寮濮嬫椂闂 - * @return 鏃堕棿宸紙澶/灏忔椂/鍒嗛挓锛 - */ - public static String timeDistance(Date endDate, Date startTime) - { - long nd = 1000 * 24 * 60 * 60; - long nh = 1000 * 60 * 60; - long nm = 1000 * 60; - // long ns = 1000; - // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮 - long diff = endDate.getTime() - startTime.getTime(); - // 璁$畻宸灏戝ぉ - long day = diff / nd; - // 璁$畻宸灏戝皬鏃 - long hour = diff % nd / nh; - // 璁$畻宸灏戝垎閽 - long min = diff % nd % nh / nm; - // 璁$畻宸灏戠//杈撳嚭缁撴灉 - // long sec = diff % nd % nh % nm / ns; - return day + "澶" + hour + "灏忔椂" + min + "鍒嗛挓"; - } - - /** - * 澧炲姞 LocalDateTime ==> Date - */ - public static Date toDate(LocalDateTime temporalAccessor) - { - ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); - return Date.from(zdt.toInstant()); - } - - /** - * 澧炲姞 LocalDate ==> Date - */ - public static Date toDate(LocalDate temporalAccessor) - { - LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); - ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); - return Date.from(zdt.toInstant()); - } +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM" + }; + + /** + * 鑾峰彇褰撳墠Date鍨嬫棩鏈 + * + * @return Date() 褰撳墠鏃ユ湡 + */ + public static Date getNowDate() { + return new Date(); + } + + /** + * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd + * + * @return String + */ + public static String getDate() { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) { + try { + return new SimpleDateFormat(format).parse(ts); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** 鏃ユ湡璺緞 鍗冲勾/鏈/鏃 濡2018/08/08 */ + public static final String datePath() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** 鏃ユ湡璺緞 鍗冲勾/鏈/鏃 濡20180808 */ + public static final String dateTime() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** 鏃ユ湡鍨嬪瓧绗︿覆杞寲涓烘棩鏈 鏍煎紡 */ + public static Date parseDate(Object str) { + if (str == null) { + return null; + } + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException e) { + return null; + } + } + + /** 鑾峰彇鏈嶅姟鍣ㄥ惎鍔ㄦ椂闂 */ + public static Date getServerStartDate() { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** 璁$畻鐩稿樊澶╂暟 */ + public static int differentDaysByMillisecond(Date date1, Date date2) { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 璁$畻鏃堕棿宸 + * + * @param endDate 鏈鍚庢椂闂 + * @param startTime 寮濮嬫椂闂 + * @return 鏃堕棿宸紙澶/灏忔椂/鍒嗛挓锛 + */ + public static String timeDistance(Date endDate, Date startTime) { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮 + long diff = endDate.getTime() - startTime.getTime(); + // 璁$畻宸灏戝ぉ + long day = diff / nd; + // 璁$畻宸灏戝皬鏃 + long hour = diff % nd / nh; + // 璁$畻宸灏戝垎閽 + long min = diff % nd % nh / nm; + // 璁$畻宸灏戠//杈撳嚭缁撴灉 + // long sec = diff % nd % nh % nm / ns; + return day + "澶" + hour + "灏忔椂" + min + "鍒嗛挓"; + } + + /** 澧炲姞 LocalDateTime ==> Date */ + public static Date toDate(LocalDateTime temporalAccessor) { + ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** 澧炲姞 LocalDate ==> Date */ + public static Date toDate(LocalDate temporalAccessor) { + LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); + ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ExceptionUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ExceptionUtil.java index f75e55972..b07f21683 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ExceptionUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ExceptionUtil.java @@ -9,31 +9,24 @@ import org.apache.commons.lang3.exception.ExceptionUtils; * * @author ruoyi */ -public class ExceptionUtil -{ - /** - * 鑾峰彇exception鐨勮缁嗛敊璇俊鎭 - */ - public static String getExceptionMessage(Throwable e) - { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw, true)); - return sw.toString(); - } +public class ExceptionUtil { + /** 鑾峰彇exception鐨勮缁嗛敊璇俊鎭 */ + public static String getExceptionMessage(Throwable e) { + StringWriter sw = new StringWriter(); + e.printStackTrace(new PrintWriter(sw, true)); + return sw.toString(); + } - public static String getRootErrorMessage(Exception e) - { - Throwable root = ExceptionUtils.getRootCause(e); - root = (root == null ? e : root); - if (root == null) - { - return ""; - } - String msg = root.getMessage(); - if (msg == null) - { - return "null"; - } - return StringUtils.defaultString(msg); + public static String getRootErrorMessage(Exception e) { + Throwable root = ExceptionUtils.getRootCause(e); + root = (root == null ? e : root); + if (root == null) { + return ""; + } + String msg = root.getMessage(); + if (msg == null) { + return "null"; } + return StringUtils.defaultString(msg); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java index abe93c0c0..fedd366c6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java @@ -1,123 +1,114 @@ package com.ruoyi.common.core.utils; -import java.util.Map; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.text.Convert; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import java.util.Map; /** * Jwt宸ュ叿绫 * * @author ruoyi */ -public class JwtUtils -{ - public static String secret = TokenConstants.SECRET; +public class JwtUtils { + public static String secret = TokenConstants.SECRET; - /** - * 浠庢暟鎹0鏄庣敓鎴愪护鐗 - * - * @param claims 鏁版嵁澹版槑 - * @return 浠ょ墝 - */ - public static String createToken(Map claims) - { - String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact(); - return token; - } + /** + * 浠庢暟鎹0鏄庣敓鎴愪护鐗 + * + * @param claims 鏁版嵁澹版槑 + * @return 浠ょ墝 + */ + public static String createToken(Map claims) { + String token = + Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact(); + return token; + } - /** - * 浠庝护鐗屼腑鑾峰彇鏁版嵁澹版槑 - * - * @param token 浠ょ墝 - * @return 鏁版嵁澹版槑 - */ - public static Claims parseToken(String token) - { - return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); - } + /** + * 浠庝护鐗屼腑鑾峰彇鏁版嵁澹版槑 + * + * @param token 浠ょ墝 + * @return 鏁版嵁澹版槑 + */ + public static Claims parseToken(String token) { + return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); + } - /** - * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鏍囪瘑 - * - * @param token 浠ょ墝 - * @return 鐢ㄦ埛ID - */ - public static String getUserKey(String token) - { - Claims claims = parseToken(token); - return getValue(claims, SecurityConstants.USER_KEY); - } + /** + * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鏍囪瘑 + * + * @param token 浠ょ墝 + * @return 鐢ㄦ埛ID + */ + public static String getUserKey(String token) { + Claims claims = parseToken(token); + return getValue(claims, SecurityConstants.USER_KEY); + } - /** - * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鏍囪瘑 - * - * @param claims 韬唤淇℃伅 - * @return 鐢ㄦ埛ID - */ - public static String getUserKey(Claims claims) - { - return getValue(claims, SecurityConstants.USER_KEY); - } + /** + * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鏍囪瘑 + * + * @param claims 韬唤淇℃伅 + * @return 鐢ㄦ埛ID + */ + public static String getUserKey(Claims claims) { + return getValue(claims, SecurityConstants.USER_KEY); + } - /** - * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛ID - * - * @param token 浠ょ墝 - * @return 鐢ㄦ埛ID - */ - public static String getUserId(String token) - { - Claims claims = parseToken(token); - return getValue(claims, SecurityConstants.DETAILS_USER_ID); - } + /** + * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛ID + * + * @param token 浠ょ墝 + * @return 鐢ㄦ埛ID + */ + public static String getUserId(String token) { + Claims claims = parseToken(token); + return getValue(claims, SecurityConstants.DETAILS_USER_ID); + } - /** - * 鏍规嵁韬唤淇℃伅鑾峰彇鐢ㄦ埛ID - * - * @param claims 韬唤淇℃伅 - * @return 鐢ㄦ埛ID - */ - public static String getUserId(Claims claims) - { - return getValue(claims, SecurityConstants.DETAILS_USER_ID); - } + /** + * 鏍规嵁韬唤淇℃伅鑾峰彇鐢ㄦ埛ID + * + * @param claims 韬唤淇℃伅 + * @return 鐢ㄦ埛ID + */ + public static String getUserId(Claims claims) { + return getValue(claims, SecurityConstants.DETAILS_USER_ID); + } - /** - * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鍚 - * - * @param token 浠ょ墝 - * @return 鐢ㄦ埛鍚 - */ - public static String getUserName(String token) - { - Claims claims = parseToken(token); - return getValue(claims, SecurityConstants.DETAILS_USERNAME); - } + /** + * 鏍规嵁浠ょ墝鑾峰彇鐢ㄦ埛鍚 + * + * @param token 浠ょ墝 + * @return 鐢ㄦ埛鍚 + */ + public static String getUserName(String token) { + Claims claims = parseToken(token); + return getValue(claims, SecurityConstants.DETAILS_USERNAME); + } - /** - * 鏍规嵁韬唤淇℃伅鑾峰彇鐢ㄦ埛鍚 - * - * @param claims 韬唤淇℃伅 - * @return 鐢ㄦ埛鍚 - */ - public static String getUserName(Claims claims) - { - return getValue(claims, SecurityConstants.DETAILS_USERNAME); - } + /** + * 鏍规嵁韬唤淇℃伅鑾峰彇鐢ㄦ埛鍚 + * + * @param claims 韬唤淇℃伅 + * @return 鐢ㄦ埛鍚 + */ + public static String getUserName(Claims claims) { + return getValue(claims, SecurityConstants.DETAILS_USERNAME); + } - /** - * 鏍规嵁韬唤淇℃伅鑾峰彇閿 - * - * @param claims 韬唤淇℃伅 - * @param key 閿 - * @return 鍊 - */ - public static String getValue(Claims claims, String key) - { - return Convert.toStr(claims.get(key), ""); - } + /** + * 鏍规嵁韬唤淇℃伅鑾峰彇閿 + * + * @param claims 韬唤淇℃伅 + * @param key 閿 + * @return 鍊 + */ + public static String getValue(Claims claims, String key) { + return Convert.toStr(claims.get(key), ""); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/PageUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/PageUtils.java index 95ee25b33..a9bf9afed 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/PageUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/PageUtils.java @@ -7,29 +7,22 @@ import com.ruoyi.common.core.web.page.TableSupport; /** * 鍒嗛〉宸ュ叿绫 - * + * * @author ruoyi */ -public class PageUtils extends PageHelper -{ - /** - * 璁剧疆璇锋眰鍒嗛〉鏁版嵁 - */ - public static void startPage() - { - PageDomain pageDomain = TableSupport.buildPageRequest(); - Integer pageNum = pageDomain.getPageNum(); - Integer pageSize = pageDomain.getPageSize(); - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - Boolean reasonable = pageDomain.getReasonable(); - PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); - } +public class PageUtils extends PageHelper { + /** 璁剧疆璇锋眰鍒嗛〉鏁版嵁 */ + public static void startPage() { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); + } - /** - * 娓呯悊鍒嗛〉鐨勭嚎绋嬪彉閲 - */ - public static void clearPage() - { - PageHelper.clearPage(); - } + /** 娓呯悊鍒嗛〉鐨勭嚎绋嬪彉閲 */ + public static void clearPage() { + PageHelper.clearPage(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java index cda371695..74946b2fc 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java @@ -1,5 +1,9 @@ package com.ruoyi.common.core.utils; +import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.text.Convert; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -21,313 +25,246 @@ import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.alibaba.fastjson2.JSON; -import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.text.Convert; import reactor.core.publisher.Mono; /** * 瀹㈡埛绔伐鍏风被 - * + * * @author ruoyi */ -public class ServletUtils -{ - /** - * 鑾峰彇String鍙傛暟 - */ - public static String getParameter(String name) - { - return getRequest().getParameter(name); - } +public class ServletUtils { + /** 鑾峰彇String鍙傛暟 */ + public static String getParameter(String name) { + return getRequest().getParameter(name); + } - /** - * 鑾峰彇String鍙傛暟 - */ - public static String getParameter(String name, String defaultValue) - { - return Convert.toStr(getRequest().getParameter(name), defaultValue); - } + /** 鑾峰彇String鍙傛暟 */ + public static String getParameter(String name, String defaultValue) { + return Convert.toStr(getRequest().getParameter(name), defaultValue); + } - /** - * 鑾峰彇Integer鍙傛暟 - */ - public static Integer getParameterToInt(String name) - { - return Convert.toInt(getRequest().getParameter(name)); - } + /** 鑾峰彇Integer鍙傛暟 */ + public static Integer getParameterToInt(String name) { + return Convert.toInt(getRequest().getParameter(name)); + } - /** - * 鑾峰彇Integer鍙傛暟 - */ - public static Integer getParameterToInt(String name, Integer defaultValue) - { - return Convert.toInt(getRequest().getParameter(name), defaultValue); - } + /** 鑾峰彇Integer鍙傛暟 */ + public static Integer getParameterToInt(String name, Integer defaultValue) { + return Convert.toInt(getRequest().getParameter(name), defaultValue); + } - /** - * 鑾峰彇Boolean鍙傛暟 - */ - public static Boolean getParameterToBool(String name) - { - return Convert.toBool(getRequest().getParameter(name)); - } + /** 鑾峰彇Boolean鍙傛暟 */ + public static Boolean getParameterToBool(String name) { + return Convert.toBool(getRequest().getParameter(name)); + } - /** - * 鑾峰彇Boolean鍙傛暟 - */ - public static Boolean getParameterToBool(String name, Boolean defaultValue) - { - return Convert.toBool(getRequest().getParameter(name), defaultValue); - } + /** 鑾峰彇Boolean鍙傛暟 */ + public static Boolean getParameterToBool(String name, Boolean defaultValue) { + return Convert.toBool(getRequest().getParameter(name), defaultValue); + } - /** - * 鑾峰緱鎵鏈夎姹傚弬鏁 - * - * @param request 璇锋眰瀵硅薄{@link ServletRequest} - * @return Map - */ - public static Map getParams(ServletRequest request) - { - final Map map = request.getParameterMap(); - return Collections.unmodifiableMap(map); - } + /** + * 鑾峰緱鎵鏈夎姹傚弬鏁 + * + * @param request 璇锋眰瀵硅薄{@link ServletRequest} + * @return Map + */ + public static Map getParams(ServletRequest request) { + final Map map = request.getParameterMap(); + return Collections.unmodifiableMap(map); + } - /** - * 鑾峰緱鎵鏈夎姹傚弬鏁 - * - * @param request 璇锋眰瀵硅薄{@link ServletRequest} - * @return Map - */ - public static Map getParamMap(ServletRequest request) - { - Map params = new HashMap<>(); - for (Map.Entry entry : getParams(request).entrySet()) - { - params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); - } - return params; + /** + * 鑾峰緱鎵鏈夎姹傚弬鏁 + * + * @param request 璇锋眰瀵硅薄{@link ServletRequest} + * @return Map + */ + public static Map getParamMap(ServletRequest request) { + Map params = new HashMap<>(); + for (Map.Entry entry : getParams(request).entrySet()) { + params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); } + return params; + } - /** - * 鑾峰彇request - */ - public static HttpServletRequest getRequest() - { - try - { - return getRequestAttributes().getRequest(); - } - catch (Exception e) - { - return null; - } + /** 鑾峰彇request */ + public static HttpServletRequest getRequest() { + try { + return getRequestAttributes().getRequest(); + } catch (Exception e) { + return null; } + } - /** - * 鑾峰彇response - */ - public static HttpServletResponse getResponse() - { - try - { - return getRequestAttributes().getResponse(); - } - catch (Exception e) - { - return null; - } + /** 鑾峰彇response */ + public static HttpServletResponse getResponse() { + try { + return getRequestAttributes().getResponse(); + } catch (Exception e) { + return null; } + } - /** - * 鑾峰彇session - */ - public static HttpSession getSession() - { - return getRequest().getSession(); - } + /** 鑾峰彇session */ + public static HttpSession getSession() { + return getRequest().getSession(); + } - public static ServletRequestAttributes getRequestAttributes() - { - try - { - RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); - return (ServletRequestAttributes) attributes; - } - catch (Exception e) - { - return null; - } + public static ServletRequestAttributes getRequestAttributes() { + try { + RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); + return (ServletRequestAttributes) attributes; + } catch (Exception e) { + return null; } + } - public static String getHeader(HttpServletRequest request, String name) - { - String value = request.getHeader(name); - if (StringUtils.isEmpty(value)) - { - return StringUtils.EMPTY; - } - return urlDecode(value); + public static String getHeader(HttpServletRequest request, String name) { + String value = request.getHeader(name); + if (StringUtils.isEmpty(value)) { + return StringUtils.EMPTY; } + return urlDecode(value); + } - public static Map getHeaders(HttpServletRequest request) - { - Map map = new LinkedCaseInsensitiveMap<>(); - Enumeration enumeration = request.getHeaderNames(); - if (enumeration != null) - { - while (enumeration.hasMoreElements()) - { - String key = enumeration.nextElement(); - String value = request.getHeader(key); - map.put(key, value); - } - } - return map; + public static Map getHeaders(HttpServletRequest request) { + Map map = new LinkedCaseInsensitiveMap<>(); + Enumeration enumeration = request.getHeaderNames(); + if (enumeration != null) { + while (enumeration.hasMoreElements()) { + String key = enumeration.nextElement(); + String value = request.getHeader(key); + map.put(key, value); + } } + return map; + } - /** - * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风 - * - * @param response 娓叉煋瀵硅薄 - * @param string 寰呮覆鏌撶殑瀛楃涓 - */ - public static void renderString(HttpServletResponse response, String string) - { - try - { - response.setStatus(200); - response.setContentType("application/json"); - response.setCharacterEncoding("utf-8"); - response.getWriter().print(string); - } - catch (IOException e) - { - e.printStackTrace(); - } + /** + * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风 + * + * @param response 娓叉煋瀵硅薄 + * @param string 寰呮覆鏌撶殑瀛楃涓 + */ + public static void renderString(HttpServletResponse response, String string) { + try { + response.setStatus(200); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().print(string); + } catch (IOException e) { + e.printStackTrace(); } + } - /** - * 鏄惁鏄疉jax寮傛璇锋眰 - * - * @param request - */ - public static boolean isAjaxRequest(HttpServletRequest request) - { - String accept = request.getHeader("accept"); - if (accept != null && accept.contains("application/json")) - { - return true; - } - - String xRequestedWith = request.getHeader("X-Requested-With"); - if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) - { - return true; - } - - String uri = request.getRequestURI(); - if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) - { - return true; - } - - String ajax = request.getParameter("__ajax"); - return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); + /** + * 鏄惁鏄疉jax寮傛璇锋眰 + * + * @param request + */ + public static boolean isAjaxRequest(HttpServletRequest request) { + String accept = request.getHeader("accept"); + if (accept != null && accept.contains("application/json")) { + return true; } - /** - * 鍐呭缂栫爜 - * - * @param str 鍐呭 - * @return 缂栫爜鍚庣殑鍐呭 - */ - public static String urlEncode(String str) - { - try - { - return URLEncoder.encode(str, Constants.UTF8); - } - catch (UnsupportedEncodingException e) - { - return StringUtils.EMPTY; - } + String xRequestedWith = request.getHeader("X-Requested-With"); + if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { + return true; } - /** - * 鍐呭瑙g爜 - * - * @param str 鍐呭 - * @return 瑙g爜鍚庣殑鍐呭 - */ - public static String urlDecode(String str) - { - try - { - return URLDecoder.decode(str, Constants.UTF8); - } - catch (UnsupportedEncodingException e) - { - return StringUtils.EMPTY; - } + String uri = request.getRequestURI(); + if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) { + return true; } - /** - * 璁剧疆webflux妯″瀷鍝嶅簲 - * - * @param response ServerHttpResponse - * @param value 鍝嶅簲鍐呭 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) - { - return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL); - } + String ajax = request.getParameter("__ajax"); + return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); + } - /** - * 璁剧疆webflux妯″瀷鍝嶅簲 - * - * @param response ServerHttpResponse - * @param code 鍝嶅簲鐘舵佺爜 - * @param value 鍝嶅簲鍐呭 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value, int code) - { - return webFluxResponseWriter(response, HttpStatus.OK, value, code); + /** + * 鍐呭缂栫爜 + * + * @param str 鍐呭 + * @return 缂栫爜鍚庣殑鍐呭 + */ + public static String urlEncode(String str) { + try { + return URLEncoder.encode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; } + } - /** - * 璁剧疆webflux妯″瀷鍝嶅簲 - * - * @param response ServerHttpResponse - * @param status http鐘舵佺爜 - * @param code 鍝嶅簲鐘舵佺爜 - * @param value 鍝嶅簲鍐呭 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) - { - return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code); + /** + * 鍐呭瑙g爜 + * + * @param str 鍐呭 + * @return 瑙g爜鍚庣殑鍐呭 + */ + public static String urlDecode(String str) { + try { + return URLDecoder.decode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; } + } - /** - * 璁剧疆webflux妯″瀷鍝嶅簲 - * - * @param response ServerHttpResponse - * @param contentType content-type - * @param status http鐘舵佺爜 - * @param code 鍝嶅簲鐘舵佺爜 - * @param value 鍝嶅簲鍐呭 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) - { - response.setStatusCode(status); - response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType); - R result = R.fail(code, value.toString()); - DataBuffer dataBuffer = response.bufferFactory().wrap(JSON.toJSONString(result).getBytes()); - return response.writeWith(Mono.just(dataBuffer)); - } + /** + * 璁剧疆webflux妯″瀷鍝嶅簲 + * + * @param response ServerHttpResponse + * @param value 鍝嶅簲鍐呭 + * @return Mono + */ + public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) { + return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL); + } + + /** + * 璁剧疆webflux妯″瀷鍝嶅簲 + * + * @param response ServerHttpResponse + * @param code 鍝嶅簲鐘舵佺爜 + * @param value 鍝嶅簲鍐呭 + * @return Mono + */ + public static Mono webFluxResponseWriter( + ServerHttpResponse response, Object value, int code) { + return webFluxResponseWriter(response, HttpStatus.OK, value, code); + } + + /** + * 璁剧疆webflux妯″瀷鍝嶅簲 + * + * @param response ServerHttpResponse + * @param status http鐘舵佺爜 + * @param code 鍝嶅簲鐘舵佺爜 + * @param value 鍝嶅簲鍐呭 + * @return Mono + */ + public static Mono webFluxResponseWriter( + ServerHttpResponse response, HttpStatus status, Object value, int code) { + return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code); + } + + /** + * 璁剧疆webflux妯″瀷鍝嶅簲 + * + * @param response ServerHttpResponse + * @param contentType content-type + * @param status http鐘舵佺爜 + * @param code 鍝嶅簲鐘舵佺爜 + * @param value 鍝嶅簲鍐呭 + * @return Mono + */ + public static Mono webFluxResponseWriter( + ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) { + response.setStatusCode(status); + response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType); + R result = R.fail(code, value.toString()); + DataBuffer dataBuffer = response.bufferFactory().wrap(JSON.toJSONString(result).getBytes()); + return response.writeWith(Mono.just(dataBuffer)); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpringUtils.java index 9dcbceb10..627da1a27 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpringUtils.java @@ -9,106 +9,94 @@ import org.springframework.stereotype.Component; /** * spring宸ュ叿绫 鏂逛究鍦ㄩ潪spring绠$悊鐜涓幏鍙朾ean - * + * * @author ruoyi */ @Component -public final class SpringUtils implements BeanFactoryPostProcessor -{ - /** Spring搴旂敤涓婁笅鏂囩幆澧 */ - private static ConfigurableListableBeanFactory beanFactory; +public final class SpringUtils implements BeanFactoryPostProcessor { + /** Spring搴旂敤涓婁笅鏂囩幆澧 */ + private static ConfigurableListableBeanFactory beanFactory; - @Override - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException - { - SpringUtils.beanFactory = beanFactory; - } + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) + throws BeansException { + SpringUtils.beanFactory = beanFactory; + } - /** - * 鑾峰彇瀵硅薄 - * - * @param name - * @return Object 涓涓互鎵缁欏悕瀛楁敞鍐岀殑bean鐨勫疄渚 - * @throws org.springframework.beans.BeansException - * - */ - @SuppressWarnings("unchecked") - public static T getBean(String name) throws BeansException - { - return (T) beanFactory.getBean(name); - } + /** + * 鑾峰彇瀵硅薄 + * + * @param name + * @return Object 涓涓互鎵缁欏悕瀛楁敞鍐岀殑bean鐨勫疄渚 + * @throws org.springframework.beans.BeansException + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } - /** - * 鑾峰彇绫诲瀷涓簉equiredType鐨勫璞 - * - * @param clz - * @return - * @throws org.springframework.beans.BeansException - * - */ - public static T getBean(Class clz) throws BeansException - { - T result = (T) beanFactory.getBean(clz); - return result; - } + /** + * 鑾峰彇绫诲瀷涓簉equiredType鐨勫璞 + * + * @param clz + * @return + * @throws org.springframework.beans.BeansException + */ + public static T getBean(Class clz) throws BeansException { + T result = (T) beanFactory.getBean(clz); + return result; + } - /** - * 濡傛灉BeanFactory鍖呭惈涓涓笌鎵缁欏悕绉板尮閰嶇殑bean瀹氫箟锛屽垯杩斿洖true - * - * @param name - * @return boolean - */ - public static boolean containsBean(String name) - { - return beanFactory.containsBean(name); - } + /** + * 濡傛灉BeanFactory鍖呭惈涓涓笌鎵缁欏悕绉板尮閰嶇殑bean瀹氫箟锛屽垯杩斿洖true + * + * @param name + * @return boolean + */ + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } - /** - * 鍒ゆ柇浠ョ粰瀹氬悕瀛楁敞鍐岀殑bean瀹氫箟鏄竴涓猻ingleton杩樻槸涓涓猵rototype銆 濡傛灉涓庣粰瀹氬悕瀛楃浉搴旂殑bean瀹氫箟娌℃湁琚壘鍒帮紝灏嗕細鎶涘嚭涓涓紓甯革紙NoSuchBeanDefinitionException锛 - * - * @param name - * @return boolean - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException - * - */ - public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException - { - return beanFactory.isSingleton(name); - } + /** + * 鍒ゆ柇浠ョ粰瀹氬悕瀛楁敞鍐岀殑bean瀹氫箟鏄竴涓猻ingleton杩樻槸涓涓猵rototype銆 + * 濡傛灉涓庣粰瀹氬悕瀛楃浉搴旂殑bean瀹氫箟娌℃湁琚壘鍒帮紝灏嗕細鎶涘嚭涓涓紓甯革紙NoSuchBeanDefinitionException锛 + * + * @param name + * @return boolean + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + */ + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { + return beanFactory.isSingleton(name); + } - /** - * @param name - * @return Class 娉ㄥ唽瀵硅薄鐨勭被鍨 - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException - * - */ - public static Class getType(String name) throws NoSuchBeanDefinitionException - { - return beanFactory.getType(name); - } + /** + * @param name + * @return Class 娉ㄥ唽瀵硅薄鐨勭被鍨 + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + */ + public static Class getType(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getType(name); + } - /** - * 濡傛灉缁欏畾鐨刡ean鍚嶅瓧鍦╞ean瀹氫箟涓湁鍒悕锛屽垯杩斿洖杩欎簺鍒悕 - * - * @param name - * @return - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException - * - */ - public static String[] getAliases(String name) throws NoSuchBeanDefinitionException - { - return beanFactory.getAliases(name); - } + /** + * 濡傛灉缁欏畾鐨刡ean鍚嶅瓧鍦╞ean瀹氫箟涓湁鍒悕锛屽垯杩斿洖杩欎簺鍒悕 + * + * @param name + * @return + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + */ + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getAliases(name); + } - /** - * 鑾峰彇aop浠g悊瀵硅薄 - * - * @param invoker - * @return - */ - @SuppressWarnings("unchecked") - public static T getAopProxy(T invoker) - { - return (T) AopContext.currentProxy(); - } + /** + * 鑾峰彇aop浠g悊瀵硅薄 + * + * @param invoker + * @return + */ + @SuppressWarnings("unchecked") + public static T getAopProxy(T invoker) { + return (T) AopContext.currentProxy(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java index a27ab625f..b38f31207 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java @@ -1,633 +1,525 @@ package com.ruoyi.common.core.utils; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.text.StrFormatter; import java.util.Collection; import java.util.List; import java.util.Map; import org.springframework.util.AntPathMatcher; -import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.text.StrFormatter; /** * 瀛楃涓插伐鍏风被 - * + * * @author ruoyi */ -public class StringUtils extends org.apache.commons.lang3.StringUtils -{ - /** 绌哄瓧绗︿覆 */ - private static final String NULLSTR = ""; - - /** 涓嬪垝绾 */ - private static final char SEPARATOR = '_'; - - /** 鏄熷彿 */ - private static final char ASTERISK = '*'; - - /** - * 鑾峰彇鍙傛暟涓嶄负绌哄 - * - * @param value defaultValue 瑕佸垽鏂殑value - * @return value 杩斿洖鍊 - */ - public static T nvl(T value, T defaultValue) - { - return value != null ? value : defaultValue; - } - - /** - * * 鍒ゆ柇涓涓狢ollection鏄惁涓虹┖锛 鍖呭惈List锛孲et锛孮ueue - * - * @param coll 瑕佸垽鏂殑Collection - * @return true锛氫负绌 false锛氶潪绌 - */ - public static boolean isEmpty(Collection coll) - { - return isNull(coll) || coll.isEmpty(); - } - - /** - * * 鍒ゆ柇涓涓狢ollection鏄惁闈炵┖锛屽寘鍚獿ist锛孲et锛孮ueue - * - * @param coll 瑕佸垽鏂殑Collection - * @return true锛氶潪绌 false锛氱┖ - */ - public static boolean isNotEmpty(Collection coll) - { - return !isEmpty(coll); - } - - /** - * * 鍒ゆ柇涓涓璞℃暟缁勬槸鍚︿负绌 - * - * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 - ** @return true锛氫负绌 false锛氶潪绌 - */ - public static boolean isEmpty(Object[] objects) - { - return isNull(objects) || (objects.length == 0); - } - - /** - * * 鍒ゆ柇涓涓璞℃暟缁勬槸鍚﹂潪绌 - * - * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 - * @return true锛氶潪绌 false锛氱┖ - */ - public static boolean isNotEmpty(Object[] objects) - { - return !isEmpty(objects); - } - - /** - * * 鍒ゆ柇涓涓狹ap鏄惁涓虹┖ - * - * @param map 瑕佸垽鏂殑Map - * @return true锛氫负绌 false锛氶潪绌 - */ - public static boolean isEmpty(Map map) - { - return isNull(map) || map.isEmpty(); - } - - /** - * * 鍒ゆ柇涓涓狹ap鏄惁涓虹┖ - * - * @param map 瑕佸垽鏂殑Map - * @return true锛氶潪绌 false锛氱┖ - */ - public static boolean isNotEmpty(Map map) - { - return !isEmpty(map); - } - - /** - * * 鍒ゆ柇涓涓瓧绗︿覆鏄惁涓虹┖涓 - * - * @param str String - * @return true锛氫负绌 false锛氶潪绌 - */ - public static boolean isEmpty(String str) - { - return isNull(str) || NULLSTR.equals(str.trim()); - } - - /** - * * 鍒ゆ柇涓涓瓧绗︿覆鏄惁涓洪潪绌轰覆 - * - * @param str String - * @return true锛氶潪绌轰覆 false锛氱┖涓 - */ - public static boolean isNotEmpty(String str) - { - return !isEmpty(str); - } - - /** - * * 鍒ゆ柇涓涓璞℃槸鍚︿负绌 - * - * @param object Object - * @return true锛氫负绌 false锛氶潪绌 - */ - public static boolean isNull(Object object) - { - return object == null; - } - - /** - * * 鍒ゆ柇涓涓璞℃槸鍚﹂潪绌 - * - * @param object Object - * @return true锛氶潪绌 false锛氱┖ - */ - public static boolean isNotNull(Object object) - { - return !isNull(object); - } - - /** - * * 鍒ゆ柇涓涓璞℃槸鍚︽槸鏁扮粍绫诲瀷锛圝ava鍩烘湰鍨嬪埆鐨勬暟缁勶級 - * - * @param object 瀵硅薄 - * @return true锛氭槸鏁扮粍 false锛氫笉鏄暟缁 - */ - public static boolean isArray(Object object) - { - return isNotNull(object) && object.getClass().isArray(); - } - - /** - * 鍘荤┖鏍 - */ - public static String trim(String str) - { - return (str == null ? "" : str.trim()); - } - - /** - * 鏇挎崲鎸囧畾瀛楃涓茬殑鎸囧畾鍖洪棿鍐呭瓧绗︿负"*" - * - * @param str 瀛楃涓 - * @param startInclude 寮濮嬩綅缃紙鍖呭惈锛 - * @param endExclude 缁撴潫浣嶇疆锛堜笉鍖呭惈锛 - * @return 鏇挎崲鍚庣殑瀛楃涓 - */ - public static String hide(CharSequence str, int startInclude, int endExclude) - { - if (isEmpty(str)) - { - return NULLSTR; - } - final int strLength = str.length(); - if (startInclude > strLength) - { - return NULLSTR; - } - if (endExclude > strLength) - { - endExclude = strLength; - } - if (startInclude > endExclude) - { - // 濡傛灉璧峰浣嶇疆澶т簬缁撴潫浣嶇疆锛屼笉鏇挎崲 - return NULLSTR; - } - final char[] chars = new char[strLength]; - for (int i = 0; i < strLength; i++) - { - if (i >= startInclude && i < endExclude) - { - chars[i] = ASTERISK; - } - else - { - chars[i] = str.charAt(i); - } - } - return new String(chars); - } - - /** - * 鎴彇瀛楃涓 - * - * @param str 瀛楃涓 - * @param start 寮濮 - * @return 缁撴灉 - */ - public static String substring(final String str, int start) - { - if (str == null) - { - return NULLSTR; - } +public class StringUtils extends org.apache.commons.lang3.StringUtils { + /** 绌哄瓧绗︿覆 */ + private static final String NULLSTR = ""; + + /** 涓嬪垝绾 */ + private static final char SEPARATOR = '_'; + + /** 鏄熷彿 */ + private static final char ASTERISK = '*'; + + /** + * 鑾峰彇鍙傛暟涓嶄负绌哄 + * + * @param value defaultValue 瑕佸垽鏂殑value + * @return value 杩斿洖鍊 + */ + public static T nvl(T value, T defaultValue) { + return value != null ? value : defaultValue; + } + + /** + * * 鍒ゆ柇涓涓狢ollection鏄惁涓虹┖锛 鍖呭惈List锛孲et锛孮ueue + * + * @param coll 瑕佸垽鏂殑Collection + * @return true锛氫负绌 false锛氶潪绌 + */ + public static boolean isEmpty(Collection coll) { + return isNull(coll) || coll.isEmpty(); + } + + /** + * * 鍒ゆ柇涓涓狢ollection鏄惁闈炵┖锛屽寘鍚獿ist锛孲et锛孮ueue + * + * @param coll 瑕佸垽鏂殑Collection + * @return true锛氶潪绌 false锛氱┖ + */ + public static boolean isNotEmpty(Collection coll) { + return !isEmpty(coll); + } + + /** + * * 鍒ゆ柇涓涓璞℃暟缁勬槸鍚︿负绌 + * + * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 * @return true锛氫负绌 false锛氶潪绌 + */ + public static boolean isEmpty(Object[] objects) { + return isNull(objects) || (objects.length == 0); + } + + /** + * * 鍒ゆ柇涓涓璞℃暟缁勬槸鍚﹂潪绌 + * + * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 + * @return true锛氶潪绌 false锛氱┖ + */ + public static boolean isNotEmpty(Object[] objects) { + return !isEmpty(objects); + } + + /** + * * 鍒ゆ柇涓涓狹ap鏄惁涓虹┖ + * + * @param map 瑕佸垽鏂殑Map + * @return true锛氫负绌 false锛氶潪绌 + */ + public static boolean isEmpty(Map map) { + return isNull(map) || map.isEmpty(); + } + + /** + * * 鍒ゆ柇涓涓狹ap鏄惁涓虹┖ + * + * @param map 瑕佸垽鏂殑Map + * @return true锛氶潪绌 false锛氱┖ + */ + public static boolean isNotEmpty(Map map) { + return !isEmpty(map); + } + + /** + * * 鍒ゆ柇涓涓瓧绗︿覆鏄惁涓虹┖涓 + * + * @param str String + * @return true锛氫负绌 false锛氶潪绌 + */ + public static boolean isEmpty(String str) { + return isNull(str) || NULLSTR.equals(str.trim()); + } + + /** + * * 鍒ゆ柇涓涓瓧绗︿覆鏄惁涓洪潪绌轰覆 + * + * @param str String + * @return true锛氶潪绌轰覆 false锛氱┖涓 + */ + public static boolean isNotEmpty(String str) { + return !isEmpty(str); + } + + /** + * * 鍒ゆ柇涓涓璞℃槸鍚︿负绌 + * + * @param object Object + * @return true锛氫负绌 false锛氶潪绌 + */ + public static boolean isNull(Object object) { + return object == null; + } + + /** + * * 鍒ゆ柇涓涓璞℃槸鍚﹂潪绌 + * + * @param object Object + * @return true锛氶潪绌 false锛氱┖ + */ + public static boolean isNotNull(Object object) { + return !isNull(object); + } + + /** + * * 鍒ゆ柇涓涓璞℃槸鍚︽槸鏁扮粍绫诲瀷锛圝ava鍩烘湰鍨嬪埆鐨勬暟缁勶級 + * + * @param object 瀵硅薄 + * @return true锛氭槸鏁扮粍 false锛氫笉鏄暟缁 + */ + public static boolean isArray(Object object) { + return isNotNull(object) && object.getClass().isArray(); + } + + /** 鍘荤┖鏍 */ + public static String trim(String str) { + return (str == null ? "" : str.trim()); + } + + /** + * 鏇挎崲鎸囧畾瀛楃涓茬殑鎸囧畾鍖洪棿鍐呭瓧绗︿负"*" + * + * @param str 瀛楃涓 + * @param startInclude 寮濮嬩綅缃紙鍖呭惈锛 + * @param endExclude 缁撴潫浣嶇疆锛堜笉鍖呭惈锛 + * @return 鏇挎崲鍚庣殑瀛楃涓 + */ + public static String hide(CharSequence str, int startInclude, int endExclude) { + if (isEmpty(str)) { + return NULLSTR; + } + final int strLength = str.length(); + if (startInclude > strLength) { + return NULLSTR; + } + if (endExclude > strLength) { + endExclude = strLength; + } + if (startInclude > endExclude) { + // 濡傛灉璧峰浣嶇疆澶т簬缁撴潫浣嶇疆锛屼笉鏇挎崲 + return NULLSTR; + } + final char[] chars = new char[strLength]; + for (int i = 0; i < strLength; i++) { + if (i >= startInclude && i < endExclude) { + chars[i] = ASTERISK; + } else { + chars[i] = str.charAt(i); + } + } + return new String(chars); + } + + /** + * 鎴彇瀛楃涓 + * + * @param str 瀛楃涓 + * @param start 寮濮 + * @return 缁撴灉 + */ + public static String substring(final String str, int start) { + if (str == null) { + return NULLSTR; + } - if (start < 0) - { - start = str.length() + start; - } + if (start < 0) { + start = str.length() + start; + } - if (start < 0) - { - start = 0; - } - if (start > str.length()) - { - return NULLSTR; - } + if (start < 0) { + start = 0; + } + if (start > str.length()) { + return NULLSTR; + } - return str.substring(start); - } - - /** - * 鎴彇瀛楃涓 - * - * @param str 瀛楃涓 - * @param start 寮濮 - * @param end 缁撴潫 - * @return 缁撴灉 - */ - public static String substring(final String str, int start, int end) - { - if (str == null) - { - return NULLSTR; - } + return str.substring(start); + } + + /** + * 鎴彇瀛楃涓 + * + * @param str 瀛楃涓 + * @param start 寮濮 + * @param end 缁撴潫 + * @return 缁撴灉 + */ + public static String substring(final String str, int start, int end) { + if (str == null) { + return NULLSTR; + } - if (end < 0) - { - end = str.length() + end; - } - if (start < 0) - { - start = str.length() + start; - } + if (end < 0) { + end = str.length() + end; + } + if (start < 0) { + start = str.length() + start; + } - if (end > str.length()) - { - end = str.length(); - } + if (end > str.length()) { + end = str.length(); + } - if (start > end) - { - return NULLSTR; - } + if (start > end) { + return NULLSTR; + } - if (start < 0) - { - start = 0; - } - if (end < 0) - { - end = 0; - } + if (start < 0) { + start = 0; + } + if (end < 0) { + end = 0; + } - return str.substring(start, end); - } - - /** - * 鍦ㄥ瓧绗︿覆涓煡鎵剧涓涓嚭鐜扮殑 `open` 鍜屾渶鍚庝竴涓嚭鐜扮殑 `close` 涔嬮棿鐨勫瓙瀛楃涓 - * - * @param str 瑕佹埅鍙栫殑瀛楃涓 - * @param open 璧峰瀛楃涓 - * @param close 缁撴潫瀛楃涓 - * @return 鎴彇缁撴灉 - */ - public static String substringBetweenLast(final String str, final String open, final String close) - { - if (isEmpty(str) || isEmpty(open) || isEmpty(close)) - { - return NULLSTR; - } - final int start = str.indexOf(open); - if (start != INDEX_NOT_FOUND) - { - final int end = str.lastIndexOf(close); - if (end != INDEX_NOT_FOUND) - { - return str.substring(start + open.length(), end); - } - } - return NULLSTR; - } - - /** - * 鍒ゆ柇鏄惁涓虹┖锛屽苟涓斾笉鏄┖鐧藉瓧绗 - * - * @param str 瑕佸垽鏂殑value - * @return 缁撴灉 - */ - public static boolean hasText(String str) - { - return (str != null && !str.isEmpty() && containsText(str)); - } - - private static boolean containsText(CharSequence str) - { - int strLen = str.length(); - for (int i = 0; i < strLen; i++) - { - if (!Character.isWhitespace(str.charAt(i))) - { - return true; - } - } - return false; - } - - /** - * 鏍煎紡鍖栨枃鏈, {} 琛ㄧず鍗犱綅绗
- * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗 {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁
- * 濡傛灉鎯宠緭鍑 {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨 \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲
- * 渚嬶細
- * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b
- * 杞箟{}锛 format("this is \\{} for {}", "a", "b") -> this is \{} for a
- * 杞箟\锛 format("this is \\\\{} for {}", "a", "b") -> this is \a for b
- * - * @param template 鏂囨湰妯℃澘锛岃鏇挎崲鐨勯儴鍒嗙敤 {} 琛ㄧず - * @param params 鍙傛暟鍊 - * @return 鏍煎紡鍖栧悗鐨勬枃鏈 - */ - public static String format(String template, Object... params) - { - if (isEmpty(params) || isEmpty(template)) - { - return template; - } - return StrFormatter.format(template, params); - } - - /** - * 鏄惁涓篽ttp(s)://寮澶 - * - * @param link 閾炬帴 - * @return 缁撴灉 - */ - public static boolean ishttp(String link) - { - return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); - } - - /** - * 鍒ゆ柇缁欏畾鐨刢ollection鍒楄〃涓槸鍚﹀寘鍚暟缁刟rray 鍒ゆ柇缁欏畾鐨勬暟缁刟rray涓槸鍚﹀寘鍚粰瀹氱殑鍏冪礌value - * - * @param collection 缁欏畾鐨勯泦鍚 - * @param array 缁欏畾鐨勬暟缁 - * @return boolean 缁撴灉 - */ - public static boolean containsAny(Collection collection, String... array) - { - if (isEmpty(collection) || isEmpty(array)) - { - return false; - } - else - { - for (String str : array) - { - if (collection.contains(str)) - { - return true; - } - } - return false; - } + return str.substring(start, end); + } + + /** + * 鍦ㄥ瓧绗︿覆涓煡鎵剧涓涓嚭鐜扮殑 `open` 鍜屾渶鍚庝竴涓嚭鐜扮殑 `close` 涔嬮棿鐨勫瓙瀛楃涓 + * + * @param str 瑕佹埅鍙栫殑瀛楃涓 + * @param open 璧峰瀛楃涓 + * @param close 缁撴潫瀛楃涓 + * @return 鎴彇缁撴灉 + */ + public static String substringBetweenLast( + final String str, final String open, final String close) { + if (isEmpty(str) || isEmpty(open) || isEmpty(close)) { + return NULLSTR; + } + final int start = str.indexOf(open); + if (start != INDEX_NOT_FOUND) { + final int end = str.lastIndexOf(close); + if (end != INDEX_NOT_FOUND) { + return str.substring(start + open.length(), end); + } + } + return NULLSTR; + } + + /** + * 鍒ゆ柇鏄惁涓虹┖锛屽苟涓斾笉鏄┖鐧藉瓧绗 + * + * @param str 瑕佸垽鏂殑value + * @return 缁撴灉 + */ + public static boolean hasText(String str) { + return (str != null && !str.isEmpty() && containsText(str)); + } + + private static boolean containsText(CharSequence str) { + int strLen = str.length(); + for (int i = 0; i < strLen; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + return true; + } } + return false; + } + + /** + * 鏍煎紡鍖栨枃鏈, {} 琛ㄧず鍗犱綅绗
+ * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗 {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁
+ * 濡傛灉鎯宠緭鍑 {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨 \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲
+ * 渚嬶細
+ * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b
+ * 杞箟{}锛 format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 杞箟\锛 format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param template 鏂囨湰妯℃澘锛岃鏇挎崲鐨勯儴鍒嗙敤 {} 琛ㄧず + * @param params 鍙傛暟鍊 + * @return 鏍煎紡鍖栧悗鐨勬枃鏈 + */ + public static String format(String template, Object... params) { + if (isEmpty(params) || isEmpty(template)) { + return template; + } + return StrFormatter.format(template, params); + } + + /** + * 鏄惁涓篽ttp(s)://寮澶 + * + * @param link 閾炬帴 + * @return 缁撴灉 + */ + public static boolean ishttp(String link) { + return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); + } + + /** + * 鍒ゆ柇缁欏畾鐨刢ollection鍒楄〃涓槸鍚﹀寘鍚暟缁刟rray 鍒ゆ柇缁欏畾鐨勬暟缁刟rray涓槸鍚﹀寘鍚粰瀹氱殑鍏冪礌value + * + * @param collection 缁欏畾鐨勯泦鍚 + * @param array 缁欏畾鐨勬暟缁 + * @return boolean 缁撴灉 + */ + public static boolean containsAny(Collection collection, String... array) { + if (isEmpty(collection) || isEmpty(array)) { + return false; + } else { + for (String str : array) { + if (collection.contains(str)) { + return true; + } + } + return false; + } + } - /** - * 椹煎嘲杞笅鍒掔嚎鍛藉悕 - */ - public static String toUnderScoreCase(String str) - { - if (str == null) - { - return null; - } - StringBuilder sb = new StringBuilder(); - // 鍓嶇疆瀛楃鏄惁澶у啓 - boolean preCharIsUpperCase = true; - // 褰撳墠瀛楃鏄惁澶у啓 - boolean curreCharIsUpperCase = true; - // 涓嬩竴瀛楃鏄惁澶у啓 - boolean nexteCharIsUpperCase = true; - for (int i = 0; i < str.length(); i++) - { - char c = str.charAt(i); - if (i > 0) - { - preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); - } - else - { - preCharIsUpperCase = false; - } - - curreCharIsUpperCase = Character.isUpperCase(c); - - if (i < (str.length() - 1)) - { - nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); - } - - if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) - { - sb.append(SEPARATOR); - } - else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) - { - sb.append(SEPARATOR); - } - sb.append(Character.toLowerCase(c)); - } + /** 椹煎嘲杞笅鍒掔嚎鍛藉悕 */ + public static String toUnderScoreCase(String str) { + if (str == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + // 鍓嶇疆瀛楃鏄惁澶у啓 + boolean preCharIsUpperCase = true; + // 褰撳墠瀛楃鏄惁澶у啓 + boolean curreCharIsUpperCase = true; + // 涓嬩竴瀛楃鏄惁澶у啓 + boolean nexteCharIsUpperCase = true; + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (i > 0) { + preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); + } else { + preCharIsUpperCase = false; + } + + curreCharIsUpperCase = Character.isUpperCase(c); + + if (i < (str.length() - 1)) { + nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); + } + + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { + sb.append(SEPARATOR); + } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { + sb.append(SEPARATOR); + } + sb.append(Character.toLowerCase(c)); + } - return sb.toString(); - } - - /** - * 鏄惁鍖呭惈瀛楃涓 - * - * @param str 楠岃瘉瀛楃涓 - * @param strs 瀛楃涓茬粍 - * @return 鍖呭惈杩斿洖true - */ - public static boolean inStringIgnoreCase(String str, String... strs) - { - if (str != null && strs != null) - { - for (String s : strs) - { - if (str.equalsIgnoreCase(trim(s))) - { - return true; - } - } - } - return false; - } - - /** - * 灏嗕笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆杞崲涓洪┘宄板紡銆傚鏋滆浆鎹㈠墠鐨勪笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆涓虹┖锛屽垯杩斿洖绌哄瓧绗︿覆銆 渚嬪锛欻ELLO_WORLD->HelloWorld - * - * @param name 杞崲鍓嶇殑涓嬪垝绾垮ぇ鍐欐柟寮忓懡鍚嶇殑瀛楃涓 - * @return 杞崲鍚庣殑椹煎嘲寮忓懡鍚嶇殑瀛楃涓 - */ - public static String convertToCamelCase(String name) - { - StringBuilder result = new StringBuilder(); - // 蹇熸鏌 - if (name == null || name.isEmpty()) - { - // 娌″繀瑕佽浆鎹 - return ""; - } - else if (!name.contains("_")) - { - // 涓嶅惈涓嬪垝绾匡紝浠呭皢棣栧瓧姣嶅ぇ鍐 - return name.substring(0, 1).toUpperCase() + name.substring(1); - } - // 鐢ㄤ笅鍒掔嚎灏嗗師濮嬪瓧绗︿覆鍒嗗壊 - String[] camels = name.split("_"); - for (String camel : camels) - { - // 璺宠繃鍘熷瀛楃涓蹭腑寮澶淬佺粨灏剧殑涓嬫崲绾挎垨鍙岄噸涓嬪垝绾 - if (camel.isEmpty()) - { - continue; - } - // 棣栧瓧姣嶅ぇ鍐 - result.append(camel.substring(0, 1).toUpperCase()); - result.append(camel.substring(1).toLowerCase()); - } - return result.toString(); - } - - /** - * 椹煎嘲寮忓懡鍚嶆硶 - * 渚嬪锛歶ser_name->userName - */ - public static String toCamelCase(String s) - { - if (s == null) - { - return null; - } - if (s.indexOf(SEPARATOR) == -1) - { - return s; - } - s = s.toLowerCase(); - StringBuilder sb = new StringBuilder(s.length()); - boolean upperCase = false; - for (int i = 0; i < s.length(); i++) - { - char c = s.charAt(i); - - if (c == SEPARATOR) - { - upperCase = true; - } - else if (upperCase) - { - sb.append(Character.toUpperCase(c)); - upperCase = false; - } - else - { - sb.append(c); - } - } - return sb.toString(); - } - - /** - * 鏌ユ壘鎸囧畾瀛楃涓叉槸鍚﹀尮閰嶆寚瀹氬瓧绗︿覆鍒楄〃涓殑浠绘剰涓涓瓧绗︿覆 - * - * @param str 鎸囧畾瀛楃涓 - * @param strs 闇瑕佹鏌ョ殑瀛楃涓叉暟缁 - * @return 鏄惁鍖归厤 - */ - public static boolean matches(String str, List strs) - { - if (isEmpty(str) || isEmpty(strs)) - { - return false; - } - for (String pattern : strs) - { - if (isMatch(pattern, str)) - { - return true; - } - } - return false; - } - - /** - * 鍒ゆ柇url鏄惁涓庤鍒欓厤缃: - * ? 琛ㄧず鍗曚釜瀛楃; - * * 琛ㄧず涓灞傝矾寰勫唴鐨勪换鎰忓瓧绗︿覆锛屼笉鍙法灞傜骇; - * ** 琛ㄧず浠绘剰灞傝矾寰; - * - * @param pattern 鍖归厤瑙勫垯 - * @param url 闇瑕佸尮閰嶇殑url - * @return - */ - public static boolean isMatch(String pattern, String url) - { - AntPathMatcher matcher = new AntPathMatcher(); - return matcher.match(pattern, url); - } - - @SuppressWarnings("unchecked") - public static T cast(Object obj) - { - return (T) obj; - } - - /** - * 鏁板瓧宸﹁竟琛ラ綈0锛屼娇涔嬭揪鍒版寚瀹氶暱搴︺傛敞鎰忥紝濡傛灉鏁板瓧杞崲涓哄瓧绗︿覆鍚庯紝闀垮害澶т簬size锛屽垯鍙繚鐣 鏈鍚巗ize涓瓧绗︺ - * - * @param num 鏁板瓧瀵硅薄 - * @param size 瀛楃涓叉寚瀹氶暱搴 - * @return 杩斿洖鏁板瓧鐨勫瓧绗︿覆鏍煎紡锛岃瀛楃涓蹭负鎸囧畾闀垮害銆 - */ - public static final String padl(final Number num, final int size) - { - return padl(num.toString(), size, '0'); - } - - /** - * 瀛楃涓插乏琛ラ綈銆傚鏋滃師濮嬪瓧绗︿覆s闀垮害澶т簬size锛屽垯鍙繚鐣欐渶鍚巗ize涓瓧绗︺ - * - * @param s 鍘熷瀛楃涓 - * @param size 瀛楃涓叉寚瀹氶暱搴 - * @param c 鐢ㄤ簬琛ラ綈鐨勫瓧绗 - * @return 杩斿洖鎸囧畾闀垮害鐨勫瓧绗︿覆锛岀敱鍘熷瓧绗︿覆宸﹁ˉ榻愭垨鎴彇寰楀埌銆 - */ - public static final String padl(final String s, final int size, final char c) - { - final StringBuilder sb = new StringBuilder(size); - if (s != null) - { - final int len = s.length(); - if (s.length() <= size) - { - for (int i = size - len; i > 0; i--) - { - sb.append(c); - } - sb.append(s); - } - else - { - return s.substring(len - size, len); - } - } - else - { - for (int i = size; i > 0; i--) - { - sb.append(c); - } - } - return sb.toString(); + return sb.toString(); + } + + /** + * 鏄惁鍖呭惈瀛楃涓 + * + * @param str 楠岃瘉瀛楃涓 + * @param strs 瀛楃涓茬粍 + * @return 鍖呭惈杩斿洖true + */ + public static boolean inStringIgnoreCase(String str, String... strs) { + if (str != null && strs != null) { + for (String s : strs) { + if (str.equalsIgnoreCase(trim(s))) { + return true; + } + } + } + return false; + } + + /** + * 灏嗕笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆杞崲涓洪┘宄板紡銆傚鏋滆浆鎹㈠墠鐨勪笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆涓虹┖锛屽垯杩斿洖绌哄瓧绗︿覆銆 渚嬪锛欻ELLO_WORLD->HelloWorld + * + * @param name 杞崲鍓嶇殑涓嬪垝绾垮ぇ鍐欐柟寮忓懡鍚嶇殑瀛楃涓 + * @return 杞崲鍚庣殑椹煎嘲寮忓懡鍚嶇殑瀛楃涓 + */ + public static String convertToCamelCase(String name) { + StringBuilder result = new StringBuilder(); + // 蹇熸鏌 + if (name == null || name.isEmpty()) { + // 娌″繀瑕佽浆鎹 + return ""; + } else if (!name.contains("_")) { + // 涓嶅惈涓嬪垝绾匡紝浠呭皢棣栧瓧姣嶅ぇ鍐 + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + // 鐢ㄤ笅鍒掔嚎灏嗗師濮嬪瓧绗︿覆鍒嗗壊 + String[] camels = name.split("_"); + for (String camel : camels) { + // 璺宠繃鍘熷瀛楃涓蹭腑寮澶淬佺粨灏剧殑涓嬫崲绾挎垨鍙岄噸涓嬪垝绾 + if (camel.isEmpty()) { + continue; + } + // 棣栧瓧姣嶅ぇ鍐 + result.append(camel.substring(0, 1).toUpperCase()); + result.append(camel.substring(1).toLowerCase()); + } + return result.toString(); + } + + /** 椹煎嘲寮忓懡鍚嶆硶 渚嬪锛歶ser_name->userName */ + public static String toCamelCase(String s) { + if (s == null) { + return null; + } + if (s.indexOf(SEPARATOR) == -1) { + return s; + } + s = s.toLowerCase(); + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + if (c == SEPARATOR) { + upperCase = true; + } else if (upperCase) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + return sb.toString(); + } + + /** + * 鏌ユ壘鎸囧畾瀛楃涓叉槸鍚﹀尮閰嶆寚瀹氬瓧绗︿覆鍒楄〃涓殑浠绘剰涓涓瓧绗︿覆 + * + * @param str 鎸囧畾瀛楃涓 + * @param strs 闇瑕佹鏌ョ殑瀛楃涓叉暟缁 + * @return 鏄惁鍖归厤 + */ + public static boolean matches(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String pattern : strs) { + if (isMatch(pattern, str)) { + return true; + } + } + return false; + } + + /** + * 鍒ゆ柇url鏄惁涓庤鍒欓厤缃: ? 琛ㄧず鍗曚釜瀛楃; * 琛ㄧず涓灞傝矾寰勫唴鐨勪换鎰忓瓧绗︿覆锛屼笉鍙法灞傜骇; ** 琛ㄧず浠绘剰灞傝矾寰; + * + * @param pattern 鍖归厤瑙勫垯 + * @param url 闇瑕佸尮閰嶇殑url + * @return + */ + public static boolean isMatch(String pattern, String url) { + AntPathMatcher matcher = new AntPathMatcher(); + return matcher.match(pattern, url); + } + + @SuppressWarnings("unchecked") + public static T cast(Object obj) { + return (T) obj; + } + + /** + * 鏁板瓧宸﹁竟琛ラ綈0锛屼娇涔嬭揪鍒版寚瀹氶暱搴︺傛敞鎰忥紝濡傛灉鏁板瓧杞崲涓哄瓧绗︿覆鍚庯紝闀垮害澶т簬size锛屽垯鍙繚鐣 鏈鍚巗ize涓瓧绗︺ + * + * @param num 鏁板瓧瀵硅薄 + * @param size 瀛楃涓叉寚瀹氶暱搴 + * @return 杩斿洖鏁板瓧鐨勫瓧绗︿覆鏍煎紡锛岃瀛楃涓蹭负鎸囧畾闀垮害銆 + */ + public static final String padl(final Number num, final int size) { + return padl(num.toString(), size, '0'); + } + + /** + * 瀛楃涓插乏琛ラ綈銆傚鏋滃師濮嬪瓧绗︿覆s闀垮害澶т簬size锛屽垯鍙繚鐣欐渶鍚巗ize涓瓧绗︺ + * + * @param s 鍘熷瀛楃涓 + * @param size 瀛楃涓叉寚瀹氶暱搴 + * @param c 鐢ㄤ簬琛ラ綈鐨勫瓧绗 + * @return 杩斿洖鎸囧畾闀垮害鐨勫瓧绗︿覆锛岀敱鍘熷瓧绗︿覆宸﹁ˉ榻愭垨鎴彇寰楀埌銆 + */ + public static final String padl(final String s, final int size, final char c) { + final StringBuilder sb = new StringBuilder(size); + if (s != null) { + final int len = s.length(); + if (s.length() <= size) { + for (int i = size - len; i > 0; i--) { + sb.append(c); + } + sb.append(s); + } else { + return s.substring(len - size, len); + } + } else { + for (int i = size; i > 0; i--) { + sb.append(c); + } } + return sb.toString(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanUtils.java index d027ceffa..bf3209167 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanUtils.java @@ -8,103 +8,89 @@ import java.util.regex.Pattern; /** * Bean 宸ュ叿绫 - * + * * @author ruoyi */ -public class BeanUtils extends org.springframework.beans.BeanUtils -{ - /** Bean鏂规硶鍚嶄腑灞炴у悕寮濮嬬殑涓嬫爣 */ - private static final int BEAN_METHOD_PROP_INDEX = 3; +public class BeanUtils extends org.springframework.beans.BeanUtils { + /** Bean鏂规硶鍚嶄腑灞炴у悕寮濮嬬殑涓嬫爣 */ + private static final int BEAN_METHOD_PROP_INDEX = 3; - /** * 鍖归厤getter鏂规硶鐨勬鍒欒〃杈惧紡 */ - private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); + /** * 鍖归厤getter鏂规硶鐨勬鍒欒〃杈惧紡 */ + private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); - /** * 鍖归厤setter鏂规硶鐨勬鍒欒〃杈惧紡 */ - private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); + /** * 鍖归厤setter鏂规硶鐨勬鍒欒〃杈惧紡 */ + private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); - /** - * Bean灞炴у鍒跺伐鍏锋柟娉曘 - * - * @param dest 鐩爣瀵硅薄 - * @param src 婧愬璞 - */ - public static void copyBeanProp(Object dest, Object src) - { - try - { - copyProperties(src, dest); - } - catch (Exception e) - { - e.printStackTrace(); - } + /** + * Bean灞炴у鍒跺伐鍏锋柟娉曘 + * + * @param dest 鐩爣瀵硅薄 + * @param src 婧愬璞 + */ + public static void copyBeanProp(Object dest, Object src) { + try { + copyProperties(src, dest); + } catch (Exception e) { + e.printStackTrace(); } + } - /** - * 鑾峰彇瀵硅薄鐨剆etter鏂规硶銆 - * - * @param obj 瀵硅薄 - * @return 瀵硅薄鐨剆etter鏂规硶鍒楄〃 - */ - public static List getSetterMethods(Object obj) - { - // setter鏂规硶鍒楄〃 - List setterMethods = new ArrayList(); + /** + * 鑾峰彇瀵硅薄鐨剆etter鏂规硶銆 + * + * @param obj 瀵硅薄 + * @return 瀵硅薄鐨剆etter鏂规硶鍒楄〃 + */ + public static List getSetterMethods(Object obj) { + // setter鏂规硶鍒楄〃 + List setterMethods = new ArrayList(); - // 鑾峰彇鎵鏈夋柟娉 - Method[] methods = obj.getClass().getMethods(); + // 鑾峰彇鎵鏈夋柟娉 + Method[] methods = obj.getClass().getMethods(); - // 鏌ユ壘setter鏂规硶 + // 鏌ユ壘setter鏂规硶 - for (Method method : methods) - { - Matcher m = SET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 1)) - { - setterMethods.add(method); - } - } - // 杩斿洖setter鏂规硶鍒楄〃 - return setterMethods; + for (Method method : methods) { + Matcher m = SET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 1)) { + setterMethods.add(method); + } } + // 杩斿洖setter鏂规硶鍒楄〃 + return setterMethods; + } - /** - * 鑾峰彇瀵硅薄鐨刧etter鏂规硶銆 - * - * @param obj 瀵硅薄 - * @return 瀵硅薄鐨刧etter鏂规硶鍒楄〃 - */ - - public static List getGetterMethods(Object obj) - { - // getter鏂规硶鍒楄〃 - List getterMethods = new ArrayList(); - // 鑾峰彇鎵鏈夋柟娉 - Method[] methods = obj.getClass().getMethods(); - // 鏌ユ壘getter鏂规硶 - for (Method method : methods) - { - Matcher m = GET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 0)) - { - getterMethods.add(method); - } - } - // 杩斿洖getter鏂规硶鍒楄〃 - return getterMethods; + /** + * 鑾峰彇瀵硅薄鐨刧etter鏂规硶銆 + * + * @param obj 瀵硅薄 + * @return 瀵硅薄鐨刧etter鏂规硶鍒楄〃 + */ + public static List getGetterMethods(Object obj) { + // getter鏂规硶鍒楄〃 + List getterMethods = new ArrayList(); + // 鑾峰彇鎵鏈夋柟娉 + Method[] methods = obj.getClass().getMethods(); + // 鏌ユ壘getter鏂规硶 + for (Method method : methods) { + Matcher m = GET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 0)) { + getterMethods.add(method); + } } + // 杩斿洖getter鏂规硶鍒楄〃 + return getterMethods; + } - /** - * 妫鏌ean鏂规硶鍚嶄腑鐨勫睘鎬у悕鏄惁鐩哥瓑銆
- * 濡俫etName()鍜宻etName()灞炴у悕涓鏍凤紝getName()鍜宻etAge()灞炴у悕涓嶄竴鏍枫 - * - * @param m1 鏂规硶鍚1 - * @param m2 鏂规硶鍚2 - * @return 灞炴у悕涓鏍疯繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse - */ - - public static boolean isMethodPropEquals(String m1, String m2) - { - return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); - } + /** + * 妫鏌ean鏂规硶鍚嶄腑鐨勫睘鎬у悕鏄惁鐩哥瓑銆
+ * 濡俫etName()鍜宻etName()灞炴у悕涓鏍凤紝getName()鍜宻etAge()灞炴у悕涓嶄竴鏍枫 + * + * @param m1 鏂规硶鍚1 + * @param m2 鏂规硶鍚2 + * @return 灞炴у悕涓鏍疯繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse + */ + public static boolean isMethodPropEquals(String m1, String m2) { + return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java index 758772620..f28828f8a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java @@ -7,18 +7,15 @@ import javax.validation.Validator; /** * bean瀵硅薄灞炴ч獙璇 - * + * * @author ruoyi */ -public class BeanValidators -{ - public static void validateWithException(Validator validator, Object object, Class... groups) - throws ConstraintViolationException - { - Set> constraintViolations = validator.validate(object, groups); - if (!constraintViolations.isEmpty()) - { - throw new ConstraintViolationException(constraintViolations); - } +public class BeanValidators { + public static void validateWithException(Validator validator, Object object, Class... groups) + throws ConstraintViolationException { + Set> constraintViolations = validator.validate(object, groups); + if (!constraintViolations.isEmpty()) { + throw new ConstraintViolationException(constraintViolations); } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java index fa494b50b..d14637590 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java @@ -11,85 +11,77 @@ import org.springframework.web.multipart.MultipartFile; * * @author ruoyi */ -public class FileTypeUtils -{ - /** - * 鑾峰彇鏂囦欢绫诲瀷 - *

- * 渚嬪: ruoyi.txt, 杩斿洖: txt - * - * @param file 鏂囦欢鍚 - * @return 鍚庣紑锛堜笉鍚".") - */ - public static String getFileType(File file) - { - if (null == file) - { - return StringUtils.EMPTY; - } - return getFileType(file.getName()); +public class FileTypeUtils { + /** + * 鑾峰彇鏂囦欢绫诲瀷 + * + *

渚嬪: ruoyi.txt, 杩斿洖: txt + * + * @param file 鏂囦欢鍚 + * @return 鍚庣紑锛堜笉鍚".") + */ + public static String getFileType(File file) { + if (null == file) { + return StringUtils.EMPTY; } + return getFileType(file.getName()); + } - /** - * 鑾峰彇鏂囦欢绫诲瀷 - *

- * 渚嬪: ruoyi.txt, 杩斿洖: txt - * - * @param fileName 鏂囦欢鍚 - * @return 鍚庣紑锛堜笉鍚".") - */ - public static String getFileType(String fileName) - { - int separatorIndex = fileName.lastIndexOf("."); - if (separatorIndex < 0) - { - return ""; - } - return fileName.substring(separatorIndex + 1).toLowerCase(); + /** + * 鑾峰彇鏂囦欢绫诲瀷 + * + *

渚嬪: ruoyi.txt, 杩斿洖: txt + * + * @param fileName 鏂囦欢鍚 + * @return 鍚庣紑锛堜笉鍚".") + */ + public static String getFileType(String fileName) { + int separatorIndex = fileName.lastIndexOf("."); + if (separatorIndex < 0) { + return ""; } + return fileName.substring(separatorIndex + 1).toLowerCase(); + } - /** - * 鑾峰彇鏂囦欢鍚嶇殑鍚庣紑 - * - * @param file 琛ㄥ崟鏂囦欢 - * @return 鍚庣紑鍚 - */ - public static final String getExtension(MultipartFile file) - { - String extension = FilenameUtils.getExtension(file.getOriginalFilename()); - if (StringUtils.isEmpty(extension)) - { - extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); - } - return extension; + /** + * 鑾峰彇鏂囦欢鍚嶇殑鍚庣紑 + * + * @param file 琛ㄥ崟鏂囦欢 + * @return 鍚庣紑鍚 + */ + public static final String getExtension(MultipartFile file) { + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + if (StringUtils.isEmpty(extension)) { + extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } + return extension; + } - /** - * 鑾峰彇鏂囦欢绫诲瀷 - * - * @param photoByte 鏂囦欢瀛楄妭鐮 - * @return 鍚庣紑锛堜笉鍚".") - */ - public static String getFileExtendName(byte[] photoByte) - { - String strFileExtendName = "JPG"; - if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) - && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) - { - strFileExtendName = "GIF"; - } - else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) - { - strFileExtendName = "JPG"; - } - else if ((photoByte[0] == 66) && (photoByte[1] == 77)) - { - strFileExtendName = "BMP"; - } - else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) - { - strFileExtendName = "PNG"; - } - return strFileExtendName; + /** + * 鑾峰彇鏂囦欢绫诲瀷 + * + * @param photoByte 鏂囦欢瀛楄妭鐮 + * @return 鍚庣紑锛堜笉鍚".") + */ + public static String getFileExtendName(byte[] photoByte) { + String strFileExtendName = "JPG"; + if ((photoByte[0] == 71) + && (photoByte[1] == 73) + && (photoByte[2] == 70) + && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) + && (photoByte[5] == 97)) { + strFileExtendName = "GIF"; + } else if ((photoByte[6] == 74) + && (photoByte[7] == 70) + && (photoByte[8] == 73) + && (photoByte[9] == 70)) { + strFileExtendName = "JPG"; + } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { + strFileExtendName = "BMP"; + } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { + strFileExtendName = "PNG"; } -} \ No newline at end of file + return strFileExtendName; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java index aabb4fb73..ac459bfe9 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.utils.file; +import com.ruoyi.common.core.utils.StringUtils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -11,243 +12,207 @@ import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; -import com.ruoyi.common.core.utils.StringUtils; /** * 鏂囦欢澶勭悊宸ュ叿绫 - * + * * @author ruoyi */ -public class FileUtils -{ - /** 瀛楃甯搁噺锛氭枩鏉 {@code '/'} */ - public static final char SLASH = '/'; - - /** 瀛楃甯搁噺锛氬弽鏂滄潬 {@code '\\'} */ - public static final char BACKSLASH = '\\'; - - public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; - - /** - * 杈撳嚭鎸囧畾鏂囦欢鐨刡yte鏁扮粍 - * - * @param filePath 鏂囦欢璺緞 - * @param os 杈撳嚭娴 - * @return - */ - public static void writeBytes(String filePath, OutputStream os) throws IOException - { - FileInputStream fis = null; - try - { - File file = new File(filePath); - if (!file.exists()) - { - throw new FileNotFoundException(filePath); - } - fis = new FileInputStream(file); - byte[] b = new byte[1024]; - int length; - while ((length = fis.read(b)) > 0) - { - os.write(b, 0, length); - } - } - catch (IOException e) - { - throw e; +public class FileUtils { + /** 瀛楃甯搁噺锛氭枩鏉 {@code '/'} */ + public static final char SLASH = '/'; + + /** 瀛楃甯搁噺锛氬弽鏂滄潬 {@code '\\'} */ + public static final char BACKSLASH = '\\'; + + public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; + + /** + * 杈撳嚭鎸囧畾鏂囦欢鐨刡yte鏁扮粍 + * + * @param filePath 鏂囦欢璺緞 + * @param os 杈撳嚭娴 + * @return + */ + public static void writeBytes(String filePath, OutputStream os) throws IOException { + FileInputStream fis = null; + try { + File file = new File(filePath); + if (!file.exists()) { + throw new FileNotFoundException(filePath); + } + fis = new FileInputStream(file); + byte[] b = new byte[1024]; + int length; + while ((length = fis.read(b)) > 0) { + os.write(b, 0, length); + } + } catch (IOException e) { + throw e; + } finally { + if (os != null) { + try { + os.close(); + } catch (IOException e1) { + e1.printStackTrace(); } - finally - { - if (os != null) - { - try - { - os.close(); - } - catch (IOException e1) - { - e1.printStackTrace(); - } - } - if (fis != null) - { - try - { - fis.close(); - } - catch (IOException e1) - { - e1.printStackTrace(); - } - } + } + if (fis != null) { + try { + fis.close(); + } catch (IOException e1) { + e1.printStackTrace(); } + } } - - /** - * 鍒犻櫎鏂囦欢 - * - * @param filePath 鏂囦欢 - * @return - */ - public static boolean deleteFile(String filePath) - { - boolean flag = false; - File file = new File(filePath); - // 璺緞涓烘枃浠朵笖涓嶄负绌哄垯杩涜鍒犻櫎 - if (file.isFile() && file.exists()) - { - flag = file.delete(); - } - return flag; + } + + /** + * 鍒犻櫎鏂囦欢 + * + * @param filePath 鏂囦欢 + * @return + */ + public static boolean deleteFile(String filePath) { + boolean flag = false; + File file = new File(filePath); + // 璺緞涓烘枃浠朵笖涓嶄负绌哄垯杩涜鍒犻櫎 + if (file.isFile() && file.exists()) { + flag = file.delete(); } - - /** - * 鏂囦欢鍚嶇О楠岃瘉 - * - * @param filename 鏂囦欢鍚嶇О - * @return true 姝e父 false 闈炴硶 - */ - public static boolean isValidFilename(String filename) - { - return filename.matches(FILENAME_PATTERN); + return flag; + } + + /** + * 鏂囦欢鍚嶇О楠岃瘉 + * + * @param filename 鏂囦欢鍚嶇О + * @return true 姝e父 false 闈炴硶 + */ + public static boolean isValidFilename(String filename) { + return filename.matches(FILENAME_PATTERN); + } + + /** + * 鏍¢獙鏂囦欢璺緞鍚堟硶鎬э紙瀹夊叏鎬т笌鎵╁睍鍚嶏級 + * + * @param fileUrl 寰呮牎楠岀殑鏂囦欢鍦板潃 + * @return true 姝e父 false 闈炴硶 + */ + public static boolean validateFilePath(String fileUrl) { + // 绂佹鐩綍涓婅烦绾у埆 + if (StringUtils.contains(fileUrl, "..")) { + return false; } - - /** - * 鏍¢獙鏂囦欢璺緞鍚堟硶鎬э紙瀹夊叏鎬т笌鎵╁睍鍚嶏級 - * - * @param fileUrl 寰呮牎楠岀殑鏂囦欢鍦板潃 - * @return true 姝e父 false 闈炴硶 - */ - public static boolean validateFilePath(String fileUrl) - { - // 绂佹鐩綍涓婅烦绾у埆 - if (StringUtils.contains(fileUrl, "..")) - { - return false; - } - // 鍒ゆ柇鏄惁鍦ㄥ厑璁镐笅杞界殑鏂囦欢瑙勫垯鍐 - return ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(fileUrl)); + // 鍒ゆ柇鏄惁鍦ㄥ厑璁镐笅杞界殑鏂囦欢瑙勫垯鍐 + return ArrayUtils.contains( + MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(fileUrl)); + } + + /** + * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮 + * + * @param request 璇锋眰瀵硅薄 + * @param fileName 鏂囦欢鍚 + * @return 缂栫爜鍚庣殑鏂囦欢鍚 + */ + public static String setFileDownloadHeader(HttpServletRequest request, String fileName) + throws UnsupportedEncodingException { + final String agent = request.getHeader("USER-AGENT"); + String filename = fileName; + if (agent.contains("MSIE")) { + // IE娴忚鍣 + filename = URLEncoder.encode(filename, "utf-8"); + filename = filename.replace("+", " "); + } else if (agent.contains("Firefox")) { + // 鐏嫄娴忚鍣 + filename = new String(fileName.getBytes(), "ISO8859-1"); + } else if (agent.contains("Chrome")) { + // google娴忚鍣 + filename = URLEncoder.encode(filename, "utf-8"); + } else { + // 鍏跺畠娴忚鍣 + filename = URLEncoder.encode(filename, "utf-8"); } - - /** - * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮 - * - * @param request 璇锋眰瀵硅薄 - * @param fileName 鏂囦欢鍚 - * @return 缂栫爜鍚庣殑鏂囦欢鍚 - */ - public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException - { - final String agent = request.getHeader("USER-AGENT"); - String filename = fileName; - if (agent.contains("MSIE")) - { - // IE娴忚鍣 - filename = URLEncoder.encode(filename, "utf-8"); - filename = filename.replace("+", " "); - } - else if (agent.contains("Firefox")) - { - // 鐏嫄娴忚鍣 - filename = new String(fileName.getBytes(), "ISO8859-1"); - } - else if (agent.contains("Chrome")) - { - // google娴忚鍣 - filename = URLEncoder.encode(filename, "utf-8"); - } - else - { - // 鍏跺畠娴忚鍣 - filename = URLEncoder.encode(filename, "utf-8"); - } - return filename; + return filename; + } + + /** + * 杩斿洖鏂囦欢鍚 + * + * @param filePath 鏂囦欢 + * @return 鏂囦欢鍚 + */ + public static String getName(String filePath) { + if (null == filePath) { + return null; } - - /** - * 杩斿洖鏂囦欢鍚 - * - * @param filePath 鏂囦欢 - * @return 鏂囦欢鍚 - */ - public static String getName(String filePath) - { - if (null == filePath) - { - return null; - } - int len = filePath.length(); - if (0 == len) - { - return filePath; - } - if (isFileSeparator(filePath.charAt(len - 1))) - { - // 浠ュ垎闅旂缁撳熬鐨勫幓鎺夌粨灏惧垎闅旂 - len--; - } - - int begin = 0; - char c; - for (int i = len - 1; i > -1; i--) - { - c = filePath.charAt(i); - if (isFileSeparator(c)) - { - // 鏌ユ壘鏈鍚庝竴涓矾寰勫垎闅旂锛/鎴栬匼锛 - begin = i + 1; - break; - } - } - - return filePath.substring(begin, len); + int len = filePath.length(); + if (0 == len) { + return filePath; } - - /** - * 鏄惁涓篧indows鎴栬匧inux锛圲nix锛夋枃浠跺垎闅旂
- * Windows骞冲彴涓嬪垎闅旂涓篭锛孡inux锛圲nix锛変负/ - * - * @param c 瀛楃 - * @return 鏄惁涓篧indows鎴栬匧inux锛圲nix锛夋枃浠跺垎闅旂 - */ - public static boolean isFileSeparator(char c) - { - return SLASH == c || BACKSLASH == c; + if (isFileSeparator(filePath.charAt(len - 1))) { + // 浠ュ垎闅旂缁撳熬鐨勫幓鎺夌粨灏惧垎闅旂 + len--; } - /** - * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮 - * - * @param response 鍝嶅簲瀵硅薄 - * @param realFileName 鐪熷疄鏂囦欢鍚 - * @return - */ - public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException - { - String percentEncodedFileName = percentEncode(realFileName); - - StringBuilder contentDispositionValue = new StringBuilder(); - contentDispositionValue.append("attachment; filename=") - .append(percentEncodedFileName) - .append(";") - .append("filename*=") - .append("utf-8''") - .append(percentEncodedFileName); - - response.setHeader("Content-disposition", contentDispositionValue.toString()); - response.setHeader("download-filename", percentEncodedFileName); + int begin = 0; + char c; + for (int i = len - 1; i > -1; i--) { + c = filePath.charAt(i); + if (isFileSeparator(c)) { + // 鏌ユ壘鏈鍚庝竴涓矾寰勫垎闅旂锛/鎴栬匼锛 + begin = i + 1; + break; + } } - /** - * 鐧惧垎鍙风紪鐮佸伐鍏锋柟娉 - * - * @param s 闇瑕佺櫨鍒嗗彿缂栫爜鐨勫瓧绗︿覆 - * @return 鐧惧垎鍙风紪鐮佸悗鐨勫瓧绗︿覆 - */ - public static String percentEncode(String s) throws UnsupportedEncodingException - { - String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); - return encode.replaceAll("\\+", "%20"); - } + return filePath.substring(begin, len); + } + + /** + * 鏄惁涓篧indows鎴栬匧inux锛圲nix锛夋枃浠跺垎闅旂
+ * Windows骞冲彴涓嬪垎闅旂涓篭锛孡inux锛圲nix锛変负/ + * + * @param c 瀛楃 + * @return 鏄惁涓篧indows鎴栬匧inux锛圲nix锛夋枃浠跺垎闅旂 + */ + public static boolean isFileSeparator(char c) { + return SLASH == c || BACKSLASH == c; + } + + /** + * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮 + * + * @param response 鍝嶅簲瀵硅薄 + * @param realFileName 鐪熷疄鏂囦欢鍚 + * @return + */ + public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) + throws UnsupportedEncodingException { + String percentEncodedFileName = percentEncode(realFileName); + + StringBuilder contentDispositionValue = new StringBuilder(); + contentDispositionValue + .append("attachment; filename=") + .append(percentEncodedFileName) + .append(";") + .append("filename*=") + .append("utf-8''") + .append(percentEncodedFileName); + + response.setHeader("Content-disposition", contentDispositionValue.toString()); + response.setHeader("download-filename", percentEncodedFileName); + } + + /** + * 鐧惧垎鍙风紪鐮佸伐鍏锋柟娉 + * + * @param s 闇瑕佺櫨鍒嗗彿缂栫爜鐨勫瓧绗︿覆 + * @return 鐧惧垎鍙风紪鐮佸悗鐨勫瓧绗︿覆 + */ + public static String percentEncode(String s) throws UnsupportedEncodingException { + String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); + return encode.replaceAll("\\+", "%20"); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java index c3b19fc44..f65603570 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java @@ -14,71 +14,54 @@ import org.slf4j.LoggerFactory; * * @author ruoyi */ -public class ImageUtils -{ - private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); +public class ImageUtils { + private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); - public static byte[] getImage(String imagePath) - { - InputStream is = getFile(imagePath); - try - { - return IOUtils.toByteArray(is); - } - catch (Exception e) - { - log.error("鍥剧墖鍔犺浇寮傚父 {}", e); - return null; - } - finally - { - IOUtils.closeQuietly(is); - } + public static byte[] getImage(String imagePath) { + InputStream is = getFile(imagePath); + try { + return IOUtils.toByteArray(is); + } catch (Exception e) { + log.error("鍥剧墖鍔犺浇寮傚父 {}", e); + return null; + } finally { + IOUtils.closeQuietly(is); } + } - public static InputStream getFile(String imagePath) - { - try - { - byte[] result = readFile(imagePath); - result = Arrays.copyOf(result, result.length); - return new ByteArrayInputStream(result); - } - catch (Exception e) - { - log.error("鑾峰彇鍥剧墖寮傚父 {}", e); - } - return null; + public static InputStream getFile(String imagePath) { + try { + byte[] result = readFile(imagePath); + result = Arrays.copyOf(result, result.length); + return new ByteArrayInputStream(result); + } catch (Exception e) { + log.error("鑾峰彇鍥剧墖寮傚父 {}", e); } + return null; + } - /** - * 璇诲彇鏂囦欢涓哄瓧鑺傛暟鎹 - * - * @param url 鍦板潃 - * @return 瀛楄妭鏁版嵁 - */ - public static byte[] readFile(String url) - { - InputStream in = null; - try - { - // 缃戠粶鍦板潃 - URL urlObj = new URL(url); - URLConnection urlConnection = urlObj.openConnection(); - urlConnection.setConnectTimeout(30 * 1000); - urlConnection.setReadTimeout(60 * 1000); - urlConnection.setDoInput(true); - in = urlConnection.getInputStream(); - return IOUtils.toByteArray(in); - } - catch (Exception e) - { - log.error("璁块棶鏂囦欢寮傚父 {}", e); - return null; - } - finally - { - IOUtils.closeQuietly(in); - } + /** + * 璇诲彇鏂囦欢涓哄瓧鑺傛暟鎹 + * + * @param url 鍦板潃 + * @return 瀛楄妭鏁版嵁 + */ + public static byte[] readFile(String url) { + InputStream in = null; + try { + // 缃戠粶鍦板潃 + URL urlObj = new URL(url); + URLConnection urlConnection = urlObj.openConnection(); + urlConnection.setConnectTimeout(30 * 1000); + urlConnection.setReadTimeout(60 * 1000); + urlConnection.setDoInput(true); + in = urlConnection.getInputStream(); + return IOUtils.toByteArray(in); + } catch (Exception e) { + log.error("璁块棶鏂囦欢寮傚父 {}", e); + return null; + } finally { + IOUtils.closeQuietly(in); } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/MimeTypeUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/MimeTypeUtils.java index b8a3bc390..5ccfd4fc4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/MimeTypeUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/MimeTypeUtils.java @@ -2,58 +2,74 @@ package com.ruoyi.common.core.utils.file; /** * 濯掍綋绫诲瀷宸ュ叿绫 - * + * * @author ruoyi */ -public class MimeTypeUtils -{ - public static final String IMAGE_PNG = "image/png"; - - public static final String IMAGE_JPG = "image/jpg"; - - public static final String IMAGE_JPEG = "image/jpeg"; - - public static final String IMAGE_BMP = "image/bmp"; - - public static final String IMAGE_GIF = "image/gif"; - - public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" }; - - public static final String[] FLASH_EXTENSION = { "swf", "flv" }; - - public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg", - "asf", "rm", "rmvb" }; - - public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" }; - - public static final String[] DEFAULT_ALLOWED_EXTENSION = { - // 鍥剧墖 - "bmp", "gif", "jpg", "jpeg", "png", - // word excel powerpoint - "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt", - // 鍘嬬缉鏂囦欢 - "rar", "zip", "gz", "bz2", - // 瑙嗛鏍煎紡 - "mp4", "avi", "rmvb", - // pdf - "pdf" }; - - public static String getExtension(String prefix) - { - switch (prefix) - { - case IMAGE_PNG: - return "png"; - case IMAGE_JPG: - return "jpg"; - case IMAGE_JPEG: - return "jpeg"; - case IMAGE_BMP: - return "bmp"; - case IMAGE_GIF: - return "gif"; - default: - return ""; - } +public class MimeTypeUtils { + public static final String IMAGE_PNG = "image/png"; + + public static final String IMAGE_JPG = "image/jpg"; + + public static final String IMAGE_JPEG = "image/jpeg"; + + public static final String IMAGE_BMP = "image/bmp"; + + public static final String IMAGE_GIF = "image/gif"; + + public static final String[] IMAGE_EXTENSION = {"bmp", "gif", "jpg", "jpeg", "png"}; + + public static final String[] FLASH_EXTENSION = {"swf", "flv"}; + + public static final String[] MEDIA_EXTENSION = { + "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg", "asf", "rm", "rmvb" + }; + + public static final String[] VIDEO_EXTENSION = {"mp4", "avi", "rmvb"}; + + public static final String[] DEFAULT_ALLOWED_EXTENSION = { + // 鍥剧墖 + "bmp", + "gif", + "jpg", + "jpeg", + "png", + // word excel powerpoint + "doc", + "docx", + "xls", + "xlsx", + "ppt", + "pptx", + "html", + "htm", + "txt", + // 鍘嬬缉鏂囦欢 + "rar", + "zip", + "gz", + "bz2", + // 瑙嗛鏍煎紡 + "mp4", + "avi", + "rmvb", + // pdf + "pdf" + }; + + public static String getExtension(String prefix) { + switch (prefix) { + case IMAGE_PNG: + return "png"; + case IMAGE_JPG: + return "jpg"; + case IMAGE_JPEG: + return "jpeg"; + case IMAGE_BMP: + return "bmp"; + case IMAGE_GIF: + return "gif"; + default: + return ""; } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/EscapeUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/EscapeUtil.java index 2f5a8721b..a51ade0f6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/EscapeUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/EscapeUtil.java @@ -4,164 +4,137 @@ import com.ruoyi.common.core.utils.StringUtils; /** * 杞箟鍜屽弽杞箟宸ュ叿绫 - * + * * @author ruoyi */ -public class EscapeUtil -{ - public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)"; +public class EscapeUtil { + public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)"; - private static final char[][] TEXT = new char[64][]; + private static final char[][] TEXT = new char[64][]; - static - { - for (int i = 0; i < 64; i++) - { - TEXT[i] = new char[] { (char) i }; - } - - // special HTML characters - TEXT['\''] = "'".toCharArray(); // 鍗曞紩鍙 - TEXT['"'] = """.toCharArray(); // 鍙屽紩鍙 - TEXT['&'] = "&".toCharArray(); // &绗 - TEXT['<'] = "<".toCharArray(); // 灏忎簬鍙 - TEXT['>'] = ">".toCharArray(); // 澶т簬鍙 + static { + for (int i = 0; i < 64; i++) { + TEXT[i] = new char[] {(char) i}; } - /** - * 杞箟鏂囨湰涓殑HTML瀛楃涓哄畨鍏ㄧ殑瀛楃 - * - * @param text 琚浆涔夌殑鏂囨湰 - * @return 杞箟鍚庣殑鏂囨湰 - */ - public static String escape(String text) - { - return encode(text); - } + // special HTML characters + TEXT['\''] = "'".toCharArray(); // 鍗曞紩鍙 + TEXT['"'] = """.toCharArray(); // 鍙屽紩鍙 + TEXT['&'] = "&".toCharArray(); // &绗 + TEXT['<'] = "<".toCharArray(); // 灏忎簬鍙 + TEXT['>'] = ">".toCharArray(); // 澶т簬鍙 + } - /** - * 杩樺師琚浆涔夌殑HTML鐗规畩瀛楃 - * - * @param content 鍖呭惈杞箟绗︾殑HTML鍐呭 - * @return 杞崲鍚庣殑瀛楃涓 - */ - public static String unescape(String content) - { - return decode(content); - } + /** + * 杞箟鏂囨湰涓殑HTML瀛楃涓哄畨鍏ㄧ殑瀛楃 + * + * @param text 琚浆涔夌殑鏂囨湰 + * @return 杞箟鍚庣殑鏂囨湰 + */ + public static String escape(String text) { + return encode(text); + } + + /** + * 杩樺師琚浆涔夌殑HTML鐗规畩瀛楃 + * + * @param content 鍖呭惈杞箟绗︾殑HTML鍐呭 + * @return 杞崲鍚庣殑瀛楃涓 + */ + public static String unescape(String content) { + return decode(content); + } + + /** + * 娓呴櫎鎵鏈塇TML鏍囩锛屼絾鏄笉鍒犻櫎鏍囩鍐呯殑鍐呭 + * + * @param content 鏂囨湰 + * @return 娓呴櫎鏍囩鍚庣殑鏂囨湰 + */ + public static String clean(String content) { + return new HTMLFilter().filter(content); + } - /** - * 娓呴櫎鎵鏈塇TML鏍囩锛屼絾鏄笉鍒犻櫎鏍囩鍐呯殑鍐呭 - * - * @param content 鏂囨湰 - * @return 娓呴櫎鏍囩鍚庣殑鏂囨湰 - */ - public static String clean(String content) - { - return new HTMLFilter().filter(content); + /** + * Escape缂栫爜 + * + * @param text 琚紪鐮佺殑鏂囨湰 + * @return 缂栫爜鍚庣殑瀛楃 + */ + private static String encode(String text) { + if (StringUtils.isEmpty(text)) { + return StringUtils.EMPTY; } - /** - * Escape缂栫爜 - * - * @param text 琚紪鐮佺殑鏂囨湰 - * @return 缂栫爜鍚庣殑瀛楃 - */ - private static String encode(String text) - { - if (StringUtils.isEmpty(text)) - { - return StringUtils.EMPTY; + final StringBuilder tmp = new StringBuilder(text.length() * 6); + char c; + for (int i = 0; i < text.length(); i++) { + c = text.charAt(i); + if (c < 256) { + tmp.append("%"); + if (c < 16) { + tmp.append("0"); } - - final StringBuilder tmp = new StringBuilder(text.length() * 6); - char c; - for (int i = 0; i < text.length(); i++) - { - c = text.charAt(i); - if (c < 256) - { - tmp.append("%"); - if (c < 16) - { - tmp.append("0"); - } - tmp.append(Integer.toString(c, 16)); - } - else - { - tmp.append("%u"); - if (c <= 0xfff) - { - // issue#I49JU8@Gitee - tmp.append("0"); - } - tmp.append(Integer.toString(c, 16)); - } + tmp.append(Integer.toString(c, 16)); + } else { + tmp.append("%u"); + if (c <= 0xfff) { + // issue#I49JU8@Gitee + tmp.append("0"); } - return tmp.toString(); + tmp.append(Integer.toString(c, 16)); + } } + return tmp.toString(); + } - /** - * Escape瑙g爜 - * - * @param content 琚浆涔夌殑鍐呭 - * @return 瑙g爜鍚庣殑瀛楃涓 - */ - public static String decode(String content) - { - if (StringUtils.isEmpty(content)) - { - return content; - } + /** + * Escape瑙g爜 + * + * @param content 琚浆涔夌殑鍐呭 + * @return 瑙g爜鍚庣殑瀛楃涓 + */ + public static String decode(String content) { + if (StringUtils.isEmpty(content)) { + return content; + } - StringBuilder tmp = new StringBuilder(content.length()); - int lastPos = 0, pos = 0; - char ch; - while (lastPos < content.length()) - { - pos = content.indexOf("%", lastPos); - if (pos == lastPos) - { - if (content.charAt(pos + 1) == 'u') - { - ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16); - tmp.append(ch); - lastPos = pos + 6; - } - else - { - ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); - tmp.append(ch); - lastPos = pos + 3; - } - } - else - { - if (pos == -1) - { - tmp.append(content.substring(lastPos)); - lastPos = content.length(); - } - else - { - tmp.append(content.substring(lastPos, pos)); - lastPos = pos; - } - } + StringBuilder tmp = new StringBuilder(content.length()); + int lastPos = 0, pos = 0; + char ch; + while (lastPos < content.length()) { + pos = content.indexOf("%", lastPos); + if (pos == lastPos) { + if (content.charAt(pos + 1) == 'u') { + ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } else { + ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; } - return tmp.toString(); + } else { + if (pos == -1) { + tmp.append(content.substring(lastPos)); + lastPos = content.length(); + } else { + tmp.append(content.substring(lastPos, pos)); + lastPos = pos; + } + } } + return tmp.toString(); + } - public static void main(String[] args) - { - String html = ""; - String escape = EscapeUtil.escape(html); - // String html = "ipt>alert(\"XSS\")ipt>"; - // String html = "<123"; - // String html = "123>"; - System.out.println("clean: " + EscapeUtil.clean(html)); - System.out.println("escape: " + escape); - System.out.println("unescape: " + EscapeUtil.unescape(escape)); - } + public static void main(String[] args) { + String html = ""; + String escape = EscapeUtil.escape(html); + // String html = "ipt>alert(\"XSS\")ipt>"; + // String html = "<123"; + // String html = "123>"; + System.out.println("clean: " + EscapeUtil.clean(html)); + System.out.println("escape: " + escape); + System.out.println("unescape: " + EscapeUtil.unescape(escape)); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/HTMLFilter.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/HTMLFilter.java index ba53dc930..fae025290 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/HTMLFilter.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/html/HTMLFilter.java @@ -15,556 +15,485 @@ import java.util.regex.Pattern; * * @author ruoyi */ -public final class HTMLFilter -{ - /** - * regex flag union representing /si modifiers in php - **/ - private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL; - private static final Pattern P_COMMENTS = Pattern.compile("", Pattern.DOTALL); - private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI); - private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL); - private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI); - private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI); - private static final Pattern P_QUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI); - private static final Pattern P_UNQUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI); - private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI); - private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?"); - private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?"); - private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?"); - private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))"); - private static final Pattern P_VALID_QUOTES = Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL); - private static final Pattern P_END_ARROW = Pattern.compile("^>"); - private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)"); - private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)"); - private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)"); - private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)"); - private static final Pattern P_AMP = Pattern.compile("&"); - private static final Pattern P_QUOTE = Pattern.compile("\""); - private static final Pattern P_LEFT_ARROW = Pattern.compile("<"); - private static final Pattern P_RIGHT_ARROW = Pattern.compile(">"); - private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>"); - - // @xxx could grow large... maybe use sesat's ReferenceMap - private static final ConcurrentMap P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>(); - private static final ConcurrentMap P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>(); - - /** - * set of allowed html elements, along with allowed attributes for each element - **/ - private final Map> vAllowed; - /** - * counts of open tags for each (allowable) html element - **/ - private final Map vTagCounts = new HashMap<>(); - - /** - * html elements which must always be self-closing (e.g. "") - **/ - private final String[] vSelfClosingTags; - /** - * html elements which must always have separate opening and closing tags (e.g. "") - **/ - private final String[] vNeedClosingTags; - /** - * set of disallowed html elements - **/ - private final String[] vDisallowed; - /** - * attributes which should be checked for valid protocols - **/ - private final String[] vProtocolAtts; - /** - * allowed protocols - **/ - private final String[] vAllowedProtocols; - /** - * tags which should be removed if they contain no content (e.g. "" or "") - **/ - private final String[] vRemoveBlanks; - /** - * entities allowed within html markup - **/ - private final String[] vAllowedEntities; - /** - * flag determining whether comments are allowed in input String. - */ - private final boolean stripComment; - private final boolean encodeQuotes; - /** - * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "" - * becomes " text "). If set to false, unbalanced angle brackets will be html escaped. - */ - private final boolean alwaysMakeTags; - - /** - * Default constructor. - */ - public HTMLFilter() - { - vAllowed = new HashMap<>(); - - final ArrayList a_atts = new ArrayList<>(); - a_atts.add("href"); - a_atts.add("target"); - vAllowed.put("a", a_atts); - - final ArrayList img_atts = new ArrayList<>(); - img_atts.add("src"); - img_atts.add("width"); - img_atts.add("height"); - img_atts.add("alt"); - vAllowed.put("img", img_atts); - - final ArrayList no_atts = new ArrayList<>(); - vAllowed.put("b", no_atts); - vAllowed.put("strong", no_atts); - vAllowed.put("i", no_atts); - vAllowed.put("em", no_atts); - - vSelfClosingTags = new String[] { "img" }; - vNeedClosingTags = new String[] { "a", "b", "strong", "i", "em" }; - vDisallowed = new String[] {}; - vAllowedProtocols = new String[] { "http", "mailto", "https" }; // no ftp. - vProtocolAtts = new String[] { "src", "href" }; - vRemoveBlanks = new String[] { "a", "b", "strong", "i", "em" }; - vAllowedEntities = new String[] { "amp", "gt", "lt", "quot" }; - stripComment = true; - encodeQuotes = true; - alwaysMakeTags = false; +public final class HTMLFilter { + /** regex flag union representing /si modifiers in php */ + private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL; + + private static final Pattern P_COMMENTS = Pattern.compile("", Pattern.DOTALL); + private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI); + private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL); + private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI); + private static final Pattern P_START_TAG = + Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI); + private static final Pattern P_QUOTED_ATTRIBUTES = + Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI); + private static final Pattern P_UNQUOTED_ATTRIBUTES = + Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI); + private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI); + private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?"); + private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?"); + private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?"); + private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))"); + private static final Pattern P_VALID_QUOTES = + Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL); + private static final Pattern P_END_ARROW = Pattern.compile("^>"); + private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)"); + private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)"); + private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)"); + private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)"); + private static final Pattern P_AMP = Pattern.compile("&"); + private static final Pattern P_QUOTE = Pattern.compile("\""); + private static final Pattern P_LEFT_ARROW = Pattern.compile("<"); + private static final Pattern P_RIGHT_ARROW = Pattern.compile(">"); + private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>"); + + // @xxx could grow large... maybe use sesat's ReferenceMap + private static final ConcurrentMap P_REMOVE_PAIR_BLANKS = + new ConcurrentHashMap<>(); + private static final ConcurrentMap P_REMOVE_SELF_BLANKS = + new ConcurrentHashMap<>(); + + /** set of allowed html elements, along with allowed attributes for each element */ + private final Map> vAllowed; + + /** counts of open tags for each (allowable) html element */ + private final Map vTagCounts = new HashMap<>(); + + /** html elements which must always be self-closing (e.g. "") */ + private final String[] vSelfClosingTags; + + /** html elements which must always have separate opening and closing tags (e.g. "") */ + private final String[] vNeedClosingTags; + + /** set of disallowed html elements */ + private final String[] vDisallowed; + + /** attributes which should be checked for valid protocols */ + private final String[] vProtocolAtts; + + /** allowed protocols */ + private final String[] vAllowedProtocols; + + /** tags which should be removed if they contain no content (e.g. "" or "") */ + private final String[] vRemoveBlanks; + + /** entities allowed within html markup */ + private final String[] vAllowedEntities; + + /** flag determining whether comments are allowed in input String. */ + private final boolean stripComment; + + private final boolean encodeQuotes; + + /** + * flag determining whether to try to make tags when presented with "unbalanced" angle brackets + * (e.g. "" becomes " text "). If set to false, unbalanced angle brackets will + * be html escaped. + */ + private final boolean alwaysMakeTags; + + /** Default constructor. */ + public HTMLFilter() { + vAllowed = new HashMap<>(); + + final ArrayList a_atts = new ArrayList<>(); + a_atts.add("href"); + a_atts.add("target"); + vAllowed.put("a", a_atts); + + final ArrayList img_atts = new ArrayList<>(); + img_atts.add("src"); + img_atts.add("width"); + img_atts.add("height"); + img_atts.add("alt"); + vAllowed.put("img", img_atts); + + final ArrayList no_atts = new ArrayList<>(); + vAllowed.put("b", no_atts); + vAllowed.put("strong", no_atts); + vAllowed.put("i", no_atts); + vAllowed.put("em", no_atts); + + vSelfClosingTags = new String[] {"img"}; + vNeedClosingTags = new String[] {"a", "b", "strong", "i", "em"}; + vDisallowed = new String[] {}; + vAllowedProtocols = new String[] {"http", "mailto", "https"}; // no ftp. + vProtocolAtts = new String[] {"src", "href"}; + vRemoveBlanks = new String[] {"a", "b", "strong", "i", "em"}; + vAllowedEntities = new String[] {"amp", "gt", "lt", "quot"}; + stripComment = true; + encodeQuotes = true; + alwaysMakeTags = false; + } + + /** + * Map-parameter configurable constructor. + * + * @param conf map containing configuration. keys match field names. + */ + @SuppressWarnings("unchecked") + public HTMLFilter(final Map conf) { + + assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; + assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; + assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags"; + assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed"; + assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols"; + assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts"; + assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks"; + assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities"; + + vAllowed = Collections.unmodifiableMap((HashMap>) conf.get("vAllowed")); + vSelfClosingTags = (String[]) conf.get("vSelfClosingTags"); + vNeedClosingTags = (String[]) conf.get("vNeedClosingTags"); + vDisallowed = (String[]) conf.get("vDisallowed"); + vAllowedProtocols = (String[]) conf.get("vAllowedProtocols"); + vProtocolAtts = (String[]) conf.get("vProtocolAtts"); + vRemoveBlanks = (String[]) conf.get("vRemoveBlanks"); + vAllowedEntities = (String[]) conf.get("vAllowedEntities"); + stripComment = conf.containsKey("stripComment") ? (Boolean) conf.get("stripComment") : true; + encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean) conf.get("encodeQuotes") : true; + alwaysMakeTags = + conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; + } + + private void reset() { + vTagCounts.clear(); + } + + // --------------------------------------------------------------- + // my versions of some PHP library functions + public static String chr(final int decimal) { + return String.valueOf((char) decimal); + } + + public static String htmlSpecialChars(final String s) { + String result = s; + result = regexReplace(P_AMP, "&", result); + result = regexReplace(P_QUOTE, """, result); + result = regexReplace(P_LEFT_ARROW, "<", result); + result = regexReplace(P_RIGHT_ARROW, ">", result); + return result; + } + + // --------------------------------------------------------------- + + /** + * given a user submitted input String, filter out any invalid or restricted html. + * + * @param input text (i.e. submitted by a user) than may contain html + * @return "clean" version of input, with only valid, whitelisted html elements allowed + */ + public String filter(final String input) { + reset(); + String s = input; + + s = escapeComments(s); + + s = balanceHTML(s); + + s = checkTags(s); + + s = processRemoveBlanks(s); + + // s = validateEntities(s); + + return s; + } + + public boolean isAlwaysMakeTags() { + return alwaysMakeTags; + } + + public boolean isStripComments() { + return stripComment; + } + + private String escapeComments(final String s) { + final Matcher m = P_COMMENTS.matcher(s); + final StringBuffer buf = new StringBuffer(); + if (m.find()) { + final String match = m.group(1); // (.*?) + m.appendReplacement(buf, Matcher.quoteReplacement("")); } - - /** - * Map-parameter configurable constructor. - * - * @param conf map containing configuration. keys match field names. - */ - @SuppressWarnings("unchecked") - public HTMLFilter(final Map conf) - { - - assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; - assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; - assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags"; - assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed"; - assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols"; - assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts"; - assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks"; - assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities"; - - vAllowed = Collections.unmodifiableMap((HashMap>) conf.get("vAllowed")); - vSelfClosingTags = (String[]) conf.get("vSelfClosingTags"); - vNeedClosingTags = (String[]) conf.get("vNeedClosingTags"); - vDisallowed = (String[]) conf.get("vDisallowed"); - vAllowedProtocols = (String[]) conf.get("vAllowedProtocols"); - vProtocolAtts = (String[]) conf.get("vProtocolAtts"); - vRemoveBlanks = (String[]) conf.get("vRemoveBlanks"); - vAllowedEntities = (String[]) conf.get("vAllowedEntities"); - stripComment = conf.containsKey("stripComment") ? (Boolean) conf.get("stripComment") : true; - encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean) conf.get("encodeQuotes") : true; - alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; - } - - private void reset() - { - vTagCounts.clear(); - } - - // --------------------------------------------------------------- - // my versions of some PHP library functions - public static String chr(final int decimal) - { - return String.valueOf((char) decimal); - } - - public static String htmlSpecialChars(final String s) - { - String result = s; - result = regexReplace(P_AMP, "&", result); - result = regexReplace(P_QUOTE, """, result); - result = regexReplace(P_LEFT_ARROW, "<", result); - result = regexReplace(P_RIGHT_ARROW, ">", result); - return result; + m.appendTail(buf); + + return buf.toString(); + } + + private String balanceHTML(String s) { + if (alwaysMakeTags) { + // + // try and form html + // + s = regexReplace(P_END_ARROW, "", s); + // 涓嶈拷鍔犵粨鏉熸爣绛 + s = regexReplace(P_BODY_TO_END, "<$1>", s); + s = regexReplace(P_XML_CONTENT, "$1<$2", s); + + } else { + // + // escape stray brackets + // + s = regexReplace(P_STRAY_LEFT_ARROW, "<$1", s); + s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s); + + // + // the last regexp causes '<>' entities to appear + // (we need to do a lookahead assertion so that the last bracket can + // be used in the next pass of the regexp) + // + s = regexReplace(P_BOTH_ARROWS, "", s); } - // --------------------------------------------------------------- + return s; + } - /** - * given a user submitted input String, filter out any invalid or restricted html. - * - * @param input text (i.e. submitted by a user) than may contain html - * @return "clean" version of input, with only valid, whitelisted html elements allowed - */ - public String filter(final String input) - { - reset(); - String s = input; + private String checkTags(String s) { + Matcher m = P_TAGS.matcher(s); - s = escapeComments(s); - - s = balanceHTML(s); - - s = checkTags(s); - - s = processRemoveBlanks(s); - - // s = validateEntities(s); - - return s; + final StringBuffer buf = new StringBuffer(); + while (m.find()) { + String replaceStr = m.group(1); + replaceStr = processTag(replaceStr); + m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); } - - public boolean isAlwaysMakeTags() - { - return alwaysMakeTags; + m.appendTail(buf); + + // these get tallied in processTag + // (remember to reset before subsequent calls to filter method) + final StringBuilder sBuilder = new StringBuilder(buf.toString()); + for (String key : vTagCounts.keySet()) { + for (int ii = 0; ii < vTagCounts.get(key); ii++) { + sBuilder.append(""); + } } - - public boolean isStripComments() - { - return stripComment; + s = sBuilder.toString(); + + return s; + } + + private String processRemoveBlanks(final String s) { + String result = s; + for (String tag : vRemoveBlanks) { + if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) { + P_REMOVE_PAIR_BLANKS.putIfAbsent( + tag, Pattern.compile("<" + tag + "(\\s[^>]*)?>")); + } + result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result); + if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) { + P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>")); + } + result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result); } - private String escapeComments(final String s) - { - final Matcher m = P_COMMENTS.matcher(s); - final StringBuffer buf = new StringBuffer(); - if (m.find()) - { - final String match = m.group(1); // (.*?) - m.appendReplacement(buf, Matcher.quoteReplacement("")); + return result; + } + + private static String regexReplace( + final Pattern regex_pattern, final String replacement, final String s) { + Matcher m = regex_pattern.matcher(s); + return m.replaceAll(replacement); + } + + private String processTag(final String s) { + // ending tags + Matcher m = P_END_TAG.matcher(s); + if (m.find()) { + final String name = m.group(1).toLowerCase(); + if (allowed(name)) { + if (!inArray(name, vSelfClosingTags)) { + if (vTagCounts.containsKey(name)) { + vTagCounts.put(name, vTagCounts.get(name) - 1); + return ""; + } } - m.appendTail(buf); - - return buf.toString(); + } } - private String balanceHTML(String s) - { - if (alwaysMakeTags) - { - // - // try and form html - // - s = regexReplace(P_END_ARROW, "", s); - // 涓嶈拷鍔犵粨鏉熸爣绛 - s = regexReplace(P_BODY_TO_END, "<$1>", s); - s = regexReplace(P_XML_CONTENT, "$1<$2", s); - + // starting tags + m = P_START_TAG.matcher(s); + if (m.find()) { + final String name = m.group(1).toLowerCase(); + final String body = m.group(2); + String ending = m.group(3); + + // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + + // "'" ); + if (allowed(name)) { + final StringBuilder params = new StringBuilder(); + + final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body); + final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body); + final List paramNames = new ArrayList<>(); + final List paramValues = new ArrayList<>(); + while (m2.find()) { + paramNames.add(m2.group(1)); // ([a-z0-9]+) + paramValues.add(m2.group(3)); // (.*?) } - else - { - // - // escape stray brackets - // - s = regexReplace(P_STRAY_LEFT_ARROW, "<$1", s); - s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s); - - // - // the last regexp causes '<>' entities to appear - // (we need to do a lookahead assertion so that the last bracket can - // be used in the next pass of the regexp) - // - s = regexReplace(P_BOTH_ARROWS, "", s); + while (m3.find()) { + paramNames.add(m3.group(1)); // ([a-z0-9]+) + paramValues.add(m3.group(3)); // ([^\"\\s']+) } - return s; - } + String paramName, paramValue; + for (int ii = 0; ii < paramNames.size(); ii++) { + paramName = paramNames.get(ii).toLowerCase(); + paramValue = paramValues.get(ii); - private String checkTags(String s) - { - Matcher m = P_TAGS.matcher(s); + // debug( "paramName='" + paramName + "'" ); + // debug( "paramValue='" + paramValue + "'" ); + // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); - final StringBuffer buf = new StringBuffer(); - while (m.find()) - { - String replaceStr = m.group(1); - replaceStr = processTag(replaceStr); - m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); - } - m.appendTail(buf); - - // these get tallied in processTag - // (remember to reset before subsequent calls to filter method) - final StringBuilder sBuilder = new StringBuilder(buf.toString()); - for (String key : vTagCounts.keySet()) - { - for (int ii = 0; ii < vTagCounts.get(key); ii++) - { - sBuilder.append(""); + if (allowedAttribute(name, paramName)) { + if (inArray(paramName, vProtocolAtts)) { + paramValue = processParamProtocol(paramValue); } + params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\\\""); + } } - s = sBuilder.toString(); - - return s; - } - - private String processRemoveBlanks(final String s) - { - String result = s; - for (String tag : vRemoveBlanks) - { - if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) - { - P_REMOVE_PAIR_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?>")); - } - result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result); - if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) - { - P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>")); - } - result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result); - } - - return result; - } - - private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) - { - Matcher m = regex_pattern.matcher(s); - return m.replaceAll(replacement); - } - private String processTag(final String s) - { - // ending tags - Matcher m = P_END_TAG.matcher(s); - if (m.find()) - { - final String name = m.group(1).toLowerCase(); - if (allowed(name)) - { - if (!inArray(name, vSelfClosingTags)) - { - if (vTagCounts.containsKey(name)) - { - vTagCounts.put(name, vTagCounts.get(name) - 1); - return ""; - } - } - } + if (inArray(name, vSelfClosingTags)) { + ending = " /"; } - // starting tags - m = P_START_TAG.matcher(s); - if (m.find()) - { - final String name = m.group(1).toLowerCase(); - final String body = m.group(2); - String ending = m.group(3); - - // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" ); - if (allowed(name)) - { - final StringBuilder params = new StringBuilder(); - - final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body); - final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body); - final List paramNames = new ArrayList<>(); - final List paramValues = new ArrayList<>(); - while (m2.find()) - { - paramNames.add(m2.group(1)); // ([a-z0-9]+) - paramValues.add(m2.group(3)); // (.*?) - } - while (m3.find()) - { - paramNames.add(m3.group(1)); // ([a-z0-9]+) - paramValues.add(m3.group(3)); // ([^\"\\s']+) - } - - String paramName, paramValue; - for (int ii = 0; ii < paramNames.size(); ii++) - { - paramName = paramNames.get(ii).toLowerCase(); - paramValue = paramValues.get(ii); - - // debug( "paramName='" + paramName + "'" ); - // debug( "paramValue='" + paramValue + "'" ); - // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); - - if (allowedAttribute(name, paramName)) - { - if (inArray(paramName, vProtocolAtts)) - { - paramValue = processParamProtocol(paramValue); - } - params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\\\""); - } - } - - if (inArray(name, vSelfClosingTags)) - { - ending = " /"; - } - - if (inArray(name, vNeedClosingTags)) - { - ending = ""; - } - - if (ending == null || ending.length() < 1) - { - if (vTagCounts.containsKey(name)) - { - vTagCounts.put(name, vTagCounts.get(name) + 1); - } - else - { - vTagCounts.put(name, 1); - } - } - else - { - ending = " /"; - } - return "<" + name + params + ending + ">"; - } - else - { - return ""; - } + if (inArray(name, vNeedClosingTags)) { + ending = ""; } - // comments - m = P_COMMENT.matcher(s); - if (!stripComment && m.find()) - { - return "<" + m.group() + ">"; + if (ending == null || ending.length() < 1) { + if (vTagCounts.containsKey(name)) { + vTagCounts.put(name, vTagCounts.get(name) + 1); + } else { + vTagCounts.put(name, 1); + } + } else { + ending = " /"; } - + return "<" + name + params + ending + ">"; + } else { return ""; + } } - private String processParamProtocol(String s) - { - s = decodeEntities(s); - final Matcher m = P_PROTOCOL.matcher(s); - if (m.find()) - { - final String protocol = m.group(1); - if (!inArray(protocol, vAllowedProtocols)) - { - // bad protocol, turn into local anchor link instead - s = "#" + s.substring(protocol.length() + 1); - if (s.startsWith("#//")) - { - s = "#" + s.substring(3); - } - } - } - - return s; + // comments + m = P_COMMENT.matcher(s); + if (!stripComment && m.find()) { + return "<" + m.group() + ">"; } - private String decodeEntities(String s) - { - StringBuffer buf = new StringBuffer(); - - Matcher m = P_ENTITY.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.decode(match).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); - } - m.appendTail(buf); - s = buf.toString(); - - buf = new StringBuffer(); - m = P_ENTITY_UNICODE.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.valueOf(match, 16).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); - } - m.appendTail(buf); - s = buf.toString(); - - buf = new StringBuffer(); - m = P_ENCODE.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.valueOf(match, 16).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + return ""; + } + + private String processParamProtocol(String s) { + s = decodeEntities(s); + final Matcher m = P_PROTOCOL.matcher(s); + if (m.find()) { + final String protocol = m.group(1); + if (!inArray(protocol, vAllowedProtocols)) { + // bad protocol, turn into local anchor link instead + s = "#" + s.substring(protocol.length() + 1); + if (s.startsWith("#//")) { + s = "#" + s.substring(3); } - m.appendTail(buf); - s = buf.toString(); - - s = validateEntities(s); - return s; + } } - private String validateEntities(final String s) - { - StringBuffer buf = new StringBuffer(); - - // validate entities throughout the string - Matcher m = P_VALID_ENTITIES.matcher(s); - while (m.find()) - { - final String one = m.group(1); // ([^&;]*) - final String two = m.group(2); // (?=(;|&|$)) - m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); - } - m.appendTail(buf); + return s; + } - return encodeQuotes(buf.toString()); - } + private String decodeEntities(String s) { + StringBuffer buf = new StringBuffer(); - private String encodeQuotes(final String s) - { - if (encodeQuotes) - { - StringBuffer buf = new StringBuffer(); - Matcher m = P_VALID_QUOTES.matcher(s); - while (m.find()) - { - final String one = m.group(1); // (>|^) - final String two = m.group(2); // ([^<]+?) - final String three = m.group(3); // (<|$) - // 涓嶆浛鎹㈠弻寮曞彿涓"锛岄槻姝son鏍煎紡鏃犳晥 regexReplace(P_QUOTE, """, two) - m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three)); - } - m.appendTail(buf); - return buf.toString(); - } - else - { - return s; - } + Matcher m = P_ENTITY.matcher(s); + while (m.find()) { + final String match = m.group(1); + final int decimal = Integer.decode(match).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + buf = new StringBuffer(); + m = P_ENTITY_UNICODE.matcher(s); + while (m.find()) { + final String match = m.group(1); + final int decimal = Integer.valueOf(match, 16).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + buf = new StringBuffer(); + m = P_ENCODE.matcher(s); + while (m.find()) { + final String match = m.group(1); + final int decimal = Integer.valueOf(match, 16).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + s = validateEntities(s); + return s; + } + + private String validateEntities(final String s) { + StringBuffer buf = new StringBuffer(); + + // validate entities throughout the string + Matcher m = P_VALID_ENTITIES.matcher(s); + while (m.find()) { + final String one = m.group(1); // ([^&;]*) + final String two = m.group(2); // (?=(;|&|$)) + m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); + } + m.appendTail(buf); + + return encodeQuotes(buf.toString()); + } + + private String encodeQuotes(final String s) { + if (encodeQuotes) { + StringBuffer buf = new StringBuffer(); + Matcher m = P_VALID_QUOTES.matcher(s); + while (m.find()) { + final String one = m.group(1); // (>|^) + final String two = m.group(2); // ([^<]+?) + final String three = m.group(3); // (<|$) + // 涓嶆浛鎹㈠弻寮曞彿涓"锛岄槻姝son鏍煎紡鏃犳晥 regexReplace(P_QUOTE, """, two) + m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three)); + } + m.appendTail(buf); + return buf.toString(); + } else { + return s; } + } - private String checkEntity(final String preamble, final String term) - { + private String checkEntity(final String preamble, final String term) { - return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&" + preamble; - } + return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&" + preamble; + } - private boolean isValidEntity(final String entity) - { - return inArray(entity, vAllowedEntities); - } + private boolean isValidEntity(final String entity) { + return inArray(entity, vAllowedEntities); + } - private static boolean inArray(final String s, final String[] array) - { - for (String item : array) - { - if (item != null && item.equals(s)) - { - return true; - } - } - return false; + private static boolean inArray(final String s, final String[] array) { + for (String item : array) { + if (item != null && item.equals(s)) { + return true; + } } + return false; + } - private boolean allowed(final String name) - { - return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); - } + private boolean allowed(final String name) { + return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); + } - private boolean allowedAttribute(final String name, final String paramName) - { - return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); - } -} \ No newline at end of file + private boolean allowedAttribute(final String name, final String paramName) { + return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java index 43366ec71..ac113370f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java @@ -1,382 +1,323 @@ package com.ruoyi.common.core.utils.ip; +import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.common.core.utils.StringUtils; import java.net.InetAddress; import java.net.UnknownHostException; import javax.servlet.http.HttpServletRequest; -import com.ruoyi.common.core.utils.ServletUtils; -import com.ruoyi.common.core.utils.StringUtils; /** * 鑾峰彇IP鏂规硶 - * + * * @author ruoyi */ -public class IpUtils -{ - public final static String REGX_0_255 = "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)"; - // 鍖归厤 ip - public final static String REGX_IP = "((" + REGX_0_255 + "\\.){3}" + REGX_0_255 + ")"; - public final static String REGX_IP_WILDCARD = "(((\\*\\.){3}\\*)|(" + REGX_0_255 + "(\\.\\*){3})|(" + REGX_0_255 + "\\." + REGX_0_255 + ")(\\.\\*){2}" + "|((" + REGX_0_255 + "\\.){3}\\*))"; - // 鍖归厤缃戞 - public final static String REGX_IP_SEG = "(" + REGX_IP + "\\-" + REGX_IP + ")"; +public class IpUtils { + public static final String REGX_0_255 = "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)"; + // 鍖归厤 ip + public static final String REGX_IP = "((" + REGX_0_255 + "\\.){3}" + REGX_0_255 + ")"; + public static final String REGX_IP_WILDCARD = + "(((\\*\\.){3}\\*)|(" + + REGX_0_255 + + "(\\.\\*){3})|(" + + REGX_0_255 + + "\\." + + REGX_0_255 + + ")(\\.\\*){2}" + + "|((" + + REGX_0_255 + + "\\.){3}\\*))"; + // 鍖归厤缃戞 + public static final String REGX_IP_SEG = "(" + REGX_IP + "\\-" + REGX_IP + ")"; - /** - * 鑾峰彇瀹㈡埛绔疘P - * - * @return IP鍦板潃 - */ - public static String getIpAddr() - { - return getIpAddr(ServletUtils.getRequest()); + /** + * 鑾峰彇瀹㈡埛绔疘P + * + * @return IP鍦板潃 + */ + public static String getIpAddr() { + return getIpAddr(ServletUtils.getRequest()); + } + + /** + * 鑾峰彇瀹㈡埛绔疘P + * + * @param request 璇锋眰瀵硅薄 + * @return IP鍦板潃 + */ + public static String getIpAddr(HttpServletRequest request) { + if (request == null) { + return "unknown"; + } + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("X-Forwarded-For"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("X-Real-IP"); } - /** - * 鑾峰彇瀹㈡埛绔疘P - * - * @param request 璇锋眰瀵硅薄 - * @return IP鍦板潃 - */ - public static String getIpAddr(HttpServletRequest request) - { - if (request == null) - { - return "unknown"; - } - String ip = request.getHeader("x-forwarded-for"); - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("X-Forwarded-For"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getHeader("X-Real-IP"); - } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { - ip = request.getRemoteAddr(); - } + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); + } - return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); - } + /** + * 妫鏌ユ槸鍚︿负鍐呴儴IP鍦板潃 + * + * @param ip IP鍦板潃 + * @return 缁撴灉 + */ + public static boolean internalIp(String ip) { + byte[] addr = textToNumericFormatV4(ip); + return internalIp(addr) || "127.0.0.1".equals(ip); + } - /** - * 妫鏌ユ槸鍚︿负鍐呴儴IP鍦板潃 - * - * @param ip IP鍦板潃 - * @return 缁撴灉 - */ - public static boolean internalIp(String ip) - { - byte[] addr = textToNumericFormatV4(ip); - return internalIp(addr) || "127.0.0.1".equals(ip); + /** + * 妫鏌ユ槸鍚︿负鍐呴儴IP鍦板潃 + * + * @param addr byte鍦板潃 + * @return 缁撴灉 + */ + private static boolean internalIp(byte[] addr) { + if (StringUtils.isNull(addr) || addr.length < 2) { + return true; } - - /** - * 妫鏌ユ槸鍚︿负鍐呴儴IP鍦板潃 - * - * @param addr byte鍦板潃 - * @return 缁撴灉 - */ - private static boolean internalIp(byte[] addr) - { - if (StringUtils.isNull(addr) || addr.length < 2) - { - return true; + final byte b0 = addr[0]; + final byte b1 = addr[1]; + // 10.x.x.x/8 + final byte SECTION_1 = 0x0A; + // 172.16.x.x/12 + final byte SECTION_2 = (byte) 0xAC; + final byte SECTION_3 = (byte) 0x10; + final byte SECTION_4 = (byte) 0x1F; + // 192.168.x.x/16 + final byte SECTION_5 = (byte) 0xC0; + final byte SECTION_6 = (byte) 0xA8; + switch (b0) { + case SECTION_1: + return true; + case SECTION_2: + if (b1 >= SECTION_3 && b1 <= SECTION_4) { + return true; } - final byte b0 = addr[0]; - final byte b1 = addr[1]; - // 10.x.x.x/8 - final byte SECTION_1 = 0x0A; - // 172.16.x.x/12 - final byte SECTION_2 = (byte) 0xAC; - final byte SECTION_3 = (byte) 0x10; - final byte SECTION_4 = (byte) 0x1F; - // 192.168.x.x/16 - final byte SECTION_5 = (byte) 0xC0; - final byte SECTION_6 = (byte) 0xA8; - switch (b0) - { - case SECTION_1: - return true; - case SECTION_2: - if (b1 >= SECTION_3 && b1 <= SECTION_4) - { - return true; - } - case SECTION_5: - switch (b1) - { - case SECTION_6: - return true; - } - default: - return false; + case SECTION_5: + switch (b1) { + case SECTION_6: + return true; } + default: + return false; } + } - /** - * 灏咺Pv4鍦板潃杞崲鎴愬瓧鑺 - * - * @param text IPv4鍦板潃 - * @return byte 瀛楄妭 - */ - public static byte[] textToNumericFormatV4(String text) - { - if (text.length() == 0) - { - return null; - } + /** + * 灏咺Pv4鍦板潃杞崲鎴愬瓧鑺 + * + * @param text IPv4鍦板潃 + * @return byte 瀛楄妭 + */ + public static byte[] textToNumericFormatV4(String text) { + if (text.length() == 0) { + return null; + } - byte[] bytes = new byte[4]; - String[] elements = text.split("\\.", -1); - try - { - long l; - int i; - switch (elements.length) - { - case 1: - l = Long.parseLong(elements[0]); - if ((l < 0L) || (l > 4294967295L)) - { - return null; - } - bytes[0] = (byte) (int) (l >> 24 & 0xFF); - bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 2: - l = Integer.parseInt(elements[0]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[0] = (byte) (int) (l & 0xFF); - l = Integer.parseInt(elements[1]); - if ((l < 0L) || (l > 16777215L)) - { - return null; - } - bytes[1] = (byte) (int) (l >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 3: - for (i = 0; i < 2; ++i) - { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - l = Integer.parseInt(elements[2]); - if ((l < 0L) || (l > 65535L)) - { - return null; - } - bytes[2] = (byte) (int) (l >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 4: - for (i = 0; i < 4; ++i) - { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - break; - default: - return null; + byte[] bytes = new byte[4]; + String[] elements = text.split("\\.", -1); + try { + long l; + int i; + switch (elements.length) { + case 1: + l = Long.parseLong(elements[0]); + if ((l < 0L) || (l > 4294967295L)) { + return null; + } + bytes[0] = (byte) (int) (l >> 24 & 0xFF); + bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 2: + l = Integer.parseInt(elements[0]); + if ((l < 0L) || (l > 255L)) { + return null; + } + bytes[0] = (byte) (int) (l & 0xFF); + l = Integer.parseInt(elements[1]); + if ((l < 0L) || (l > 16777215L)) { + return null; + } + bytes[1] = (byte) (int) (l >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 3: + for (i = 0; i < 2; ++i) { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) { + return null; } - } - catch (NumberFormatException e) - { + bytes[i] = (byte) (int) (l & 0xFF); + } + l = Integer.parseInt(elements[2]); + if ((l < 0L) || (l > 65535L)) { return null; - } - return bytes; + } + bytes[2] = (byte) (int) (l >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 4: + for (i = 0; i < 4; ++i) { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) { + return null; + } + bytes[i] = (byte) (int) (l & 0xFF); + } + break; + default: + return null; + } + } catch (NumberFormatException e) { + return null; } + return bytes; + } - /** - * 鑾峰彇IP鍦板潃 - * - * @return 鏈湴IP鍦板潃 - */ - public static String getHostIp() - { - try - { - return InetAddress.getLocalHost().getHostAddress(); - } - catch (UnknownHostException e) - { - } - return "127.0.0.1"; + /** + * 鑾峰彇IP鍦板潃 + * + * @return 鏈湴IP鍦板潃 + */ + public static String getHostIp() { + try { + return InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { } + return "127.0.0.1"; + } - /** - * 鑾峰彇涓绘満鍚 - * - * @return 鏈湴涓绘満鍚 - */ - public static String getHostName() - { - try - { - return InetAddress.getLocalHost().getHostName(); - } - catch (UnknownHostException e) - { - } - return "鏈煡"; + /** + * 鑾峰彇涓绘満鍚 + * + * @return 鏈湴涓绘満鍚 + */ + public static String getHostName() { + try { + return InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { } + return "鏈煡"; + } - /** - * 浠庡绾у弽鍚戜唬鐞嗕腑鑾峰緱绗竴涓潪unknown IP鍦板潃 - * - * @param ip 鑾峰緱鐨処P鍦板潃 - * @return 绗竴涓潪unknown IP鍦板潃 - */ - public static String getMultistageReverseProxyIp(String ip) - { - // 澶氱骇鍙嶅悜浠g悊妫娴 - if (ip != null && ip.indexOf(",") > 0) - { - final String[] ips = ip.trim().split(","); - for (String subIp : ips) - { - if (false == isUnknown(subIp)) - { - ip = subIp; - break; - } - } + /** + * 浠庡绾у弽鍚戜唬鐞嗕腑鑾峰緱绗竴涓潪unknown IP鍦板潃 + * + * @param ip 鑾峰緱鐨処P鍦板潃 + * @return 绗竴涓潪unknown IP鍦板潃 + */ + public static String getMultistageReverseProxyIp(String ip) { + // 澶氱骇鍙嶅悜浠g悊妫娴 + if (ip != null && ip.indexOf(",") > 0) { + final String[] ips = ip.trim().split(","); + for (String subIp : ips) { + if (false == isUnknown(subIp)) { + ip = subIp; + break; } - return StringUtils.substring(ip, 0, 255); + } } + return StringUtils.substring(ip, 0, 255); + } - /** - * 妫娴嬬粰瀹氬瓧绗︿覆鏄惁涓烘湭鐭ワ紝澶氱敤浜庢娴婬TTP璇锋眰鐩稿叧 - * - * @param checkString 琚娴嬬殑瀛楃涓 - * @return 鏄惁鏈煡 - */ - public static boolean isUnknown(String checkString) - { - return StringUtils.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString); - } + /** + * 妫娴嬬粰瀹氬瓧绗︿覆鏄惁涓烘湭鐭ワ紝澶氱敤浜庢娴婬TTP璇锋眰鐩稿叧 + * + * @param checkString 琚娴嬬殑瀛楃涓 + * @return 鏄惁鏈煡 + */ + public static boolean isUnknown(String checkString) { + return StringUtils.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString); + } - /** - * 鏄惁涓篒P - */ - public static boolean isIP(String ip) - { - return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP); - } + /** 鏄惁涓篒P */ + public static boolean isIP(String ip) { + return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP); + } - /** - * 鏄惁涓篒P锛屾垨 *涓洪棿闅旂殑閫氶厤绗﹀湴鍧 - */ - public static boolean isIpWildCard(String ip) - { - return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP_WILDCARD); - } + /** 鏄惁涓篒P锛屾垨 *涓洪棿闅旂殑閫氶厤绗﹀湴鍧 */ + public static boolean isIpWildCard(String ip) { + return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP_WILDCARD); + } - /** - * 妫娴嬪弬鏁版槸鍚﹀湪ip閫氶厤绗﹂噷 - */ - public static boolean ipIsInWildCardNoCheck(String ipWildCard, String ip) - { - String[] s1 = ipWildCard.split("\\."); - String[] s2 = ip.split("\\."); - boolean isMatchedSeg = true; - for (int i = 0; i < s1.length && !s1[i].equals("*"); i++) - { - if (!s1[i].equals(s2[i])) - { - isMatchedSeg = false; - break; - } - } - return isMatchedSeg; + /** 妫娴嬪弬鏁版槸鍚﹀湪ip閫氶厤绗﹂噷 */ + public static boolean ipIsInWildCardNoCheck(String ipWildCard, String ip) { + String[] s1 = ipWildCard.split("\\."); + String[] s2 = ip.split("\\."); + boolean isMatchedSeg = true; + for (int i = 0; i < s1.length && !s1[i].equals("*"); i++) { + if (!s1[i].equals(s2[i])) { + isMatchedSeg = false; + break; + } } + return isMatchedSeg; + } - /** - * 鏄惁涓虹壒瀹氭牸寮忓:鈥10.10.10.1-10.10.10.99鈥濈殑ip娈靛瓧绗︿覆 - */ - public static boolean isIPSegment(String ipSeg) - { - return StringUtils.isNotBlank(ipSeg) && ipSeg.matches(REGX_IP_SEG); - } + /** 鏄惁涓虹壒瀹氭牸寮忓:鈥10.10.10.1-10.10.10.99鈥濈殑ip娈靛瓧绗︿覆 */ + public static boolean isIPSegment(String ipSeg) { + return StringUtils.isNotBlank(ipSeg) && ipSeg.matches(REGX_IP_SEG); + } - /** - * 鍒ゆ柇ip鏄惁鍦ㄦ寚瀹氱綉娈典腑 - */ - public static boolean ipIsInNetNoCheck(String iparea, String ip) - { - int idx = iparea.indexOf('-'); - String[] sips = iparea.substring(0, idx).split("\\."); - String[] sipe = iparea.substring(idx + 1).split("\\."); - String[] sipt = ip.split("\\."); - long ips = 0L, ipe = 0L, ipt = 0L; - for (int i = 0; i < 4; ++i) - { - ips = ips << 8 | Integer.parseInt(sips[i]); - ipe = ipe << 8 | Integer.parseInt(sipe[i]); - ipt = ipt << 8 | Integer.parseInt(sipt[i]); - } - if (ips > ipe) - { - long t = ips; - ips = ipe; - ipe = t; - } - return ips <= ipt && ipt <= ipe; + /** 鍒ゆ柇ip鏄惁鍦ㄦ寚瀹氱綉娈典腑 */ + public static boolean ipIsInNetNoCheck(String iparea, String ip) { + int idx = iparea.indexOf('-'); + String[] sips = iparea.substring(0, idx).split("\\."); + String[] sipe = iparea.substring(idx + 1).split("\\."); + String[] sipt = ip.split("\\."); + long ips = 0L, ipe = 0L, ipt = 0L; + for (int i = 0; i < 4; ++i) { + ips = ips << 8 | Integer.parseInt(sips[i]); + ipe = ipe << 8 | Integer.parseInt(sipe[i]); + ipt = ipt << 8 | Integer.parseInt(sipt[i]); + } + if (ips > ipe) { + long t = ips; + ips = ipe; + ipe = t; } + return ips <= ipt && ipt <= ipe; + } - /** - * 鏍¢獙ip鏄惁绗﹀悎杩囨护涓茶鍒 - * - * @param filter 杩囨护IP鍒楄〃,鏀寔鍚庣紑'*'閫氶厤,鏀寔缃戞濡:`10.10.10.1-10.10.10.99` - * @param ip 鏍¢獙IP鍦板潃 - * @return boolean 缁撴灉 - */ - public static boolean isMatchedIp(String filter, String ip) - { - if (StringUtils.isEmpty(filter) || StringUtils.isEmpty(ip)) - { - return false; - } - String[] ips = filter.split(";"); - for (String iStr : ips) - { - if (isIP(iStr) && iStr.equals(ip)) - { - return true; - } - else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) - { - return true; - } - else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) - { - return true; - } - } - return false; + /** + * 鏍¢獙ip鏄惁绗﹀悎杩囨护涓茶鍒 + * + * @param filter 杩囨护IP鍒楄〃,鏀寔鍚庣紑'*'閫氶厤,鏀寔缃戞濡:`10.10.10.1-10.10.10.99` + * @param ip 鏍¢獙IP鍦板潃 + * @return boolean 缁撴灉 + */ + public static boolean isMatchedIp(String filter, String ip) { + if (StringUtils.isEmpty(filter) || StringUtils.isEmpty(ip)) { + return false; + } + String[] ips = filter.split(";"); + for (String iStr : ips) { + if (isIP(iStr) && iStr.equals(ip)) { + return true; + } else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) { + return true; + } else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) { + return true; + } } -} \ No newline at end of file + return false; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelHandlerAdapter.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelHandlerAdapter.java index f8f863e03..3bfcb776f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelHandlerAdapter.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelHandlerAdapter.java @@ -5,20 +5,18 @@ import org.apache.poi.ss.usermodel.Workbook; /** * Excel鏁版嵁鏍煎紡澶勭悊閫傞厤鍣 - * + * * @author ruoyi */ -public interface ExcelHandlerAdapter -{ - /** - * 鏍煎紡鍖 - * - * @param value 鍗曞厓鏍兼暟鎹 - * @param args excel娉ㄨВargs鍙傛暟缁 - * @param cell 鍗曞厓鏍煎璞 - * @param wb 宸ヤ綔绨垮璞 - * - * @return 澶勭悊鍚庣殑鍊 - */ - Object format(Object value, String[] args, Cell cell, Workbook wb); +public interface ExcelHandlerAdapter { + /** + * 鏍煎紡鍖 + * + * @param value 鍗曞厓鏍兼暟鎹 + * @param args excel娉ㄨВargs鍙傛暟缁 + * @param cell 鍗曞厓鏍煎璞 + * @param wb 宸ヤ綔绨垮璞 + * @return 澶勭悊鍚庣殑鍊 + */ + Object format(Object value, String[] args, Cell cell, Workbook wb); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java index 8c2434331..3c142a101 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java @@ -1,5 +1,16 @@ package com.ruoyi.common.core.utils.poi; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.annotation.Excel.Type; +import com.ruoyi.common.core.annotation.Excels; +import com.ruoyi.common.core.exception.UtilException; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.file.FileTypeUtils; +import com.ruoyi.common.core.utils.file.ImageUtils; +import com.ruoyi.common.core.utils.reflect.ReflectUtils; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; @@ -52,1610 +63,1319 @@ import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFDataValidation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.annotation.Excel.Type; -import com.ruoyi.common.core.annotation.Excels; -import com.ruoyi.common.core.exception.UtilException; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.core.utils.DateUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.file.FileTypeUtils; -import com.ruoyi.common.core.utils.file.ImageUtils; -import com.ruoyi.common.core.utils.reflect.ReflectUtils; /** * Excel鐩稿叧澶勭悊 * * @author ruoyi */ -public class ExcelUtil -{ - private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); - - public static final String SEPARATOR = ","; - - public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; - - public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; - - /** - * Excel sheet鏈澶ц鏁帮紝榛樿65536 - */ - public static final int sheetSize = 65536; - - /** - * 宸ヤ綔琛ㄥ悕绉 - */ - private String sheetName; - - /** - * 瀵煎嚭绫诲瀷锛圗XPORT:瀵煎嚭鏁版嵁锛汭MPORT锛氬鍏ユā鏉匡級 - */ - private Type type; - - /** - * 宸ヤ綔钖勫璞 - */ - private Workbook wb; - - /** - * 宸ヤ綔琛ㄥ璞 - */ - private Sheet sheet; - - /** - * 鏍峰紡鍒楄〃 - */ - private Map styles; - - /** - * 瀵煎叆瀵煎嚭鏁版嵁鍒楄〃 - */ - private List list; - - /** - * 娉ㄨВ鍒楄〃 - */ - private List fields; - - /** - * 褰撳墠琛屽彿 - */ - private int rownum; - - /** - * 鏍囬 - */ - private String title; - - /** - * 鏈澶ч珮搴 - */ - private short maxHeight; - - /** - * 鍚堝苟鍚庢渶鍚庤鏁 - */ - private int subMergedLastRowNum = 0; - - /** - * 鍚堝苟鍚庡紑濮嬭鏁 - */ - private int subMergedFirstRowNum = 1; - - /** - * 瀵硅薄鐨勫瓙鍒楄〃鏂规硶 - */ - private Map subMethods; - - /** - * 瀵硅薄鐨勫瓙鍒楄〃灞炴 - */ - private Map> subFieldsMap; - - /** - * 缁熻鍒楄〃 - */ - private Map statistics = new HashMap(); - - /** - * 瀹炰綋瀵硅薄 - */ - public Class clazz; - - /** - * 闇瑕佹樉绀哄垪灞炴 - */ - public String[] includeFields; - - /** - * 闇瑕佹帓闄ゅ垪灞炴 - */ - public String[] excludeFields; - - public ExcelUtil(Class clazz) - { - this.clazz = clazz; - } +public class ExcelUtil { + private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); - /** - * 浠呭湪Excel涓樉绀哄垪灞炴 - * - * @param fields 鍒楀睘鎬у悕 绀轰緥[鍗曚釜"name"/澶氫釜"id","name"] - */ - public void showColumn(String... fields) - { - this.includeFields = fields; - } + public static final String SEPARATOR = ","; - /** - * 闅愯棌Excel涓垪灞炴 - * - * @param fields 鍒楀睘鎬у悕 绀轰緥[鍗曚釜"name"/澶氫釜"id","name"] - */ - public void hideColumn(String... fields) - { - this.excludeFields = fields; - } + public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; - public void init(List list, String sheetName, String title, Type type) - { - if (list == null) - { - list = new ArrayList(); - } - this.list = list; - this.sheetName = sheetName; - this.type = type; - this.title = title; - createExcelField(); - createWorkbook(); - createTitle(); - createSubHead(); - } + public static final String[] FORMULA_STR = {"=", "-", "+", "@"}; - /** - * 鍒涘缓excel绗竴琛屾爣棰 - */ - public void createTitle() - { - if (StringUtils.isNotEmpty(title)) - { - int titleLastCol = this.fields.size() - 1; - if (isSubList()) - { - for (List currentSubFields : subFieldsMap.values()) - { - titleLastCol = titleLastCol + currentSubFields.size() - 1; - } - } - Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); - titleRow.setHeightInPoints(30); - Cell titleCell = titleRow.createCell(0); - titleCell.setCellStyle(styles.get("title")); - titleCell.setCellValue(title); - sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), 0, titleLastCol)); - } - } + /** Excel sheet鏈澶ц鏁帮紝榛樿65536 */ + public static final int sheetSize = 65536; - /** - * 鍒涘缓瀵硅薄鐨勫瓙鍒楄〃鍚嶇О - */ - public void createSubHead() - { - if (isSubList()) - { - Row subRow = sheet.createRow(rownum); - int column = 0; - for (Object[] objects : fields) - { - Field field = (Field) objects[0]; - Excel attr = (Excel) objects[1]; - CellStyle cellStyle = styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor())); - if (Collection.class.isAssignableFrom(field.getType())) - { - Cell cell = subRow.createCell(column); - cell.setCellValue(attr.name()); - cell.setCellStyle(cellStyle); - int subFieldSize = subFieldsMap != null ? subFieldsMap.get(field.getName()).size() : 0; - if (subFieldSize > 1) - { - CellRangeAddress cellAddress = new CellRangeAddress(rownum, rownum, column, column + subFieldSize - 1); - sheet.addMergedRegion(cellAddress); - } - column += subFieldSize; - } - else - { - Cell cell = subRow.createCell(column++); - cell.setCellValue(attr.name()); - cell.setCellStyle(cellStyle); - } - } - rownum++; - } - } + /** 宸ヤ綔琛ㄥ悕绉 */ + private String sheetName; - /** - * 瀵筫xcel琛ㄥ崟榛樿绗竴涓储寮曞悕杞崲鎴恖ist - * - * @param is 杈撳叆娴 - * @return 杞崲鍚庨泦鍚 - */ - public List importExcel(InputStream is) - { - return importExcel(is, 0); - } + /** 瀵煎嚭绫诲瀷锛圗XPORT:瀵煎嚭鏁版嵁锛汭MPORT锛氬鍏ユā鏉匡級 */ + private Type type; - /** - * 瀵筫xcel琛ㄥ崟榛樿绗竴涓储寮曞悕杞崲鎴恖ist - * - * @param is 杈撳叆娴 - * @param titleNum 鏍囬鍗犵敤琛屾暟 - * @return 杞崲鍚庨泦鍚 - */ - public List importExcel(InputStream is, int titleNum) - { - List list = null; - try - { - list = importExcel(StringUtils.EMPTY, is, titleNum); - } - catch (Exception e) - { - log.error("瀵煎叆Excel寮傚父{}", e.getMessage()); - throw new UtilException(e.getMessage()); - } - finally - { - IOUtils.closeQuietly(is); - } - return list; - } + /** 宸ヤ綔钖勫璞 */ + private Workbook wb; - /** - * 瀵筫xcel琛ㄥ崟鎸囧畾琛ㄦ牸绱㈠紩鍚嶈浆鎹㈡垚list - * - * @param sheetName 琛ㄦ牸绱㈠紩鍚 - * @param titleNum 鏍囬鍗犵敤琛屾暟 - * @param is 杈撳叆娴 - * @return 杞崲鍚庨泦鍚 - */ - public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception - { - this.type = Type.IMPORT; - this.wb = WorkbookFactory.create(is); - List list = new ArrayList(); - // 濡傛灉鎸囧畾sheet鍚,鍒欏彇鎸囧畾sheet涓殑鍐呭 鍚﹀垯榛樿鎸囧悜绗1涓猻heet - Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); - if (sheet == null) - { - throw new IOException("鏂囦欢sheet涓嶅瓨鍦"); - } + /** 宸ヤ綔琛ㄥ璞 */ + private Sheet sheet; - // 鑾峰彇鏈鍚庝竴涓潪绌鸿鐨勮涓嬫爣锛屾瘮濡傛昏鏁颁负n锛屽垯杩斿洖鐨勪负n-1 - int rows = sheet.getLastRowNum(); - if (rows > 0) - { - // 瀹氫箟涓涓猰ap鐢ㄤ簬瀛樻斁excel鍒楃殑搴忓彿鍜宖ield. - Map cellMap = new HashMap(); - // 鑾峰彇琛ㄥご - Row heard = sheet.getRow(titleNum); - if (heard == null) - { - throw new UtilException("鏂囦欢鏍囬琛屼负绌猴紝璇锋鏌xcel鏂囦欢鏍煎紡"); - } - for (int i = 0; i < heard.getLastCellNum(); i++) - { - Cell cell = heard.getCell(i); - if (StringUtils.isNotNull(cell)) - { - String value = this.getCellValue(heard, i).toString(); - cellMap.put(value, i); - } - } - // 鏈夋暟鎹椂鎵嶅鐞 寰楀埌绫荤殑鎵鏈塮ield. - List fields = this.getFields(); - Map fieldsMap = new HashMap(); - for (Object[] objects : fields) - { - Excel attr = (Excel) objects[1]; - Integer column = cellMap.get(attr.name()); - if (column != null) - { - fieldsMap.put(column, objects); - } - } - for (int i = titleNum + 1; i <= rows; i++) - { - // 浠庣2琛屽紑濮嬪彇鏁版嵁,榛樿绗竴琛屾槸琛ㄥご. - Row row = sheet.getRow(i); - // 鍒ゆ柇褰撳墠琛屾槸鍚︽槸绌鸿 - if (isRowEmpty(row)) - { - continue; - } - T entity = null; - for (Map.Entry entry : fieldsMap.entrySet()) - { - Object val = this.getCellValue(row, entry.getKey()); - - // 濡傛灉涓嶅瓨鍦ㄥ疄渚嬪垯鏂板缓. - entity = (entity == null ? clazz.newInstance() : entity); - // 浠巑ap涓緱鍒板搴斿垪鐨刦ield. - Field field = (Field) entry.getValue()[0]; - Excel attr = (Excel) entry.getValue()[1]; - // 鍙栧緱绫诲瀷,骞舵牴鎹璞$被鍨嬭缃. - Class fieldType = field.getType(); - if (String.class == fieldType) - { - String s = Convert.toStr(val); - if (s.matches("^\\d+\\.0$")) - { - val = StringUtils.substringBefore(s, ".0"); - } - else - { - String dateFormat = field.getAnnotation(Excel.class).dateFormat(); - if (StringUtils.isNotEmpty(dateFormat)) - { - val = parseDateToStr(dateFormat, val); - } - else - { - val = Convert.toStr(val); - } - } - } - else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) - { - val = Convert.toInt(val); - } - else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) - { - val = Convert.toLong(val); - } - else if (Double.TYPE == fieldType || Double.class == fieldType) - { - val = Convert.toDouble(val); - } - else if (Float.TYPE == fieldType || Float.class == fieldType) - { - val = Convert.toFloat(val); - } - else if (BigDecimal.class == fieldType) - { - val = Convert.toBigDecimal(val); - } - else if (Date.class == fieldType) - { - if (val instanceof String) - { - val = DateUtils.parseDate(val); - } - else if (val instanceof Double) - { - val = DateUtil.getJavaDate((Double) val); - } - } - else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) - { - val = Convert.toBool(val, false); - } - if (StringUtils.isNotNull(fieldType)) - { - String propertyName = field.getName(); - if (StringUtils.isNotEmpty(attr.targetAttr())) - { - propertyName = field.getName() + "." + attr.targetAttr(); - } - if (StringUtils.isNotEmpty(attr.readConverterExp())) - { - val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); - } - else if (!attr.handler().equals(ExcelHandlerAdapter.class)) - { - val = dataFormatHandlerAdapter(val, attr, null); - } - ReflectUtils.invokeSetter(entity, propertyName, val); - } - } - list.add(entity); - } - } - return list; - } + /** 鏍峰紡鍒楄〃 */ + private Map styles; - /** - * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 - * - * @param response 杩斿洖鏁版嵁 - * @param list 瀵煎嚭鏁版嵁闆嗗悎 - * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О - * @return 缁撴灉 - */ - public void exportExcel(HttpServletResponse response, List list, String sheetName) - { - exportExcel(response, list, sheetName, StringUtils.EMPTY); - } + /** 瀵煎叆瀵煎嚭鏁版嵁鍒楄〃 */ + private List list; - /** - * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 - * - * @param response 杩斿洖鏁版嵁 - * @param list 瀵煎嚭鏁版嵁闆嗗悎 - * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О - * @param title 鏍囬 - * @return 缁撴灉 - */ - public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) - { - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); - this.init(list, sheetName, title, Type.EXPORT); - exportExcel(response); - } + /** 娉ㄨВ鍒楄〃 */ + private List fields; - /** - * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 - * - * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О - * @return 缁撴灉 - */ - public void importTemplateExcel(HttpServletResponse response, String sheetName) - { - importTemplateExcel(response, sheetName, StringUtils.EMPTY); - } + /** 褰撳墠琛屽彿 */ + private int rownum; - /** - * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 - * - * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О - * @param title 鏍囬 - * @return 缁撴灉 - */ - public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) - { - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); - this.init(null, sheetName, title, Type.IMPORT); - exportExcel(response); - } + /** 鏍囬 */ + private String title; - /** - * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 - * - * @return 缁撴灉 - */ - public void exportExcel(HttpServletResponse response) - { - try - { - writeSheet(); - wb.write(response.getOutputStream()); - } - catch (Exception e) - { - log.error("瀵煎嚭Excel寮傚父{}", e.getMessage()); - } - finally - { - IOUtils.closeQuietly(wb); - } - } + /** 鏈澶ч珮搴 */ + private short maxHeight; - /** - * 鍒涘缓鍐欏叆鏁版嵁鍒癝heet - */ - public void writeSheet() - { - // 鍙栧嚭涓鍏辨湁澶氬皯涓猻heet. - int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); - for (int index = 0; index < sheetNo; index++) - { - createSheet(sheetNo, index); - - // 浜х敓涓琛 - Row row = sheet.createRow(rownum); - int column = 0; - // 鍐欏叆鍚勪釜瀛楁鐨勫垪澶村悕绉 - for (Object[] os : fields) - { - Field field = (Field) os[0]; - Excel excel = (Excel) os[1]; - if (Collection.class.isAssignableFrom(field.getType())) - { - List currentSubFields = subFieldsMap.get(field.getName()); - for (Field subField : currentSubFields) - { - Excel subExcel = subField.getAnnotation(Excel.class); - this.createHeadCell(subExcel, row, column++); - } - } - else - { - this.createHeadCell(excel, row, column++); - } - } - if (Type.EXPORT.equals(type)) - { - fillExcelData(index); - addStatisticsRow(); - } - } - } + /** 鍚堝苟鍚庢渶鍚庤鏁 */ + private int subMergedLastRowNum = 0; - /** - * 濉厖excel鏁版嵁 - * - * @param index 搴忓彿 - */ - @SuppressWarnings("unchecked") - public void fillExcelData(int index) - { - int startNo = index * sheetSize; - int endNo = Math.min(startNo + sheetSize, list.size()); - int currentRowNum = rownum + 1; // 浠庢爣棰樿鍚庡紑濮 - - for (int i = startNo; i < endNo; i++) - { - Row row = sheet.createRow(currentRowNum); - T vo = (T) list.get(i); - int column = 0; - int maxSubListSize = getCurrentMaxSubListSize(vo); - for (Object[] os : fields) - { - Field field = (Field) os[0]; - Excel excel = (Excel) os[1]; - if (Collection.class.isAssignableFrom(field.getType())) - { - try - { - Collection subList = (Collection) getTargetValue(vo, field, excel); - List currentSubFields = subFieldsMap.get(field.getName()); - if (subList != null && !subList.isEmpty()) - { - int subIndex = 0; - for (Object subVo : subList) - { - Row subRow = sheet.getRow(currentRowNum + subIndex); - if (subRow == null) - { - subRow = sheet.createRow(currentRowNum + subIndex); - } - - int subColumn = column; - for (Field subField : currentSubFields) - { - Excel subExcel = subField.getAnnotation(Excel.class); - addCell(subExcel, subRow, (T) subVo, subField, subColumn++); - } - subIndex++; - } - } - column += currentSubFields.size(); - } - catch (Exception e) - { - log.error("濉厖闆嗗悎鏁版嵁澶辫触", e); - } - } - else - { - // 鍒涘缓鍗曞厓鏍煎苟璁剧疆鍊 - addCell(excel, row, vo, field, column); - if (maxSubListSize > 1 && excel.needMerge()) - { - sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum + maxSubListSize - 1, column, column)); - } - column++; - } - } - currentRowNum += maxSubListSize; - } - } + /** 鍚堝苟鍚庡紑濮嬭鏁 */ + private int subMergedFirstRowNum = 1; - /** - * 鑾峰彇瀛愬垪琛ㄦ渶澶ф暟 - */ - private int getCurrentMaxSubListSize(T vo) - { - int maxSubListSize = 1; - for (Object[] os : fields) - { - Field field = (Field) os[0]; - if (Collection.class.isAssignableFrom(field.getType())) - { - try - { - Collection subList = (Collection) getTargetValue(vo, field, (Excel) os[1]); - if (subList != null && !subList.isEmpty()) - { - maxSubListSize = Math.max(maxSubListSize, subList.size()); - } - } - catch (Exception e) - { - log.error("鑾峰彇闆嗗悎澶у皬澶辫触", e); - } - } - } - return maxSubListSize; - } + /** 瀵硅薄鐨勫瓙鍒楄〃鏂规硶 */ + private Map subMethods; - /** - * 鍒涘缓琛ㄦ牸鏍峰紡 - * - * @param wb 宸ヤ綔钖勫璞 - * @return 鏍峰紡鍒楄〃 - */ - private Map createStyles(Workbook wb) - { - // 鍐欏叆鍚勬潯璁板綍,姣忔潯璁板綍瀵瑰簲excel琛ㄤ腑鐨勪竴琛 - Map styles = new HashMap(); - CellStyle style = wb.createCellStyle(); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - Font titleFont = wb.createFont(); - titleFont.setFontName("Arial"); - titleFont.setFontHeightInPoints((short) 16); - titleFont.setBold(true); - style.setFont(titleFont); - DataFormat dataFormat = wb.createDataFormat(); - style.setDataFormat(dataFormat.getFormat("@")); - styles.put("title", style); + /** 瀵硅薄鐨勫瓙鍒楄〃灞炴 */ + private Map> subFieldsMap; - style = wb.createCellStyle(); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setBorderRight(BorderStyle.THIN); - style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderLeft(BorderStyle.THIN); - style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderTop(BorderStyle.THIN); - style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderBottom(BorderStyle.THIN); - style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - Font dataFont = wb.createFont(); - dataFont.setFontName("Arial"); - dataFont.setFontHeightInPoints((short) 10); - style.setFont(dataFont); - styles.put("data", style); - - style = wb.createCellStyle(); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setDataFormat(dataFormat.getFormat("######0.00")); - Font totalFont = wb.createFont(); - totalFont.setFontName("Arial"); - totalFont.setFontHeightInPoints((short) 10); - style.setFont(totalFont); - styles.put("total", style); + /** 缁熻鍒楄〃 */ + private Map statistics = new HashMap(); - styles.putAll(annotationHeaderStyles(wb, styles)); + /** 瀹炰綋瀵硅薄 */ + public Class clazz; - styles.putAll(annotationDataStyles(wb)); + /** 闇瑕佹樉绀哄垪灞炴 */ + public String[] includeFields; - return styles; - } + /** 闇瑕佹帓闄ゅ垪灞炴 */ + public String[] excludeFields; - /** - * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸澶存牱寮 - * - * @param wb 宸ヤ綔钖勫璞 - * @return 鑷畾涔夋牱寮忓垪琛 - */ - private Map annotationHeaderStyles(Workbook wb, Map styles) - { - Map headerStyles = new HashMap(); - for (Object[] os : fields) - { - Excel excel = (Excel) os[1]; - String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); - if (!headerStyles.containsKey(key)) - { - CellStyle style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setFillForegroundColor(excel.headerBackgroundColor().index); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - Font headerFont = wb.createFont(); - headerFont.setFontName("Arial"); - headerFont.setFontHeightInPoints((short) 10); - headerFont.setBold(true); - headerFont.setColor(excel.headerColor().index); - style.setFont(headerFont); - // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡 - DataFormat dataFormat = wb.createDataFormat(); - style.setDataFormat(dataFormat.getFormat("@")); - headerStyles.put(key, style); - } - } - return headerStyles; - } + public ExcelUtil(Class clazz) { + this.clazz = clazz; + } - /** - * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮 - * - * @param wb 宸ヤ綔钖勫璞 - * @return 鑷畾涔夋牱寮忓垪琛 - */ - private Map annotationDataStyles(Workbook wb) - { - Map styles = new HashMap(); - for (Object[] os : fields) - { - Field field = (Field) os[0]; - Excel excel = (Excel) os[1]; - if (Collection.class.isAssignableFrom(field.getType())) - { - ParameterizedType pt = (ParameterizedType) field.getGenericType(); - Class subClass = (Class) pt.getActualTypeArguments()[0]; - List subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); - for (Field subField : subFields) - { - Excel subExcel = subField.getAnnotation(Excel.class); - annotationDataStyles(styles, subField, subExcel); - } - } - else - { - annotationDataStyles(styles, field, excel); - } - } - return styles; - } + /** + * 浠呭湪Excel涓樉绀哄垪灞炴 + * + * @param fields 鍒楀睘鎬у悕 绀轰緥[鍗曚釜"name"/澶氫釜"id","name"] + */ + public void showColumn(String... fields) { + this.includeFields = fields; + } - /** - * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮 - * - * @param styles 鑷畾涔夋牱寮忓垪琛 - * @param field 灞炴у垪淇℃伅 - * @param excel 娉ㄨВ淇℃伅 - */ - public void annotationDataStyles(Map styles, Field field, Excel excel) - { - String key = StringUtils.format("data_{}_{}_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor(), excel.cellType(), excel.wrapText()); - if (!styles.containsKey(key)) - { - CellStyle style = wb.createCellStyle(); - style.setAlignment(excel.align()); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setBorderRight(BorderStyle.THIN); - style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderLeft(BorderStyle.THIN); - style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderTop(BorderStyle.THIN); - style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderBottom(BorderStyle.THIN); - style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - style.setFillForegroundColor(excel.backgroundColor().getIndex()); - style.setWrapText(excel.wrapText()); - Font dataFont = wb.createFont(); - dataFont.setFontName("Arial"); - dataFont.setFontHeightInPoints((short) 10); - dataFont.setColor(excel.color().index); - style.setFont(dataFont); - if (ColumnType.TEXT == excel.cellType()) - { - DataFormat dataFormat = wb.createDataFormat(); - style.setDataFormat(dataFormat.getFormat("@")); - } - styles.put(key, style); - } - } + /** + * 闅愯棌Excel涓垪灞炴 + * + * @param fields 鍒楀睘鎬у悕 绀轰緥[鍗曚釜"name"/澶氫釜"id","name"] + */ + public void hideColumn(String... fields) { + this.excludeFields = fields; + } - /** - * 鍒涘缓鍗曞厓鏍 - */ - public Cell createHeadCell(Excel attr, Row row, int column) - { - // 鍒涘缓鍒 - Cell cell = row.createCell(column); - // 鍐欏叆鍒椾俊鎭 - cell.setCellValue(attr.name()); - setDataValidation(attr, row, column); - cell.setCellStyle(styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); - if (isSubList()) - { - // 濉厖榛樿鏍峰紡锛岄槻姝㈠悎骞跺崟鍏冩牸鏍峰紡澶辨晥 - sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor(), attr.cellType(), attr.wrapText()))); - if (attr.needMerge()) - { - sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); - } - } - return cell; + public void init(List list, String sheetName, String title, Type type) { + if (list == null) { + list = new ArrayList(); + } + this.list = list; + this.sheetName = sheetName; + this.type = type; + this.title = title; + createExcelField(); + createWorkbook(); + createTitle(); + createSubHead(); + } + + /** 鍒涘缓excel绗竴琛屾爣棰 */ + public void createTitle() { + if (StringUtils.isNotEmpty(title)) { + int titleLastCol = this.fields.size() - 1; + if (isSubList()) { + for (List currentSubFields : subFieldsMap.values()) { + titleLastCol = titleLastCol + currentSubFields.size() - 1; + } + } + Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion( + new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), 0, titleLastCol)); + } + } + + /** 鍒涘缓瀵硅薄鐨勫瓙鍒楄〃鍚嶇О */ + public void createSubHead() { + if (isSubList()) { + Row subRow = sheet.createRow(rownum); + int column = 0; + for (Object[] objects : fields) { + Field field = (Field) objects[0]; + Excel attr = (Excel) objects[1]; + CellStyle cellStyle = + styles.get( + StringUtils.format( + "header_{}_{}", attr.headerColor(), attr.headerBackgroundColor())); + if (Collection.class.isAssignableFrom(field.getType())) { + Cell cell = subRow.createCell(column); + cell.setCellValue(attr.name()); + cell.setCellStyle(cellStyle); + int subFieldSize = subFieldsMap != null ? subFieldsMap.get(field.getName()).size() : 0; + if (subFieldSize > 1) { + CellRangeAddress cellAddress = + new CellRangeAddress(rownum, rownum, column, column + subFieldSize - 1); + sheet.addMergedRegion(cellAddress); + } + column += subFieldSize; + } else { + Cell cell = subRow.createCell(column++); + cell.setCellValue(attr.name()); + cell.setCellStyle(cellStyle); + } + } + rownum++; + } + } + + /** + * 瀵筫xcel琛ㄥ崟榛樿绗竴涓储寮曞悕杞崲鎴恖ist + * + * @param is 杈撳叆娴 + * @return 杞崲鍚庨泦鍚 + */ + public List importExcel(InputStream is) { + return importExcel(is, 0); + } + + /** + * 瀵筫xcel琛ㄥ崟榛樿绗竴涓储寮曞悕杞崲鎴恖ist + * + * @param is 杈撳叆娴 + * @param titleNum 鏍囬鍗犵敤琛屾暟 + * @return 杞崲鍚庨泦鍚 + */ + public List importExcel(InputStream is, int titleNum) { + List list = null; + try { + list = importExcel(StringUtils.EMPTY, is, titleNum); + } catch (Exception e) { + log.error("瀵煎叆Excel寮傚父{}", e.getMessage()); + throw new UtilException(e.getMessage()); + } finally { + IOUtils.closeQuietly(is); + } + return list; + } + + /** + * 瀵筫xcel琛ㄥ崟鎸囧畾琛ㄦ牸绱㈠紩鍚嶈浆鎹㈡垚list + * + * @param sheetName 琛ㄦ牸绱㈠紩鍚 + * @param titleNum 鏍囬鍗犵敤琛屾暟 + * @param is 杈撳叆娴 + * @return 杞崲鍚庨泦鍚 + */ + public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception { + this.type = Type.IMPORT; + this.wb = WorkbookFactory.create(is); + List list = new ArrayList(); + // 濡傛灉鎸囧畾sheet鍚,鍒欏彇鎸囧畾sheet涓殑鍐呭 鍚﹀垯榛樿鎸囧悜绗1涓猻heet + Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); + if (sheet == null) { + throw new IOException("鏂囦欢sheet涓嶅瓨鍦"); } - /** - * 璁剧疆鍗曞厓鏍间俊鎭 - * - * @param value 鍗曞厓鏍煎 - * @param attr 娉ㄨВ鐩稿叧 - * @param cell 鍗曞厓鏍间俊鎭 - */ - public void setCellVo(Object value, Excel attr, Cell cell) - { - if (ColumnType.STRING == attr.cellType() || ColumnType.TEXT == attr.cellType()) - { - String cellValue = Convert.toStr(value); - // 瀵逛簬浠讳綍浠ヨ〃杈惧紡瑙﹀彂瀛楃 =-+@寮澶寸殑鍗曞厓鏍硷紝鐩存帴浣跨敤tab瀛楃浣滀负鍓嶇紑锛岄槻姝SV娉ㄥ叆銆 - if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) - { - cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); + // 鑾峰彇鏈鍚庝竴涓潪绌鸿鐨勮涓嬫爣锛屾瘮濡傛昏鏁颁负n锛屽垯杩斿洖鐨勪负n-1 + int rows = sheet.getLastRowNum(); + if (rows > 0) { + // 瀹氫箟涓涓猰ap鐢ㄤ簬瀛樻斁excel鍒楃殑搴忓彿鍜宖ield. + Map cellMap = new HashMap(); + // 鑾峰彇琛ㄥご + Row heard = sheet.getRow(titleNum); + if (heard == null) { + throw new UtilException("鏂囦欢鏍囬琛屼负绌猴紝璇锋鏌xcel鏂囦欢鏍煎紡"); + } + for (int i = 0; i < heard.getLastCellNum(); i++) { + Cell cell = heard.getCell(i); + if (StringUtils.isNotNull(cell)) { + String value = this.getCellValue(heard, i).toString(); + cellMap.put(value, i); + } + } + // 鏈夋暟鎹椂鎵嶅鐞 寰楀埌绫荤殑鎵鏈塮ield. + List fields = this.getFields(); + Map fieldsMap = new HashMap(); + for (Object[] objects : fields) { + Excel attr = (Excel) objects[1]; + Integer column = cellMap.get(attr.name()); + if (column != null) { + fieldsMap.put(column, objects); + } + } + for (int i = titleNum + 1; i <= rows; i++) { + // 浠庣2琛屽紑濮嬪彇鏁版嵁,榛樿绗竴琛屾槸琛ㄥご. + Row row = sheet.getRow(i); + // 鍒ゆ柇褰撳墠琛屾槸鍚︽槸绌鸿 + if (isRowEmpty(row)) { + continue; + } + T entity = null; + for (Map.Entry entry : fieldsMap.entrySet()) { + Object val = this.getCellValue(row, entry.getKey()); + + // 濡傛灉涓嶅瓨鍦ㄥ疄渚嬪垯鏂板缓. + entity = (entity == null ? clazz.newInstance() : entity); + // 浠巑ap涓緱鍒板搴斿垪鐨刦ield. + Field field = (Field) entry.getValue()[0]; + Excel attr = (Excel) entry.getValue()[1]; + // 鍙栧緱绫诲瀷,骞舵牴鎹璞$被鍨嬭缃. + Class fieldType = field.getType(); + if (String.class == fieldType) { + String s = Convert.toStr(val); + if (s.matches("^\\d+\\.0$")) { + val = StringUtils.substringBefore(s, ".0"); + } else { + String dateFormat = field.getAnnotation(Excel.class).dateFormat(); + if (StringUtils.isNotEmpty(dateFormat)) { + val = parseDateToStr(dateFormat, val); + } else { + val = Convert.toStr(val); + } } - if (value instanceof Collection && StringUtils.equals("[]", cellValue)) - { - cellValue = StringUtils.EMPTY; + } else if ((Integer.TYPE == fieldType || Integer.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toInt(val); + } else if ((Long.TYPE == fieldType || Long.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toLong(val); + } else if (Double.TYPE == fieldType || Double.class == fieldType) { + val = Convert.toDouble(val); + } else if (Float.TYPE == fieldType || Float.class == fieldType) { + val = Convert.toFloat(val); + } else if (BigDecimal.class == fieldType) { + val = Convert.toBigDecimal(val); + } else if (Date.class == fieldType) { + if (val instanceof String) { + val = DateUtils.parseDate(val); + } else if (val instanceof Double) { + val = DateUtil.getJavaDate((Double) val); } - cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); - } - else if (ColumnType.NUMERIC == attr.cellType()) - { - if (StringUtils.isNotNull(value)) - { - cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); + } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) { + val = Convert.toBool(val, false); + } + if (StringUtils.isNotNull(fieldType)) { + String propertyName = field.getName(); + if (StringUtils.isNotEmpty(attr.targetAttr())) { + propertyName = field.getName() + "." + attr.targetAttr(); } - } - else if (ColumnType.IMAGE == attr.cellType()) - { - ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1); - String imagePath = Convert.toStr(value); - if (StringUtils.isNotEmpty(imagePath)) - { - byte[] data = ImageUtils.getImage(imagePath); - getDrawingPatriarch(cell.getSheet()).createPicture(anchor, - cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + if (StringUtils.isNotEmpty(attr.readConverterExp())) { + val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + val = dataFormatHandlerAdapter(val, attr, null); } + ReflectUtils.invokeSetter(entity, propertyName, val); + } } + list.add(entity); + } } - - /** - * 鑾峰彇鐢诲竷 - */ - public static Drawing getDrawingPatriarch(Sheet sheet) - { - if (sheet.getDrawingPatriarch() == null) - { - sheet.createDrawingPatriarch(); - } - return sheet.getDrawingPatriarch(); + return list; + } + + /** + * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 + * + * @param response 杩斿洖鏁版嵁 + * @param list 瀵煎嚭鏁版嵁闆嗗悎 + * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О + * @return 缁撴灉 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName) { + exportExcel(response, list, sheetName, StringUtils.EMPTY); + } + + /** + * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 + * + * @param response 杩斿洖鏁版嵁 + * @param list 瀵煎嚭鏁版嵁闆嗗悎 + * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О + * @param title 鏍囬 + * @return 缁撴灉 + */ + public void exportExcel( + HttpServletResponse response, List list, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(list, sheetName, title, Type.EXPORT); + exportExcel(response); + } + + /** + * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 + * + * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О + * @return 缁撴灉 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName) { + importTemplateExcel(response, sheetName, StringUtils.EMPTY); + } + + /** + * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 + * + * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О + * @param title 鏍囬 + * @return 缁撴灉 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(null, sheetName, title, Type.IMPORT); + exportExcel(response); + } + + /** + * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 + * + * @return 缁撴灉 + */ + public void exportExcel(HttpServletResponse response) { + try { + writeSheet(); + wb.write(response.getOutputStream()); + } catch (Exception e) { + log.error("瀵煎嚭Excel寮傚父{}", e.getMessage()); + } finally { + IOUtils.closeQuietly(wb); } - - /** - * 鑾峰彇鍥剧墖绫诲瀷,璁剧疆鍥剧墖鎻掑叆绫诲瀷 - */ - public int getImageType(byte[] value) - { - String type = FileTypeUtils.getFileExtendName(value); - if ("JPG".equalsIgnoreCase(type)) - { - return Workbook.PICTURE_TYPE_JPEG; - } - else if ("PNG".equalsIgnoreCase(type)) - { - return Workbook.PICTURE_TYPE_PNG; - } - return Workbook.PICTURE_TYPE_JPEG; + } + + /** 鍒涘缓鍐欏叆鏁版嵁鍒癝heet */ + public void writeSheet() { + // 鍙栧嚭涓鍏辨湁澶氬皯涓猻heet. + int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); + for (int index = 0; index < sheetNo; index++) { + createSheet(sheetNo, index); + + // 浜х敓涓琛 + Row row = sheet.createRow(rownum); + int column = 0; + // 鍐欏叆鍚勪釜瀛楁鐨勫垪澶村悕绉 + for (Object[] os : fields) { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + List currentSubFields = subFieldsMap.get(field.getName()); + for (Field subField : currentSubFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + this.createHeadCell(subExcel, row, column++); + } + } else { + this.createHeadCell(excel, row, column++); + } + } + if (Type.EXPORT.equals(type)) { + fillExcelData(index); + addStatisticsRow(); + } } - - /** - * 鍒涘缓琛ㄦ牸鏍峰紡 - */ - public void setDataValidation(Excel attr, Row row, int column) - { - if (attr.name().indexOf("娉細") >= 0) - { - sheet.setColumnWidth(column, 6000); - } - else - { - // 璁剧疆鍒楀 - sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); - } - if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0) - { - if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255) - { - // 濡傛灉涓嬫媺鏁板ぇ浜15鎴栧瓧绗︿覆闀垮害澶т簬255锛屽垯浣跨敤涓涓柊sheet瀛樺偍锛岄伩鍏嶇敓鎴愮殑妯℃澘涓嬫媺鍊艰幏鍙栦笉鍒 - setXSSFValidationWithHidden(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); - } - else - { - // 鎻愮ず淇℃伅鎴栧彧鑳介夋嫨涓嶈兘杈撳叆鐨勫垪鍐呭. - setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); - } - } - } - - /** - * 娣诲姞鍗曞厓鏍 - */ - public Cell addCell(Excel attr, Row row, T vo, Field field, int column) - { - Cell cell = null; - try - { - // 璁剧疆琛岄珮 - row.setHeight(maxHeight); - // 鏍规嵁Excel涓缃儏鍐靛喅瀹氭槸鍚﹀鍑,鏈変簺鎯呭喌闇瑕佷繚鎸佷负绌,甯屾湜鐢ㄦ埛濉啓杩欎竴鍒. - if (attr.isExport()) - { - // 鍒涘缓cell - cell = row.createCell(column); - if (isSubListValue(vo) && getListCellValue(vo) > 1 && attr.needMerge()) - { - if (subMergedLastRowNum >= subMergedFirstRowNum) - { - sheet.addMergedRegion(new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column)); - } - } - cell.setCellStyle(styles.get(StringUtils.format("data_{}_{}_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor(), attr.cellType(), attr.wrapText()))); - - // 鐢ㄤ簬璇诲彇瀵硅薄涓殑灞炴 - Object value = getTargetValue(vo, field, attr); - String dateFormat = attr.dateFormat(); - String readConverterExp = attr.readConverterExp(); - String separator = attr.separator(); - if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) - { - cell.getCellStyle().setDataFormat(this.wb.getCreationHelper().createDataFormat().getFormat(dateFormat)); - cell.setCellValue(parseDateToStr(dateFormat, value)); - } - else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) - { - cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); + } + + /** + * 濉厖excel鏁版嵁 + * + * @param index 搴忓彿 + */ + @SuppressWarnings("unchecked") + public void fillExcelData(int index) { + int startNo = index * sheetSize; + int endNo = Math.min(startNo + sheetSize, list.size()); + int currentRowNum = rownum + 1; // 浠庢爣棰樿鍚庡紑濮 + + for (int i = startNo; i < endNo; i++) { + Row row = sheet.createRow(currentRowNum); + T vo = (T) list.get(i); + int column = 0; + int maxSubListSize = getCurrentMaxSubListSize(vo); + for (Object[] os : fields) { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + try { + Collection subList = (Collection) getTargetValue(vo, field, excel); + List currentSubFields = subFieldsMap.get(field.getName()); + if (subList != null && !subList.isEmpty()) { + int subIndex = 0; + for (Object subVo : subList) { + Row subRow = sheet.getRow(currentRowNum + subIndex); + if (subRow == null) { + subRow = sheet.createRow(currentRowNum + subIndex); } - else if (value instanceof BigDecimal && -1 != attr.scale()) - { - cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).doubleValue()); - } - else if (!attr.handler().equals(ExcelHandlerAdapter.class)) - { - cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell)); - } - else - { - // 璁剧疆鍒楃被鍨 - setCellVo(value, attr, cell); + + int subColumn = column; + for (Field subField : currentSubFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + addCell(subExcel, subRow, (T) subVo, subField, subColumn++); } - addStatisticsData(column, Convert.toStr(value), attr); + subIndex++; + } } - } - catch (Exception e) - { - log.error("瀵煎嚭Excel澶辫触{}", e); - } - return cell; + column += currentSubFields.size(); + } catch (Exception e) { + log.error("濉厖闆嗗悎鏁版嵁澶辫触", e); + } + } else { + // 鍒涘缓鍗曞厓鏍煎苟璁剧疆鍊 + addCell(excel, row, vo, field, column); + if (maxSubListSize > 1 && excel.needMerge()) { + sheet.addMergedRegion( + new CellRangeAddress( + currentRowNum, currentRowNum + maxSubListSize - 1, column, column)); + } + column++; + } + } + currentRowNum += maxSubListSize; } - - /** - * 璁剧疆 POI XSSFSheet 鍗曞厓鏍兼彁绀烘垨閫夋嫨妗 - * - * @param sheet 琛ㄥ崟 - * @param textlist 涓嬫媺妗嗘樉绀虹殑鍐呭 - * @param promptContent 鎻愮ず鍐呭 - * @param firstRow 寮濮嬭 - * @param endRow 缁撴潫琛 - * @param firstCol 寮濮嬪垪 - * @param endCol 缁撴潫鍒 - */ - public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, - int firstCol, int endCol) - { - DataValidationHelper helper = sheet.getDataValidationHelper(); - DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1"); - CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); - DataValidation dataValidation = helper.createValidation(constraint, regions); - if (StringUtils.isNotEmpty(promptContent)) - { - // 濡傛灉璁剧疆浜嗘彁绀轰俊鎭垯榧犳爣鏀句笂鍘绘彁绀 - dataValidation.createPromptBox("", promptContent); - dataValidation.setShowPromptBox(true); - } - // 澶勭悊Excel鍏煎鎬ч棶棰 - if (dataValidation instanceof XSSFDataValidation) - { - dataValidation.setSuppressDropDownArrow(true); - dataValidation.setShowErrorBox(true); - } - else - { - dataValidation.setSuppressDropDownArrow(false); - } - sheet.addValidationData(dataValidation); + } + + /** 鑾峰彇瀛愬垪琛ㄦ渶澶ф暟 */ + private int getCurrentMaxSubListSize(T vo) { + int maxSubListSize = 1; + for (Object[] os : fields) { + Field field = (Field) os[0]; + if (Collection.class.isAssignableFrom(field.getType())) { + try { + Collection subList = (Collection) getTargetValue(vo, field, (Excel) os[1]); + if (subList != null && !subList.isEmpty()) { + maxSubListSize = Math.max(maxSubListSize, subList.size()); + } + } catch (Exception e) { + log.error("鑾峰彇闆嗗悎澶у皬澶辫触", e); + } + } } - - /** - * 璁剧疆鏌愪簺鍒楃殑鍊煎彧鑳借緭鍏ラ鍒剁殑鏁版嵁,鏄剧ず涓嬫媺妗嗭紙鍏煎瓒呭嚭涓瀹氭暟閲忕殑涓嬫媺妗嗭級. - * - * @param sheet 瑕佽缃殑sheet. - * @param textlist 涓嬫媺妗嗘樉绀虹殑鍐呭 - * @param promptContent 鎻愮ず鍐呭 - * @param firstRow 寮濮嬭 - * @param endRow 缁撴潫琛 - * @param firstCol 寮濮嬪垪 - * @param endCol 缁撴潫鍒 - */ - public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) - { - String hideSheetName = "combo_" + firstCol + "_" + endCol; - Sheet hideSheet = null; - String hideSheetDataName = hideSheetName + "_data"; - Name name = wb.getName(hideSheetDataName); - if (name != null) - { - // 鍚嶇О宸插瓨鍦紝灏濊瘯浠庡悕绉扮殑寮曠敤涓壘鍒皊heet鍚嶇О - String refersToFormula = name.getRefersToFormula(); - if (StringUtils.isNotEmpty(refersToFormula) && refersToFormula.contains("!")) - { - String sheetNameFromFormula = refersToFormula.substring(0, refersToFormula.indexOf("!")); - hideSheet = wb.getSheet(sheetNameFromFormula); - } - } - - if (hideSheet == null) - { - hideSheet = wb.createSheet(hideSheetName); // 鐢ㄤ簬瀛樺偍 涓嬫媺鑿滃崟鏁版嵁 - for (int i = 0; i < textlist.length; i++) - { - hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); - } - // 鍒涘缓鍚嶇О锛屽彲琚叾浠栧崟鍏冩牸寮曠敤 - name = wb.createName(); - name.setNameName(hideSheetDataName); - name.setRefersToFormula(hideSheetName + "!$A$1:$A$" + textlist.length); - } - - DataValidationHelper helper = sheet.getDataValidationHelper(); - // 鍔犺浇涓嬫媺鍒楄〃鍐呭 - DataValidationConstraint constraint = helper.createFormulaListConstraint(hideSheetDataName); - // 璁剧疆鏁版嵁鏈夋晥鎬у姞杞藉湪鍝釜鍗曞厓鏍间笂,鍥涗釜鍙傛暟鍒嗗埆鏄細璧峰琛屻佺粓姝㈣銆佽捣濮嬪垪銆佺粓姝㈠垪 - CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); - // 鏁版嵁鏈夋晥鎬у璞 - DataValidation dataValidation = helper.createValidation(constraint, regions); - if (StringUtils.isNotEmpty(promptContent)) - { - // 濡傛灉璁剧疆浜嗘彁绀轰俊鎭垯榧犳爣鏀句笂鍘绘彁绀 - dataValidation.createPromptBox("", promptContent); - dataValidation.setShowPromptBox(true); - } - // 澶勭悊Excel鍏煎鎬ч棶棰 - if (dataValidation instanceof XSSFDataValidation) - { - dataValidation.setSuppressDropDownArrow(true); - dataValidation.setShowErrorBox(true); - } - else - { - dataValidation.setSuppressDropDownArrow(false); - } - - sheet.addValidationData(dataValidation); - // 璁剧疆hiddenSheet闅愯棌 - wb.setSheetHidden(wb.getSheetIndex(hideSheet), true); + return maxSubListSize; + } + + /** + * 鍒涘缓琛ㄦ牸鏍峰紡 + * + * @param wb 宸ヤ綔钖勫璞 + * @return 鏍峰紡鍒楄〃 + */ + private Map createStyles(Workbook wb) { + // 鍐欏叆鍚勬潯璁板綍,姣忔潯璁板綍瀵瑰簲excel琛ㄤ腑鐨勪竴琛 + Map styles = new HashMap(); + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setDataFormat(dataFormat.getFormat("######0.00")); + Font totalFont = wb.createFont(); + totalFont.setFontName("Arial"); + totalFont.setFontHeightInPoints((short) 10); + style.setFont(totalFont); + styles.put("total", style); + + styles.putAll(annotationHeaderStyles(wb, styles)); + + styles.putAll(annotationDataStyles(wb)); + + return styles; + } + + /** + * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸澶存牱寮 + * + * @param wb 宸ヤ綔钖勫璞 + * @return 鑷畾涔夋牱寮忓垪琛 + */ + private Map annotationHeaderStyles( + Workbook wb, Map styles) { + Map headerStyles = new HashMap(); + for (Object[] os : fields) { + Excel excel = (Excel) os[1]; + String key = + StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); + if (!headerStyles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡 + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + headerStyles.put(key, style); + } } - - /** - * 瑙f瀽瀵煎嚭鍊 0=鐢,1=濂,2=鏈煡 - * - * @param propertyValue 鍙傛暟鍊 - * @param converterExp 缈昏瘧娉ㄨВ - * @param separator 鍒嗛殧绗 - * @return 瑙f瀽鍚庡 - */ - public static String convertByExp(String propertyValue, String converterExp, String separator) - { - StringBuilder propertyString = new StringBuilder(); - String[] convertSource = converterExp.split(SEPARATOR); - for (String item : convertSource) - { - String[] itemArray = item.split("="); - if (StringUtils.containsAny(propertyValue, separator)) - { - for (String value : propertyValue.split(separator)) - { - if (itemArray[0].equals(value)) - { - propertyString.append(itemArray[1] + separator); - break; - } - } - } - else - { - if (itemArray[0].equals(propertyValue)) - { - return itemArray[1]; - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); + return headerStyles; + } + + /** + * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮 + * + * @param wb 宸ヤ綔钖勫璞 + * @return 鑷畾涔夋牱寮忓垪琛 + */ + private Map annotationDataStyles(Workbook wb) { + Map styles = new HashMap(); + for (Object[] os : fields) { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + ParameterizedType pt = (ParameterizedType) field.getGenericType(); + Class subClass = (Class) pt.getActualTypeArguments()[0]; + List subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + for (Field subField : subFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + annotationDataStyles(styles, subField, subExcel); + } + } else { + annotationDataStyles(styles, field, excel); + } } - - /** - * 鍙嶅悜瑙f瀽鍊 鐢=0,濂=1,鏈煡=2 - * - * @param propertyValue 鍙傛暟鍊 - * @param converterExp 缈昏瘧娉ㄨВ - * @param separator 鍒嗛殧绗 - * @return 瑙f瀽鍚庡 - */ - public static String reverseByExp(String propertyValue, String converterExp, String separator) - { - StringBuilder propertyString = new StringBuilder(); - String[] convertSource = converterExp.split(SEPARATOR); - for (String item : convertSource) - { - String[] itemArray = item.split("="); - if (StringUtils.containsAny(propertyValue, separator)) - { - for (String value : propertyValue.split(separator)) - { - if (itemArray[1].equals(value)) - { - propertyString.append(itemArray[0] + separator); - break; - } - } - } - else - { - if (itemArray[1].equals(propertyValue)) - { - return itemArray[0]; - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); + return styles; + } + + /** + * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮 + * + * @param styles 鑷畾涔夋牱寮忓垪琛 + * @param field 灞炴у垪淇℃伅 + * @param excel 娉ㄨВ淇℃伅 + */ + public void annotationDataStyles(Map styles, Field field, Excel excel) { + String key = + StringUtils.format( + "data_{}_{}_{}_{}_{}", + excel.align(), + excel.color(), + excel.backgroundColor(), + excel.cellType(), + excel.wrapText()); + if (!styles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.setAlignment(excel.align()); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + style.setFillForegroundColor(excel.backgroundColor().getIndex()); + style.setWrapText(excel.wrapText()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + dataFont.setColor(excel.color().index); + style.setFont(dataFont); + if (ColumnType.TEXT == excel.cellType()) { + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + } + styles.put(key, style); } - - /** - * 鏁版嵁澶勭悊鍣 - * - * @param value 鏁版嵁鍊 - * @param excel 鏁版嵁娉ㄨВ - * @return - */ - public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell) - { - try - { - Object instance = excel.handler().newInstance(); - Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class, Cell.class, Workbook.class }); - value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb); - } - catch (Exception e) - { - log.error("涓嶈兘鏍煎紡鍖栨暟鎹 " + excel.handler(), e.getMessage()); - } - return Convert.toStr(value); + } + + /** 鍒涘缓鍗曞厓鏍 */ + public Cell createHeadCell(Excel attr, Row row, int column) { + // 鍒涘缓鍒 + Cell cell = row.createCell(column); + // 鍐欏叆鍒椾俊鎭 + cell.setCellValue(attr.name()); + setDataValidation(attr, row, column); + cell.setCellStyle( + styles.get( + StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + if (isSubList()) { + // 濉厖榛樿鏍峰紡锛岄槻姝㈠悎骞跺崟鍏冩牸鏍峰紡澶辨晥 + sheet.setDefaultColumnStyle( + column, + styles.get( + StringUtils.format( + "data_{}_{}_{}_{}_{}", + attr.align(), + attr.color(), + attr.backgroundColor(), + attr.cellType(), + attr.wrapText()))); + if (attr.needMerge()) { + sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); + } } - - /** - * 鍚堣缁熻淇℃伅 - */ - private void addStatisticsData(Integer index, String text, Excel entity) - { - if (entity != null && entity.isStatistics()) - { - Double temp = 0D; - if (!statistics.containsKey(index)) - { - statistics.put(index, temp); - } - try - { - temp = Double.valueOf(text); - } - catch (NumberFormatException e) - { - } - statistics.put(index, statistics.get(index) + temp); - } + return cell; + } + + /** + * 璁剧疆鍗曞厓鏍间俊鎭 + * + * @param value 鍗曞厓鏍煎 + * @param attr 娉ㄨВ鐩稿叧 + * @param cell 鍗曞厓鏍间俊鎭 + */ + public void setCellVo(Object value, Excel attr, Cell cell) { + if (ColumnType.STRING == attr.cellType() || ColumnType.TEXT == attr.cellType()) { + String cellValue = Convert.toStr(value); + // 瀵逛簬浠讳綍浠ヨ〃杈惧紡瑙﹀彂瀛楃 =-+@寮澶寸殑鍗曞厓鏍硷紝鐩存帴浣跨敤tab瀛楃浣滀负鍓嶇紑锛岄槻姝SV娉ㄥ叆銆 + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) { + cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); + } + if (value instanceof Collection && StringUtils.equals("[]", cellValue)) { + cellValue = StringUtils.EMPTY; + } + cell.setCellValue( + StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); + } else if (ColumnType.NUMERIC == attr.cellType()) { + if (StringUtils.isNotNull(value)) { + cell.setCellValue( + StringUtils.contains(Convert.toStr(value), ".") + ? Convert.toDouble(value) + : Convert.toInt(value)); + } + } else if (ColumnType.IMAGE == attr.cellType()) { + ClientAnchor anchor = + new XSSFClientAnchor( + 0, + 0, + 0, + 0, + (short) cell.getColumnIndex(), + cell.getRow().getRowNum(), + (short) (cell.getColumnIndex() + 1), + cell.getRow().getRowNum() + 1); + String imagePath = Convert.toStr(value); + if (StringUtils.isNotEmpty(imagePath)) { + byte[] data = ImageUtils.getImage(imagePath); + getDrawingPatriarch(cell.getSheet()) + .createPicture( + anchor, cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + } } + } - /** - * 鍒涘缓缁熻琛 - */ - public void addStatisticsRow() - { - if (statistics.size() > 0) - { - Row row = sheet.createRow(sheet.getLastRowNum() + 1); - Set keys = statistics.keySet(); - Cell cell = row.createCell(0); - cell.setCellStyle(styles.get("total")); - cell.setCellValue("鍚堣"); - - for (Integer key : keys) - { - cell = row.createCell(key); - cell.setCellStyle(styles.get("total")); - cell.setCellValue(statistics.get(key)); - } - statistics.clear(); - } + /** 鑾峰彇鐢诲竷 */ + public static Drawing getDrawingPatriarch(Sheet sheet) { + if (sheet.getDrawingPatriarch() == null) { + sheet.createDrawingPatriarch(); } - - /** - * 鑾峰彇bean涓殑灞炴у - * - * @param vo 瀹炰綋瀵硅薄 - * @param field 瀛楁 - * @param excel 娉ㄨВ - * @return 鏈缁堢殑灞炴у - * @throws Exception - */ - private Object getTargetValue(T vo, Field field, Excel excel) throws Exception - { - field.setAccessible(true); - Object o = field.get(vo); - if (StringUtils.isNotEmpty(excel.targetAttr())) - { - String target = excel.targetAttr(); - if (target.contains(".")) - { - String[] targets = target.split("[.]"); - for (String name : targets) - { - o = getValue(o, name); - } - } - else - { - o = getValue(o, target); - } - } - return o; + return sheet.getDrawingPatriarch(); + } + + /** 鑾峰彇鍥剧墖绫诲瀷,璁剧疆鍥剧墖鎻掑叆绫诲瀷 */ + public int getImageType(byte[] value) { + String type = FileTypeUtils.getFileExtendName(value); + if ("JPG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_JPEG; + } else if ("PNG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_PNG; } - - /** - * 浠ョ被鐨勫睘鎬х殑get鏂规硶鏂规硶褰㈠紡鑾峰彇鍊 - * - * @param o - * @param name - * @return value - * @throws Exception - */ - private Object getValue(Object o, String name) throws Exception - { - if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) - { - Class clazz = o.getClass(); - Field field = clazz.getDeclaredField(name); - field.setAccessible(true); - o = field.get(o); - } - return o; + return Workbook.PICTURE_TYPE_JPEG; + } + + /** 鍒涘缓琛ㄦ牸鏍峰紡 */ + public void setDataValidation(Excel attr, Row row, int column) { + if (attr.name().indexOf("娉細") >= 0) { + sheet.setColumnWidth(column, 6000); + } else { + // 璁剧疆鍒楀 + sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); } - - /** - * 寰楀埌鎵鏈夊畾涔夊瓧娈 - */ - private void createExcelField() - { - this.fields = getFields(); - this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList()); - this.maxHeight = getRowHeight(); + if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0) { + if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255) { + // 濡傛灉涓嬫媺鏁板ぇ浜15鎴栧瓧绗︿覆闀垮害澶т簬255锛屽垯浣跨敤涓涓柊sheet瀛樺偍锛岄伩鍏嶇敓鎴愮殑妯℃澘涓嬫媺鍊艰幏鍙栦笉鍒 + setXSSFValidationWithHidden(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } else { + // 鎻愮ず淇℃伅鎴栧彧鑳介夋嫨涓嶈兘杈撳叆鐨勫垪鍐呭. + setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } } - - /** - * 鑾峰彇瀛楁娉ㄨВ淇℃伅 - */ - public List getFields() - { - List fields = new ArrayList(); - List tempFields = new ArrayList<>(); - subFieldsMap = new HashMap<>(); - subMethods = new HashMap<>(); - tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); - tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); - if (StringUtils.isNotEmpty(includeFields)) - { - for (Field field : tempFields) - { - if (ArrayUtils.contains(this.includeFields, field.getName()) || field.isAnnotationPresent(Excels.class)) - { - addField(fields, field); - } - } - } - else if (StringUtils.isNotEmpty(excludeFields)) - { - for (Field field : tempFields) - { - if (!ArrayUtils.contains(this.excludeFields, field.getName())) - { - addField(fields, field); - } - } - } - else - { - for (Field field : tempFields) - { - addField(fields, field); - } - } - return fields; + } + + /** 娣诲姞鍗曞厓鏍 */ + public Cell addCell(Excel attr, Row row, T vo, Field field, int column) { + Cell cell = null; + try { + // 璁剧疆琛岄珮 + row.setHeight(maxHeight); + // 鏍规嵁Excel涓缃儏鍐靛喅瀹氭槸鍚﹀鍑,鏈変簺鎯呭喌闇瑕佷繚鎸佷负绌,甯屾湜鐢ㄦ埛濉啓杩欎竴鍒. + if (attr.isExport()) { + // 鍒涘缓cell + cell = row.createCell(column); + if (isSubListValue(vo) && getListCellValue(vo) > 1 && attr.needMerge()) { + if (subMergedLastRowNum >= subMergedFirstRowNum) { + sheet.addMergedRegion( + new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column)); + } + } + cell.setCellStyle( + styles.get( + StringUtils.format( + "data_{}_{}_{}_{}_{}", + attr.align(), + attr.color(), + attr.backgroundColor(), + attr.cellType(), + attr.wrapText()))); + + // 鐢ㄤ簬璇诲彇瀵硅薄涓殑灞炴 + Object value = getTargetValue(vo, field, attr); + String dateFormat = attr.dateFormat(); + String readConverterExp = attr.readConverterExp(); + String separator = attr.separator(); + if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { + cell.getCellStyle() + .setDataFormat(this.wb.getCreationHelper().createDataFormat().getFormat(dateFormat)); + cell.setCellValue(parseDateToStr(dateFormat, value)); + } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); + } else if (value instanceof BigDecimal && -1 != attr.scale()) { + cell.setCellValue( + (((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).doubleValue()); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell)); + } else { + // 璁剧疆鍒楃被鍨 + setCellVo(value, attr, cell); + } + addStatisticsData(column, Convert.toStr(value), attr); + } + } catch (Exception e) { + log.error("瀵煎嚭Excel澶辫触{}", e); } - - /** - * 娣诲姞瀛楁淇℃伅 - */ - public void addField(List fields, Field field) - { - // 鍗曟敞瑙 - if (field.isAnnotationPresent(Excel.class)) - { - Excel attr = field.getAnnotation(Excel.class); - if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) - { - fields.add(new Object[] { field, attr }); - } - if (Collection.class.isAssignableFrom(field.getType())) - { - String fieldName = field.getName(); - subMethods.put(fieldName, getSubMethod(fieldName, clazz)); - ParameterizedType pt = (ParameterizedType) field.getGenericType(); - Class subClass = (Class) pt.getActualTypeArguments()[0]; - subFieldsMap.put(fieldName, FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class)); - } - } - - // 澶氭敞瑙 - if (field.isAnnotationPresent(Excels.class)) - { - Excels attrs = field.getAnnotation(Excels.class); - Excel[] excels = attrs.value(); - for (Excel attr : excels) - { - if (StringUtils.isNotEmpty(includeFields)) - { - if (ArrayUtils.contains(this.includeFields, field.getName() + "." + attr.targetAttr()) - && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) - { - fields.add(new Object[] { field, attr }); - } - } - else - { - if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) - && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) - { - fields.add(new Object[] { field, attr }); - } - } - } - } + return cell; + } + + /** + * 璁剧疆 POI XSSFSheet 鍗曞厓鏍兼彁绀烘垨閫夋嫨妗 + * + * @param sheet 琛ㄥ崟 + * @param textlist 涓嬫媺妗嗘樉绀虹殑鍐呭 + * @param promptContent 鎻愮ず鍐呭 + * @param firstRow 寮濮嬭 + * @param endRow 缁撴潫琛 + * @param firstCol 寮濮嬪垪 + * @param endCol 缁撴潫鍒 + */ + public void setPromptOrValidation( + Sheet sheet, + String[] textlist, + String promptContent, + int firstRow, + int endRow, + int firstCol, + int endCol) { + DataValidationHelper helper = sheet.getDataValidationHelper(); + DataValidationConstraint constraint = + textlist.length > 0 + ? helper.createExplicitListConstraint(textlist) + : helper.createCustomConstraint("DD1"); + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 濡傛灉璁剧疆浜嗘彁绀轰俊鎭垯榧犳爣鏀句笂鍘绘彁绀 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); } - - /** - * 鏍规嵁娉ㄨВ鑾峰彇鏈澶ц楂 - */ - public short getRowHeight() - { - double maxHeight = 0; - for (Object[] os : this.fields) - { - Excel excel = (Excel) os[1]; - maxHeight = Math.max(maxHeight, excel.height()); - } - return (short) (maxHeight * 20); + // 澶勭悊Excel鍏煎鎬ч棶棰 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); } - - /** - * 鍒涘缓涓涓伐浣滅翱 - */ - public void createWorkbook() - { - this.wb = new SXSSFWorkbook(500); - this.sheet = wb.createSheet(); - wb.setSheetName(0, sheetName); - this.styles = createStyles(wb); + sheet.addValidationData(dataValidation); + } + + /** + * 璁剧疆鏌愪簺鍒楃殑鍊煎彧鑳借緭鍏ラ鍒剁殑鏁版嵁,鏄剧ず涓嬫媺妗嗭紙鍏煎瓒呭嚭涓瀹氭暟閲忕殑涓嬫媺妗嗭級. + * + * @param sheet 瑕佽缃殑sheet. + * @param textlist 涓嬫媺妗嗘樉绀虹殑鍐呭 + * @param promptContent 鎻愮ず鍐呭 + * @param firstRow 寮濮嬭 + * @param endRow 缁撴潫琛 + * @param firstCol 寮濮嬪垪 + * @param endCol 缁撴潫鍒 + */ + public void setXSSFValidationWithHidden( + Sheet sheet, + String[] textlist, + String promptContent, + int firstRow, + int endRow, + int firstCol, + int endCol) { + String hideSheetName = "combo_" + firstCol + "_" + endCol; + Sheet hideSheet = null; + String hideSheetDataName = hideSheetName + "_data"; + Name name = wb.getName(hideSheetDataName); + if (name != null) { + // 鍚嶇О宸插瓨鍦紝灏濊瘯浠庡悕绉扮殑寮曠敤涓壘鍒皊heet鍚嶇О + String refersToFormula = name.getRefersToFormula(); + if (StringUtils.isNotEmpty(refersToFormula) && refersToFormula.contains("!")) { + String sheetNameFromFormula = refersToFormula.substring(0, refersToFormula.indexOf("!")); + hideSheet = wb.getSheet(sheetNameFromFormula); + } } - /** - * 鍒涘缓宸ヤ綔琛 - * - * @param sheetNo sheet鏁伴噺 - * @param index 搴忓彿 - */ - public void createSheet(int sheetNo, int index) - { - // 璁剧疆宸ヤ綔琛ㄧ殑鍚嶇О. - if (sheetNo > 1 && index > 0) - { - this.sheet = wb.createSheet(); - this.createTitle(); - int actualIndex = wb.getSheetIndex(this.sheet); - wb.setSheetName(actualIndex, sheetName + index); - } + if (hideSheet == null) { + hideSheet = wb.createSheet(hideSheetName); // 鐢ㄤ簬瀛樺偍 涓嬫媺鑿滃崟鏁版嵁 + for (int i = 0; i < textlist.length; i++) { + hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); + } + // 鍒涘缓鍚嶇О锛屽彲琚叾浠栧崟鍏冩牸寮曠敤 + name = wb.createName(); + name.setNameName(hideSheetDataName); + name.setRefersToFormula(hideSheetName + "!$A$1:$A$" + textlist.length); } - /** - * 鑾峰彇鍗曞厓鏍煎 - * - * @param row 鑾峰彇鐨勮 - * @param column 鑾峰彇鍗曞厓鏍煎垪鍙 - * @return 鍗曞厓鏍煎 - */ - public Object getCellValue(Row row, int column) - { - if (row == null) - { - return row; - } - Object val = ""; - try - { - Cell cell = row.getCell(column); - if (StringUtils.isNotNull(cell)) - { - if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) - { - val = cell.getNumericCellValue(); - if (DateUtil.isCellDateFormatted(cell)) - { - val = DateUtil.getJavaDate((Double) val); // POI Excel 鏃ユ湡鏍煎紡杞崲 - } - else - { - if ((Double) val % 1 != 0) - { - val = new BigDecimal(val.toString()); - } - else - { - val = new DecimalFormat("0").format(val); - } - } - } - else if (cell.getCellType() == CellType.STRING) - { - val = cell.getStringCellValue(); - } - else if (cell.getCellType() == CellType.BOOLEAN) - { - val = cell.getBooleanCellValue(); - } - else if (cell.getCellType() == CellType.ERROR) - { - val = cell.getErrorCellValue(); - } - - } - } - catch (Exception e) - { - return val; - } - return val; + DataValidationHelper helper = sheet.getDataValidationHelper(); + // 鍔犺浇涓嬫媺鍒楄〃鍐呭 + DataValidationConstraint constraint = helper.createFormulaListConstraint(hideSheetDataName); + // 璁剧疆鏁版嵁鏈夋晥鎬у姞杞藉湪鍝釜鍗曞厓鏍间笂,鍥涗釜鍙傛暟鍒嗗埆鏄細璧峰琛屻佺粓姝㈣銆佽捣濮嬪垪銆佺粓姝㈠垪 + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + // 鏁版嵁鏈夋晥鎬у璞 + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 濡傛灉璁剧疆浜嗘彁绀轰俊鎭垯榧犳爣鏀句笂鍘绘彁绀 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); } - - /** - * 鍒ゆ柇鏄惁鏄┖琛 - * - * @param row 鍒ゆ柇鐨勮 - * @return - */ - private boolean isRowEmpty(Row row) - { - if (row == null) - { - return true; - } - for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) - { - Cell cell = row.getCell(i); - if (cell != null && cell.getCellType() != CellType.BLANK) - { - return false; - } - } - return true; + // 澶勭悊Excel鍏煎鎬ч棶棰 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); } - /** - * 鏍煎紡鍖栦笉鍚岀被鍨嬬殑鏃ユ湡瀵硅薄 - * - * @param dateFormat 鏃ユ湡鏍煎紡 - * @param val 琚牸寮忓寲鐨勬棩鏈熷璞 - * @return 鏍煎紡鍖栧悗鐨勬棩鏈熷瓧绗 - */ - public String parseDateToStr(String dateFormat, Object val) - { - if (val == null) - { - return ""; - } - String str; - if (val instanceof Date) - { - str = DateUtils.parseDateToStr(dateFormat, (Date) val); - } - else if (val instanceof LocalDateTime) - { - str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); - } - else if (val instanceof LocalDate) - { - str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); - } - else - { - str = val.toString(); - } - return str; + sheet.addValidationData(dataValidation); + // 璁剧疆hiddenSheet闅愯棌 + wb.setSheetHidden(wb.getSheetIndex(hideSheet), true); + } + + /** + * 瑙f瀽瀵煎嚭鍊 0=鐢,1=濂,2=鏈煡 + * + * @param propertyValue 鍙傛暟鍊 + * @param converterExp 缈昏瘧娉ㄨВ + * @param separator 鍒嗛殧绗 + * @return 瑙f瀽鍚庡 + */ + public static String convertByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(SEPARATOR); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[0].equals(value)) { + propertyString.append(itemArray[1] + separator); + break; + } + } + } else { + if (itemArray[0].equals(propertyValue)) { + return itemArray[1]; + } + } } - - /** - * 鏄惁鏈夊璞$殑瀛愬垪琛 - */ - public boolean isSubList() - { - return !StringUtils.isEmpty(subFieldsMap); + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 鍙嶅悜瑙f瀽鍊 鐢=0,濂=1,鏈煡=2 + * + * @param propertyValue 鍙傛暟鍊 + * @param converterExp 缈昏瘧娉ㄨВ + * @param separator 鍒嗛殧绗 + * @return 瑙f瀽鍚庡 + */ + public static String reverseByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(SEPARATOR); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[1].equals(value)) { + propertyString.append(itemArray[0] + separator); + break; + } + } + } else { + if (itemArray[1].equals(propertyValue)) { + return itemArray[0]; + } + } } - - /** - * 鏄惁鏈夊璞$殑瀛愬垪琛紝闆嗗悎涓嶄负绌 - */ - public boolean isSubListValue(T vo) - { - return !StringUtils.isEmpty(subFieldsMap) && getListCellValue(vo) > 0; + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 鏁版嵁澶勭悊鍣 + * + * @param value 鏁版嵁鍊 + * @param excel 鏁版嵁娉ㄨВ + * @return + */ + public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell) { + try { + Object instance = excel.handler().newInstance(); + Method formatMethod = + excel + .handler() + .getMethod( + "format", new Class[] {Object.class, String[].class, Cell.class, Workbook.class}); + value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb); + } catch (Exception e) { + log.error("涓嶈兘鏍煎紡鍖栨暟鎹 " + excel.handler(), e.getMessage()); + } + return Convert.toStr(value); + } + + /** 鍚堣缁熻淇℃伅 */ + private void addStatisticsData(Integer index, String text, Excel entity) { + if (entity != null && entity.isStatistics()) { + Double temp = 0D; + if (!statistics.containsKey(index)) { + statistics.put(index, temp); + } + try { + temp = Double.valueOf(text); + } catch (NumberFormatException e) { + } + statistics.put(index, statistics.get(index) + temp); + } + } + + /** 鍒涘缓缁熻琛 */ + public void addStatisticsRow() { + if (statistics.size() > 0) { + Row row = sheet.createRow(sheet.getLastRowNum() + 1); + Set keys = statistics.keySet(); + Cell cell = row.createCell(0); + cell.setCellStyle(styles.get("total")); + cell.setCellValue("鍚堣"); + + for (Integer key : keys) { + cell = row.createCell(key); + cell.setCellStyle(styles.get("total")); + cell.setCellValue(statistics.get(key)); + } + statistics.clear(); + } + } + + /** + * 鑾峰彇bean涓殑灞炴у + * + * @param vo 瀹炰綋瀵硅薄 + * @param field 瀛楁 + * @param excel 娉ㄨВ + * @return 鏈缁堢殑灞炴у + * @throws Exception + */ + private Object getTargetValue(T vo, Field field, Excel excel) throws Exception { + field.setAccessible(true); + Object o = field.get(vo); + if (StringUtils.isNotEmpty(excel.targetAttr())) { + String target = excel.targetAttr(); + if (target.contains(".")) { + String[] targets = target.split("[.]"); + for (String name : targets) { + o = getValue(o, name); + } + } else { + o = getValue(o, target); + } + } + return o; + } + + /** + * 浠ョ被鐨勫睘鎬х殑get鏂规硶鏂规硶褰㈠紡鑾峰彇鍊 + * + * @param o + * @param name + * @return value + * @throws Exception + */ + private Object getValue(Object o, String name) throws Exception { + if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) { + Class clazz = o.getClass(); + Field field = clazz.getDeclaredField(name); + field.setAccessible(true); + o = field.get(o); + } + return o; + } + + /** 寰楀埌鎵鏈夊畾涔夊瓧娈 */ + private void createExcelField() { + this.fields = getFields(); + this.fields = + this.fields.stream() + .sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())) + .collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** 鑾峰彇瀛楁娉ㄨВ淇℃伅 */ + public List getFields() { + List fields = new ArrayList(); + List tempFields = new ArrayList<>(); + subFieldsMap = new HashMap<>(); + subMethods = new HashMap<>(); + tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); + if (StringUtils.isNotEmpty(includeFields)) { + for (Field field : tempFields) { + if (ArrayUtils.contains(this.includeFields, field.getName()) + || field.isAnnotationPresent(Excels.class)) { + addField(fields, field); + } + } + } else if (StringUtils.isNotEmpty(excludeFields)) { + for (Field field : tempFields) { + if (!ArrayUtils.contains(this.excludeFields, field.getName())) { + addField(fields, field); + } + } + } else { + for (Field field : tempFields) { + addField(fields, field); + } + } + return fields; + } + + /** 娣诲姞瀛楁淇℃伅 */ + public void addField(List fields, Field field) { + // 鍗曟敞瑙 + if (field.isAnnotationPresent(Excel.class)) { + Excel attr = field.getAnnotation(Excel.class); + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) { + fields.add(new Object[] {field, attr}); + } + if (Collection.class.isAssignableFrom(field.getType())) { + String fieldName = field.getName(); + subMethods.put(fieldName, getSubMethod(fieldName, clazz)); + ParameterizedType pt = (ParameterizedType) field.getGenericType(); + Class subClass = (Class) pt.getActualTypeArguments()[0]; + subFieldsMap.put(fieldName, FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class)); + } } - /** - * 鑾峰彇闆嗗悎鐨勫 - */ - public int getListCellValue(Object obj) - { - Collection value; - int max = 0; - try - { - for (String s : subMethods.keySet()) - { - value = (Collection) subMethods.get(s).invoke(obj); - if (value.size() > max) - { - max = value.size(); - } + // 澶氭敞瑙 + if (field.isAnnotationPresent(Excels.class)) { + Excels attrs = field.getAnnotation(Excels.class); + Excel[] excels = attrs.value(); + for (Excel attr : excels) { + if (StringUtils.isNotEmpty(includeFields)) { + if (ArrayUtils.contains(this.includeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { + fields.add(new Object[] {field, attr}); + } + } else { + if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { + fields.add(new Object[] {field, attr}); + } + } + } + } + } + + /** 鏍规嵁娉ㄨВ鑾峰彇鏈澶ц楂 */ + public short getRowHeight() { + double maxHeight = 0; + for (Object[] os : this.fields) { + Excel excel = (Excel) os[1]; + maxHeight = Math.max(maxHeight, excel.height()); + } + return (short) (maxHeight * 20); + } + + /** 鍒涘缓涓涓伐浣滅翱 */ + public void createWorkbook() { + this.wb = new SXSSFWorkbook(500); + this.sheet = wb.createSheet(); + wb.setSheetName(0, sheetName); + this.styles = createStyles(wb); + } + + /** + * 鍒涘缓宸ヤ綔琛 + * + * @param sheetNo sheet鏁伴噺 + * @param index 搴忓彿 + */ + public void createSheet(int sheetNo, int index) { + // 璁剧疆宸ヤ綔琛ㄧ殑鍚嶇О. + if (sheetNo > 1 && index > 0) { + this.sheet = wb.createSheet(); + this.createTitle(); + int actualIndex = wb.getSheetIndex(this.sheet); + wb.setSheetName(actualIndex, sheetName + index); + } + } + + /** + * 鑾峰彇鍗曞厓鏍煎 + * + * @param row 鑾峰彇鐨勮 + * @param column 鑾峰彇鍗曞厓鏍煎垪鍙 + * @return 鍗曞厓鏍煎 + */ + public Object getCellValue(Row row, int column) { + if (row == null) { + return row; + } + Object val = ""; + try { + Cell cell = row.getCell(column); + if (StringUtils.isNotNull(cell)) { + if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { + val = cell.getNumericCellValue(); + if (DateUtil.isCellDateFormatted(cell)) { + val = DateUtil.getJavaDate((Double) val); // POI Excel 鏃ユ湡鏍煎紡杞崲 + } else { + if ((Double) val % 1 != 0) { + val = new BigDecimal(val.toString()); + } else { + val = new DecimalFormat("0").format(val); } - } - catch (Exception e) - { - return 0; - } - return max; + } + } else if (cell.getCellType() == CellType.STRING) { + val = cell.getStringCellValue(); + } else if (cell.getCellType() == CellType.BOOLEAN) { + val = cell.getBooleanCellValue(); + } else if (cell.getCellType() == CellType.ERROR) { + val = cell.getErrorCellValue(); + } + } + } catch (Exception e) { + return val; } - - /** - * 鑾峰彇瀵硅薄鐨勫瓙鍒楄〃鏂规硶 - * - * @param name 鍚嶇О - * @param pojoClass 绫诲璞 - * @return 瀛愬垪琛ㄦ柟娉 - */ - public Method getSubMethod(String name, Class pojoClass) - { - StringBuffer getMethodName = new StringBuffer("get"); - getMethodName.append(name.substring(0, 1).toUpperCase()); - getMethodName.append(name.substring(1)); - Method method = null; - try - { - method = pojoClass.getMethod(getMethodName.toString(), new Class[] {}); - } - catch (Exception e) - { - log.error("鑾峰彇瀵硅薄寮傚父{}", e.getMessage()); - } - return method; + return val; + } + + /** + * 鍒ゆ柇鏄惁鏄┖琛 + * + * @param row 鍒ゆ柇鐨勮 + * @return + */ + private boolean isRowEmpty(Row row) { + if (row == null) { + return true; + } + for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) { + Cell cell = row.getCell(i); + if (cell != null && cell.getCellType() != CellType.BLANK) { + return false; + } + } + return true; + } + + /** + * 鏍煎紡鍖栦笉鍚岀被鍨嬬殑鏃ユ湡瀵硅薄 + * + * @param dateFormat 鏃ユ湡鏍煎紡 + * @param val 琚牸寮忓寲鐨勬棩鏈熷璞 + * @return 鏍煎紡鍖栧悗鐨勬棩鏈熷瓧绗 + */ + public String parseDateToStr(String dateFormat, Object val) { + if (val == null) { + return ""; + } + String str; + if (val instanceof Date) { + str = DateUtils.parseDateToStr(dateFormat, (Date) val); + } else if (val instanceof LocalDateTime) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); + } else if (val instanceof LocalDate) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); + } else { + str = val.toString(); + } + return str; + } + + /** 鏄惁鏈夊璞$殑瀛愬垪琛 */ + public boolean isSubList() { + return !StringUtils.isEmpty(subFieldsMap); + } + + /** 鏄惁鏈夊璞$殑瀛愬垪琛紝闆嗗悎涓嶄负绌 */ + public boolean isSubListValue(T vo) { + return !StringUtils.isEmpty(subFieldsMap) && getListCellValue(vo) > 0; + } + + /** 鑾峰彇闆嗗悎鐨勫 */ + public int getListCellValue(Object obj) { + Collection value; + int max = 0; + try { + for (String s : subMethods.keySet()) { + value = (Collection) subMethods.get(s).invoke(obj); + if (value.size() > max) { + max = value.size(); + } + } + } catch (Exception e) { + return 0; + } + return max; + } + + /** + * 鑾峰彇瀵硅薄鐨勫瓙鍒楄〃鏂规硶 + * + * @param name 鍚嶇О + * @param pojoClass 绫诲璞 + * @return 瀛愬垪琛ㄦ柟娉 + */ + public Method getSubMethod(String name, Class pojoClass) { + StringBuffer getMethodName = new StringBuffer("get"); + getMethodName.append(name.substring(0, 1).toUpperCase()); + getMethodName.append(name.substring(1)); + Method method = null; + try { + method = pojoClass.getMethod(getMethodName.toString(), new Class[] {}); + } catch (Exception e) { + log.error("鑾峰彇瀵硅薄寮傚父{}", e.getMessage()); } + return method; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java index 3d8382b2e..b00968cd9 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java @@ -1,5 +1,7 @@ package com.ruoyi.common.core.utils.reflect; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.utils.DateUtils; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -12,399 +14,305 @@ import org.apache.commons.lang3.Validate; import org.apache.poi.ss.usermodel.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.core.utils.DateUtils; /** * 鍙嶅皠宸ュ叿绫. 鎻愪緵璋冪敤getter/setter鏂规硶, 璁块棶绉佹湁鍙橀噺, 璋冪敤绉佹湁鏂规硶, 鑾峰彇娉涘瀷绫诲瀷Class, 琚獳OP杩囩殑鐪熷疄绫荤瓑宸ュ叿鍑芥暟. - * + * * @author ruoyi */ @SuppressWarnings("rawtypes") -public class ReflectUtils -{ - private static final String SETTER_PREFIX = "set"; +public class ReflectUtils { + private static final String SETTER_PREFIX = "set"; - private static final String GETTER_PREFIX = "get"; + private static final String GETTER_PREFIX = "get"; - private static final String CGLIB_CLASS_SEPARATOR = "$$"; + private static final String CGLIB_CLASS_SEPARATOR = "$$"; - private static Logger logger = LoggerFactory.getLogger(ReflectUtils.class); + private static Logger logger = LoggerFactory.getLogger(ReflectUtils.class); - /** - * 璋冪敤Getter鏂规硶. - * 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚.鏂规硶 - */ - @SuppressWarnings("unchecked") - public static E invokeGetter(Object obj, String propertyName) - { - Object object = obj; - for (String name : StringUtils.split(propertyName, ".")) - { - String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(name); - object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); - } - return (E) object; + /** 璋冪敤Getter鏂规硶. 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚.鏂规硶 */ + @SuppressWarnings("unchecked") + public static E invokeGetter(Object obj, String propertyName) { + Object object = obj; + for (String name : StringUtils.split(propertyName, ".")) { + String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(name); + object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); } + return (E) object; + } - /** - * 璋冪敤Setter鏂规硶, 浠呭尮閰嶆柟娉曞悕銆 - * 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚.鏂规硶 - */ - public static void invokeSetter(Object obj, String propertyName, E value) - { - Object object = obj; - String[] names = StringUtils.split(propertyName, "."); - for (int i = 0; i < names.length; i++) - { - if (i < names.length - 1) - { - String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(names[i]); - object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); - } - else - { - String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(names[i]); - invokeMethodByName(object, setterMethodName, new Object[] { value }); - } - } + /** 璋冪敤Setter鏂规硶, 浠呭尮閰嶆柟娉曞悕銆 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚.鏂规硶 */ + public static void invokeSetter(Object obj, String propertyName, E value) { + Object object = obj; + String[] names = StringUtils.split(propertyName, "."); + for (int i = 0; i < names.length; i++) { + if (i < names.length - 1) { + String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(names[i]); + object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); + } else { + String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(names[i]); + invokeMethodByName(object, setterMethodName, new Object[] {value}); + } } + } - /** - * 鐩存帴璇诲彇瀵硅薄灞炴у, 鏃犺private/protected淇グ绗, 涓嶇粡杩噂etter鍑芥暟. - */ - @SuppressWarnings("unchecked") - public static E getFieldValue(final Object obj, final String fieldName) - { - Field field = getAccessibleField(obj, fieldName); - if (field == null) - { - logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] 瀛楁 "); - return null; - } - E result = null; - try - { - result = (E) field.get(obj); - } - catch (IllegalAccessException e) - { - logger.error("涓嶅彲鑳芥姏鍑虹殑寮傚父{}", e.getMessage()); - } - return result; + /** 鐩存帴璇诲彇瀵硅薄灞炴у, 鏃犺private/protected淇グ绗, 涓嶇粡杩噂etter鍑芥暟. */ + @SuppressWarnings("unchecked") + public static E getFieldValue(final Object obj, final String fieldName) { + Field field = getAccessibleField(obj, fieldName); + if (field == null) { + logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] 瀛楁 "); + return null; } - - /** - * 鐩存帴璁剧疆瀵硅薄灞炴у, 鏃犺private/protected淇グ绗, 涓嶇粡杩噑etter鍑芥暟. - */ - public static void setFieldValue(final Object obj, final String fieldName, final E value) - { - Field field = getAccessibleField(obj, fieldName); - if (field == null) - { - // throw new IllegalArgumentException("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] 瀛楁 "); - logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] 瀛楁 "); - return; - } - try - { - field.set(obj, value); - } - catch (IllegalAccessException e) - { - logger.error("涓嶅彲鑳芥姏鍑虹殑寮傚父: {}", e.getMessage()); - } + E result = null; + try { + result = (E) field.get(obj); + } catch (IllegalAccessException e) { + logger.error("涓嶅彲鑳芥姏鍑虹殑寮傚父{}", e.getMessage()); } + return result; + } - /** - * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗. - * 鐢ㄤ簬涓娆℃ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethod()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢. - * 鍚屾椂鍖归厤鏂规硶鍚+鍙傛暟绫诲瀷锛 - */ - @SuppressWarnings("unchecked") - public static E invokeMethod(final Object obj, final String methodName, final Class[] parameterTypes, - final Object[] args) - { - if (obj == null || methodName == null) - { - return null; - } - Method method = getAccessibleMethod(obj, methodName, parameterTypes); - if (method == null) - { - logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + methodName + "] 鏂规硶 "); - return null; - } - try - { - return (E) method.invoke(obj, args); - } - catch (Exception e) - { - String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; - throw convertReflectionExceptionToUnchecked(msg, e); - } + /** 鐩存帴璁剧疆瀵硅薄灞炴у, 鏃犺private/protected淇グ绗, 涓嶇粡杩噑etter鍑芥暟. */ + public static void setFieldValue(final Object obj, final String fieldName, final E value) { + Field field = getAccessibleField(obj, fieldName); + if (field == null) { + // throw new IllegalArgumentException("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] + // 瀛楁 "); + logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + fieldName + "] 瀛楁 "); + return; } + try { + field.set(obj, value); + } catch (IllegalAccessException e) { + logger.error("涓嶅彲鑳芥姏鍑虹殑寮傚父: {}", e.getMessage()); + } + } - /** - * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗︼紝 - * 鐢ㄤ簬涓娆℃ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethodByName()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢. - * 鍙尮閰嶅嚱鏁板悕锛屽鏋滄湁澶氫釜鍚屽悕鍑芥暟璋冪敤绗竴涓 - */ - @SuppressWarnings("unchecked") - public static E invokeMethodByName(final Object obj, final String methodName, final Object[] args) - { - Method method = getAccessibleMethodByName(obj, methodName, args.length); - if (method == null) - { - // 濡傛灉涓虹┖涓嶆姤閿欙紝鐩存帴杩斿洖绌恒 - logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + methodName + "] 鏂规硶 "); - return null; - } - try - { - // 绫诲瀷杞崲锛堝皢鍙傛暟鏁版嵁绫诲瀷杞崲涓虹洰鏍囨柟娉曞弬鏁扮被鍨嬶級 - Class[] cs = method.getParameterTypes(); - for (int i = 0; i < cs.length; i++) - { - if (args[i] != null && !args[i].getClass().equals(cs[i])) - { - if (cs[i] == String.class) - { - args[i] = Convert.toStr(args[i]); - if (StringUtils.endsWith((String) args[i], ".0")) - { - args[i] = StringUtils.substringBefore((String) args[i], ".0"); - } - } - else if (cs[i] == Integer.class) - { - args[i] = Convert.toInt(args[i]); - } - else if (cs[i] == Long.class) - { - args[i] = Convert.toLong(args[i]); - } - else if (cs[i] == Double.class) - { - args[i] = Convert.toDouble(args[i]); - } - else if (cs[i] == Float.class) - { - args[i] = Convert.toFloat(args[i]); - } - else if (cs[i] == Date.class) - { - if (args[i] instanceof String) - { - args[i] = DateUtils.parseDate(args[i]); - } - else - { - args[i] = DateUtil.getJavaDate((Double) args[i]); - } - } - else if (cs[i] == boolean.class || cs[i] == Boolean.class) - { - args[i] = Convert.toBool(args[i]); - } - } - } - return (E) method.invoke(obj, args); - } - catch (Exception e) - { - String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; - throw convertReflectionExceptionToUnchecked(msg, e); - } + /** + * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗. 鐢ㄤ簬涓娆℃ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethod()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢. + * 鍚屾椂鍖归厤鏂规硶鍚+鍙傛暟绫诲瀷锛 + */ + @SuppressWarnings("unchecked") + public static E invokeMethod( + final Object obj, + final String methodName, + final Class[] parameterTypes, + final Object[] args) { + if (obj == null || methodName == null) { + return null; + } + Method method = getAccessibleMethod(obj, methodName, parameterTypes); + if (method == null) { + logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + methodName + "] 鏂规硶 "); + return null; } + try { + return (E) method.invoke(obj, args); + } catch (Exception e) { + String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; + throw convertReflectionExceptionToUnchecked(msg, e); + } + } - /** - * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredField, 骞跺己鍒惰缃负鍙闂. - * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. - */ - public static Field getAccessibleField(final Object obj, final String fieldName) - { - // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null - if (obj == null) - { - return null; - } - Validate.notBlank(fieldName, "fieldName can't be blank"); - for (Class superClass = obj.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) - { - try - { - Field field = superClass.getDeclaredField(fieldName); - makeAccessible(field); - return field; + /** + * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗︼紝 鐢ㄤ簬涓娆℃ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethodByName()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢. + * 鍙尮閰嶅嚱鏁板悕锛屽鏋滄湁澶氫釜鍚屽悕鍑芥暟璋冪敤绗竴涓 + */ + @SuppressWarnings("unchecked") + public static E invokeMethodByName( + final Object obj, final String methodName, final Object[] args) { + Method method = getAccessibleMethodByName(obj, methodName, args.length); + if (method == null) { + // 濡傛灉涓虹┖涓嶆姤閿欙紝鐩存帴杩斿洖绌恒 + logger.debug("鍦 [" + obj.getClass() + "] 涓紝娌℃湁鎵惧埌 [" + methodName + "] 鏂规硶 "); + return null; + } + try { + // 绫诲瀷杞崲锛堝皢鍙傛暟鏁版嵁绫诲瀷杞崲涓虹洰鏍囨柟娉曞弬鏁扮被鍨嬶級 + Class[] cs = method.getParameterTypes(); + for (int i = 0; i < cs.length; i++) { + if (args[i] != null && !args[i].getClass().equals(cs[i])) { + if (cs[i] == String.class) { + args[i] = Convert.toStr(args[i]); + if (StringUtils.endsWith((String) args[i], ".0")) { + args[i] = StringUtils.substringBefore((String) args[i], ".0"); } - catch (NoSuchFieldException e) - { - continue; + } else if (cs[i] == Integer.class) { + args[i] = Convert.toInt(args[i]); + } else if (cs[i] == Long.class) { + args[i] = Convert.toLong(args[i]); + } else if (cs[i] == Double.class) { + args[i] = Convert.toDouble(args[i]); + } else if (cs[i] == Float.class) { + args[i] = Convert.toFloat(args[i]); + } else if (cs[i] == Date.class) { + if (args[i] instanceof String) { + args[i] = DateUtils.parseDate(args[i]); + } else { + args[i] = DateUtil.getJavaDate((Double) args[i]); } + } else if (cs[i] == boolean.class || cs[i] == Boolean.class) { + args[i] = Convert.toBool(args[i]); + } } - return null; + } + return (E) method.invoke(obj, args); + } catch (Exception e) { + String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; + throw convertReflectionExceptionToUnchecked(msg, e); } + } - /** - * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂. - * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. - * 鍖归厤鍑芥暟鍚+鍙傛暟绫诲瀷銆 - * 鐢ㄤ簬鏂规硶闇瑕佽澶氭璋冪敤鐨勬儏鍐. 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args) - */ - public static Method getAccessibleMethod(final Object obj, final String methodName, - final Class... parameterTypes) - { - // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null - if (obj == null) - { - return null; - } - Validate.notBlank(methodName, "methodName can't be blank"); - for (Class searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) - { - try - { - Method method = searchType.getDeclaredMethod(methodName, parameterTypes); - makeAccessible(method); - return method; - } - catch (NoSuchMethodException e) - { - continue; - } - } - return null; + /** 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredField, 骞跺己鍒惰缃负鍙闂. 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. */ + public static Field getAccessibleField(final Object obj, final String fieldName) { + // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null + if (obj == null) { + return null; } + Validate.notBlank(fieldName, "fieldName can't be blank"); + for (Class superClass = obj.getClass(); + superClass != Object.class; + superClass = superClass.getSuperclass()) { + try { + Field field = superClass.getDeclaredField(fieldName); + makeAccessible(field); + return field; + } catch (NoSuchFieldException e) { + continue; + } + } + return null; + } - /** - * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂. - * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. - * 鍙尮閰嶅嚱鏁板悕銆 - * 鐢ㄤ簬鏂规硶闇瑕佽澶氭璋冪敤鐨勬儏鍐. 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args) - */ - public static Method getAccessibleMethodByName(final Object obj, final String methodName, int argsNum) - { - // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null - if (obj == null) - { - return null; - } - Validate.notBlank(methodName, "methodName can't be blank"); - for (Class searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) - { - Method[] methods = searchType.getDeclaredMethods(); - for (Method method : methods) - { - if (method.getName().equals(methodName) && method.getParameterTypes().length == argsNum) - { - makeAccessible(method); - return method; - } - } - } - return null; + /** + * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂. 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. 鍖归厤鍑芥暟鍚+鍙傛暟绫诲瀷銆 鐢ㄤ簬鏂规硶闇瑕佽澶氭璋冪敤鐨勬儏鍐. + * 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args) + */ + public static Method getAccessibleMethod( + final Object obj, final String methodName, final Class... parameterTypes) { + // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null + if (obj == null) { + return null; + } + Validate.notBlank(methodName, "methodName can't be blank"); + for (Class searchType = obj.getClass(); + searchType != Object.class; + searchType = searchType.getSuperclass()) { + try { + Method method = searchType.getDeclaredMethod(methodName, parameterTypes); + makeAccessible(method); + return method; + } catch (NoSuchMethodException e) { + continue; + } } + return null; + } - /** - * 鏀瑰彉private/protected鐨勬柟娉曚负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨ㄣ - */ - public static void makeAccessible(Method method) - { - if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) - && !method.isAccessible()) - { - method.setAccessible(true); + /** + * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂. 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒, 杩斿洖null. 鍙尮閰嶅嚱鏁板悕銆 鐢ㄤ簬鏂规硶闇瑕佽澶氭璋冪敤鐨勬儏鍐. + * 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args) + */ + public static Method getAccessibleMethodByName( + final Object obj, final String methodName, int argsNum) { + // 涓虹┖涓嶆姤閿欍傜洿鎺ヨ繑鍥 null + if (obj == null) { + return null; + } + Validate.notBlank(methodName, "methodName can't be blank"); + for (Class searchType = obj.getClass(); + searchType != Object.class; + searchType = searchType.getSuperclass()) { + Method[] methods = searchType.getDeclaredMethods(); + for (Method method : methods) { + if (method.getName().equals(methodName) && method.getParameterTypes().length == argsNum) { + makeAccessible(method); + return method; } + } } + return null; + } - /** - * 鏀瑰彉private/protected鐨勬垚鍛樺彉閲忎负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨ㄣ - */ - public static void makeAccessible(Field field) - { - if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) - || Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) - { - field.setAccessible(true); - } + /** 鏀瑰彉private/protected鐨勬柟娉曚负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨ㄣ */ + public static void makeAccessible(Method method) { + if ((!Modifier.isPublic(method.getModifiers()) + || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) + && !method.isAccessible()) { + method.setAccessible(true); } + } - /** - * 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑娉涘瀷鍙傛暟鐨勭被鍨, 娉ㄦ剰娉涘瀷蹇呴』瀹氫箟鍦ㄧ埗绫诲 - * 濡傛棤娉曟壘鍒, 杩斿洖Object.class. - */ - @SuppressWarnings("unchecked") - public static Class getClassGenricType(final Class clazz) - { - return getClassGenricType(clazz, 0); + /** 鏀瑰彉private/protected鐨勬垚鍛樺彉閲忎负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨ㄣ */ + public static void makeAccessible(Field field) { + if ((!Modifier.isPublic(field.getModifiers()) + || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) + || Modifier.isFinal(field.getModifiers())) + && !field.isAccessible()) { + field.setAccessible(true); } + } - /** - * 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑鐖剁被鐨勬硾鍨嬪弬鏁扮殑绫诲瀷. - * 濡傛棤娉曟壘鍒, 杩斿洖Object.class. - */ - public static Class getClassGenricType(final Class clazz, final int index) - { - Type genType = clazz.getGenericSuperclass(); + /** 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑娉涘瀷鍙傛暟鐨勭被鍨, 娉ㄦ剰娉涘瀷蹇呴』瀹氫箟鍦ㄧ埗绫诲 濡傛棤娉曟壘鍒, 杩斿洖Object.class. */ + @SuppressWarnings("unchecked") + public static Class getClassGenricType(final Class clazz) { + return getClassGenricType(clazz, 0); + } - if (!(genType instanceof ParameterizedType)) - { - logger.debug(clazz.getSimpleName() + "'s superclass not ParameterizedType"); - return Object.class; - } + /** 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑鐖剁被鐨勬硾鍨嬪弬鏁扮殑绫诲瀷. 濡傛棤娉曟壘鍒, 杩斿洖Object.class. */ + public static Class getClassGenricType(final Class clazz, final int index) { + Type genType = clazz.getGenericSuperclass(); - Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); + if (!(genType instanceof ParameterizedType)) { + logger.debug(clazz.getSimpleName() + "'s superclass not ParameterizedType"); + return Object.class; + } - if (index >= params.length || index < 0) - { - logger.debug("Index: " + index + ", Size of " + clazz.getSimpleName() + "'s Parameterized Type: " - + params.length); - return Object.class; - } - if (!(params[index] instanceof Class)) - { - logger.debug(clazz.getSimpleName() + " not set the actual class on superclass generic parameter"); - return Object.class; - } + Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); - return (Class) params[index]; + if (index >= params.length || index < 0) { + logger.debug( + "Index: " + + index + + ", Size of " + + clazz.getSimpleName() + + "'s Parameterized Type: " + + params.length); + return Object.class; + } + if (!(params[index] instanceof Class)) { + logger.debug( + clazz.getSimpleName() + " not set the actual class on superclass generic parameter"); + return Object.class; } - public static Class getUserClass(Object instance) - { - if (instance == null) - { - throw new RuntimeException("Instance must not be null"); - } - Class clazz = instance.getClass(); - if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) - { - Class superClass = clazz.getSuperclass(); - if (superClass != null && !Object.class.equals(superClass)) - { - return superClass; - } - } - return clazz; + return (Class) params[index]; + } + public static Class getUserClass(Object instance) { + if (instance == null) { + throw new RuntimeException("Instance must not be null"); } + Class clazz = instance.getClass(); + if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) { + Class superClass = clazz.getSuperclass(); + if (superClass != null && !Object.class.equals(superClass)) { + return superClass; + } + } + return clazz; + } - /** - * 灏嗗弽灏勬椂鐨刢hecked exception杞崲涓簎nchecked exception. - */ - public static RuntimeException convertReflectionExceptionToUnchecked(String msg, Exception e) - { - if (e instanceof IllegalAccessException || e instanceof IllegalArgumentException - || e instanceof NoSuchMethodException) - { - return new IllegalArgumentException(msg, e); - } - else if (e instanceof InvocationTargetException) - { - return new RuntimeException(msg, ((InvocationTargetException) e).getTargetException()); - } - return new RuntimeException(msg, e); + /** 灏嗗弽灏勬椂鐨刢hecked exception杞崲涓簎nchecked exception. */ + public static RuntimeException convertReflectionExceptionToUnchecked(String msg, Exception e) { + if (e instanceof IllegalAccessException + || e instanceof IllegalArgumentException + || e instanceof NoSuchMethodException) { + return new IllegalArgumentException(msg, e); + } else if (e instanceof InvocationTargetException) { + return new RuntimeException(msg, ((InvocationTargetException) e).getTargetException()); } + return new RuntimeException(msg, e); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sign/Base64.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sign/Base64.java index 6f6e8d3dd..b34d5f99c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sign/Base64.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sign/Base64.java @@ -2,290 +2,253 @@ package com.ruoyi.common.core.utils.sign; /** * Base64宸ュ叿绫 - * + * * @author ruoyi */ -public final class Base64 -{ - static private final int BASELENGTH = 128; - static private final int LOOKUPLENGTH = 64; - static private final int TWENTYFOURBITGROUP = 24; - static private final int EIGHTBIT = 8; - static private final int SIXTEENBIT = 16; - static private final int FOURBYTE = 4; - static private final int SIGN = -128; - static private final char PAD = '='; - static final private byte[] base64Alphabet = new byte[BASELENGTH]; - static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; - - static - { - for (int i = 0; i < BASELENGTH; ++i) - { - base64Alphabet[i] = -1; - } - for (int i = 'Z'; i >= 'A'; i--) - { - base64Alphabet[i] = (byte) (i - 'A'); - } - for (int i = 'z'; i >= 'a'; i--) - { - base64Alphabet[i] = (byte) (i - 'a' + 26); - } - - for (int i = '9'; i >= '0'; i--) - { - base64Alphabet[i] = (byte) (i - '0' + 52); - } - - base64Alphabet['+'] = 62; - base64Alphabet['/'] = 63; +public final class Base64 { + private static final int BASELENGTH = 128; + private static final int LOOKUPLENGTH = 64; + private static final int TWENTYFOURBITGROUP = 24; + private static final int EIGHTBIT = 8; + private static final int SIXTEENBIT = 16; + private static final int FOURBYTE = 4; + private static final int SIGN = -128; + private static final char PAD = '='; + private static final byte[] base64Alphabet = new byte[BASELENGTH]; + private static final char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; + + static { + for (int i = 0; i < BASELENGTH; ++i) { + base64Alphabet[i] = -1; + } + for (int i = 'Z'; i >= 'A'; i--) { + base64Alphabet[i] = (byte) (i - 'A'); + } + for (int i = 'z'; i >= 'a'; i--) { + base64Alphabet[i] = (byte) (i - 'a' + 26); + } - for (int i = 0; i <= 25; i++) - { - lookUpBase64Alphabet[i] = (char) ('A' + i); - } + for (int i = '9'; i >= '0'; i--) { + base64Alphabet[i] = (byte) (i - '0' + 52); + } - for (int i = 26, j = 0; i <= 51; i++, j++) - { - lookUpBase64Alphabet[i] = (char) ('a' + j); - } + base64Alphabet['+'] = 62; + base64Alphabet['/'] = 63; - for (int i = 52, j = 0; i <= 61; i++, j++) - { - lookUpBase64Alphabet[i] = (char) ('0' + j); - } - lookUpBase64Alphabet[62] = (char) '+'; - lookUpBase64Alphabet[63] = (char) '/'; + for (int i = 0; i <= 25; i++) { + lookUpBase64Alphabet[i] = (char) ('A' + i); } - private static boolean isWhiteSpace(char octect) - { - return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); + for (int i = 26, j = 0; i <= 51; i++, j++) { + lookUpBase64Alphabet[i] = (char) ('a' + j); } - private static boolean isPad(char octect) - { - return (octect == PAD); + for (int i = 52, j = 0; i <= 61; i++, j++) { + lookUpBase64Alphabet[i] = (char) ('0' + j); } - - private static boolean isData(char octect) - { - return (octect < BASELENGTH && base64Alphabet[octect] != -1); + lookUpBase64Alphabet[62] = (char) '+'; + lookUpBase64Alphabet[63] = (char) '/'; + } + + private static boolean isWhiteSpace(char octect) { + return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); + } + + private static boolean isPad(char octect) { + return (octect == PAD); + } + + private static boolean isData(char octect) { + return (octect < BASELENGTH && base64Alphabet[octect] != -1); + } + + /** + * Encodes hex octects into Base64 + * + * @param binaryData Array containing binaryData + * @return Encoded Base64 array + */ + public static String encode(byte[] binaryData) { + if (binaryData == null) { + return null; } - /** - * Encodes hex octects into Base64 - * - * @param binaryData Array containing binaryData - * @return Encoded Base64 array - */ - public static String encode(byte[] binaryData) - { - if (binaryData == null) - { - return null; - } - - int lengthDataBits = binaryData.length * EIGHTBIT; - if (lengthDataBits == 0) - { - return ""; - } - - int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; - int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; - int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets; - char encodedData[] = null; + int lengthDataBits = binaryData.length * EIGHTBIT; + if (lengthDataBits == 0) { + return ""; + } - encodedData = new char[numberQuartet * 4]; + int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; + int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; + int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets; + char encodedData[] = null; - byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; + encodedData = new char[numberQuartet * 4]; - int encodedIndex = 0; - int dataIndex = 0; + byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; - for (int i = 0; i < numberTriplets; i++) - { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; + int encodedIndex = 0; + int dataIndex = 0; - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); + for (int i = 0; i < numberTriplets; i++) { + b1 = binaryData[dataIndex++]; + b2 = binaryData[dataIndex++]; + b3 = binaryData[dataIndex++]; - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); - byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc); + l = (byte) (b2 & 0x0f); + k = (byte) (b1 & 0x03); - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; - } + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); + byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc); - // form integral number of 6-bit groups - if (fewerThan24bits == EIGHTBIT) - { - b1 = binaryData[dataIndex]; - k = (byte) (b1 & 0x03); - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = PAD; - encodedData[encodedIndex++] = PAD; - } - else if (fewerThan24bits == SIXTEENBIT) - { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = PAD; - } - return new String(encodedData); + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; } - /** - * Decodes Base64 data into octects - * - * @param encoded string containing Base64 data - * @return Array containind decoded data. - */ - public static byte[] decode(String encoded) - { - if (encoded == null) - { - return null; - } - - char[] base64Data = encoded.toCharArray(); - // remove white spaces - int len = removeWhiteSpace(base64Data); - - if (len % FOURBYTE != 0) - { - return null;// should be divisible by four - } + // form integral number of 6-bit groups + if (fewerThan24bits == EIGHTBIT) { + b1 = binaryData[dataIndex]; + k = (byte) (b1 & 0x03); + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; + encodedData[encodedIndex++] = PAD; + encodedData[encodedIndex++] = PAD; + } else if (fewerThan24bits == SIXTEENBIT) { + b1 = binaryData[dataIndex]; + b2 = binaryData[dataIndex + 1]; + l = (byte) (b2 & 0x0f); + k = (byte) (b1 & 0x03); + + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); + + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; + encodedData[encodedIndex++] = PAD; + } + return new String(encodedData); + } + + /** + * Decodes Base64 data into octects + * + * @param encoded string containing Base64 data + * @return Array containind decoded data. + */ + public static byte[] decode(String encoded) { + if (encoded == null) { + return null; + } - int numberQuadruple = (len / FOURBYTE); + char[] base64Data = encoded.toCharArray(); + // remove white spaces + int len = removeWhiteSpace(base64Data); - if (numberQuadruple == 0) - { - return new byte[0]; - } + if (len % FOURBYTE != 0) { + return null; // should be divisible by four + } - byte decodedData[] = null; - byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; - char d1 = 0, d2 = 0, d3 = 0, d4 = 0; + int numberQuadruple = (len / FOURBYTE); - int i = 0; - int encodedIndex = 0; - int dataIndex = 0; - decodedData = new byte[(numberQuadruple) * 3]; + if (numberQuadruple == 0) { + return new byte[0]; + } - for (; i < numberQuadruple - 1; i++) - { + byte decodedData[] = null; + byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; + char d1 = 0, d2 = 0, d3 = 0, d4 = 0; - if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++])) - || !isData((d3 = base64Data[dataIndex++])) || !isData((d4 = base64Data[dataIndex++]))) - { - return null; - } // if found "no data" just return null + int i = 0; + int encodedIndex = 0; + int dataIndex = 0; + decodedData = new byte[(numberQuadruple) * 3]; - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; + for (; i < numberQuadruple - 1; i++) { - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - } + if (!isData((d1 = base64Data[dataIndex++])) + || !isData((d2 = base64Data[dataIndex++])) + || !isData((d3 = base64Data[dataIndex++])) + || !isData((d4 = base64Data[dataIndex++]))) { + return null; + } // if found "no data" just return null - if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) - { - return null;// if found "no data" just return null - } + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (!isData((d3)) || !isData((d4))) - {// Check if they are PAD characters - if (isPad(d3) && isPad(d4)) - { - if ((b2 & 0xf) != 0)// last 4 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 1]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); - return tmp; - } - else if (!isPad(d3) && isPad(d4)) - { - b3 = base64Alphabet[d3]; - if ((b3 & 0x3) != 0)// last 2 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 2]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - return tmp; - } - else - { - return null; - } - } - else - { // No PAD e.g 3cQl - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); + decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); + } - } - return decodedData; + if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) { + return null; // if found "no data" just return null } - /** - * remove WhiteSpace from MIME containing encoded Base64 data. - * - * @param data the byte array of base64 data (with WS) - * @return the new length - */ - private static int removeWhiteSpace(char[] data) - { - if (data == null) - { - return 0; - } + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + + d3 = base64Data[dataIndex++]; + d4 = base64Data[dataIndex++]; + if (!isData((d3)) || !isData((d4))) { // Check if they are PAD characters + if (isPad(d3) && isPad(d4)) { + if ((b2 & 0xf) != 0) // last 4 bits should be zero + { + return null; + } + byte[] tmp = new byte[i * 3 + 1]; + System.arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); + return tmp; + } else if (!isPad(d3) && isPad(d4)) { + b3 = base64Alphabet[d3]; + if ((b3 & 0x3) != 0) // last 2 bits should be zero + { + return null; + } + byte[] tmp = new byte[i * 3 + 2]; + System.arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + return tmp; + } else { + return null; + } + } else { // No PAD e.g 3cQl + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); + } + return decodedData; + } + + /** + * remove WhiteSpace from MIME containing encoded Base64 data. + * + * @param data the byte array of base64 data (with WS) + * @return the new length + */ + private static int removeWhiteSpace(char[] data) { + if (data == null) { + return 0; + } - // count characters that's not whitespace - int newSize = 0; - int len = data.length; - for (int i = 0; i < len; i++) - { - if (!isWhiteSpace(data[i])) - { - data[newSize++] = data[i]; - } - } - return newSize; + // count characters that's not whitespace + int newSize = 0; + int len = data.length; + for (int i = 0; i < len; i++) { + if (!isWhiteSpace(data[i])) { + data[newSize++] = data[i]; + } } + return newSize; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sql/SqlUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sql/SqlUtil.java index 79eef9295..4d0e8a088 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sql/SqlUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/sql/SqlUtil.java @@ -5,66 +5,46 @@ import com.ruoyi.common.core.utils.StringUtils; /** * sql鎿嶄綔宸ュ叿绫 - * + * * @author ruoyi */ -public class SqlUtil -{ - /** - * 瀹氫箟甯哥敤鐨 sql鍏抽敭瀛 - */ - public static String SQL_REGEX = "\u000B|and |extractvalue|updatexml|sleep|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |or |union |like |+|/*|user()"; +public class SqlUtil { + /** 瀹氫箟甯哥敤鐨 sql鍏抽敭瀛 */ + public static String SQL_REGEX = + "\u000B|and |extractvalue|updatexml|sleep|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |or |union |like |+|/*|user()"; - /** - * 浠呮敮鎸佸瓧姣嶃佹暟瀛椼佷笅鍒掔嚎銆佺┖鏍笺侀楀彿銆佸皬鏁扮偣锛堟敮鎸佸涓瓧娈垫帓搴忥級 - */ - public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; + /** 浠呮敮鎸佸瓧姣嶃佹暟瀛椼佷笅鍒掔嚎銆佺┖鏍笺侀楀彿銆佸皬鏁扮偣锛堟敮鎸佸涓瓧娈垫帓搴忥級 */ + public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; - /** - * 闄愬埗orderBy鏈澶ч暱搴 - */ - private static final int ORDER_BY_MAX_LENGTH = 500; + /** 闄愬埗orderBy鏈澶ч暱搴 */ + private static final int ORDER_BY_MAX_LENGTH = 500; - /** - * 妫鏌ュ瓧绗︼紝闃叉娉ㄥ叆缁曡繃 - */ - public static String escapeOrderBySql(String value) - { - if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) - { - throw new UtilException("鍙傛暟涓嶇鍚堣鑼冿紝涓嶈兘杩涜鏌ヨ"); - } - if (StringUtils.length(value) > ORDER_BY_MAX_LENGTH) - { - throw new UtilException("鍙傛暟宸茶秴杩囨渶澶ч檺鍒讹紝涓嶈兘杩涜鏌ヨ"); - } - return value; + /** 妫鏌ュ瓧绗︼紝闃叉娉ㄥ叆缁曡繃 */ + public static String escapeOrderBySql(String value) { + if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) { + throw new UtilException("鍙傛暟涓嶇鍚堣鑼冿紝涓嶈兘杩涜鏌ヨ"); } - - /** - * 楠岃瘉 order by 璇硶鏄惁绗﹀悎瑙勮寖 - */ - public static boolean isValidOrderBySql(String value) - { - return value.matches(SQL_PATTERN); + if (StringUtils.length(value) > ORDER_BY_MAX_LENGTH) { + throw new UtilException("鍙傛暟宸茶秴杩囨渶澶ч檺鍒讹紝涓嶈兘杩涜鏌ヨ"); } + return value; + } + + /** 楠岃瘉 order by 璇硶鏄惁绗﹀悎瑙勮寖 */ + public static boolean isValidOrderBySql(String value) { + return value.matches(SQL_PATTERN); + } - /** - * SQL鍏抽敭瀛楁鏌 - */ - public static void filterKeyword(String value) - { - if (StringUtils.isEmpty(value)) - { - return; - } - String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|"); - for (String sqlKeyword : sqlKeywords) - { - if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) - { - throw new UtilException("鍙傛暟瀛樺湪SQL娉ㄥ叆椋庨櫓"); - } - } + /** SQL鍏抽敭瀛楁鏌 */ + public static void filterKeyword(String value) { + if (StringUtils.isEmpty(value)) { + return; + } + String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|"); + for (String sqlKeyword : sqlKeywords) { + if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) { + throw new UtilException("鍙傛暟瀛樺湪SQL娉ㄥ叆椋庨櫓"); + } } + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/IdUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/IdUtils.java index 64d90246f..276bdff71 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/IdUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/IdUtils.java @@ -2,48 +2,43 @@ package com.ruoyi.common.core.utils.uuid; /** * ID鐢熸垚鍣ㄥ伐鍏风被 - * + * * @author ruoyi */ -public class IdUtils -{ - /** - * 鑾峰彇闅忔満UUID - * - * @return 闅忔満UUID - */ - public static String randomUUID() - { - return UUID.randomUUID().toString(); - } +public class IdUtils { + /** + * 鑾峰彇闅忔満UUID + * + * @return 闅忔満UUID + */ + public static String randomUUID() { + return UUID.randomUUID().toString(); + } - /** - * 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 - * - * @return 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 - */ - public static String simpleUUID() - { - return UUID.randomUUID().toString(true); - } + /** + * 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 + * + * @return 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 + */ + public static String simpleUUID() { + return UUID.randomUUID().toString(true); + } - /** - * 鑾峰彇闅忔満UUID锛屼娇鐢ㄦц兘鏇村ソ鐨凾hreadLocalRandom鐢熸垚UUID - * - * @return 闅忔満UUID - */ - public static String fastUUID() - { - return UUID.fastUUID().toString(); - } + /** + * 鑾峰彇闅忔満UUID锛屼娇鐢ㄦц兘鏇村ソ鐨凾hreadLocalRandom鐢熸垚UUID + * + * @return 闅忔満UUID + */ + public static String fastUUID() { + return UUID.fastUUID().toString(); + } - /** - * 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎锛屼娇鐢ㄦц兘鏇村ソ鐨凾hreadLocalRandom鐢熸垚UUID - * - * @return 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 - */ - public static String fastSimpleUUID() - { - return UUID.fastUUID().toString(true); - } + /** + * 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎锛屼娇鐢ㄦц兘鏇村ソ鐨凾hreadLocalRandom鐢熸垚UUID + * + * @return 绠鍖栫殑UUID锛屽幓鎺変簡妯嚎 + */ + public static String fastSimpleUUID() { + return UUID.fastUUID().toString(true); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/Seq.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/Seq.java index ba1c8a9f2..722eb2840 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/Seq.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/Seq.java @@ -1,86 +1,79 @@ package com.ruoyi.common.core.utils.uuid; -import java.util.concurrent.atomic.AtomicInteger; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; +import java.util.concurrent.atomic.AtomicInteger; /** * @author ruoyi 搴忓垪鐢熸垚绫 */ -public class Seq -{ - // 閫氱敤搴忓垪绫诲瀷 - public static final String commSeqType = "COMMON"; +public class Seq { + // 閫氱敤搴忓垪绫诲瀷 + public static final String commSeqType = "COMMON"; - // 涓婁紶搴忓垪绫诲瀷 - public static final String uploadSeqType = "UPLOAD"; + // 涓婁紶搴忓垪绫诲瀷 + public static final String uploadSeqType = "UPLOAD"; - // 閫氱敤鎺ュ彛搴忓垪鏁 - private static AtomicInteger commSeq = new AtomicInteger(1); + // 閫氱敤鎺ュ彛搴忓垪鏁 + private static AtomicInteger commSeq = new AtomicInteger(1); - // 涓婁紶鎺ュ彛搴忓垪鏁 - private static AtomicInteger uploadSeq = new AtomicInteger(1); + // 涓婁紶鎺ュ彛搴忓垪鏁 + private static AtomicInteger uploadSeq = new AtomicInteger(1); - // 鏈哄櫒鏍囪瘑 - private static final String machineCode = "A"; + // 鏈哄櫒鏍囪瘑 + private static final String machineCode = "A"; - /** - * 鑾峰彇閫氱敤搴忓垪鍙 - * - * @return 搴忓垪鍊 - */ - public static String getId() - { - return getId(commSeqType); - } - - /** - * 榛樿16浣嶅簭鍒楀彿 yyMMddHHmmss + 涓浣嶆満鍣ㄦ爣璇 + 3闀垮害寰幆閫掑瀛楃涓 - * - * @return 搴忓垪鍊 - */ - public static String getId(String type) - { - AtomicInteger atomicInt = commSeq; - if (uploadSeqType.equals(type)) - { - atomicInt = uploadSeq; - } - return getId(atomicInt, 3); - } + /** + * 鑾峰彇閫氱敤搴忓垪鍙 + * + * @return 搴忓垪鍊 + */ + public static String getId() { + return getId(commSeqType); + } - /** - * 閫氱敤鎺ュ彛搴忓垪鍙 yyMMddHHmmss + 涓浣嶆満鍣ㄦ爣璇 + length闀垮害寰幆閫掑瀛楃涓 - * - * @param atomicInt 搴忓垪鏁 - * @param length 鏁板奸暱搴 - * @return 搴忓垪鍊 - */ - public static String getId(AtomicInteger atomicInt, int length) - { - String result = DateUtils.dateTimeNow(); - result += machineCode; - result += getSeq(atomicInt, length); - return result; + /** + * 榛樿16浣嶅簭鍒楀彿 yyMMddHHmmss + 涓浣嶆満鍣ㄦ爣璇 + 3闀垮害寰幆閫掑瀛楃涓 + * + * @return 搴忓垪鍊 + */ + public static String getId(String type) { + AtomicInteger atomicInt = commSeq; + if (uploadSeqType.equals(type)) { + atomicInt = uploadSeq; } + return getId(atomicInt, 3); + } + + /** + * 閫氱敤鎺ュ彛搴忓垪鍙 yyMMddHHmmss + 涓浣嶆満鍣ㄦ爣璇 + length闀垮害寰幆閫掑瀛楃涓 + * + * @param atomicInt 搴忓垪鏁 + * @param length 鏁板奸暱搴 + * @return 搴忓垪鍊 + */ + public static String getId(AtomicInteger atomicInt, int length) { + String result = DateUtils.dateTimeNow(); + result += machineCode; + result += getSeq(atomicInt, length); + return result; + } - /** - * 搴忓垪寰幆閫掑瀛楃涓瞇1, 10 鐨 (length)骞傛鏂), 鐢0宸﹁ˉ榻恖ength浣嶆暟 - * - * @return 搴忓垪鍊 - */ - private synchronized static String getSeq(AtomicInteger atomicInt, int length) - { - // 鍏堝彇鍊煎啀+1 - int value = atomicInt.getAndIncrement(); + /** + * 搴忓垪寰幆閫掑瀛楃涓瞇1, 10 鐨 (length)骞傛鏂), 鐢0宸﹁ˉ榻恖ength浣嶆暟 + * + * @return 搴忓垪鍊 + */ + private static synchronized String getSeq(AtomicInteger atomicInt, int length) { + // 鍏堝彇鍊煎啀+1 + int value = atomicInt.getAndIncrement(); - // 濡傛灉鏇存柊鍚庡>=10 鐨 (length)骞傛鏂瑰垯閲嶇疆涓1 - int maxSeq = (int) Math.pow(10, length); - if (atomicInt.get() >= maxSeq) - { - atomicInt.set(1); - } - // 杞瓧绗︿覆锛岀敤0宸﹁ˉ榻 - return StringUtils.padl(value, length); + // 濡傛灉鏇存柊鍚庡>=10 鐨 (length)骞傛鏂瑰垯閲嶇疆涓1 + int maxSeq = (int) Math.pow(10, length); + if (atomicInt.get() >= maxSeq) { + atomicInt.set(1); } + // 杞瓧绗︿覆锛岀敤0宸﹁ˉ榻 + return StringUtils.padl(value, length); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java index cd7cb0ffe..036cd3e04 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java @@ -1,484 +1,431 @@ package com.ruoyi.common.core.utils.uuid; +import com.ruoyi.common.core.exception.UtilException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; -import com.ruoyi.common.core.exception.UtilException; /** * 鎻愪緵閫氱敤鍞竴璇嗗埆鐮侊紙universally unique identifier锛夛紙UUID锛夊疄鐜 * * @author ruoyi */ -public final class UUID implements java.io.Serializable, Comparable -{ - private static final long serialVersionUID = -1185015143654744140L; - - /** - * SecureRandom 鐨勫崟渚 - * - */ - private static class Holder - { - static final SecureRandom numberGenerator = getSecureRandom(); - } - - /** 姝UID鐨勬渶楂64鏈夋晥浣 */ - private final long mostSigBits; - - /** 姝UID鐨勬渶浣64鏈夋晥浣 */ - private final long leastSigBits; - - /** - * 绉佹湁鏋勯 - * - * @param data 鏁版嵁 - */ - private UUID(byte[] data) - { - long msb = 0; - long lsb = 0; - assert data.length == 16 : "data must be 16 bytes in length"; - for (int i = 0; i < 8; i++) - { - msb = (msb << 8) | (data[i] & 0xff); - } - for (int i = 8; i < 16; i++) - { - lsb = (lsb << 8) | (data[i] & 0xff); - } - this.mostSigBits = msb; - this.leastSigBits = lsb; - } - - /** - * 浣跨敤鎸囧畾鐨勬暟鎹瀯閫犳柊鐨 UUID銆 - * - * @param mostSigBits 鐢ㄤ簬 {@code UUID} 鐨勬渶楂樻湁鏁 64 浣 - * @param leastSigBits 鐢ㄤ簬 {@code UUID} 鐨勬渶浣庢湁鏁 64 浣 - */ - public UUID(long mostSigBits, long leastSigBits) - { - this.mostSigBits = mostSigBits; - this.leastSigBits = leastSigBits; - } - - /** - * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 - * - * @return 闅忔満鐢熸垚鐨 {@code UUID} - */ - public static UUID fastUUID() - { - return randomUUID(false); - } - - /** - * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 浣跨敤鍔犲瘑鐨勫己浼殢鏈烘暟鐢熸垚鍣ㄧ敓鎴愯 UUID銆 - * - * @return 闅忔満鐢熸垚鐨 {@code UUID} - */ - public static UUID randomUUID() - { - return randomUUID(true); - } - - /** - * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 浣跨敤鍔犲瘑鐨勫己浼殢鏈烘暟鐢熸垚鍣ㄧ敓鎴愯 UUID銆 - * - * @param isSecure 鏄惁浣跨敤{@link SecureRandom}濡傛灉鏄彲浠ヨ幏寰楁洿瀹夊叏鐨勯殢鏈虹爜锛屽惁鍒欏彲浠ュ緱鍒版洿濂界殑鎬ц兘 - * @return 闅忔満鐢熸垚鐨 {@code UUID} - */ - public static UUID randomUUID(boolean isSecure) - { - final Random ng = isSecure ? Holder.numberGenerator : getRandom(); - - byte[] randomBytes = new byte[16]; - ng.nextBytes(randomBytes); - randomBytes[6] &= 0x0f; /* clear version */ - randomBytes[6] |= 0x40; /* set to version 4 */ - randomBytes[8] &= 0x3f; /* clear variant */ - randomBytes[8] |= 0x80; /* set to IETF variant */ - return new UUID(randomBytes); - } - - /** - * 鏍规嵁鎸囧畾鐨勫瓧鑺傛暟缁勮幏鍙栫被鍨 3锛堝熀浜庡悕绉扮殑锛塙UID 鐨勯潤鎬佸伐鍘傘 - * - * @param name 鐢ㄤ簬鏋勯 UUID 鐨勫瓧鑺傛暟缁勩 - * - * @return 鏍规嵁鎸囧畾鏁扮粍鐢熸垚鐨 {@code UUID} - */ - public static UUID nameUUIDFromBytes(byte[] name) - { - MessageDigest md; - try - { - md = MessageDigest.getInstance("MD5"); - } - catch (NoSuchAlgorithmException nsae) - { - throw new InternalError("MD5 not supported"); - } - byte[] md5Bytes = md.digest(name); - md5Bytes[6] &= 0x0f; /* clear version */ - md5Bytes[6] |= 0x30; /* set to version 3 */ - md5Bytes[8] &= 0x3f; /* clear variant */ - md5Bytes[8] |= 0x80; /* set to IETF variant */ - return new UUID(md5Bytes); - } - - /** - * 鏍规嵁 {@link #toString()} 鏂规硶涓弿杩扮殑瀛楃涓叉爣鍑嗚〃绀哄舰寮忓垱寤簕@code UUID}銆 - * - * @param name 鎸囧畾 {@code UUID} 瀛楃涓 - * @return 鍏锋湁鎸囧畾鍊肩殑 {@code UUID} - * @throws IllegalArgumentException 濡傛灉 name 涓 {@link #toString} 涓弿杩扮殑瀛楃涓茶〃绀哄舰寮忎笉绗︽姏鍑烘寮傚父 - * - */ - public static UUID fromString(String name) - { - String[] components = name.split("-"); - if (components.length != 5) - { - throw new IllegalArgumentException("Invalid UUID string: " + name); - } - for (int i = 0; i < 5; i++) - { - components[i] = "0x" + components[i]; - } - - long mostSigBits = Long.decode(components[0]).longValue(); - mostSigBits <<= 16; - mostSigBits |= Long.decode(components[1]).longValue(); - mostSigBits <<= 16; - mostSigBits |= Long.decode(components[2]).longValue(); - - long leastSigBits = Long.decode(components[3]).longValue(); - leastSigBits <<= 48; - leastSigBits |= Long.decode(components[4]).longValue(); - - return new UUID(mostSigBits, leastSigBits); - } - - /** - * 杩斿洖姝 UUID 鐨 128 浣嶅间腑鐨勬渶浣庢湁鏁 64 浣嶃 - * - * @return 姝 UUID 鐨 128 浣嶅间腑鐨勬渶浣庢湁鏁 64 浣嶃 - */ - public long getLeastSignificantBits() - { - return leastSigBits; +public final class UUID implements java.io.Serializable, Comparable { + private static final long serialVersionUID = -1185015143654744140L; + + /** SecureRandom 鐨勫崟渚 */ + private static class Holder { + static final SecureRandom numberGenerator = getSecureRandom(); + } + + /** 姝UID鐨勬渶楂64鏈夋晥浣 */ + private final long mostSigBits; + + /** 姝UID鐨勬渶浣64鏈夋晥浣 */ + private final long leastSigBits; + + /** + * 绉佹湁鏋勯 + * + * @param data 鏁版嵁 + */ + private UUID(byte[] data) { + long msb = 0; + long lsb = 0; + assert data.length == 16 : "data must be 16 bytes in length"; + for (int i = 0; i < 8; i++) { + msb = (msb << 8) | (data[i] & 0xff); } - - /** - * 杩斿洖姝 UUID 鐨 128 浣嶅间腑鐨勬渶楂樻湁鏁 64 浣嶃 - * - * @return 姝 UUID 鐨 128 浣嶅间腑鏈楂樻湁鏁 64 浣嶃 - */ - public long getMostSignificantBits() - { - return mostSigBits; - } - - /** - * 涓庢 {@code UUID} 鐩稿叧鑱旂殑鐗堟湰鍙. 鐗堟湰鍙锋弿杩版 {@code UUID} 鏄浣曠敓鎴愮殑銆 - *

- * 鐗堟湰鍙峰叿鏈変互涓嬪惈鎰: - *

    - *
  • 1 鍩轰簬鏃堕棿鐨 UUID - *
  • 2 DCE 瀹夊叏 UUID - *
  • 3 鍩轰簬鍚嶇О鐨 UUID - *
  • 4 闅忔満鐢熸垚鐨 UUID - *
- * - * @return 姝 {@code UUID} 鐨勭増鏈彿 - */ - public int version() - { - // Version is bits masked by 0x000000000000F000 in MS long - return (int) ((mostSigBits >> 12) & 0x0f); - } - - /** - * 涓庢 {@code UUID} 鐩稿叧鑱旂殑鍙樹綋鍙枫傚彉浣撳彿鎻忚堪 {@code UUID} 鐨勫竷灞銆 - *

- * 鍙樹綋鍙峰叿鏈変互涓嬪惈鎰忥細 - *

    - *
  • 0 涓 NCS 鍚戝悗鍏煎淇濈暀 - *
  • 2 IETF RFC 4122(Leach-Salz), 鐢ㄤ簬姝ょ被 - *
  • 6 淇濈暀锛屽井杞悜鍚庡吋瀹 - *
  • 7 淇濈暀渚涗互鍚庡畾涔変娇鐢 - *
- * - * @return 姝 {@code UUID} 鐩稿叧鑱旂殑鍙樹綋鍙 - */ - public int variant() - { - // This field is composed of a varying number of bits. - // 0 - - Reserved for NCS backward compatibility - // 1 0 - The IETF aka Leach-Salz variant (used by this class) - // 1 1 0 Reserved, Microsoft backward compatibility - // 1 1 1 Reserved for future definition. - return (int) ((leastSigBits >>> (64 - (leastSigBits >>> 62))) & (leastSigBits >> 63)); - } - - /** - * 涓庢 UUID 鐩稿叧鑱旂殑鏃堕棿鎴冲笺 - * - *

- * 60 浣嶇殑鏃堕棿鎴冲兼牴鎹 {@code UUID} 鐨 time_low銆乼ime_mid 鍜 time_hi 瀛楁鏋勯犮
- * 鎵寰楀埌鐨勬椂闂存埑浠 100 姣井绉掍负鍗曚綅锛屼粠 UTC锛堥氱敤鍗忚皟鏃堕棿锛 1582 骞 10 鏈 15 鏃ラ浂鏃跺紑濮嬨 - * - *

- * 鏃堕棿鎴冲间粎鍦ㄥ湪鍩轰簬鏃堕棿鐨 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆
- * 濡傛灉姝 {@code UUID} 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 UnsupportedOperationException銆 - * - * @throws UnsupportedOperationException 濡傛灉姝 {@code UUID} 涓嶆槸 version 涓 1 鐨 UUID銆 - */ - public long timestamp() throws UnsupportedOperationException - { - checkTimeBase(); - return (mostSigBits & 0x0FFFL) << 48// - | ((mostSigBits >> 16) & 0x0FFFFL) << 32// - | mostSigBits >>> 32; - } - - /** - * 涓庢 UUID 鐩稿叧鑱旂殑鏃堕挓搴忓垪鍊笺 - * - *

- * 14 浣嶇殑鏃堕挓搴忓垪鍊兼牴鎹 UUID 鐨 clock_seq 瀛楁鏋勯犮俢lock_seq 瀛楁鐢ㄤ簬淇濊瘉鍦ㄥ熀浜庢椂闂寸殑 UUID 涓殑鏃堕棿鍞竴鎬с - *

- * {@code clockSequence} 鍊间粎鍦ㄥ熀浜庢椂闂寸殑 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆 濡傛灉姝 UUID 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 - * UnsupportedOperationException銆 - * - * @return 姝 {@code UUID} 鐨勬椂閽熷簭鍒 - * - * @throws UnsupportedOperationException 濡傛灉姝 UUID 鐨 version 涓嶄负 1 - */ - public int clockSequence() throws UnsupportedOperationException - { - checkTimeBase(); - return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + for (int i = 8; i < 16; i++) { + lsb = (lsb << 8) | (data[i] & 0xff); } - - /** - * 涓庢 UUID 鐩稿叧鐨勮妭鐐瑰笺 - * - *

- * 48 浣嶇殑鑺傜偣鍊兼牴鎹 UUID 鐨 node 瀛楁鏋勯犮傛瀛楁鏃ㄥ湪鐢ㄤ簬淇濆瓨鏈哄櫒鐨 IEEE 802 鍦板潃锛岃鍦板潃鐢ㄤ簬鐢熸垚姝 UUID 浠ヤ繚璇佺┖闂村敮涓鎬с - *

- * 鑺傜偣鍊间粎鍦ㄥ熀浜庢椂闂寸殑 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆
- * 濡傛灉姝 UUID 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 UnsupportedOperationException銆 - * - * @return 姝 {@code UUID} 鐨勮妭鐐瑰 - * - * @throws UnsupportedOperationException 濡傛灉姝 UUID 鐨 version 涓嶄负 1 - */ - public long node() throws UnsupportedOperationException - { - checkTimeBase(); - return leastSigBits & 0x0000FFFFFFFFFFFFL; + this.mostSigBits = msb; + this.leastSigBits = lsb; + } + + /** + * 浣跨敤鎸囧畾鐨勬暟鎹瀯閫犳柊鐨 UUID銆 + * + * @param mostSigBits 鐢ㄤ簬 {@code UUID} 鐨勬渶楂樻湁鏁 64 浣 + * @param leastSigBits 鐢ㄤ簬 {@code UUID} 鐨勬渶浣庢湁鏁 64 浣 + */ + public UUID(long mostSigBits, long leastSigBits) { + this.mostSigBits = mostSigBits; + this.leastSigBits = leastSigBits; + } + + /** + * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 + * + * @return 闅忔満鐢熸垚鐨 {@code UUID} + */ + public static UUID fastUUID() { + return randomUUID(false); + } + + /** + * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 浣跨敤鍔犲瘑鐨勫己浼殢鏈烘暟鐢熸垚鍣ㄧ敓鎴愯 UUID銆 + * + * @return 闅忔満鐢熸垚鐨 {@code UUID} + */ + public static UUID randomUUID() { + return randomUUID(true); + } + + /** + * 鑾峰彇绫诲瀷 4锛堜吉闅忔満鐢熸垚鐨勶級UUID 鐨勯潤鎬佸伐鍘傘 浣跨敤鍔犲瘑鐨勫己浼殢鏈烘暟鐢熸垚鍣ㄧ敓鎴愯 UUID銆 + * + * @param isSecure 鏄惁浣跨敤{@link SecureRandom}濡傛灉鏄彲浠ヨ幏寰楁洿瀹夊叏鐨勯殢鏈虹爜锛屽惁鍒欏彲浠ュ緱鍒版洿濂界殑鎬ц兘 + * @return 闅忔満鐢熸垚鐨 {@code UUID} + */ + public static UUID randomUUID(boolean isSecure) { + final Random ng = isSecure ? Holder.numberGenerator : getRandom(); + + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + randomBytes[6] &= 0x0f; /* clear version */ + randomBytes[6] |= 0x40; /* set to version 4 */ + randomBytes[8] &= 0x3f; /* clear variant */ + randomBytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(randomBytes); + } + + /** + * 鏍规嵁鎸囧畾鐨勫瓧鑺傛暟缁勮幏鍙栫被鍨 3锛堝熀浜庡悕绉扮殑锛塙UID 鐨勯潤鎬佸伐鍘傘 + * + * @param name 鐢ㄤ簬鏋勯 UUID 鐨勫瓧鑺傛暟缁勩 + * @return 鏍规嵁鎸囧畾鏁扮粍鐢熸垚鐨 {@code UUID} + */ + public static UUID nameUUIDFromBytes(byte[] name) { + MessageDigest md; + try { + md = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException nsae) { + throw new InternalError("MD5 not supported"); } - - /** - * 杩斿洖姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡銆 - * - *

- * UUID 鐨勫瓧绗︿覆琛ㄧず褰㈠紡鐢辨 BNF 鎻忚堪锛 - * - *

-     * {@code
-     * UUID                   = ----
-     * time_low               = 4*
-     * time_mid               = 2*
-     * time_high_and_version  = 2*
-     * variant_and_sequence   = 2*
-     * node                   = 6*
-     * hexOctet               = 
-     * hexDigit               = [0-9a-fA-F]
-     * }
-     * 
- * - * - * - * @return 姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡 - * @see #toString(boolean) - */ - @Override - public String toString() - { - return toString(false); + byte[] md5Bytes = md.digest(name); + md5Bytes[6] &= 0x0f; /* clear version */ + md5Bytes[6] |= 0x30; /* set to version 3 */ + md5Bytes[8] &= 0x3f; /* clear variant */ + md5Bytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(md5Bytes); + } + + /** + * 鏍规嵁 {@link #toString()} 鏂规硶涓弿杩扮殑瀛楃涓叉爣鍑嗚〃绀哄舰寮忓垱寤簕@code UUID}銆 + * + * @param name 鎸囧畾 {@code UUID} 瀛楃涓 + * @return 鍏锋湁鎸囧畾鍊肩殑 {@code UUID} + * @throws IllegalArgumentException 濡傛灉 name 涓 {@link #toString} 涓弿杩扮殑瀛楃涓茶〃绀哄舰寮忎笉绗︽姏鍑烘寮傚父 + */ + public static UUID fromString(String name) { + String[] components = name.split("-"); + if (components.length != 5) { + throw new IllegalArgumentException("Invalid UUID string: " + name); } - - /** - * 杩斿洖姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡銆 - * - *

- * UUID 鐨勫瓧绗︿覆琛ㄧず褰㈠紡鐢辨 BNF 鎻忚堪锛 - * - *

-     * {@code
-     * UUID                   = ----
-     * time_low               = 4*
-     * time_mid               = 2*
-     * time_high_and_version  = 2*
-     * variant_and_sequence   = 2*
-     * node                   = 6*
-     * hexOctet               = 
-     * hexDigit               = [0-9a-fA-F]
-     * }
-     * 
- * - * - * - * @param isSimple 鏄惁绠鍗曟ā寮忥紝绠鍗曟ā寮忎负涓嶅甫'-'鐨刄UID瀛楃涓 - * @return 姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡 - */ - public String toString(boolean isSimple) - { - final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); - // time_low - builder.append(digits(mostSigBits >> 32, 8)); - if (!isSimple) - { - builder.append('-'); - } - // time_mid - builder.append(digits(mostSigBits >> 16, 4)); - if (!isSimple) - { - builder.append('-'); - } - // time_high_and_version - builder.append(digits(mostSigBits, 4)); - if (!isSimple) - { - builder.append('-'); - } - // variant_and_sequence - builder.append(digits(leastSigBits >> 48, 4)); - if (!isSimple) - { - builder.append('-'); - } - // node - builder.append(digits(leastSigBits, 12)); - - return builder.toString(); + for (int i = 0; i < 5; i++) { + components[i] = "0x" + components[i]; } - /** - * 杩斿洖姝 UUID 鐨勫搱甯岀爜銆 - * - * @return UUID 鐨勫搱甯岀爜鍊笺 - */ - @Override - public int hashCode() - { - long hilo = mostSigBits ^ leastSigBits; - return ((int) (hilo >> 32)) ^ (int) hilo; + long mostSigBits = Long.decode(components[0]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[1]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[2]).longValue(); + + long leastSigBits = Long.decode(components[3]).longValue(); + leastSigBits <<= 48; + leastSigBits |= Long.decode(components[4]).longValue(); + + return new UUID(mostSigBits, leastSigBits); + } + + /** + * 杩斿洖姝 UUID 鐨 128 浣嶅间腑鐨勬渶浣庢湁鏁 64 浣嶃 + * + * @return 姝 UUID 鐨 128 浣嶅间腑鐨勬渶浣庢湁鏁 64 浣嶃 + */ + public long getLeastSignificantBits() { + return leastSigBits; + } + + /** + * 杩斿洖姝 UUID 鐨 128 浣嶅间腑鐨勬渶楂樻湁鏁 64 浣嶃 + * + * @return 姝 UUID 鐨 128 浣嶅间腑鏈楂樻湁鏁 64 浣嶃 + */ + public long getMostSignificantBits() { + return mostSigBits; + } + + /** + * 涓庢 {@code UUID} 鐩稿叧鑱旂殑鐗堟湰鍙. 鐗堟湰鍙锋弿杩版 {@code UUID} 鏄浣曠敓鎴愮殑銆 + * + *

鐗堟湰鍙峰叿鏈変互涓嬪惈鎰: + * + *

    + *
  • 1 鍩轰簬鏃堕棿鐨 UUID + *
  • 2 DCE 瀹夊叏 UUID + *
  • 3 鍩轰簬鍚嶇О鐨 UUID + *
  • 4 闅忔満鐢熸垚鐨 UUID + *
+ * + * @return 姝 {@code UUID} 鐨勭増鏈彿 + */ + public int version() { + // Version is bits masked by 0x000000000000F000 in MS long + return (int) ((mostSigBits >> 12) & 0x0f); + } + + /** + * 涓庢 {@code UUID} 鐩稿叧鑱旂殑鍙樹綋鍙枫傚彉浣撳彿鎻忚堪 {@code UUID} 鐨勫竷灞銆 + * + *

鍙樹綋鍙峰叿鏈変互涓嬪惈鎰忥細 + * + *

    + *
  • 0 涓 NCS 鍚戝悗鍏煎淇濈暀 + *
  • 2 IETF RFC 4122(Leach-Salz), + * 鐢ㄤ簬姝ょ被 + *
  • 6 淇濈暀锛屽井杞悜鍚庡吋瀹 + *
  • 7 淇濈暀渚涗互鍚庡畾涔変娇鐢 + *
+ * + * @return 姝 {@code UUID} 鐩稿叧鑱旂殑鍙樹綋鍙 + */ + public int variant() { + // This field is composed of a varying number of bits. + // 0 - - Reserved for NCS backward compatibility + // 1 0 - The IETF aka Leach-Salz variant (used by this class) + // 1 1 0 Reserved, Microsoft backward compatibility + // 1 1 1 Reserved for future definition. + return (int) ((leastSigBits >>> (64 - (leastSigBits >>> 62))) & (leastSigBits >> 63)); + } + + /** + * 涓庢 UUID 鐩稿叧鑱旂殑鏃堕棿鎴冲笺 + * + *

60 浣嶇殑鏃堕棿鎴冲兼牴鎹 {@code UUID} 鐨 time_low銆乼ime_mid 鍜 time_hi 瀛楁鏋勯犮
+ * 鎵寰楀埌鐨勬椂闂存埑浠 100 姣井绉掍负鍗曚綅锛屼粠 UTC锛堥氱敤鍗忚皟鏃堕棿锛 1582 骞 10 鏈 15 鏃ラ浂鏃跺紑濮嬨 + * + *

鏃堕棿鎴冲间粎鍦ㄥ湪鍩轰簬鏃堕棿鐨 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆
+ * 濡傛灉姝 {@code UUID} 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 UnsupportedOperationException銆 + * + * @throws UnsupportedOperationException 濡傛灉姝 {@code UUID} 涓嶆槸 version 涓 1 鐨 UUID銆 + */ + public long timestamp() throws UnsupportedOperationException { + checkTimeBase(); + return (mostSigBits & 0x0FFFL) << 48 // + | ((mostSigBits >> 16) & 0x0FFFFL) << 32 // + | mostSigBits >>> 32; + } + + /** + * 涓庢 UUID 鐩稿叧鑱旂殑鏃堕挓搴忓垪鍊笺 + * + *

14 浣嶇殑鏃堕挓搴忓垪鍊兼牴鎹 UUID 鐨 clock_seq 瀛楁鏋勯犮俢lock_seq 瀛楁鐢ㄤ簬淇濊瘉鍦ㄥ熀浜庢椂闂寸殑 UUID 涓殑鏃堕棿鍞竴鎬с + * + *

{@code clockSequence} 鍊间粎鍦ㄥ熀浜庢椂闂寸殑 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆 濡傛灉姝 UUID 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 + * UnsupportedOperationException銆 + * + * @return 姝 {@code UUID} 鐨勬椂閽熷簭鍒 + * @throws UnsupportedOperationException 濡傛灉姝 UUID 鐨 version 涓嶄负 1 + */ + public int clockSequence() throws UnsupportedOperationException { + checkTimeBase(); + return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + } + + /** + * 涓庢 UUID 鐩稿叧鐨勮妭鐐瑰笺 + * + *

48 浣嶇殑鑺傜偣鍊兼牴鎹 UUID 鐨 node 瀛楁鏋勯犮傛瀛楁鏃ㄥ湪鐢ㄤ簬淇濆瓨鏈哄櫒鐨 IEEE 802 鍦板潃锛岃鍦板潃鐢ㄤ簬鐢熸垚姝 UUID 浠ヤ繚璇佺┖闂村敮涓鎬с + * + *

鑺傜偣鍊间粎鍦ㄥ熀浜庢椂闂寸殑 UUID锛堝叾 version 绫诲瀷涓 1锛変腑鎵嶆湁鎰忎箟銆
+ * 濡傛灉姝 UUID 涓嶆槸鍩轰簬鏃堕棿鐨 UUID锛屽垯姝ゆ柟娉曟姏鍑 UnsupportedOperationException銆 + * + * @return 姝 {@code UUID} 鐨勮妭鐐瑰 + * @throws UnsupportedOperationException 濡傛灉姝 UUID 鐨 version 涓嶄负 1 + */ + public long node() throws UnsupportedOperationException { + checkTimeBase(); + return leastSigBits & 0x0000FFFFFFFFFFFFL; + } + + /** + * 杩斿洖姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡銆 + * + *

UUID 鐨勫瓧绗︿覆琛ㄧず褰㈠紡鐢辨 BNF 鎻忚堪锛 + * + *

{@code
+   * UUID                   = ----
+   * time_low               = 4*
+   * time_mid               = 2*
+   * time_high_and_version  = 2*
+   * variant_and_sequence   = 2*
+   * node                   = 6*
+   * hexOctet               = 
+   * hexDigit               = [0-9a-fA-F]
+   * }
+ * + * + * + * @return 姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡 + * @see #toString(boolean) + */ + @Override + public String toString() { + return toString(false); + } + + /** + * 杩斿洖姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡銆 + * + *

UUID 鐨勫瓧绗︿覆琛ㄧず褰㈠紡鐢辨 BNF 鎻忚堪锛 + * + *

{@code
+   * UUID                   = ----
+   * time_low               = 4*
+   * time_mid               = 2*
+   * time_high_and_version  = 2*
+   * variant_and_sequence   = 2*
+   * node                   = 6*
+   * hexOctet               = 
+   * hexDigit               = [0-9a-fA-F]
+   * }
+ * + * + * + * @param isSimple 鏄惁绠鍗曟ā寮忥紝绠鍗曟ā寮忎负涓嶅甫'-'鐨刄UID瀛楃涓 + * @return 姝@code UUID} 鐨勫瓧绗︿覆琛ㄧ幇褰㈠紡 + */ + public String toString(boolean isSimple) { + final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); + // time_low + builder.append(digits(mostSigBits >> 32, 8)); + if (!isSimple) { + builder.append('-'); } - - /** - * 灏嗘瀵硅薄涓庢寚瀹氬璞℃瘮杈冦 - *

- * 褰撲笖浠呭綋鍙傛暟涓嶄负 {@code null}銆佽屾槸涓涓 UUID 瀵硅薄銆佸叿鏈変笌姝 UUID 鐩稿悓鐨 varriant銆佸寘鍚浉鍚岀殑鍊硷紙姣忎竴浣嶅潎鐩稿悓锛夋椂锛岀粨鏋滄墠涓 {@code true}銆 - * - * @param obj 瑕佷笌涔嬫瘮杈冪殑瀵硅薄 - * - * @return 濡傛灉瀵硅薄鐩稿悓锛屽垯杩斿洖 {@code true}锛涘惁鍒欒繑鍥 {@code false} - */ - @Override - public boolean equals(Object obj) - { - if ((null == obj) || (obj.getClass() != UUID.class)) - { - return false; - } - UUID id = (UUID) obj; - return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + // time_mid + builder.append(digits(mostSigBits >> 16, 4)); + if (!isSimple) { + builder.append('-'); } - - // Comparison Operations - - /** - * 灏嗘 UUID 涓庢寚瀹氱殑 UUID 姣旇緝銆 - * - *

- * 濡傛灉涓や釜 UUID 涓嶅悓锛屼笖绗竴涓 UUID 鐨勬渶楂樻湁鏁堝瓧娈靛ぇ浜庣浜屼釜 UUID 鐨勫搴斿瓧娈碉紝鍒欑涓涓 UUID 澶т簬绗簩涓 UUID銆 - * - * @param val 涓庢 UUID 姣旇緝鐨 UUID - * - * @return 鍦ㄦ UUID 灏忎簬銆佺瓑浜庢垨澶т簬 val 鏃讹紝鍒嗗埆杩斿洖 -1銆0 鎴 1銆 - * - */ - @Override - public int compareTo(UUID val) - { - // The ordering is intentionally set up so that the UUIDs - // can simply be numerically compared as two numbers - return (this.mostSigBits < val.mostSigBits ? -1 : // - (this.mostSigBits > val.mostSigBits ? 1 : // - (this.leastSigBits < val.leastSigBits ? -1 : // - (this.leastSigBits > val.leastSigBits ? 1 : // - 0)))); + // time_high_and_version + builder.append(digits(mostSigBits, 4)); + if (!isSimple) { + builder.append('-'); } - - // ------------------------------------------------------------------------------------------------------------------- - // Private method start - /** - * 杩斿洖鎸囧畾鏁板瓧瀵瑰簲鐨刪ex鍊 - * - * @param val 鍊 - * @param digits 浣 - * @return 鍊 - */ - private static String digits(long val, int digits) - { - long hi = 1L << (digits * 4); - return Long.toHexString(hi | (val & (hi - 1))).substring(1); + // variant_and_sequence + builder.append(digits(leastSigBits >> 48, 4)); + if (!isSimple) { + builder.append('-'); } - - /** - * 妫鏌ユ槸鍚︿负time-based鐗堟湰UUID - */ - private void checkTimeBase() - { - if (version() != 1) - { - throw new UnsupportedOperationException("Not a time-based UUID"); - } + // node + builder.append(digits(leastSigBits, 12)); + + return builder.toString(); + } + + /** + * 杩斿洖姝 UUID 鐨勫搱甯岀爜銆 + * + * @return UUID 鐨勫搱甯岀爜鍊笺 + */ + @Override + public int hashCode() { + long hilo = mostSigBits ^ leastSigBits; + return ((int) (hilo >> 32)) ^ (int) hilo; + } + + /** + * 灏嗘瀵硅薄涓庢寚瀹氬璞℃瘮杈冦 + * + *

褰撲笖浠呭綋鍙傛暟涓嶄负 {@code null}銆佽屾槸涓涓 UUID 瀵硅薄銆佸叿鏈変笌姝 UUID 鐩稿悓鐨 varriant銆佸寘鍚浉鍚岀殑鍊硷紙姣忎竴浣嶅潎鐩稿悓锛夋椂锛岀粨鏋滄墠涓 {@code true}銆 + * + * @param obj 瑕佷笌涔嬫瘮杈冪殑瀵硅薄 + * @return 濡傛灉瀵硅薄鐩稿悓锛屽垯杩斿洖 {@code true}锛涘惁鍒欒繑鍥 {@code false} + */ + @Override + public boolean equals(Object obj) { + if ((null == obj) || (obj.getClass() != UUID.class)) { + return false; } - - /** - * 鑾峰彇{@link SecureRandom}锛岀被鎻愪緵鍔犲瘑鐨勫己闅忔満鏁扮敓鎴愬櫒 (RNG) - * - * @return {@link SecureRandom} - */ - public static SecureRandom getSecureRandom() - { - try - { - return SecureRandom.getInstance("SHA1PRNG"); - } - catch (NoSuchAlgorithmException e) - { - throw new UtilException(e); - } + UUID id = (UUID) obj; + return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + } + + // Comparison Operations + + /** + * 灏嗘 UUID 涓庢寚瀹氱殑 UUID 姣旇緝銆 + * + *

濡傛灉涓や釜 UUID 涓嶅悓锛屼笖绗竴涓 UUID 鐨勬渶楂樻湁鏁堝瓧娈靛ぇ浜庣浜屼釜 UUID 鐨勫搴斿瓧娈碉紝鍒欑涓涓 UUID 澶т簬绗簩涓 UUID銆 + * + * @param val 涓庢 UUID 姣旇緝鐨 UUID + * @return 鍦ㄦ UUID 灏忎簬銆佺瓑浜庢垨澶т簬 val 鏃讹紝鍒嗗埆杩斿洖 -1銆0 鎴 1銆 + */ + @Override + public int compareTo(UUID val) { + // The ordering is intentionally set up so that the UUIDs + // can simply be numerically compared as two numbers + return (this.mostSigBits < val.mostSigBits + ? -1 + : // + (this.mostSigBits > val.mostSigBits + ? 1 + : // + (this.leastSigBits < val.leastSigBits + ? -1 + : // + (this.leastSigBits > val.leastSigBits + ? 1 + : // + 0)))); + } + + // ------------------------------------------------------------------------------------------------------------------- + // Private method start + /** + * 杩斿洖鎸囧畾鏁板瓧瀵瑰簲鐨刪ex鍊 + * + * @param val 鍊 + * @param digits 浣 + * @return 鍊 + */ + private static String digits(long val, int digits) { + long hi = 1L << (digits * 4); + return Long.toHexString(hi | (val & (hi - 1))).substring(1); + } + + /** 妫鏌ユ槸鍚︿负time-based鐗堟湰UUID */ + private void checkTimeBase() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); } - - /** - * 鑾峰彇闅忔満鏁扮敓鎴愬櫒瀵硅薄
- * ThreadLocalRandom鏄疛DK 7涔嬪悗鎻愪緵骞跺彂浜х敓闅忔満鏁帮紝鑳藉瑙e喅澶氫釜绾跨▼鍙戠敓鐨勭珵浜変簤澶恒 - * - * @return {@link ThreadLocalRandom} - */ - public static ThreadLocalRandom getRandom() - { - return ThreadLocalRandom.current(); + } + + /** + * 鑾峰彇{@link SecureRandom}锛岀被鎻愪緵鍔犲瘑鐨勫己闅忔満鏁扮敓鎴愬櫒 (RNG) + * + * @return {@link SecureRandom} + */ + public static SecureRandom getSecureRandom() { + try { + return SecureRandom.getInstance("SHA1PRNG"); + } catch (NoSuchAlgorithmException e) { + throw new UtilException(e); } + } + + /** + * 鑾峰彇闅忔満鏁扮敓鎴愬櫒瀵硅薄
+ * ThreadLocalRandom鏄疛DK 7涔嬪悗鎻愪緵骞跺彂浜х敓闅忔満鏁帮紝鑳藉瑙e喅澶氫釜绾跨▼鍙戠敓鐨勭珵浜変簤澶恒 + * + * @return {@link ThreadLocalRandom} + */ + public static ThreadLocalRandom getRandom() { + return ThreadLocalRandom.current(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java index 4109e299a..8f6df110f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java @@ -1,12 +1,5 @@ package com.ruoyi.common.core.web.controller; -import java.beans.PropertyEditorSupport; -import java.util.Date; -import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.core.constant.HttpStatus; @@ -18,143 +11,113 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageDomain; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.core.web.page.TableSupport; +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; /** * web灞傞氱敤鏁版嵁澶勭悊 - * + * * @author ruoyi */ -public class BaseController -{ - protected final Logger logger = LoggerFactory.getLogger(this.getClass()); +public class BaseController { + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); - /** - * 灏嗗墠鍙颁紶閫掕繃鏉ョ殑鏃ユ湡鏍煎紡鐨勫瓧绗︿覆锛岃嚜鍔ㄨ浆鍖栦负Date绫诲瀷 - */ - @InitBinder - public void initBinder(WebDataBinder binder) - { - // Date 绫诲瀷杞崲 - binder.registerCustomEditor(Date.class, new PropertyEditorSupport() - { - @Override - public void setAsText(String text) - { - setValue(DateUtils.parseDate(text)); - } + /** 灏嗗墠鍙颁紶閫掕繃鏉ョ殑鏃ユ湡鏍煎紡鐨勫瓧绗︿覆锛岃嚜鍔ㄨ浆鍖栦负Date绫诲瀷 */ + @InitBinder + public void initBinder(WebDataBinder binder) { + // Date 绫诲瀷杞崲 + binder.registerCustomEditor( + Date.class, + new PropertyEditorSupport() { + @Override + public void setAsText(String text) { + setValue(DateUtils.parseDate(text)); + } }); - } + } - /** - * 璁剧疆璇锋眰鍒嗛〉鏁版嵁 - */ - protected void startPage() - { - PageUtils.startPage(); - } + /** 璁剧疆璇锋眰鍒嗛〉鏁版嵁 */ + protected void startPage() { + PageUtils.startPage(); + } - /** - * 璁剧疆璇锋眰鎺掑簭鏁版嵁 - */ - protected void startOrderBy() - { - PageDomain pageDomain = TableSupport.buildPageRequest(); - if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) - { - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - PageHelper.orderBy(orderBy); - } + /** 璁剧疆璇锋眰鎺掑簭鏁版嵁 */ + protected void startOrderBy() { + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); } + } - /** - * 娓呯悊鍒嗛〉鐨勭嚎绋嬪彉閲 - */ - protected void clearPage() - { - PageUtils.clearPage(); - } + /** 娓呯悊鍒嗛〉鐨勭嚎绋嬪彉閲 */ + protected void clearPage() { + PageUtils.clearPage(); + } - /** - * 鍝嶅簲璇锋眰鍒嗛〉鏁版嵁 - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - protected TableDataInfo getDataTable(List list) - { - TableDataInfo rspData = new TableDataInfo(); - rspData.setCode(HttpStatus.SUCCESS); - rspData.setRows(list); - rspData.setMsg("鏌ヨ鎴愬姛"); - rspData.setTotal(new PageInfo(list).getTotal()); - return rspData; - } + /** 鍝嶅簲璇锋眰鍒嗛〉鏁版嵁 */ + @SuppressWarnings({"rawtypes", "unchecked"}) + protected TableDataInfo getDataTable(List list) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setRows(list); + rspData.setMsg("鏌ヨ鎴愬姛"); + rspData.setTotal(new PageInfo(list).getTotal()); + return rspData; + } - /** - * 杩斿洖鎴愬姛 - */ - public AjaxResult success() - { - return AjaxResult.success(); - } + /** 杩斿洖鎴愬姛 */ + public AjaxResult success() { + return AjaxResult.success(); + } - /** - * 杩斿洖鎴愬姛娑堟伅 - */ - public AjaxResult success(String message) - { - return AjaxResult.success(message); - } + /** 杩斿洖鎴愬姛娑堟伅 */ + public AjaxResult success(String message) { + return AjaxResult.success(message); + } - /** - * 杩斿洖鎴愬姛娑堟伅 - */ - public AjaxResult success(Object data) - { - return AjaxResult.success(data); - } + /** 杩斿洖鎴愬姛娑堟伅 */ + public AjaxResult success(Object data) { + return AjaxResult.success(data); + } - /** - * 杩斿洖澶辫触娑堟伅 - */ - public AjaxResult error() - { - return AjaxResult.error(); - } + /** 杩斿洖澶辫触娑堟伅 */ + public AjaxResult error() { + return AjaxResult.error(); + } - /** - * 杩斿洖澶辫触娑堟伅 - */ - public AjaxResult error(String message) - { - return AjaxResult.error(message); - } + /** 杩斿洖澶辫触娑堟伅 */ + public AjaxResult error(String message) { + return AjaxResult.error(message); + } - /** - * 杩斿洖璀﹀憡娑堟伅 - */ - public AjaxResult warn(String message) - { - return AjaxResult.warn(message); - } + /** 杩斿洖璀﹀憡娑堟伅 */ + public AjaxResult warn(String message) { + return AjaxResult.warn(message); + } - /** - * 鍝嶅簲杩斿洖缁撴灉 - * - * @param rows 褰卞搷琛屾暟 - * @return 鎿嶄綔缁撴灉 - */ - protected AjaxResult toAjax(int rows) - { - return rows > 0 ? AjaxResult.success() : AjaxResult.error(); - } + /** + * 鍝嶅簲杩斿洖缁撴灉 + * + * @param rows 褰卞搷琛屾暟 + * @return 鎿嶄綔缁撴灉 + */ + protected AjaxResult toAjax(int rows) { + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } - /** - * 鍝嶅簲杩斿洖缁撴灉 - * - * @param result 缁撴灉 - * @return 鎿嶄綔缁撴灉 - */ - protected AjaxResult toAjax(boolean result) - { - return result ? success() : error(); - } + /** + * 鍝嶅簲杩斿洖缁撴灉 + * + * @param result 缁撴灉 + * @return 鎿嶄綔缁撴灉 + */ + protected AjaxResult toAjax(boolean result) { + return result ? success() : error(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java index 61d00aee3..ee9ebd81b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java @@ -1,216 +1,194 @@ package com.ruoyi.common.core.web.domain; -import java.util.HashMap; -import java.util.Objects; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.utils.StringUtils; +import java.util.HashMap; +import java.util.Objects; /** * 鎿嶄綔娑堟伅鎻愰啋 - * + * * @author ruoyi */ -public class AjaxResult extends HashMap -{ - private static final long serialVersionUID = 1L; - - /** 鐘舵佺爜 */ - public static final String CODE_TAG = "code"; - - /** 杩斿洖鍐呭 */ - public static final String MSG_TAG = "msg"; - - /** 鏁版嵁瀵硅薄 */ - public static final String DATA_TAG = "data"; - - /** - * 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄锛屼娇鍏惰〃绀轰竴涓┖娑堟伅銆 - */ - public AjaxResult() - { - } - - /** - * 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄 - * - * @param code 鐘舵佺爜 - * @param msg 杩斿洖鍐呭 - */ - public AjaxResult(int code, String msg) - { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); - } - - /** - * 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄 - * - * @param code 鐘舵佺爜 - * @param msg 杩斿洖鍐呭 - * @param data 鏁版嵁瀵硅薄 - */ - public AjaxResult(int code, String msg, Object data) - { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); - if (StringUtils.isNotNull(data)) - { - super.put(DATA_TAG, data); - } - } - - /** - * 杩斿洖鎴愬姛娑堟伅 - * - * @return 鎴愬姛娑堟伅 - */ - public static AjaxResult success() - { - return AjaxResult.success("鎿嶄綔鎴愬姛"); - } - - /** - * 杩斿洖鎴愬姛鏁版嵁 - * - * @return 鎴愬姛娑堟伅 - */ - public static AjaxResult success(Object data) - { - return AjaxResult.success("鎿嶄綔鎴愬姛", data); - } - - /** - * 杩斿洖鎴愬姛娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @return 鎴愬姛娑堟伅 - */ - public static AjaxResult success(String msg) - { - return AjaxResult.success(msg, null); - } - - /** - * 杩斿洖鎴愬姛娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @param data 鏁版嵁瀵硅薄 - * @return 鎴愬姛娑堟伅 - */ - public static AjaxResult success(String msg, Object data) - { - return new AjaxResult(HttpStatus.SUCCESS, msg, data); - } - - /** - * 杩斿洖璀﹀憡娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @return 璀﹀憡娑堟伅 - */ - public static AjaxResult warn(String msg) - { - return AjaxResult.warn(msg, null); - } - - /** - * 杩斿洖璀﹀憡娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @param data 鏁版嵁瀵硅薄 - * @return 璀﹀憡娑堟伅 - */ - public static AjaxResult warn(String msg, Object data) - { - return new AjaxResult(HttpStatus.WARN, msg, data); - } - - /** - * 杩斿洖閿欒娑堟伅 - * - * @return 閿欒娑堟伅 - */ - public static AjaxResult error() - { - return AjaxResult.error("鎿嶄綔澶辫触"); - } - - /** - * 杩斿洖閿欒娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @return 閿欒娑堟伅 - */ - public static AjaxResult error(String msg) - { - return AjaxResult.error(msg, null); - } - - /** - * 杩斿洖閿欒娑堟伅 - * - * @param msg 杩斿洖鍐呭 - * @param data 鏁版嵁瀵硅薄 - * @return 閿欒娑堟伅 - */ - public static AjaxResult error(String msg, Object data) - { - return new AjaxResult(HttpStatus.ERROR, msg, data); - } - - /** - * 杩斿洖閿欒娑堟伅 - * - * @param code 鐘舵佺爜 - * @param msg 杩斿洖鍐呭 - * @return 閿欒娑堟伅 - */ - public static AjaxResult error(int code, String msg) - { - return new AjaxResult(code, msg, null); - } - - /** - * 鏄惁涓烘垚鍔熸秷鎭 - * - * @return 缁撴灉 - */ - public boolean isSuccess() - { - return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG)); - } - - /** - * 鏄惁涓鸿鍛婃秷鎭 - * - * @return 缁撴灉 - */ - public boolean isWarn() - { - return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG)); - } - - /** - * 鏄惁涓洪敊璇秷鎭 - * - * @return 缁撴灉 - */ - public boolean isError() - { - return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG)); - } - - /** - * 鏂逛究閾惧紡璋冪敤 - * - * @param key - * @param value - * @return - */ - @Override - public AjaxResult put(String key, Object value) - { - super.put(key, value); - return this; - } +public class AjaxResult extends HashMap { + private static final long serialVersionUID = 1L; + + /** 鐘舵佺爜 */ + public static final String CODE_TAG = "code"; + + /** 杩斿洖鍐呭 */ + public static final String MSG_TAG = "msg"; + + /** 鏁版嵁瀵硅薄 */ + public static final String DATA_TAG = "data"; + + /** 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄锛屼娇鍏惰〃绀轰竴涓┖娑堟伅銆 */ + public AjaxResult() {} + + /** + * 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄 + * + * @param code 鐘舵佺爜 + * @param msg 杩斿洖鍐呭 + */ + public AjaxResult(int code, String msg) { + super.put(CODE_TAG, code); + super.put(MSG_TAG, msg); + } + + /** + * 鍒濆鍖栦竴涓柊鍒涘缓鐨 AjaxResult 瀵硅薄 + * + * @param code 鐘舵佺爜 + * @param msg 杩斿洖鍐呭 + * @param data 鏁版嵁瀵硅薄 + */ + public AjaxResult(int code, String msg, Object data) { + super.put(CODE_TAG, code); + super.put(MSG_TAG, msg); + if (StringUtils.isNotNull(data)) { + super.put(DATA_TAG, data); + } + } + + /** + * 杩斿洖鎴愬姛娑堟伅 + * + * @return 鎴愬姛娑堟伅 + */ + public static AjaxResult success() { + return AjaxResult.success("鎿嶄綔鎴愬姛"); + } + + /** + * 杩斿洖鎴愬姛鏁版嵁 + * + * @return 鎴愬姛娑堟伅 + */ + public static AjaxResult success(Object data) { + return AjaxResult.success("鎿嶄綔鎴愬姛", data); + } + + /** + * 杩斿洖鎴愬姛娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @return 鎴愬姛娑堟伅 + */ + public static AjaxResult success(String msg) { + return AjaxResult.success(msg, null); + } + + /** + * 杩斿洖鎴愬姛娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @param data 鏁版嵁瀵硅薄 + * @return 鎴愬姛娑堟伅 + */ + public static AjaxResult success(String msg, Object data) { + return new AjaxResult(HttpStatus.SUCCESS, msg, data); + } + + /** + * 杩斿洖璀﹀憡娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @return 璀﹀憡娑堟伅 + */ + public static AjaxResult warn(String msg) { + return AjaxResult.warn(msg, null); + } + + /** + * 杩斿洖璀﹀憡娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @param data 鏁版嵁瀵硅薄 + * @return 璀﹀憡娑堟伅 + */ + public static AjaxResult warn(String msg, Object data) { + return new AjaxResult(HttpStatus.WARN, msg, data); + } + + /** + * 杩斿洖閿欒娑堟伅 + * + * @return 閿欒娑堟伅 + */ + public static AjaxResult error() { + return AjaxResult.error("鎿嶄綔澶辫触"); + } + + /** + * 杩斿洖閿欒娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @return 閿欒娑堟伅 + */ + public static AjaxResult error(String msg) { + return AjaxResult.error(msg, null); + } + + /** + * 杩斿洖閿欒娑堟伅 + * + * @param msg 杩斿洖鍐呭 + * @param data 鏁版嵁瀵硅薄 + * @return 閿欒娑堟伅 + */ + public static AjaxResult error(String msg, Object data) { + return new AjaxResult(HttpStatus.ERROR, msg, data); + } + + /** + * 杩斿洖閿欒娑堟伅 + * + * @param code 鐘舵佺爜 + * @param msg 杩斿洖鍐呭 + * @return 閿欒娑堟伅 + */ + public static AjaxResult error(int code, String msg) { + return new AjaxResult(code, msg, null); + } + + /** + * 鏄惁涓烘垚鍔熸秷鎭 + * + * @return 缁撴灉 + */ + public boolean isSuccess() { + return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG)); + } + + /** + * 鏄惁涓鸿鍛婃秷鎭 + * + * @return 缁撴灉 + */ + public boolean isWarn() { + return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG)); + } + + /** + * 鏄惁涓洪敊璇秷鎭 + * + * @return 缁撴灉 + */ + public boolean isError() { + return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG)); + } + + /** + * 鏂逛究閾惧紡璋冪敤 + * + * @param key + * @param value + * @return + */ + @Override + public AjaxResult put(String key, Object value) { + super.put(key, value); + return this; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java index 1327c9bcc..02be8f268 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java @@ -1,118 +1,101 @@ package com.ruoyi.common.core.web.domain; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; /** * Entity鍩虹被 - * + * * @author ruoyi */ -public class BaseEntity implements Serializable -{ - private static final long serialVersionUID = 1L; +public class BaseEntity implements Serializable { + private static final long serialVersionUID = 1L; - /** 鎼滅储鍊 */ - @JsonIgnore - private String searchValue; + /** 鎼滅储鍊 */ + @JsonIgnore private String searchValue; - /** 鍒涘缓鑰 */ - private String createBy; + /** 鍒涘缓鑰 */ + private String createBy; - /** 鍒涘缓鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; + /** 鍒涘缓鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; - /** 鏇存柊鑰 */ - private String updateBy; + /** 鏇存柊鑰 */ + private String updateBy; - /** 鏇存柊鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; + /** 鏇存柊鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; - /** 澶囨敞 */ - private String remark; + /** 澶囨敞 */ + private String remark; - /** 璇锋眰鍙傛暟 */ - @JsonInclude(JsonInclude.Include.NON_EMPTY) - private Map params; + /** 璇锋眰鍙傛暟 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map params; - public String getSearchValue() - { - return searchValue; - } + public String getSearchValue() { + return searchValue; + } - public void setSearchValue(String searchValue) - { - this.searchValue = searchValue; - } + public void setSearchValue(String searchValue) { + this.searchValue = searchValue; + } - public String getCreateBy() - { - return createBy; - } + public String getCreateBy() { + return createBy; + } - public void setCreateBy(String createBy) - { - this.createBy = createBy; - } + public void setCreateBy(String createBy) { + this.createBy = createBy; + } - public Date getCreateTime() - { - return createTime; - } + public Date getCreateTime() { + return createTime; + } - public void setCreateTime(Date createTime) - { - this.createTime = createTime; - } + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } - public String getUpdateBy() - { - return updateBy; - } + public String getUpdateBy() { + return updateBy; + } - public void setUpdateBy(String updateBy) - { - this.updateBy = updateBy; - } + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } - public Date getUpdateTime() - { - return updateTime; - } + public Date getUpdateTime() { + return updateTime; + } - public void setUpdateTime(Date updateTime) - { - this.updateTime = updateTime; - } + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } - public String getRemark() - { - return remark; - } + public String getRemark() { + return remark; + } - public void setRemark(String remark) - { - this.remark = remark; - } + public void setRemark(String remark) { + this.remark = remark; + } - public Map getParams() - { - if (params == null) - { - params = new HashMap<>(); - } - return params; + public Map getParams() { + if (params == null) { + params = new HashMap<>(); } + return params; + } - public void setParams(Map params) - { - this.params = params; - } + public void setParams(Map params) { + this.params = params; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/TreeEntity.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/TreeEntity.java index 909d1e62d..ec1485ca5 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/TreeEntity.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/TreeEntity.java @@ -5,75 +5,64 @@ import java.util.List; /** * Tree鍩虹被 - * + * * @author ruoyi */ -public class TreeEntity extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 鐖惰彍鍗曞悕绉 */ - private String parentName; - - /** 鐖惰彍鍗旾D */ - private Long parentId; - - /** 鏄剧ず椤哄簭 */ - private Integer orderNum; - - /** 绁栫骇鍒楄〃 */ - private String ancestors; - - /** 瀛愰儴闂 */ - private List children = new ArrayList<>(); - - public String getParentName() - { - return parentName; - } - - public void setParentName(String parentName) - { - this.parentName = parentName; - } - - public Long getParentId() - { - return parentId; - } - - public void setParentId(Long parentId) - { - this.parentId = parentId; - } - - public Integer getOrderNum() - { - return orderNum; - } - - public void setOrderNum(Integer orderNum) - { - this.orderNum = orderNum; - } - - public String getAncestors() - { - return ancestors; - } - - public void setAncestors(String ancestors) - { - this.ancestors = ancestors; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } +public class TreeEntity extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鐖惰彍鍗曞悕绉 */ + private String parentName; + + /** 鐖惰彍鍗旾D */ + private Long parentId; + + /** 鏄剧ず椤哄簭 */ + private Integer orderNum; + + /** 绁栫骇鍒楄〃 */ + private String ancestors; + + /** 瀛愰儴闂 */ + private List children = new ArrayList<>(); + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public Integer getOrderNum() { + return orderNum; + } + + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/PageDomain.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/PageDomain.java index 413aabf2a..339a1d5cf 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/PageDomain.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/PageDomain.java @@ -4,98 +4,80 @@ import com.ruoyi.common.core.utils.StringUtils; /** * 鍒嗛〉鏁版嵁 - * + * * @author ruoyi */ -public class PageDomain -{ - /** 褰撳墠璁板綍璧峰绱㈠紩 */ - private Integer pageNum; - - /** 姣忛〉鏄剧ず璁板綍鏁 */ - private Integer pageSize; - - /** 鎺掑簭鍒 */ - private String orderByColumn; - - /** 鎺掑簭鐨勬柟鍚慸esc鎴栬卆sc */ - private String isAsc = "asc"; - - /** 鍒嗛〉鍙傛暟鍚堢悊鍖 */ - private Boolean reasonable = true; - - public String getOrderBy() - { - if (StringUtils.isEmpty(orderByColumn)) - { - return ""; - } - return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; - } +public class PageDomain { + /** 褰撳墠璁板綍璧峰绱㈠紩 */ + private Integer pageNum; - public Integer getPageNum() - { - return pageNum; - } + /** 姣忛〉鏄剧ず璁板綍鏁 */ + private Integer pageSize; - public void setPageNum(Integer pageNum) - { - this.pageNum = pageNum; - } + /** 鎺掑簭鍒 */ + private String orderByColumn; - public Integer getPageSize() - { - return pageSize; - } + /** 鎺掑簭鐨勬柟鍚慸esc鎴栬卆sc */ + private String isAsc = "asc"; - public void setPageSize(Integer pageSize) - { - this.pageSize = pageSize; - } + /** 鍒嗛〉鍙傛暟鍚堢悊鍖 */ + private Boolean reasonable = true; - public String getOrderByColumn() - { - return orderByColumn; + public String getOrderBy() { + if (StringUtils.isEmpty(orderByColumn)) { + return ""; } - - public void setOrderByColumn(String orderByColumn) - { - this.orderByColumn = orderByColumn; + return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public String getOrderByColumn() { + return orderByColumn; + } + + public void setOrderByColumn(String orderByColumn) { + this.orderByColumn = orderByColumn; + } + + public String getIsAsc() { + return isAsc; + } + + public void setIsAsc(String isAsc) { + if (StringUtils.isNotEmpty(isAsc)) { + // 鍏煎鍓嶇鎺掑簭绫诲瀷 + if ("ascending".equals(isAsc)) { + isAsc = "asc"; + } else if ("descending".equals(isAsc)) { + isAsc = "desc"; + } + this.isAsc = isAsc; } + } - public String getIsAsc() - { - return isAsc; + public Boolean getReasonable() { + if (StringUtils.isNull(reasonable)) { + return Boolean.TRUE; } + return reasonable; + } - public void setIsAsc(String isAsc) - { - if (StringUtils.isNotEmpty(isAsc)) - { - // 鍏煎鍓嶇鎺掑簭绫诲瀷 - if ("ascending".equals(isAsc)) - { - isAsc = "asc"; - } - else if ("descending".equals(isAsc)) - { - isAsc = "desc"; - } - this.isAsc = isAsc; - } - } - - public Boolean getReasonable() - { - if (StringUtils.isNull(reasonable)) - { - return Boolean.TRUE; - } - return reasonable; - } - - public void setReasonable(Boolean reasonable) - { - this.reasonable = reasonable; - } + public void setReasonable(Boolean reasonable) { + this.reasonable = reasonable; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java index 7fe3ac0a8..d82ed20b8 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java @@ -5,81 +5,67 @@ import java.util.List; /** * 琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄 - * + * * @author ruoyi */ -public class TableDataInfo implements Serializable -{ - private static final long serialVersionUID = 1L; - - /** 鎬昏褰曟暟 */ - private long total; - - /** 鍒楄〃鏁版嵁 */ - private List rows; - - /** 娑堟伅鐘舵佺爜 */ - private int code; - - /** 娑堟伅鍐呭 */ - private String msg; - - /** - * 琛ㄦ牸鏁版嵁瀵硅薄 - */ - public TableDataInfo() - { - } - - /** - * 鍒嗛〉 - * - * @param list 鍒楄〃鏁版嵁 - * @param total 鎬昏褰曟暟 - */ - public TableDataInfo(List list, long total) - { - this.rows = list; - this.total = total; - } - - public long getTotal() - { - return total; - } - - public void setTotal(long total) - { - this.total = total; - } - - public List getRows() - { - return rows; - } - - public void setRows(List rows) - { - this.rows = rows; - } - - public int getCode() - { - return code; - } - - public void setCode(int code) - { - this.code = code; - } - - public String getMsg() - { - return msg; - } - - public void setMsg(String msg) - { - this.msg = msg; - } -} \ No newline at end of file +public class TableDataInfo implements Serializable { + private static final long serialVersionUID = 1L; + + /** 鎬昏褰曟暟 */ + private long total; + + /** 鍒楄〃鏁版嵁 */ + private List rows; + + /** 娑堟伅鐘舵佺爜 */ + private int code; + + /** 娑堟伅鍐呭 */ + private String msg; + + /** 琛ㄦ牸鏁版嵁瀵硅薄 */ + public TableDataInfo() {} + + /** + * 鍒嗛〉 + * + * @param list 鍒楄〃鏁版嵁 + * @param total 鎬昏褰曟暟 + */ + public TableDataInfo(List list, long total) { + this.rows = list; + this.total = total; + } + + public long getTotal() { + return total; + } + + public void setTotal(long total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableSupport.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableSupport.java index 0f4abaafa..382b04e32 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableSupport.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableSupport.java @@ -5,52 +5,37 @@ import com.ruoyi.common.core.utils.ServletUtils; /** * 琛ㄦ牸鏁版嵁澶勭悊 - * + * * @author ruoyi */ -public class TableSupport -{ - /** - * 褰撳墠璁板綍璧峰绱㈠紩 - */ - public static final String PAGE_NUM = "pageNum"; - - /** - * 姣忛〉鏄剧ず璁板綍鏁 - */ - public static final String PAGE_SIZE = "pageSize"; - - /** - * 鎺掑簭鍒 - */ - public static final String ORDER_BY_COLUMN = "orderByColumn"; - - /** - * 鎺掑簭鐨勬柟鍚 "desc" 鎴栬 "asc". - */ - public static final String IS_ASC = "isAsc"; - - /** - * 鍒嗛〉鍙傛暟鍚堢悊鍖 - */ - public static final String REASONABLE = "reasonable"; - - /** - * 灏佽鍒嗛〉瀵硅薄 - */ - public static PageDomain getPageDomain() - { - PageDomain pageDomain = new PageDomain(); - pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); - pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); - pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); - pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); - pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); - return pageDomain; - } - - public static PageDomain buildPageRequest() - { - return getPageDomain(); - } +public class TableSupport { + /** 褰撳墠璁板綍璧峰绱㈠紩 */ + public static final String PAGE_NUM = "pageNum"; + + /** 姣忛〉鏄剧ず璁板綍鏁 */ + public static final String PAGE_SIZE = "pageSize"; + + /** 鎺掑簭鍒 */ + public static final String ORDER_BY_COLUMN = "orderByColumn"; + + /** 鎺掑簭鐨勬柟鍚 "desc" 鎴栬 "asc". */ + public static final String IS_ASC = "isAsc"; + + /** 鍒嗛〉鍙傛暟鍚堢悊鍖 */ + public static final String REASONABLE = "reasonable"; + + /** 灏佽鍒嗛〉瀵硅薄 */ + public static PageDomain getPageDomain() { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); + pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); + pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); + pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); + pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); + return pageDomain; + } + + public static PageDomain buildPageRequest() { + return getPageDomain(); + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java index 0a94d6b4b..d82a6d9e2 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java @@ -1,27 +1,25 @@ package com.ruoyi.common.core.xss; -import javax.validation.Constraint; -import javax.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import javax.validation.Constraint; +import javax.validation.Payload; /** * 鑷畾涔墄ss鏍¢獙娉ㄨВ - * + * * @author ruoyi */ @Retention(RetentionPolicy.RUNTIME) -@Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER }) -@Constraint(validatedBy = { XssValidator.class }) -public @interface Xss -{ - String message() - - default "涓嶅厑璁镐换浣曡剼鏈繍琛"; +@Target( + value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) +@Constraint(validatedBy = {XssValidator.class}) +public @interface Xss { + String message() default "涓嶅厑璁镐换浣曡剼鏈繍琛"; - Class[] groups() default {}; + Class[] groups() default {}; - Class[] payload() default {}; + Class[] payload() default {}; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java index 0acf38697..277935ead 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java @@ -1,39 +1,34 @@ package com.ruoyi.common.core.xss; +import com.ruoyi.common.core.utils.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; -import com.ruoyi.common.core.utils.StringUtils; /** * 鑷畾涔墄ss鏍¢獙娉ㄨВ瀹炵幇 - * + * * @author ruoyi */ -public class XssValidator implements ConstraintValidator -{ - private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />"; +public class XssValidator implements ConstraintValidator { + private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />"; - @Override - public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) - { - if (StringUtils.isBlank(value)) - { - return true; - } - return !containsHtml(value); + @Override + public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { + if (StringUtils.isBlank(value)) { + return true; } + return !containsHtml(value); + } - public static boolean containsHtml(String value) - { - StringBuilder sHtml = new StringBuilder(); - Pattern pattern = Pattern.compile(HTML_PATTERN); - Matcher matcher = pattern.matcher(value); - while (matcher.find()) - { - sHtml.append(matcher.group()); - } - return pattern.matcher(sHtml).matches(); + public static boolean containsHtml(String value) { + StringBuilder sHtml = new StringBuilder(); + Pattern pattern = Pattern.compile(HTML_PATTERN); + Matcher matcher = pattern.matcher(value); + while (matcher.find()) { + sHtml.append(matcher.group()); } -} \ No newline at end of file + return pattern.matcher(sHtml).matches(); + } +} diff --git a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/annotation/DataScope.java b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/annotation/DataScope.java index 9a8031224..9909d588f 100644 --- a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/annotation/DataScope.java +++ b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/annotation/DataScope.java @@ -8,26 +8,19 @@ import java.lang.annotation.Target; /** * 鏁版嵁鏉冮檺杩囨护娉ㄨВ - * + * * @author ruoyi */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface DataScope -{ - /** - * 閮ㄩ棬琛ㄧ殑鍒悕 - */ - public String deptAlias() default ""; +public @interface DataScope { + /** 閮ㄩ棬琛ㄧ殑鍒悕 */ + public String deptAlias() default ""; - /** - * 鐢ㄦ埛琛ㄧ殑鍒悕 - */ - public String userAlias() default ""; + /** 鐢ㄦ埛琛ㄧ殑鍒悕 */ + public String userAlias() default ""; - /** - * 鏉冮檺瀛楃锛堢敤浜庡涓鑹插尮閰嶇鍚堣姹傜殑鏉冮檺锛夐粯璁ゆ牴鎹潈闄愭敞瑙RequiresPermissions鑾峰彇锛屽涓潈闄愮敤閫楀彿鍒嗛殧寮鏉 - */ - public String permission() default ""; + /** 鏉冮檺瀛楃锛堢敤浜庡涓鑹插尮閰嶇鍚堣姹傜殑鏉冮檺锛夐粯璁ゆ牴鎹潈闄愭敞瑙RequiresPermissions鑾峰彇锛屽涓潈闄愮敤閫楀彿鍒嗛殧寮鏉 */ + public String permission() default ""; } diff --git a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java index 3a20eeafd..a74314bfd 100644 --- a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java +++ b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java @@ -1,11 +1,5 @@ package com.ruoyi.common.datascope.aspect; -import java.util.ArrayList; -import java.util.List; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.core.text.Convert; @@ -16,169 +10,160 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import java.util.ArrayList; +import java.util.List; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; /** * 鏁版嵁杩囨护澶勭悊 - * + * * @author ruoyi */ @Aspect @Component -public class DataScopeAspect -{ - /** - * 鍏ㄩ儴鏁版嵁鏉冮檺 - */ - public static final String DATA_SCOPE_ALL = "1"; +public class DataScopeAspect { + /** 鍏ㄩ儴鏁版嵁鏉冮檺 */ + public static final String DATA_SCOPE_ALL = "1"; - /** - * 鑷畾鏁版嵁鏉冮檺 - */ - public static final String DATA_SCOPE_CUSTOM = "2"; + /** 鑷畾鏁版嵁鏉冮檺 */ + public static final String DATA_SCOPE_CUSTOM = "2"; - /** - * 閮ㄩ棬鏁版嵁鏉冮檺 - */ - public static final String DATA_SCOPE_DEPT = "3"; + /** 閮ㄩ棬鏁版嵁鏉冮檺 */ + public static final String DATA_SCOPE_DEPT = "3"; - /** - * 閮ㄩ棬鍙婁互涓嬫暟鎹潈闄 - */ - public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; + /** 閮ㄩ棬鍙婁互涓嬫暟鎹潈闄 */ + public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; - /** - * 浠呮湰浜烘暟鎹潈闄 - */ - public static final String DATA_SCOPE_SELF = "5"; + /** 浠呮湰浜烘暟鎹潈闄 */ + public static final String DATA_SCOPE_SELF = "5"; - /** - * 鏁版嵁鏉冮檺杩囨护鍏抽敭瀛 - */ - public static final String DATA_SCOPE = "dataScope"; + /** 鏁版嵁鏉冮檺杩囨护鍏抽敭瀛 */ + public static final String DATA_SCOPE = "dataScope"; - @Before("@annotation(controllerDataScope)") - public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable - { - clearDataScope(point); - handleDataScope(point, controllerDataScope); - } + @Before("@annotation(controllerDataScope)") + public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable { + clearDataScope(point); + handleDataScope(point, controllerDataScope); + } - protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) - { - // 鑾峰彇褰撳墠鐨勭敤鎴 - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (StringUtils.isNotNull(loginUser)) - { - SysUser currentUser = loginUser.getSysUser(); - // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹 - if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) - { - String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), SecurityContextHolder.getPermission()); - dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), controllerDataScope.userAlias(), permission); - } - } + protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) { + // 鑾峰彇褰撳墠鐨勭敤鎴 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNotNull(loginUser)) { + SysUser currentUser = loginUser.getSysUser(); + // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹 + if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { + String permission = + StringUtils.defaultIfEmpty( + controllerDataScope.permission(), SecurityContextHolder.getPermission()); + dataScopeFilter( + joinPoint, + currentUser, + controllerDataScope.deptAlias(), + controllerDataScope.userAlias(), + permission); + } } + } - /** - * 鏁版嵁鑼冨洿杩囨护 - * - * @param joinPoint 鍒囩偣 - * @param user 鐢ㄦ埛 - * @param deptAlias 閮ㄩ棬鍒悕 - * @param userAlias 鐢ㄦ埛鍒悕 - * @param permission 鏉冮檺瀛楃 - */ - public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) - { - StringBuilder sqlString = new StringBuilder(); - List conditions = new ArrayList(); - List scopeCustomIds = new ArrayList(); - user.getRoles().forEach(role -> { - if (DATA_SCOPE_CUSTOM.equals(role.getDataScope()) && StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL) && (StringUtils.isEmpty(permission) || StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission)))) - { + /** + * 鏁版嵁鑼冨洿杩囨护 + * + * @param joinPoint 鍒囩偣 + * @param user 鐢ㄦ埛 + * @param deptAlias 閮ㄩ棬鍒悕 + * @param userAlias 鐢ㄦ埛鍒悕 + * @param permission 鏉冮檺瀛楃 + */ + public static void dataScopeFilter( + JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) { + StringBuilder sqlString = new StringBuilder(); + List conditions = new ArrayList(); + List scopeCustomIds = new ArrayList(); + user.getRoles() + .forEach( + role -> { + if (DATA_SCOPE_CUSTOM.equals(role.getDataScope()) + && StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL) + && (StringUtils.isEmpty(permission) + || StringUtils.containsAny( + role.getPermissions(), Convert.toStrArray(permission)))) { scopeCustomIds.add(Convert.toStr(role.getRoleId())); - } - }); + } + }); - for (SysRole role : user.getRoles()) - { - String dataScope = role.getDataScope(); - if (conditions.contains(dataScope) || StringUtils.equals(role.getStatus(), UserConstants.ROLE_DISABLE)) - { - continue; - } - if (StringUtils.isNotEmpty(permission) && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) - { - continue; - } - if (DATA_SCOPE_ALL.equals(dataScope)) - { - sqlString = new StringBuilder(); - conditions.add(dataScope); - break; - } - else if (DATA_SCOPE_CUSTOM.equals(dataScope)) - { - if (scopeCustomIds.size() > 1) - { - // 澶氫釜鑷畾鏁版嵁鏉冮檺浣跨敤in鏌ヨ锛岄伩鍏嶅娆℃嫾鎺ャ - sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id in ({}) ) ", deptAlias, String.join(",", scopeCustomIds))); - } - else - { - sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); - } - } - else if (DATA_SCOPE_DEPT.equals(dataScope)) - { - sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); - } - else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) - { - sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId())); - } - else if (DATA_SCOPE_SELF.equals(dataScope)) - { - if (StringUtils.isNotBlank(userAlias)) - { - sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); - } - else - { - // 鏁版嵁鏉冮檺涓轰粎鏈汉涓旀病鏈塽serAlias鍒悕涓嶆煡璇换浣曟暟鎹 - sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); - } - } - conditions.add(dataScope); + for (SysRole role : user.getRoles()) { + String dataScope = role.getDataScope(); + if (conditions.contains(dataScope) + || StringUtils.equals(role.getStatus(), UserConstants.ROLE_DISABLE)) { + continue; + } + if (StringUtils.isNotEmpty(permission) + && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) { + continue; + } + if (DATA_SCOPE_ALL.equals(dataScope)) { + sqlString = new StringBuilder(); + conditions.add(dataScope); + break; + } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { + if (scopeCustomIds.size() > 1) { + // 澶氫釜鑷畾鏁版嵁鏉冮檺浣跨敤in鏌ヨ锛岄伩鍏嶅娆℃嫾鎺ャ + sqlString.append( + StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id in ({}) ) ", + deptAlias, + String.join(",", scopeCustomIds))); + } else { + sqlString.append( + StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", + deptAlias, + role.getRoleId())); } - - // 瑙掕壊閮戒笉鍖呭惈浼犻掕繃鏉ョ殑鏉冮檺瀛楃锛岃繖涓椂鍊檚qlString涔熶細涓虹┖锛屾墍浠ヨ闄愬埗涓涓,涓嶆煡璇换浣曟暟鎹 - if (StringUtils.isEmpty(conditions)) - { - sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); + } else if (DATA_SCOPE_DEPT.equals(dataScope)) { + sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { + sqlString.append( + StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", + deptAlias, + user.getDeptId(), + user.getDeptId())); + } else if (DATA_SCOPE_SELF.equals(dataScope)) { + if (StringUtils.isNotBlank(userAlias)) { + sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + } else { + // 鏁版嵁鏉冮檺涓轰粎鏈汉涓旀病鏈塽serAlias鍒悕涓嶆煡璇换浣曟暟鎹 + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } + } + conditions.add(dataScope); + } - if (StringUtils.isNotBlank(sqlString.toString())) - { - Object params = joinPoint.getArgs()[0]; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) - { - BaseEntity baseEntity = (BaseEntity) params; - baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); - } - } + // 瑙掕壊閮戒笉鍖呭惈浼犻掕繃鏉ョ殑鏉冮檺瀛楃锛岃繖涓椂鍊檚qlString涔熶細涓虹┖锛屾墍浠ヨ闄愬埗涓涓,涓嶆煡璇换浣曟暟鎹 + if (StringUtils.isEmpty(conditions)) { + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } - /** - * 鎷兼帴鏉冮檺sql鍓嶅厛娓呯┖params.dataScope鍙傛暟闃叉娉ㄥ叆 - */ - private void clearDataScope(final JoinPoint joinPoint) - { - Object params = joinPoint.getArgs()[0]; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) - { - BaseEntity baseEntity = (BaseEntity) params; - baseEntity.getParams().put(DATA_SCOPE, ""); - } + if (StringUtils.isNotBlank(sqlString.toString())) { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); + } + } + } + + /** 鎷兼帴鏉冮檺sql鍓嶅厛娓呯┖params.dataScope鍙傛暟闃叉娉ㄥ叆 */ + private void clearDataScope(final JoinPoint joinPoint) { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, ""); } + } } diff --git a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Master.java b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Master.java index 6ebec02c1..8e5db9f7e 100644 --- a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Master.java +++ b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Master.java @@ -1,22 +1,19 @@ package com.ruoyi.common.datasource.annotation; +import com.baomidou.dynamic.datasource.annotation.DS; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.baomidou.dynamic.datasource.annotation.DS; /** * 涓诲簱鏁版嵁婧 - * + * * @author ruoyi */ -@Target({ ElementType.TYPE, ElementType.METHOD }) +@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @DS("master") -public @interface Master -{ - -} \ No newline at end of file +public @interface Master {} diff --git a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Slave.java b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Slave.java index 9ee094133..ea8faa318 100644 --- a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Slave.java +++ b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Slave.java @@ -1,22 +1,19 @@ package com.ruoyi.common.datasource.annotation; +import com.baomidou.dynamic.datasource.annotation.DS; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.baomidou.dynamic.datasource.annotation.DS; /** * 浠庡簱鏁版嵁婧 - * + * * @author ruoyi */ -@Target({ ElementType.TYPE, ElementType.METHOD }) +@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @DS("slave") -public @interface Slave -{ - -} \ No newline at end of file +public @interface Slave {} diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java index 7735c65d6..92fe63cd6 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java @@ -1,51 +1,37 @@ package com.ruoyi.common.log.annotation; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.log.enums.OperatorType; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.log.enums.OperatorType; /** * 鑷畾涔夋搷浣滄棩蹇楄褰曟敞瑙 - * - * @author ruoyi * + * @author ruoyi */ -@Target({ ElementType.PARAMETER, ElementType.METHOD }) +@Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface Log -{ - /** - * 妯″潡 - */ - public String title() default ""; +public @interface Log { + /** 妯″潡 */ + public String title() default ""; - /** - * 鍔熻兘 - */ - public BusinessType businessType() default BusinessType.OTHER; + /** 鍔熻兘 */ + public BusinessType businessType() default BusinessType.OTHER; - /** - * 鎿嶄綔浜虹被鍒 - */ - public OperatorType operatorType() default OperatorType.MANAGE; + /** 鎿嶄綔浜虹被鍒 */ + public OperatorType operatorType() default OperatorType.MANAGE; - /** - * 鏄惁淇濆瓨璇锋眰鐨勫弬鏁 - */ - public boolean isSaveRequestData() default true; + /** 鏄惁淇濆瓨璇锋眰鐨勫弬鏁 */ + public boolean isSaveRequestData() default true; - /** - * 鏄惁淇濆瓨鍝嶅簲鐨勫弬鏁 - */ - public boolean isSaveResponseData() default true; + /** 鏄惁淇濆瓨鍝嶅簲鐨勫弬鏁 */ + public boolean isSaveResponseData() default true; - /** - * 鎺掗櫎鎸囧畾鐨勮姹傚弬鏁 - */ - public String[] excludeParamNames() default {}; + /** 鎺掗櫎鎸囧畾鐨勮姹傚弬鏁 */ + public String[] excludeParamNames() default {}; } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java index 6ca5ddcaa..51913923c 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java @@ -1,5 +1,17 @@ package com.ruoyi.common.log.aspect; +import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.utils.ExceptionUtil; +import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.ip.IpUtils; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessStatus; +import com.ruoyi.common.log.filter.PropertyPreExcludeFilter; +import com.ruoyi.common.log.service.AsyncLogService; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysOperLog; import java.util.Collection; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -18,241 +30,205 @@ import org.springframework.http.HttpMethod; import org.springframework.stereotype.Component; import org.springframework.validation.BindingResult; import org.springframework.web.multipart.MultipartFile; -import com.alibaba.fastjson2.JSON; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.core.utils.ExceptionUtil; -import com.ruoyi.common.core.utils.ServletUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.ip.IpUtils; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessStatus; -import com.ruoyi.common.log.filter.PropertyPreExcludeFilter; -import com.ruoyi.common.log.service.AsyncLogService; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.domain.SysOperLog; /** * 鎿嶄綔鏃ュ織璁板綍澶勭悊 - * + * * @author ruoyi */ @Aspect @Component -public class LogAspect -{ - private static final Logger log = LoggerFactory.getLogger(LogAspect.class); - - /** 鎺掗櫎鏁忔劅灞炴у瓧娈 */ - public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; - - /** 璁$畻鎿嶄綔娑堣楁椂闂 */ - private static final ThreadLocal TIME_THREADLOCAL = new NamedThreadLocal("Cost Time"); - - /** 鍙傛暟鏈澶ч暱搴﹂檺鍒 */ - private static final int PARAM_MAX_LENGTH = 2000; - - @Autowired - private AsyncLogService asyncLogService; - - /** - * 澶勭悊璇锋眰鍓嶆墽琛 - */ - @Before(value = "@annotation(controllerLog)") - public void doBefore(JoinPoint joinPoint, Log controllerLog) - { - TIME_THREADLOCAL.set(System.currentTimeMillis()); - } - - /** - * 澶勭悊瀹岃姹傚悗鎵ц - * - * @param joinPoint 鍒囩偣 - */ - @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") - public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) - { - handleLog(joinPoint, controllerLog, null, jsonResult); +public class LogAspect { + private static final Logger log = LoggerFactory.getLogger(LogAspect.class); + + /** 鎺掗櫎鏁忔劅灞炴у瓧娈 */ + public static final String[] EXCLUDE_PROPERTIES = { + "password", "oldPassword", "newPassword", "confirmPassword" + }; + + /** 璁$畻鎿嶄綔娑堣楁椂闂 */ + private static final ThreadLocal TIME_THREADLOCAL = new NamedThreadLocal("Cost Time"); + + /** 鍙傛暟鏈澶ч暱搴﹂檺鍒 */ + private static final int PARAM_MAX_LENGTH = 2000; + + @Autowired private AsyncLogService asyncLogService; + + /** 澶勭悊璇锋眰鍓嶆墽琛 */ + @Before(value = "@annotation(controllerLog)") + public void doBefore(JoinPoint joinPoint, Log controllerLog) { + TIME_THREADLOCAL.set(System.currentTimeMillis()); + } + + /** + * 澶勭悊瀹岃姹傚悗鎵ц + * + * @param joinPoint 鍒囩偣 + */ + @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) { + handleLog(joinPoint, controllerLog, null, jsonResult); + } + + /** + * 鎷︽埅寮傚父鎿嶄綔 + * + * @param joinPoint 鍒囩偣 + * @param e 寮傚父 + */ + @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) { + handleLog(joinPoint, controllerLog, e, null); + } + + protected void handleLog( + final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) { + try { + // *========鏁版嵁搴撴棩蹇=========*// + SysOperLog operLog = new SysOperLog(); + operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); + // 璇锋眰鐨勫湴鍧 + String ip = IpUtils.getIpAddr(); + operLog.setOperIp(ip); + operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); + String username = SecurityUtils.getUsername(); + if (StringUtils.isNotBlank(username)) { + operLog.setOperName(username); + } + + if (e != null) { + operLog.setStatus(BusinessStatus.FAIL.ordinal()); + operLog.setErrorMsg( + StringUtils.substring( + Convert.toStr(e.getMessage(), ExceptionUtil.getExceptionMessage(e)), 0, 2000)); + } + // 璁剧疆鏂规硶鍚嶇О + String className = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + operLog.setMethod(className + "." + methodName + "()"); + // 璁剧疆璇锋眰鏂瑰紡 + operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); + // 澶勭悊璁剧疆娉ㄨВ涓婄殑鍙傛暟 + getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); + // 璁剧疆娑堣楁椂闂 + operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get()); + // 淇濆瓨鏁版嵁搴 + asyncLogService.saveSysLog(operLog); + } catch (Exception exp) { + // 璁板綍鏈湴寮傚父鏃ュ織 + log.error("寮傚父淇℃伅:{}", exp.getMessage()); + exp.printStackTrace(); + } finally { + TIME_THREADLOCAL.remove(); } - - /** - * 鎷︽埅寮傚父鎿嶄綔 - * - * @param joinPoint 鍒囩偣 - * @param e 寮傚父 - */ - @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") - public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) - { - handleLog(joinPoint, controllerLog, e, null); + } + + /** + * 鑾峰彇娉ㄨВ涓鏂规硶鐨勬弿杩颁俊鎭 鐢ㄤ簬Controller灞傛敞瑙 + * + * @param log 鏃ュ織 + * @param operLog 鎿嶄綔鏃ュ織 + * @throws Exception + */ + public void getControllerMethodDescription( + JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception { + // 璁剧疆action鍔ㄤ綔 + operLog.setBusinessType(log.businessType().ordinal()); + // 璁剧疆鏍囬 + operLog.setTitle(log.title()); + // 璁剧疆鎿嶄綔浜虹被鍒 + operLog.setOperatorType(log.operatorType().ordinal()); + // 鏄惁闇瑕佷繚瀛榬equest锛屽弬鏁板拰鍊 + if (log.isSaveRequestData()) { + // 鑾峰彇鍙傛暟鐨勪俊鎭紝浼犲叆鍒版暟鎹簱涓 + setRequestValue(joinPoint, operLog, log.excludeParamNames()); } - - protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) - { - try - { - // *========鏁版嵁搴撴棩蹇=========*// - SysOperLog operLog = new SysOperLog(); - operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); - // 璇锋眰鐨勫湴鍧 - String ip = IpUtils.getIpAddr(); - operLog.setOperIp(ip); - operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); - String username = SecurityUtils.getUsername(); - if (StringUtils.isNotBlank(username)) - { - operLog.setOperName(username); - } - - if (e != null) - { - operLog.setStatus(BusinessStatus.FAIL.ordinal()); - operLog.setErrorMsg(StringUtils.substring(Convert.toStr(e.getMessage(), ExceptionUtil.getExceptionMessage(e)), 0, 2000)); - } - // 璁剧疆鏂规硶鍚嶇О - String className = joinPoint.getTarget().getClass().getName(); - String methodName = joinPoint.getSignature().getName(); - operLog.setMethod(className + "." + methodName + "()"); - // 璁剧疆璇锋眰鏂瑰紡 - operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); - // 澶勭悊璁剧疆娉ㄨВ涓婄殑鍙傛暟 - getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); - // 璁剧疆娑堣楁椂闂 - operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get()); - // 淇濆瓨鏁版嵁搴 - asyncLogService.saveSysLog(operLog); - } - catch (Exception exp) - { - // 璁板綍鏈湴寮傚父鏃ュ織 - log.error("寮傚父淇℃伅:{}", exp.getMessage()); - exp.printStackTrace(); - } - finally - { - TIME_THREADLOCAL.remove(); - } + // 鏄惁闇瑕佷繚瀛榬esponse锛屽弬鏁板拰鍊 + if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) { + operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); } - - /** - * 鑾峰彇娉ㄨВ涓鏂规硶鐨勬弿杩颁俊鎭 鐢ㄤ簬Controller灞傛敞瑙 - * - * @param log 鏃ュ織 - * @param operLog 鎿嶄綔鏃ュ織 - * @throws Exception - */ - public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception - { - // 璁剧疆action鍔ㄤ綔 - operLog.setBusinessType(log.businessType().ordinal()); - // 璁剧疆鏍囬 - operLog.setTitle(log.title()); - // 璁剧疆鎿嶄綔浜虹被鍒 - operLog.setOperatorType(log.operatorType().ordinal()); - // 鏄惁闇瑕佷繚瀛榬equest锛屽弬鏁板拰鍊 - if (log.isSaveRequestData()) - { - // 鑾峰彇鍙傛暟鐨勪俊鎭紝浼犲叆鍒版暟鎹簱涓 - setRequestValue(joinPoint, operLog, log.excludeParamNames()); - } - // 鏄惁闇瑕佷繚瀛榬esponse锛屽弬鏁板拰鍊 - if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) - { - operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); - } + } + + /** + * 鑾峰彇璇锋眰鐨勫弬鏁帮紝鏀惧埌log涓 + * + * @param operLog 鎿嶄綔鏃ュ織 + * @throws Exception 寮傚父 + */ + private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog, String[] excludeParamNames) + throws Exception { + String requestMethod = operLog.getRequestMethod(); + Map paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); + if (StringUtils.isEmpty(paramsMap) + && StringUtils.equalsAny( + requestMethod, + HttpMethod.PUT.name(), + HttpMethod.POST.name(), + HttpMethod.DELETE.name())) { + String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); + operLog.setOperParam(params); + } else { + operLog.setOperParam( + StringUtils.substring( + JSON.toJSONString(paramsMap, excludePropertyPreFilter(excludeParamNames)), + 0, + PARAM_MAX_LENGTH)); } - - /** - * 鑾峰彇璇锋眰鐨勫弬鏁帮紝鏀惧埌log涓 - * - * @param operLog 鎿嶄綔鏃ュ織 - * @throws Exception 寮傚父 - */ - private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog, String[] excludeParamNames) throws Exception - { - String requestMethod = operLog.getRequestMethod(); - Map paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); - if (StringUtils.isEmpty(paramsMap) && StringUtils.equalsAny(requestMethod, HttpMethod.PUT.name(), HttpMethod.POST.name(), HttpMethod.DELETE.name())) - { - String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); - operLog.setOperParam(params); - } - else - { - operLog.setOperParam(StringUtils.substring(JSON.toJSONString(paramsMap, excludePropertyPreFilter(excludeParamNames)), 0, PARAM_MAX_LENGTH)); - } - } - - /** - * 鍙傛暟鎷艰 - */ - private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) - { - StringBuilder params = new StringBuilder(); - if (paramsArray != null && paramsArray.length > 0) - { - for (Object o : paramsArray) - { - if (StringUtils.isNotNull(o) && !isFilterObject(o)) - { - try - { - String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); - params.append(jsonObj).append(" "); - if (params.length() >= PARAM_MAX_LENGTH) - { - return StringUtils.substring(params.toString(), 0, PARAM_MAX_LENGTH); - } - } - catch (Exception e) - { - log.error("璇锋眰鍙傛暟鎷艰寮傚父 msg:{}, 鍙傛暟:{}", e.getMessage(), paramsArray, e); - } - } + } + + /** 鍙傛暟鎷艰 */ + private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) { + StringBuilder params = new StringBuilder(); + if (paramsArray != null && paramsArray.length > 0) { + for (Object o : paramsArray) { + if (StringUtils.isNotNull(o) && !isFilterObject(o)) { + try { + String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); + params.append(jsonObj).append(" "); + if (params.length() >= PARAM_MAX_LENGTH) { + return StringUtils.substring(params.toString(), 0, PARAM_MAX_LENGTH); } + } catch (Exception e) { + log.error("璇锋眰鍙傛暟鎷艰寮傚父 msg:{}, 鍙傛暟:{}", e.getMessage(), paramsArray, e); + } } - return params.toString(); - } - - /** - * 蹇界暐鏁忔劅灞炴 - */ - public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) - { - return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames)); + } } - - /** - * 鍒ゆ柇鏄惁闇瑕佽繃婊ょ殑瀵硅薄銆 - * - * @param o 瀵硅薄淇℃伅銆 - * @return 濡傛灉鏄渶瑕佽繃婊ょ殑瀵硅薄锛屽垯杩斿洖true锛涘惁鍒欒繑鍥瀎alse銆 - */ - @SuppressWarnings("rawtypes") - public boolean isFilterObject(final Object o) - { - Class clazz = o.getClass(); - if (clazz.isArray()) - { - return clazz.getComponentType().isAssignableFrom(MultipartFile.class); - } - else if (Collection.class.isAssignableFrom(clazz)) - { - Collection collection = (Collection) o; - for (Object value : collection) - { - return value instanceof MultipartFile; - } - } - else if (Map.class.isAssignableFrom(clazz)) - { - Map map = (Map) o; - for (Object value : map.entrySet()) - { - Map.Entry entry = (Map.Entry) value; - return entry.getValue() instanceof MultipartFile; - } - } - return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse - || o instanceof BindingResult; + return params.toString(); + } + + /** 蹇界暐鏁忔劅灞炴 */ + public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) { + return new PropertyPreExcludeFilter() + .addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames)); + } + + /** + * 鍒ゆ柇鏄惁闇瑕佽繃婊ょ殑瀵硅薄銆 + * + * @param o 瀵硅薄淇℃伅銆 + * @return 濡傛灉鏄渶瑕佽繃婊ょ殑瀵硅薄锛屽垯杩斿洖true锛涘惁鍒欒繑鍥瀎alse銆 + */ + @SuppressWarnings("rawtypes") + public boolean isFilterObject(final Object o) { + Class clazz = o.getClass(); + if (clazz.isArray()) { + return clazz.getComponentType().isAssignableFrom(MultipartFile.class); + } else if (Collection.class.isAssignableFrom(clazz)) { + Collection collection = (Collection) o; + for (Object value : collection) { + return value instanceof MultipartFile; + } + } else if (Map.class.isAssignableFrom(clazz)) { + Map map = (Map) o; + for (Object value : map.entrySet()) { + Map.Entry entry = (Map.Entry) value; + return entry.getValue() instanceof MultipartFile; + } } + return o instanceof MultipartFile + || o instanceof HttpServletRequest + || o instanceof HttpServletResponse + || o instanceof BindingResult; + } } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java index cd644ba60..026645f15 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java @@ -2,19 +2,13 @@ package com.ruoyi.common.log.enums; /** * 鎿嶄綔鐘舵 - * - * @author ruoyi * + * @author ruoyi */ -public enum BusinessStatus -{ - /** - * 鎴愬姛 - */ - SUCCESS, +public enum BusinessStatus { + /** 鎴愬姛 */ + SUCCESS, - /** - * 澶辫触 - */ - FAIL, + /** 澶辫触 */ + FAIL, } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java index 3a9a71c9c..34a2cc9e1 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java @@ -2,58 +2,37 @@ package com.ruoyi.common.log.enums; /** * 涓氬姟鎿嶄綔绫诲瀷 - * + * * @author ruoyi */ -public enum BusinessType -{ - /** - * 鍏跺畠 - */ - OTHER, - - /** - * 鏂板 - */ - INSERT, - - /** - * 淇敼 - */ - UPDATE, - - /** - * 鍒犻櫎 - */ - DELETE, - - /** - * 鎺堟潈 - */ - GRANT, - - /** - * 瀵煎嚭 - */ - EXPORT, - - /** - * 瀵煎叆 - */ - IMPORT, - - /** - * 寮洪 - */ - FORCE, - - /** - * 鐢熸垚浠g爜 - */ - GENCODE, - - /** - * 娓呯┖鏁版嵁 - */ - CLEAN, +public enum BusinessType { + /** 鍏跺畠 */ + OTHER, + + /** 鏂板 */ + INSERT, + + /** 淇敼 */ + UPDATE, + + /** 鍒犻櫎 */ + DELETE, + + /** 鎺堟潈 */ + GRANT, + + /** 瀵煎嚭 */ + EXPORT, + + /** 瀵煎叆 */ + IMPORT, + + /** 寮洪 */ + FORCE, + + /** 鐢熸垚浠g爜 */ + GENCODE, + + /** 娓呯┖鏁版嵁 */ + CLEAN, } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java index b122f25f7..5fe9a4383 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java @@ -2,23 +2,16 @@ package com.ruoyi.common.log.enums; /** * 鎿嶄綔浜虹被鍒 - * + * * @author ruoyi */ -public enum OperatorType -{ - /** - * 鍏跺畠 - */ - OTHER, +public enum OperatorType { + /** 鍏跺畠 */ + OTHER, - /** - * 鍚庡彴鐢ㄦ埛 - */ - MANAGE, + /** 鍚庡彴鐢ㄦ埛 */ + MANAGE, - /** - * 鎵嬫満绔敤鎴 - */ - MOBILE + /** 鎵嬫満绔敤鎴 */ + MOBILE } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/filter/PropertyPreExcludeFilter.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/filter/PropertyPreExcludeFilter.java index 5391993ee..00d254e49 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/filter/PropertyPreExcludeFilter.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/filter/PropertyPreExcludeFilter.java @@ -4,21 +4,16 @@ import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; /** * 鎺掗櫎JSON鏁忔劅灞炴 - * + * * @author ruoyi */ -public class PropertyPreExcludeFilter extends SimplePropertyPreFilter -{ - public PropertyPreExcludeFilter() - { - } +public class PropertyPreExcludeFilter extends SimplePropertyPreFilter { + public PropertyPreExcludeFilter() {} - public PropertyPreExcludeFilter addExcludes(String... filters) - { - for (int i = 0; i < filters.length; i++) - { - this.getExcludes().add(filters[i]); - } - return this; + public PropertyPreExcludeFilter addExcludes(String... filters) { + for (int i = 0; i < filters.length; i++) { + this.getExcludes().add(filters[i]); } + return this; + } } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java index eb9a13aa8..e34863670 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java @@ -1,29 +1,24 @@ package com.ruoyi.common.log.service; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.domain.SysOperLog; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; /** * 寮傛璋冪敤鏃ュ織鏈嶅姟 - * + * * @author ruoyi */ @Service -public class AsyncLogService -{ - @Autowired - private RemoteLogService remoteLogService; +public class AsyncLogService { + @Autowired private RemoteLogService remoteLogService; - /** - * 淇濆瓨绯荤粺鏃ュ織璁板綍 - */ - @Async - public void saveSysLog(SysOperLog sysOperLog) throws Exception - { - remoteLogService.saveLog(sysOperLog, SecurityConstants.INNER); - } + /** 淇濆瓨绯荤粺鏃ュ織璁板綍 */ + @Async + public void saveSysLog(SysOperLog sysOperLog) throws Exception { + remoteLogService.saveLog(sysOperLog, SecurityConstants.INNER); + } } diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/FastJson2JsonRedisSerializer.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/FastJson2JsonRedisSerializer.java index 7450399ba..943262a3a 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/FastJson2JsonRedisSerializer.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/FastJson2JsonRedisSerializer.java @@ -1,52 +1,46 @@ package com.ruoyi.common.redis.configure; -import java.nio.charset.Charset; -import org.springframework.data.redis.serializer.RedisSerializer; -import org.springframework.data.redis.serializer.SerializationException; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.JSONWriter; import com.alibaba.fastjson2.filter.Filter; import com.ruoyi.common.core.constant.Constants; +import java.nio.charset.Charset; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.SerializationException; /** * Redis浣跨敤FastJson搴忓垪鍖 - * + * * @author ruoyi */ -public class FastJson2JsonRedisSerializer implements RedisSerializer -{ - public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); +public class FastJson2JsonRedisSerializer implements RedisSerializer { + public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); - static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR); + static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR); - private Class clazz; + private Class clazz; - public FastJson2JsonRedisSerializer(Class clazz) - { - super(); - this.clazz = clazz; - } + public FastJson2JsonRedisSerializer(Class clazz) { + super(); + this.clazz = clazz; + } - @Override - public byte[] serialize(T t) throws SerializationException - { - if (t == null) - { - return new byte[0]; - } - return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); + @Override + public byte[] serialize(T t) throws SerializationException { + if (t == null) { + return new byte[0]; } + return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); + } - @Override - public T deserialize(byte[] bytes) throws SerializationException - { - if (bytes == null || bytes.length <= 0) - { - return null; - } - String str = new String(bytes, DEFAULT_CHARSET); - - return JSON.parseObject(str, clazz, AUTO_TYPE_FILTER); + @Override + public T deserialize(byte[] bytes) throws SerializationException { + if (bytes == null || bytes.length <= 0) { + return null; } + String str = new String(bytes, DEFAULT_CHARSET); + + return JSON.parseObject(str, clazz, AUTO_TYPE_FILTER); + } } diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java index 7363c8a42..9fb097c9c 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java @@ -12,32 +12,30 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; /** * redis閰嶇疆 - * + * * @author ruoyi */ @Configuration @EnableCaching @AutoConfigureBefore(RedisAutoConfiguration.class) -public class RedisConfig extends CachingConfigurerSupport -{ - @Bean - @SuppressWarnings(value = { "unchecked", "rawtypes" }) - public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) - { - RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(connectionFactory); +public class RedisConfig extends CachingConfigurerSupport { + @Bean + @SuppressWarnings(value = {"unchecked", "rawtypes"}) + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(connectionFactory); - FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); + FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); - // 浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊 - template.setKeySerializer(new StringRedisSerializer()); - template.setValueSerializer(serializer); + // 浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊 + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(serializer); - // Hash鐨刱ey涔熼噰鐢⊿tringRedisSerializer鐨勫簭鍒楀寲鏂瑰紡 - template.setHashKeySerializer(new StringRedisSerializer()); - template.setHashValueSerializer(serializer); + // Hash鐨刱ey涔熼噰鐢⊿tringRedisSerializer鐨勫簭鍒楀寲鏂瑰紡 + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); - template.afterPropertiesSet(); - return template; - } + template.afterPropertiesSet(); + return template; + } } diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java index 67ac6e304..23e9565be 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java @@ -15,254 +15,232 @@ import org.springframework.stereotype.Component; /** * spring redis 宸ュ叿绫 - * + * * @author ruoyi - **/ -@SuppressWarnings(value = { "unchecked", "rawtypes" }) + */ +@SuppressWarnings(value = {"unchecked", "rawtypes"}) @Component -public class RedisService -{ - @Autowired - public RedisTemplate redisTemplate; - - /** - * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛 - * - * @param key 缂撳瓨鐨勯敭鍊 - * @param value 缂撳瓨鐨勫 - */ - public void setCacheObject(final String key, final T value) - { - redisTemplate.opsForValue().set(key, value); - } - - /** - * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛 - * - * @param key 缂撳瓨鐨勯敭鍊 - * @param value 缂撳瓨鐨勫 - * @param timeout 鏃堕棿 - * @param timeUnit 鏃堕棿棰楃矑搴 - */ - public void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit timeUnit) - { - redisTemplate.opsForValue().set(key, value, timeout, timeUnit); - } - - /** - * 璁剧疆鏈夋晥鏃堕棿 - * - * @param key Redis閿 - * @param timeout 瓒呮椂鏃堕棿 - * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触 - */ - public boolean expire(final String key, final long timeout) - { - return expire(key, timeout, TimeUnit.SECONDS); - } - - /** - * 璁剧疆鏈夋晥鏃堕棿 - * - * @param key Redis閿 - * @param timeout 瓒呮椂鏃堕棿 - * @param unit 鏃堕棿鍗曚綅 - * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触 - */ - public boolean expire(final String key, final long timeout, final TimeUnit unit) - { - return redisTemplate.expire(key, timeout, unit); - } - - /** - * 鑾峰彇鏈夋晥鏃堕棿 - * - * @param key Redis閿 - * @return 鏈夋晥鏃堕棿 - */ - public long getExpire(final String key) - { - return redisTemplate.getExpire(key); - } - - /** - * 鍒ゆ柇 key鏄惁瀛樺湪 - * - * @param key 閿 - * @return true 瀛樺湪 false涓嶅瓨鍦 - */ - public Boolean hasKey(String key) - { - return redisTemplate.hasKey(key); - } - - /** - * 鑾峰緱缂撳瓨鐨勫熀鏈璞° - * - * @param key 缂撳瓨閿 - * @return 缂撳瓨閿煎搴旂殑鏁版嵁 - */ - public T getCacheObject(final String key) - { - ValueOperations operation = redisTemplate.opsForValue(); - return operation.get(key); - } - - /** - * 鍒犻櫎鍗曚釜瀵硅薄 - * - * @param key - */ - public boolean deleteObject(final String key) - { - return redisTemplate.delete(key); - } - - /** - * 鍒犻櫎闆嗗悎瀵硅薄 - * - * @param collection 澶氫釜瀵硅薄 - * @return - */ - public boolean deleteObject(final Collection collection) - { - return redisTemplate.delete(collection) > 0; - } - - /** - * 缂撳瓨List鏁版嵁 - * - * @param key 缂撳瓨鐨勯敭鍊 - * @param dataList 寰呯紦瀛樼殑List鏁版嵁 - * @return 缂撳瓨鐨勫璞 - */ - public long setCacheList(final String key, final List dataList) - { - Long count = redisTemplate.opsForList().rightPushAll(key, dataList); - return count == null ? 0 : count; - } - - /** - * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄 - * - * @param key 缂撳瓨鐨勯敭鍊 - * @return 缂撳瓨閿煎搴旂殑鏁版嵁 - */ - public List getCacheList(final String key) - { - return redisTemplate.opsForList().range(key, 0, -1); - } - - /** - * 缂撳瓨Set - * - * @param key 缂撳瓨閿 - * @param dataSet 缂撳瓨鐨勬暟鎹 - * @return 缂撳瓨鏁版嵁鐨勫璞 - */ - public BoundSetOperations setCacheSet(final String key, final Set dataSet) - { - BoundSetOperations setOperation = redisTemplate.boundSetOps(key); - Iterator it = dataSet.iterator(); - while (it.hasNext()) - { - setOperation.add(it.next()); - } - return setOperation; - } - - /** - * 鑾峰緱缂撳瓨鐨剆et - * - * @param key - * @return - */ - public Set getCacheSet(final String key) - { - return redisTemplate.opsForSet().members(key); - } - - /** - * 缂撳瓨Map - * - * @param key - * @param dataMap - */ - public void setCacheMap(final String key, final Map dataMap) - { - if (dataMap != null) { - redisTemplate.opsForHash().putAll(key, dataMap); - } - } - - /** - * 鑾峰緱缂撳瓨鐨凪ap - * - * @param key - * @return - */ - public Map getCacheMap(final String key) - { - return redisTemplate.opsForHash().entries(key); - } - - /** - * 寰Hash涓瓨鍏ユ暟鎹 - * - * @param key Redis閿 - * @param hKey Hash閿 - * @param value 鍊 - */ - public void setCacheMapValue(final String key, final String hKey, final T value) - { - redisTemplate.opsForHash().put(key, hKey, value); - } - - /** - * 鑾峰彇Hash涓殑鏁版嵁 - * - * @param key Redis閿 - * @param hKey Hash閿 - * @return Hash涓殑瀵硅薄 - */ - public T getCacheMapValue(final String key, final String hKey) - { - HashOperations opsForHash = redisTemplate.opsForHash(); - return opsForHash.get(key, hKey); - } - - /** - * 鑾峰彇澶氫釜Hash涓殑鏁版嵁 - * - * @param key Redis閿 - * @param hKeys Hash閿泦鍚 - * @return Hash瀵硅薄闆嗗悎 - */ - public List getMultiCacheMapValue(final String key, final Collection hKeys) - { - return redisTemplate.opsForHash().multiGet(key, hKeys); - } - - /** - * 鍒犻櫎Hash涓殑鏌愭潯鏁版嵁 - * - * @param key Redis閿 - * @param hKey Hash閿 - * @return 鏄惁鎴愬姛 - */ - public boolean deleteCacheMapValue(final String key, final String hKey) - { - return redisTemplate.opsForHash().delete(key, hKey) > 0; - } - - /** - * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛 - * - * @param pattern 瀛楃涓插墠缂 - * @return 瀵硅薄鍒楄〃 - */ - public Collection keys(final String pattern) - { - return redisTemplate.keys(pattern); - } +public class RedisService { + @Autowired public RedisTemplate redisTemplate; + + /** + * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛 + * + * @param key 缂撳瓨鐨勯敭鍊 + * @param value 缂撳瓨鐨勫 + */ + public void setCacheObject(final String key, final T value) { + redisTemplate.opsForValue().set(key, value); + } + + /** + * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛 + * + * @param key 缂撳瓨鐨勯敭鍊 + * @param value 缂撳瓨鐨勫 + * @param timeout 鏃堕棿 + * @param timeUnit 鏃堕棿棰楃矑搴 + */ + public void setCacheObject( + final String key, final T value, final Long timeout, final TimeUnit timeUnit) { + redisTemplate.opsForValue().set(key, value, timeout, timeUnit); + } + + /** + * 璁剧疆鏈夋晥鏃堕棿 + * + * @param key Redis閿 + * @param timeout 瓒呮椂鏃堕棿 + * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触 + */ + public boolean expire(final String key, final long timeout) { + return expire(key, timeout, TimeUnit.SECONDS); + } + + /** + * 璁剧疆鏈夋晥鏃堕棿 + * + * @param key Redis閿 + * @param timeout 瓒呮椂鏃堕棿 + * @param unit 鏃堕棿鍗曚綅 + * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触 + */ + public boolean expire(final String key, final long timeout, final TimeUnit unit) { + return redisTemplate.expire(key, timeout, unit); + } + + /** + * 鑾峰彇鏈夋晥鏃堕棿 + * + * @param key Redis閿 + * @return 鏈夋晥鏃堕棿 + */ + public long getExpire(final String key) { + return redisTemplate.getExpire(key); + } + + /** + * 鍒ゆ柇 key鏄惁瀛樺湪 + * + * @param key 閿 + * @return true 瀛樺湪 false涓嶅瓨鍦 + */ + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + /** + * 鑾峰緱缂撳瓨鐨勫熀鏈璞° + * + * @param key 缂撳瓨閿 + * @return 缂撳瓨閿煎搴旂殑鏁版嵁 + */ + public T getCacheObject(final String key) { + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 鍒犻櫎鍗曚釜瀵硅薄 + * + * @param key + */ + public boolean deleteObject(final String key) { + return redisTemplate.delete(key); + } + + /** + * 鍒犻櫎闆嗗悎瀵硅薄 + * + * @param collection 澶氫釜瀵硅薄 + * @return + */ + public boolean deleteObject(final Collection collection) { + return redisTemplate.delete(collection) > 0; + } + + /** + * 缂撳瓨List鏁版嵁 + * + * @param key 缂撳瓨鐨勯敭鍊 + * @param dataList 寰呯紦瀛樼殑List鏁版嵁 + * @return 缂撳瓨鐨勫璞 + */ + public long setCacheList(final String key, final List dataList) { + Long count = redisTemplate.opsForList().rightPushAll(key, dataList); + return count == null ? 0 : count; + } + + /** + * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄 + * + * @param key 缂撳瓨鐨勯敭鍊 + * @return 缂撳瓨閿煎搴旂殑鏁版嵁 + */ + public List getCacheList(final String key) { + return redisTemplate.opsForList().range(key, 0, -1); + } + + /** + * 缂撳瓨Set + * + * @param key 缂撳瓨閿 + * @param dataSet 缂撳瓨鐨勬暟鎹 + * @return 缂撳瓨鏁版嵁鐨勫璞 + */ + public BoundSetOperations setCacheSet(final String key, final Set dataSet) { + BoundSetOperations setOperation = redisTemplate.boundSetOps(key); + Iterator it = dataSet.iterator(); + while (it.hasNext()) { + setOperation.add(it.next()); + } + return setOperation; + } + + /** + * 鑾峰緱缂撳瓨鐨剆et + * + * @param key + * @return + */ + public Set getCacheSet(final String key) { + return redisTemplate.opsForSet().members(key); + } + + /** + * 缂撳瓨Map + * + * @param key + * @param dataMap + */ + public void setCacheMap(final String key, final Map dataMap) { + if (dataMap != null) { + redisTemplate.opsForHash().putAll(key, dataMap); + } + } + + /** + * 鑾峰緱缂撳瓨鐨凪ap + * + * @param key + * @return + */ + public Map getCacheMap(final String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * 寰Hash涓瓨鍏ユ暟鎹 + * + * @param key Redis閿 + * @param hKey Hash閿 + * @param value 鍊 + */ + public void setCacheMapValue(final String key, final String hKey, final T value) { + redisTemplate.opsForHash().put(key, hKey, value); + } + + /** + * 鑾峰彇Hash涓殑鏁版嵁 + * + * @param key Redis閿 + * @param hKey Hash閿 + * @return Hash涓殑瀵硅薄 + */ + public T getCacheMapValue(final String key, final String hKey) { + HashOperations opsForHash = redisTemplate.opsForHash(); + return opsForHash.get(key, hKey); + } + + /** + * 鑾峰彇澶氫釜Hash涓殑鏁版嵁 + * + * @param key Redis閿 + * @param hKeys Hash閿泦鍚 + * @return Hash瀵硅薄闆嗗悎 + */ + public List getMultiCacheMapValue(final String key, final Collection hKeys) { + return redisTemplate.opsForHash().multiGet(key, hKeys); + } + + /** + * 鍒犻櫎Hash涓殑鏌愭潯鏁版嵁 + * + * @param key Redis閿 + * @param hKey Hash閿 + * @return 鏄惁鎴愬姛 + */ + public boolean deleteCacheMapValue(final String key, final String hKey) { + return redisTemplate.opsForHash().delete(key, hKey) > 0; + } + + /** + * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛 + * + * @param pattern 瀛楃涓插墠缂 + * @return 瀵硅薄鍒楄〃 + */ + public Collection keys(final String pattern) { + return redisTemplate.keys(pattern); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableCustomConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableCustomConfig.java index fa2a8b291..30432fbc0 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableCustomConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableCustomConfig.java @@ -1,5 +1,7 @@ package com.ruoyi.common.security.annotation; +import com.ruoyi.common.security.config.ApplicationConfig; +import com.ruoyi.common.security.feign.FeignAutoConfiguration; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; @@ -10,8 +12,6 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.Import; import org.springframework.scheduling.annotation.EnableAsync; -import com.ruoyi.common.security.config.ApplicationConfig; -import com.ruoyi.common.security.feign.FeignAutoConfiguration; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @@ -24,8 +24,5 @@ import com.ruoyi.common.security.feign.FeignAutoConfiguration; // 寮鍚嚎绋嬪紓姝ユ墽琛 @EnableAsync // 鑷姩鍔犺浇绫 -@Import({ ApplicationConfig.class, FeignAutoConfiguration.class }) -public @interface EnableCustomConfig -{ - -} +@Import({ApplicationConfig.class, FeignAutoConfiguration.class}) +public @interface EnableCustomConfig {} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java index 066e83496..c7c41afa4 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java @@ -1,27 +1,25 @@ package com.ruoyi.common.security.annotation; -import org.springframework.cloud.openfeign.EnableFeignClients; import java.lang.annotation.*; +import org.springframework.cloud.openfeign.EnableFeignClients; /** - * 鑷畾涔塮eign娉ㄨВ - * 娣诲姞basePackages璺緞 - * + * 鑷畾涔塮eign娉ㄨВ 娣诲姞basePackages璺緞 + * * @author ruoyi */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @EnableFeignClients -public @interface EnableRyFeignClients -{ - String[] value() default {}; +public @interface EnableRyFeignClients { + String[] value() default {}; - String[] basePackages() default { "com.ruoyi" }; + String[] basePackages() default {"com.ruoyi"}; - Class[] basePackageClasses() default {}; + Class[] basePackageClasses() default {}; - Class[] defaultConfiguration() default {}; + Class[] defaultConfiguration() default {}; - Class[] clients() default {}; + Class[] clients() default {}; } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/InnerAuth.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/InnerAuth.java index 80fa59e7d..bf6d03ab9 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/InnerAuth.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/InnerAuth.java @@ -4,16 +4,13 @@ import java.lang.annotation.*; /** * 鍐呴儴璁よ瘉娉ㄨВ - * + * * @author ruoyi */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface InnerAuth -{ - /** - * 鏄惁鏍¢獙鐢ㄦ埛淇℃伅 - */ - boolean isUser() default false; -} \ No newline at end of file +public @interface InnerAuth { + /** 鏄惁鏍¢獙鐢ㄦ埛淇℃伅 */ + boolean isUser() default false; +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/Logical.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/Logical.java index e88f56cb6..b2e315ddf 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/Logical.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/Logical.java @@ -2,19 +2,13 @@ package com.ruoyi.common.security.annotation; /** * 鏉冮檺娉ㄨВ鐨勯獙璇佹ā寮 - * - * @author ruoyi * + * @author ruoyi */ -public enum Logical -{ - /** - * 蹇呴』鍏锋湁鎵鏈夌殑鍏冪礌 - */ - AND, +public enum Logical { + /** 蹇呴』鍏锋湁鎵鏈夌殑鍏冪礌 */ + AND, - /** - * 鍙渶鍏锋湁鍏朵腑涓涓厓绱 - */ - OR + /** 鍙渶鍏锋湁鍏朵腑涓涓厓绱 */ + OR } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresLogin.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresLogin.java index 0910b1290..2908beed1 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresLogin.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresLogin.java @@ -7,12 +7,9 @@ import java.lang.annotation.Target; /** * 鐧诲綍璁よ瘉锛氬彧鏈夌櫥褰曚箣鍚庢墠鑳借繘鍏ヨ鏂规硶 - * - * @author ruoyi * + * @author ruoyi */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresLogin -{ -} +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresLogin {} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresPermissions.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresPermissions.java index 4adf4df8a..92e249b4e 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresPermissions.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresPermissions.java @@ -7,21 +7,15 @@ import java.lang.annotation.Target; /** * 鏉冮檺璁よ瘉锛氬繀椤诲叿鏈夋寚瀹氭潈闄愭墠鑳借繘鍏ヨ鏂规硶 - * - * @author ruoyi * + * @author ruoyi */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresPermissions -{ - /** - * 闇瑕佹牎楠岀殑鏉冮檺鐮 - */ - String[] value() default {}; +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresPermissions { + /** 闇瑕佹牎楠岀殑鏉冮檺鐮 */ + String[] value() default {}; - /** - * 楠岃瘉妯″紡锛欰ND | OR锛岄粯璁ND - */ - Logical logical() default Logical.AND; + /** 楠岃瘉妯″紡锛欰ND | OR锛岄粯璁ND */ + Logical logical() default Logical.AND; } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresRoles.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresRoles.java index 546620d21..dc08e2c3f 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresRoles.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresRoles.java @@ -7,20 +7,15 @@ import java.lang.annotation.Target; /** * 瑙掕壊璁よ瘉锛氬繀椤诲叿鏈夋寚瀹氳鑹叉爣璇嗘墠鑳借繘鍏ヨ鏂规硶 - * + * * @author ruoyi */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresRoles -{ - /** - * 闇瑕佹牎楠岀殑瑙掕壊鏍囪瘑 - */ - String[] value() default {}; +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresRoles { + /** 闇瑕佹牎楠岀殑瑙掕壊鏍囪瘑 */ + String[] value() default {}; - /** - * 楠岃瘉閫昏緫锛欰ND | OR锛岄粯璁ND - */ - Logical logical() default Logical.AND; + /** 楠岃瘉閫昏緫锛欰ND | OR锛岄粯璁ND */ + Logical logical() default Logical.AND; } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/InnerAuthAspect.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/InnerAuthAspect.java index 780f65e93..73f5f5245 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/InnerAuthAspect.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/InnerAuthAspect.java @@ -1,51 +1,44 @@ package com.ruoyi.common.security.aspect; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.springframework.core.Ordered; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.exception.InnerAuthException; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.annotation.InnerAuth; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.core.Ordered; +import org.springframework.stereotype.Component; /** * 鍐呴儴鏈嶅姟璋冪敤楠岃瘉澶勭悊 - * + * * @author ruoyi */ @Aspect @Component -public class InnerAuthAspect implements Ordered -{ - @Around("@annotation(innerAuth)") - public Object innerAround(ProceedingJoinPoint point, InnerAuth innerAuth) throws Throwable - { - String source = ServletUtils.getRequest().getHeader(SecurityConstants.FROM_SOURCE); - // 鍐呴儴璇锋眰楠岃瘉 - if (!StringUtils.equals(SecurityConstants.INNER, source)) - { - throw new InnerAuthException("娌℃湁鍐呴儴璁块棶鏉冮檺锛屼笉鍏佽璁块棶"); - } - - String userid = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USER_ID); - String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USERNAME); - // 鐢ㄦ埛淇℃伅楠岃瘉 - if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))) - { - throw new InnerAuthException("娌℃湁璁剧疆鐢ㄦ埛淇℃伅锛屼笉鍏佽璁块棶 "); - } - return point.proceed(); +public class InnerAuthAspect implements Ordered { + @Around("@annotation(innerAuth)") + public Object innerAround(ProceedingJoinPoint point, InnerAuth innerAuth) throws Throwable { + String source = ServletUtils.getRequest().getHeader(SecurityConstants.FROM_SOURCE); + // 鍐呴儴璇锋眰楠岃瘉 + if (!StringUtils.equals(SecurityConstants.INNER, source)) { + throw new InnerAuthException("娌℃湁鍐呴儴璁块棶鏉冮檺锛屼笉鍏佽璁块棶"); } - /** - * 纭繚鍦ㄦ潈闄愯璇乤op鎵ц鍓嶆墽琛 - */ - @Override - public int getOrder() - { - return Ordered.HIGHEST_PRECEDENCE + 1; + String userid = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USER_ID); + String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USERNAME); + // 鐢ㄦ埛淇℃伅楠岃瘉 + if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))) { + throw new InnerAuthException("娌℃湁璁剧疆鐢ㄦ埛淇℃伅锛屼笉鍏佽璁块棶 "); } + return point.proceed(); + } + + /** 纭繚鍦ㄦ潈闄愯璇乤op鎵ц鍓嶆墽琛 */ + @Override + public int getOrder() { + return Ordered.HIGHEST_PRECEDENCE + 1; + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java index bd5ce30d0..15099eedf 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java @@ -1,5 +1,9 @@ package com.ruoyi.common.security.aspect; +import com.ruoyi.common.security.annotation.RequiresLogin; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.annotation.RequiresRoles; +import com.ruoyi.common.security.auth.AuthUtil; import java.lang.reflect.Method; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -7,83 +11,62 @@ import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; -import com.ruoyi.common.security.annotation.RequiresLogin; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.annotation.RequiresRoles; -import com.ruoyi.common.security.auth.AuthUtil; /** * 鍩轰簬 Spring Aop 鐨勬敞瑙i壌鏉 - * + * * @author kong */ @Aspect @Component -public class PreAuthorizeAspect -{ - /** - * 鏋勫缓 - */ - public PreAuthorizeAspect() - { - } +public class PreAuthorizeAspect { + /** 鏋勫缓 */ + public PreAuthorizeAspect() {} - /** - * 瀹氫箟AOP绛惧悕 (鍒囧叆鎵鏈変娇鐢ㄩ壌鏉冩敞瑙g殑鏂规硶) - */ - public static final String POINTCUT_SIGN = " @annotation(com.ruoyi.common.security.annotation.RequiresLogin) || " - + "@annotation(com.ruoyi.common.security.annotation.RequiresPermissions) || " - + "@annotation(com.ruoyi.common.security.annotation.RequiresRoles)"; + /** 瀹氫箟AOP绛惧悕 (鍒囧叆鎵鏈変娇鐢ㄩ壌鏉冩敞瑙g殑鏂规硶) */ + public static final String POINTCUT_SIGN = + " @annotation(com.ruoyi.common.security.annotation.RequiresLogin) || " + + "@annotation(com.ruoyi.common.security.annotation.RequiresPermissions) || " + + "@annotation(com.ruoyi.common.security.annotation.RequiresRoles)"; - /** - * 澹版槑AOP绛惧悕 - */ - @Pointcut(POINTCUT_SIGN) - public void pointcut() - { - } + /** 澹版槑AOP绛惧悕 */ + @Pointcut(POINTCUT_SIGN) + public void pointcut() {} - /** - * 鐜粫鍒囧叆 - * - * @param joinPoint 鍒囬潰瀵硅薄 - * @return 搴曞眰鏂规硶鎵ц鍚庣殑杩斿洖鍊 - * @throws Throwable 搴曞眰鏂规硶鎶涘嚭鐨勫紓甯 - */ - @Around("pointcut()") - public Object around(ProceedingJoinPoint joinPoint) throws Throwable - { - // 娉ㄨВ閴存潈 - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - checkMethodAnnotation(signature.getMethod()); - // 鎵ц鍘熸湁閫昏緫 - return joinPoint.proceed(); - } + /** + * 鐜粫鍒囧叆 + * + * @param joinPoint 鍒囬潰瀵硅薄 + * @return 搴曞眰鏂规硶鎵ц鍚庣殑杩斿洖鍊 + * @throws Throwable 搴曞眰鏂规硶鎶涘嚭鐨勫紓甯 + */ + @Around("pointcut()") + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + // 娉ㄨВ閴存潈 + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + checkMethodAnnotation(signature.getMethod()); + // 鎵ц鍘熸湁閫昏緫 + return joinPoint.proceed(); + } - /** - * 瀵逛竴涓狹ethod瀵硅薄杩涜娉ㄨВ妫鏌 - */ - public void checkMethodAnnotation(Method method) - { - // 鏍¢獙 @RequiresLogin 娉ㄨВ - RequiresLogin requiresLogin = method.getAnnotation(RequiresLogin.class); - if (requiresLogin != null) - { - AuthUtil.checkLogin(); - } + /** 瀵逛竴涓狹ethod瀵硅薄杩涜娉ㄨВ妫鏌 */ + public void checkMethodAnnotation(Method method) { + // 鏍¢獙 @RequiresLogin 娉ㄨВ + RequiresLogin requiresLogin = method.getAnnotation(RequiresLogin.class); + if (requiresLogin != null) { + AuthUtil.checkLogin(); + } - // 鏍¢獙 @RequiresRoles 娉ㄨВ - RequiresRoles requiresRoles = method.getAnnotation(RequiresRoles.class); - if (requiresRoles != null) - { - AuthUtil.checkRole(requiresRoles); - } + // 鏍¢獙 @RequiresRoles 娉ㄨВ + RequiresRoles requiresRoles = method.getAnnotation(RequiresRoles.class); + if (requiresRoles != null) { + AuthUtil.checkRole(requiresRoles); + } - // 鏍¢獙 @RequiresPermissions 娉ㄨВ - RequiresPermissions requiresPermissions = method.getAnnotation(RequiresPermissions.class); - if (requiresPermissions != null) - { - AuthUtil.checkPermi(requiresPermissions); - } + // 鏍¢獙 @RequiresPermissions 娉ㄨВ + RequiresPermissions requiresPermissions = method.getAnnotation(RequiresPermissions.class); + if (requiresPermissions != null) { + AuthUtil.checkPermi(requiresPermissions); } + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java index 1fa56babf..b1f8cb14e 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java @@ -1,9 +1,5 @@ package com.ruoyi.common.security.auth; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; -import org.springframework.util.PatternMatchUtils; import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.core.exception.auth.NotLoginException; import com.ruoyi.common.core.exception.auth.NotPermissionException; @@ -17,357 +13,300 @@ import com.ruoyi.common.security.annotation.RequiresRoles; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import org.springframework.util.PatternMatchUtils; /** * Token 鏉冮檺楠岃瘉锛岄昏緫瀹炵幇绫 - * + * * @author ruoyi */ -public class AuthLogic -{ - /** 鎵鏈夋潈闄愭爣璇 */ - private static final String ALL_PERMISSION = "*:*:*"; +public class AuthLogic { + /** 鎵鏈夋潈闄愭爣璇 */ + private static final String ALL_PERMISSION = "*:*:*"; - /** 绠$悊鍛樿鑹叉潈闄愭爣璇 */ - private static final String SUPER_ADMIN = "admin"; + /** 绠$悊鍛樿鑹叉潈闄愭爣璇 */ + private static final String SUPER_ADMIN = "admin"; - public TokenService tokenService = SpringUtils.getBean(TokenService.class); + public TokenService tokenService = SpringUtils.getBean(TokenService.class); - /** - * 浼氳瘽娉ㄩ攢 - */ - public void logout() - { - String token = SecurityUtils.getToken(); - if (token == null) - { - return; - } - logoutByToken(token); + /** 浼氳瘽娉ㄩ攢 */ + public void logout() { + String token = SecurityUtils.getToken(); + if (token == null) { + return; } + logoutByToken(token); + } - /** - * 浼氳瘽娉ㄩ攢锛屾牴鎹寚瀹歍oken - */ - public void logoutByToken(String token) - { - tokenService.delLoginUser(token); - } + /** 浼氳瘽娉ㄩ攢锛屾牴鎹寚瀹歍oken */ + public void logoutByToken(String token) { + tokenService.delLoginUser(token); + } - /** - * 妫楠岀敤鎴锋槸鍚﹀凡缁忕櫥褰曪紝濡傛湭鐧诲綍锛屽垯鎶涘嚭寮傚父 - */ - public void checkLogin() - { - getLoginUser(); - } + /** 妫楠岀敤鎴锋槸鍚﹀凡缁忕櫥褰曪紝濡傛湭鐧诲綍锛屽垯鎶涘嚭寮傚父 */ + public void checkLogin() { + getLoginUser(); + } - /** - * 鑾峰彇褰撳墠鐢ㄦ埛缂撳瓨淇℃伅, 濡傛灉鏈櫥褰曪紝鍒欐姏鍑哄紓甯 - * - * @return 鐢ㄦ埛缂撳瓨淇℃伅 - */ - public LoginUser getLoginUser() - { - String token = SecurityUtils.getToken(); - if (token == null) - { - throw new NotLoginException("鏈彁渚泃oken"); - } - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser == null) - { - throw new NotLoginException("鏃犳晥鐨則oken"); - } - return loginUser; + /** + * 鑾峰彇褰撳墠鐢ㄦ埛缂撳瓨淇℃伅, 濡傛灉鏈櫥褰曪紝鍒欐姏鍑哄紓甯 + * + * @return 鐢ㄦ埛缂撳瓨淇℃伅 + */ + public LoginUser getLoginUser() { + String token = SecurityUtils.getToken(); + if (token == null) { + throw new NotLoginException("鏈彁渚泃oken"); } - - /** - * 鑾峰彇褰撳墠鐢ㄦ埛缂撳瓨淇℃伅, 濡傛灉鏈櫥褰曪紝鍒欐姏鍑哄紓甯 - * - * @param token 鍓嶇浼犻掔殑璁よ瘉淇℃伅 - * @return 鐢ㄦ埛缂撳瓨淇℃伅 - */ - public LoginUser getLoginUser(String token) - { - return tokenService.getLoginUser(token); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser == null) { + throw new NotLoginException("鏃犳晥鐨則oken"); } + return loginUser; + } - /** - * 楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈, 濡傛灉鐩稿樊涓嶈冻120鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛 - * - * @param loginUser 褰撳墠鐢ㄦ埛淇℃伅 - */ - public void verifyLoginUserExpire(LoginUser loginUser) - { - tokenService.verifyToken(loginUser); - } + /** + * 鑾峰彇褰撳墠鐢ㄦ埛缂撳瓨淇℃伅, 濡傛灉鏈櫥褰曪紝鍒欐姏鍑哄紓甯 + * + * @param token 鍓嶇浼犻掔殑璁よ瘉淇℃伅 + * @return 鐢ㄦ埛缂撳瓨淇℃伅 + */ + public LoginUser getLoginUser(String token) { + return tokenService.getLoginUser(token); + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 - * - * @param permission 鏉冮檺瀛楃涓 - * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 - */ - public boolean hasPermi(String permission) - { - return hasPermi(getPermiList(), permission); - } + /** + * 楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈, 濡傛灉鐩稿樊涓嶈冻120鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛 + * + * @param loginUser 褰撳墠鐢ㄦ埛淇℃伅 + */ + public void verifyLoginUserExpire(LoginUser loginUser) { + tokenService.verifyToken(loginUser); + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException - * - * @param permission 鏉冮檺瀛楃涓 - * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 - */ - public void checkPermi(String permission) - { - if (!hasPermi(getPermiList(), permission)) - { - throw new NotPermissionException(permission); - } - } + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 + * + * @param permission 鏉冮檺瀛楃涓 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 + */ + public boolean hasPermi(String permission) { + return hasPermi(getPermiList(), permission); + } - /** - * 鏍规嵁娉ㄨВ(@RequiresPermissions)閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException - * - * @param requiresPermissions 娉ㄨВ瀵硅薄 - */ - public void checkPermi(RequiresPermissions requiresPermissions) - { - SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ",")); - if (requiresPermissions.logical() == Logical.AND) - { - checkPermiAnd(requiresPermissions.value()); - } - else - { - checkPermiOr(requiresPermissions.value()); - } + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException + * + * @param permission 鏉冮檺瀛楃涓 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 + */ + public void checkPermi(String permission) { + if (!hasPermi(getPermiList(), permission)) { + throw new NotPermissionException(permission); } + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽繀椤诲叏閮ㄦ嫢鏈 - * - * @param permissions 鏉冮檺鍒楄〃 - */ - public void checkPermiAnd(String... permissions) - { - Set permissionList = getPermiList(); - for (String permission : permissions) - { - if (!hasPermi(permissionList, permission)) - { - throw new NotPermissionException(permission); - } - } + /** + * 鏍规嵁娉ㄨВ(@RequiresPermissions)閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException + * + * @param requiresPermissions 娉ㄨВ瀵硅薄 + */ + public void checkPermi(RequiresPermissions requiresPermissions) { + SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ",")); + if (requiresPermissions.logical() == Logical.AND) { + checkPermiAnd(requiresPermissions.value()); + } else { + checkPermiOr(requiresPermissions.value()); } + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽彧闇鍖呭惈鍏朵腑涓涓 - * - * @param permissions 鏉冮檺鐮佹暟缁 - */ - public void checkPermiOr(String... permissions) - { - Set permissionList = getPermiList(); - for (String permission : permissions) - { - if (hasPermi(permissionList, permission)) - { - return; - } - } - if (permissions.length > 0) - { - throw new NotPermissionException(permissions); - } + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽繀椤诲叏閮ㄦ嫢鏈 + * + * @param permissions 鏉冮檺鍒楄〃 + */ + public void checkPermiAnd(String... permissions) { + Set permissionList = getPermiList(); + for (String permission : permissions) { + if (!hasPermi(permissionList, permission)) { + throw new NotPermissionException(permission); + } } + } - /** - * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊 - * - * @param role 瑙掕壊鏍囪瘑 - * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹 - */ - public boolean hasRole(String role) - { - return hasRole(getRoleList(), role); + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽彧闇鍖呭惈鍏朵腑涓涓 + * + * @param permissions 鏉冮檺鐮佹暟缁 + */ + public void checkPermiOr(String... permissions) { + Set permissionList = getPermiList(); + for (String permission : permissions) { + if (hasPermi(permissionList, permission)) { + return; + } } - - /** - * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException - * - * @param role 瑙掕壊鏍囪瘑 - */ - public void checkRole(String role) - { - if (!hasRole(role)) - { - throw new NotRoleException(role); - } + if (permissions.length > 0) { + throw new NotPermissionException(permissions); } + } - /** - * 鏍规嵁娉ㄨВ(@RequiresRoles)閴存潈 - * - * @param requiresRoles 娉ㄨВ瀵硅薄 - */ - public void checkRole(RequiresRoles requiresRoles) - { - if (requiresRoles.logical() == Logical.AND) - { - checkRoleAnd(requiresRoles.value()); - } - else - { - checkRoleOr(requiresRoles.value()); - } - } + /** + * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊 + * + * @param role 瑙掕壊鏍囪瘑 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹 + */ + public boolean hasRole(String role) { + return hasRole(getRoleList(), role); + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽繀椤诲叏閮ㄦ嫢鏈 - * - * @param roles 瑙掕壊鏍囪瘑鏁扮粍 - */ - public void checkRoleAnd(String... roles) - { - Set roleList = getRoleList(); - for (String role : roles) - { - if (!hasRole(roleList, role)) - { - throw new NotRoleException(role); - } - } + /** + * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException + * + * @param role 瑙掕壊鏍囪瘑 + */ + public void checkRole(String role) { + if (!hasRole(role)) { + throw new NotRoleException(role); } + } - /** - * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽彧闇鍖呭惈鍏朵腑涓涓 - * - * @param roles 瑙掕壊鏍囪瘑鏁扮粍 - */ - public void checkRoleOr(String... roles) - { - Set roleList = getRoleList(); - for (String role : roles) - { - if (hasRole(roleList, role)) - { - return; - } - } - if (roles.length > 0) - { - throw new NotRoleException(roles); - } + /** + * 鏍规嵁娉ㄨВ(@RequiresRoles)閴存潈 + * + * @param requiresRoles 娉ㄨВ瀵硅薄 + */ + public void checkRole(RequiresRoles requiresRoles) { + if (requiresRoles.logical() == Logical.AND) { + checkRoleAnd(requiresRoles.value()); + } else { + checkRoleOr(requiresRoles.value()); } + } - /** - * 鏍规嵁娉ㄨВ(@RequiresLogin)閴存潈 - * - * @param at 娉ㄨВ瀵硅薄 - */ - public void checkByAnnotation(RequiresLogin at) - { - this.checkLogin(); + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽繀椤诲叏閮ㄦ嫢鏈 + * + * @param roles 瑙掕壊鏍囪瘑鏁扮粍 + */ + public void checkRoleAnd(String... roles) { + Set roleList = getRoleList(); + for (String role : roles) { + if (!hasRole(roleList, role)) { + throw new NotRoleException(role); + } } + } - /** - * 鏍规嵁娉ㄨВ(@RequiresRoles)閴存潈 - * - * @param at 娉ㄨВ瀵硅薄 - */ - public void checkByAnnotation(RequiresRoles at) - { - String[] roleArray = at.value(); - if (at.logical() == Logical.AND) - { - this.checkRoleAnd(roleArray); - } - else - { - this.checkRoleOr(roleArray); - } + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽彧闇鍖呭惈鍏朵腑涓涓 + * + * @param roles 瑙掕壊鏍囪瘑鏁扮粍 + */ + public void checkRoleOr(String... roles) { + Set roleList = getRoleList(); + for (String role : roles) { + if (hasRole(roleList, role)) { + return; + } } - - /** - * 鏍规嵁娉ㄨВ(@RequiresPermissions)閴存潈 - * - * @param at 娉ㄨВ瀵硅薄 - */ - public void checkByAnnotation(RequiresPermissions at) - { - String[] permissionArray = at.value(); - if (at.logical() == Logical.AND) - { - this.checkPermiAnd(permissionArray); - } - else - { - this.checkPermiOr(permissionArray); - } + if (roles.length > 0) { + throw new NotRoleException(roles); } + } + + /** + * 鏍规嵁娉ㄨВ(@RequiresLogin)閴存潈 + * + * @param at 娉ㄨВ瀵硅薄 + */ + public void checkByAnnotation(RequiresLogin at) { + this.checkLogin(); + } - /** - * 鑾峰彇褰撳墠璐﹀彿鐨勮鑹插垪琛 - * - * @return 瑙掕壊鍒楄〃 - */ - public Set getRoleList() - { - try - { - LoginUser loginUser = getLoginUser(); - return loginUser.getRoles(); - } - catch (Exception e) - { - return new HashSet<>(); - } + /** + * 鏍规嵁娉ㄨВ(@RequiresRoles)閴存潈 + * + * @param at 娉ㄨВ瀵硅薄 + */ + public void checkByAnnotation(RequiresRoles at) { + String[] roleArray = at.value(); + if (at.logical() == Logical.AND) { + this.checkRoleAnd(roleArray); + } else { + this.checkRoleOr(roleArray); } + } - /** - * 鑾峰彇褰撳墠璐﹀彿鐨勬潈闄愬垪琛 - * - * @return 鏉冮檺鍒楄〃 - */ - public Set getPermiList() - { - try - { - LoginUser loginUser = getLoginUser(); - return loginUser.getPermissions(); - } - catch (Exception e) - { - return new HashSet<>(); - } + /** + * 鏍规嵁娉ㄨВ(@RequiresPermissions)閴存潈 + * + * @param at 娉ㄨВ瀵硅薄 + */ + public void checkByAnnotation(RequiresPermissions at) { + String[] permissionArray = at.value(); + if (at.logical() == Logical.AND) { + this.checkPermiAnd(permissionArray); + } else { + this.checkPermiOr(permissionArray); } + } - /** - * 鍒ゆ柇鏄惁鍖呭惈鏉冮檺 - * - * @param authorities 鏉冮檺鍒楄〃 - * @param permission 鏉冮檺瀛楃涓 - * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 - */ - public boolean hasPermi(Collection authorities, String permission) - { - return authorities.stream().filter(StringUtils::hasText) - .anyMatch(x -> ALL_PERMISSION.equals(x) || PatternMatchUtils.simpleMatch(x, permission)); + /** + * 鑾峰彇褰撳墠璐﹀彿鐨勮鑹插垪琛 + * + * @return 瑙掕壊鍒楄〃 + */ + public Set getRoleList() { + try { + LoginUser loginUser = getLoginUser(); + return loginUser.getRoles(); + } catch (Exception e) { + return new HashSet<>(); } + } - /** - * 鍒ゆ柇鏄惁鍖呭惈瑙掕壊 - * - * @param roles 瑙掕壊鍒楄〃 - * @param role 瑙掕壊 - * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹叉潈闄 - */ - public boolean hasRole(Collection roles, String role) - { - return roles.stream().filter(StringUtils::hasText) - .anyMatch(x -> SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); + /** + * 鑾峰彇褰撳墠璐﹀彿鐨勬潈闄愬垪琛 + * + * @return 鏉冮檺鍒楄〃 + */ + public Set getPermiList() { + try { + LoginUser loginUser = getLoginUser(); + return loginUser.getPermissions(); + } catch (Exception e) { + return new HashSet<>(); } + } + + /** + * 鍒ゆ柇鏄惁鍖呭惈鏉冮檺 + * + * @param authorities 鏉冮檺鍒楄〃 + * @param permission 鏉冮檺瀛楃涓 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄 + */ + public boolean hasPermi(Collection authorities, String permission) { + return authorities.stream() + .filter(StringUtils::hasText) + .anyMatch(x -> ALL_PERMISSION.equals(x) || PatternMatchUtils.simpleMatch(x, permission)); + } + + /** + * 鍒ゆ柇鏄惁鍖呭惈瑙掕壊 + * + * @param roles 瑙掕壊鍒楄〃 + * @param role 瑙掕壊 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹叉潈闄 + */ + public boolean hasRole(Collection roles, String role) { + return roles.stream() + .filter(StringUtils::hasText) + .anyMatch(x -> SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java index ac712c9e9..67ff186fa 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java @@ -6,162 +6,140 @@ import com.ruoyi.system.api.model.LoginUser; /** * Token 鏉冮檺楠岃瘉宸ュ叿绫 - * + * * @author ruoyi */ -public class AuthUtil -{ - /** - * 搴曞眰鐨 AuthLogic 瀵硅薄 - */ - public static AuthLogic authLogic = new AuthLogic(); - - /** - * 浼氳瘽娉ㄩ攢 - */ - public static void logout() - { - authLogic.logout(); - } - - /** - * 浼氳瘽娉ㄩ攢锛屾牴鎹寚瀹歍oken - * - * @param token 鎸囧畾token - */ - public static void logoutByToken(String token) - { - authLogic.logoutByToken(token); - } - - /** - * 妫楠屽綋鍓嶄細璇濇槸鍚﹀凡缁忕櫥褰曪紝濡傛湭鐧诲綍锛屽垯鎶涘嚭寮傚父 - */ - public static void checkLogin() - { - authLogic.checkLogin(); - } - - /** - * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 - * - * @param token 鎸囧畾token - * @return 鐢ㄦ埛淇℃伅 - */ - public static LoginUser getLoginUser(String token) - { - return authLogic.getLoginUser(token); - } - - /** - * 楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈 - * - * @param loginUser 鐢ㄦ埛淇℃伅 - */ - public static void verifyLoginUserExpire(LoginUser loginUser) - { - authLogic.verifyLoginUserExpire(loginUser); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑, 杩斿洖true鎴杅alse - * - * @param role 瑙掕壊鏍囪瘑 - * @return 鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 - */ - public static boolean hasRole(String role) - { - return authLogic.hasRole(role); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException - * - * @param role 瑙掕壊鏍囪瘑 - */ - public static void checkRole(String role) - { - authLogic.checkRole(role); - } - - /** - * 鏍规嵁娉ㄨВ浼犲叆鍙傛暟閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException - * - * @param requiresRoles 瑙掕壊鏉冮檺娉ㄨВ - */ - public static void checkRole(RequiresRoles requiresRoles) - { - authLogic.checkRole(requiresRoles); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 [鎸囧畾澶氫釜锛屽繀椤诲叏閮ㄩ獙璇侀氳繃] - * - * @param roles 瑙掕壊鏍囪瘑鏁扮粍 - */ - public static void checkRoleAnd(String... roles) - { - authLogic.checkRoleAnd(roles); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 [鎸囧畾澶氫釜锛屽彧瑕佸叾涓楠岃瘉閫氳繃鍗冲彲] - * - * @param roles 瑙掕壊鏍囪瘑鏁扮粍 - */ - public static void checkRoleOr(String... roles) - { - authLogic.checkRoleOr(roles); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺, 杩斿洖true鎴杅alse - * - * @param permission 鏉冮檺鐮 - * @return 鏄惁鍚湁鎸囧畾鏉冮檺 - */ - public static boolean hasPermi(String permission) - { - return authLogic.hasPermi(permission); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException - * - * @param permission 鏉冮檺鐮 - */ - public static void checkPermi(String permission) - { - authLogic.checkPermi(permission); - } - - /** - * 鏍规嵁娉ㄨВ浼犲叆鍙傛暟閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException - * - * @param requiresPermissions 鏉冮檺娉ㄨВ - */ - public static void checkPermi(RequiresPermissions requiresPermissions) - { - authLogic.checkPermi(requiresPermissions); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺 [鎸囧畾澶氫釜锛屽繀椤诲叏閮ㄩ獙璇侀氳繃] - * - * @param permissions 鏉冮檺鐮佹暟缁 - */ - public static void checkPermiAnd(String... permissions) - { - authLogic.checkPermiAnd(permissions); - } - - /** - * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺 [鎸囧畾澶氫釜锛屽彧瑕佸叾涓楠岃瘉閫氳繃鍗冲彲] - * - * @param permissions 鏉冮檺鐮佹暟缁 - */ - public static void checkPermiOr(String... permissions) - { - authLogic.checkPermiOr(permissions); - } +public class AuthUtil { + /** 搴曞眰鐨 AuthLogic 瀵硅薄 */ + public static AuthLogic authLogic = new AuthLogic(); + + /** 浼氳瘽娉ㄩ攢 */ + public static void logout() { + authLogic.logout(); + } + + /** + * 浼氳瘽娉ㄩ攢锛屾牴鎹寚瀹歍oken + * + * @param token 鎸囧畾token + */ + public static void logoutByToken(String token) { + authLogic.logoutByToken(token); + } + + /** 妫楠屽綋鍓嶄細璇濇槸鍚﹀凡缁忕櫥褰曪紝濡傛湭鐧诲綍锛屽垯鎶涘嚭寮傚父 */ + public static void checkLogin() { + authLogic.checkLogin(); + } + + /** + * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 + * + * @param token 鎸囧畾token + * @return 鐢ㄦ埛淇℃伅 + */ + public static LoginUser getLoginUser(String token) { + return authLogic.getLoginUser(token); + } + + /** + * 楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈 + * + * @param loginUser 鐢ㄦ埛淇℃伅 + */ + public static void verifyLoginUserExpire(LoginUser loginUser) { + authLogic.verifyLoginUserExpire(loginUser); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑, 杩斿洖true鎴杅alse + * + * @param role 瑙掕壊鏍囪瘑 + * @return 鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 + */ + public static boolean hasRole(String role) { + return authLogic.hasRole(role); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException + * + * @param role 瑙掕壊鏍囪瘑 + */ + public static void checkRole(String role) { + authLogic.checkRole(role); + } + + /** + * 鏍规嵁娉ㄨВ浼犲叆鍙傛暟閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotRoleException + * + * @param requiresRoles 瑙掕壊鏉冮檺娉ㄨВ + */ + public static void checkRole(RequiresRoles requiresRoles) { + authLogic.checkRole(requiresRoles); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 [鎸囧畾澶氫釜锛屽繀椤诲叏閮ㄩ獙璇侀氳繃] + * + * @param roles 瑙掕壊鏍囪瘑鏁扮粍 + */ + public static void checkRoleAnd(String... roles) { + authLogic.checkRoleAnd(roles); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾瑙掕壊鏍囪瘑 [鎸囧畾澶氫釜锛屽彧瑕佸叾涓楠岃瘉閫氳繃鍗冲彲] + * + * @param roles 瑙掕壊鏍囪瘑鏁扮粍 + */ + public static void checkRoleOr(String... roles) { + authLogic.checkRoleOr(roles); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺, 杩斿洖true鎴杅alse + * + * @param permission 鏉冮檺鐮 + * @return 鏄惁鍚湁鎸囧畾鏉冮檺 + */ + public static boolean hasPermi(String permission) { + return authLogic.hasPermi(permission); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException + * + * @param permission 鏉冮檺鐮 + */ + public static void checkPermi(String permission) { + authLogic.checkPermi(permission); + } + + /** + * 鏍规嵁娉ㄨВ浼犲叆鍙傛暟閴存潈, 濡傛灉楠岃瘉鏈氳繃锛屽垯鎶涘嚭寮傚父: NotPermissionException + * + * @param requiresPermissions 鏉冮檺娉ㄨВ + */ + public static void checkPermi(RequiresPermissions requiresPermissions) { + authLogic.checkPermi(requiresPermissions); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺 [鎸囧畾澶氫釜锛屽繀椤诲叏閮ㄩ獙璇侀氳繃] + * + * @param permissions 鏉冮檺鐮佹暟缁 + */ + public static void checkPermiAnd(String... permissions) { + authLogic.checkPermiAnd(permissions); + } + + /** + * 褰撳墠璐﹀彿鏄惁鍚湁鎸囧畾鏉冮檺 [鎸囧畾澶氫釜锛屽彧瑕佸叾涓楠岃瘉閫氳繃鍗冲彲] + * + * @param permissions 鏉冮檺鐮佹暟缁 + */ + public static void checkPermiOr(String... permissions) { + authLogic.checkPermiOr(permissions); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java index a7a64c9e5..39d5bcecf 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java @@ -9,14 +9,10 @@ import org.springframework.context.annotation.Bean; * * @author ruoyi */ -public class ApplicationConfig -{ - /** - * 鏃跺尯閰嶇疆 - */ - @Bean - public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() - { - return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); - } +public class ApplicationConfig { + /** 鏃跺尯閰嶇疆 */ + @Bean + public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { + return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/WebMvcConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/WebMvcConfig.java index b3fa247a1..1b3d6cc7f 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/WebMvcConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/WebMvcConfig.java @@ -1,33 +1,29 @@ package com.ruoyi.common.security.config; +import com.ruoyi.common.security.interceptor.HeaderInterceptor; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import com.ruoyi.common.security.interceptor.HeaderInterceptor; /** * 鎷︽埅鍣ㄩ厤缃 * * @author ruoyi */ -public class WebMvcConfig implements WebMvcConfigurer -{ - /** 涓嶉渶瑕佹嫤鎴湴鍧 */ - public static final String[] excludeUrls = { "/login", "/logout", "/refresh" }; +public class WebMvcConfig implements WebMvcConfigurer { + /** 涓嶉渶瑕佹嫤鎴湴鍧 */ + public static final String[] excludeUrls = {"/login", "/logout", "/refresh"}; - @Override - public void addInterceptors(InterceptorRegistry registry) - { - registry.addInterceptor(getHeaderInterceptor()) - .addPathPatterns("/**") - .excludePathPatterns(excludeUrls) - .order(-10); - } + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry + .addInterceptor(getHeaderInterceptor()) + .addPathPatterns("/**") + .excludePathPatterns(excludeUrls) + .order(-10); + } - /** - * 鑷畾涔夎姹傚ご鎷︽埅鍣 - */ - public HeaderInterceptor getHeaderInterceptor() - { - return new HeaderInterceptor(); - } + /** 鑷畾涔夎姹傚ご鎷︽埅鍣 */ + public HeaderInterceptor getHeaderInterceptor() { + return new HeaderInterceptor(); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignAutoConfiguration.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignAutoConfiguration.java index 934a9598a..6e4c8203f 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignAutoConfiguration.java @@ -1,20 +1,18 @@ package com.ruoyi.common.security.feign; +import feign.RequestInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import feign.RequestInterceptor; /** * Feign 閰嶇疆娉ㄥ唽 * * @author ruoyi - **/ + */ @Configuration -public class FeignAutoConfiguration -{ - @Bean - public RequestInterceptor requestInterceptor() - { - return new FeignRequestInterceptor(); - } +public class FeignAutoConfiguration { + @Bean + public RequestInterceptor requestInterceptor() { + return new FeignRequestInterceptor(); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java index 1cdf62392..04796acd6 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java @@ -1,54 +1,47 @@ package com.ruoyi.common.security.feign; -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.ip.IpUtils; import feign.RequestInterceptor; import feign.RequestTemplate; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Component; /** * feign 璇锋眰鎷︽埅鍣 - * + * * @author ruoyi */ @Component -public class FeignRequestInterceptor implements RequestInterceptor -{ - @Override - public void apply(RequestTemplate requestTemplate) - { - HttpServletRequest httpServletRequest = ServletUtils.getRequest(); - if (StringUtils.isNotNull(httpServletRequest)) - { - Map headers = ServletUtils.getHeaders(httpServletRequest); - // 浼犻掔敤鎴蜂俊鎭姹傚ご锛岄槻姝涪澶 - String userId = headers.get(SecurityConstants.DETAILS_USER_ID); - if (StringUtils.isNotEmpty(userId)) - { - requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId); - } - String userKey = headers.get(SecurityConstants.USER_KEY); - if (StringUtils.isNotEmpty(userKey)) - { - requestTemplate.header(SecurityConstants.USER_KEY, userKey); - } - String userName = headers.get(SecurityConstants.DETAILS_USERNAME); - if (StringUtils.isNotEmpty(userName)) - { - requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName); - } - String authentication = headers.get(SecurityConstants.AUTHORIZATION_HEADER); - if (StringUtils.isNotEmpty(authentication)) - { - requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication); - } +public class FeignRequestInterceptor implements RequestInterceptor { + @Override + public void apply(RequestTemplate requestTemplate) { + HttpServletRequest httpServletRequest = ServletUtils.getRequest(); + if (StringUtils.isNotNull(httpServletRequest)) { + Map headers = ServletUtils.getHeaders(httpServletRequest); + // 浼犻掔敤鎴蜂俊鎭姹傚ご锛岄槻姝涪澶 + String userId = headers.get(SecurityConstants.DETAILS_USER_ID); + if (StringUtils.isNotEmpty(userId)) { + requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId); + } + String userKey = headers.get(SecurityConstants.USER_KEY); + if (StringUtils.isNotEmpty(userKey)) { + requestTemplate.header(SecurityConstants.USER_KEY, userKey); + } + String userName = headers.get(SecurityConstants.DETAILS_USERNAME); + if (StringUtils.isNotEmpty(userName)) { + requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName); + } + String authentication = headers.get(SecurityConstants.AUTHORIZATION_HEADER); + if (StringUtils.isNotEmpty(authentication)) { + requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication); + } - // 閰嶇疆瀹㈡埛绔疘P - requestTemplate.header("X-Forwarded-For", IpUtils.getIpAddr()); - } + // 閰嶇疆瀹㈡埛绔疘P + requestTemplate.header("X-Forwarded-For", IpUtils.getIpAddr()); } -} \ No newline at end of file + } +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java index 476638c4d..f3c32f9da 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java @@ -1,15 +1,5 @@ package com.ruoyi.common.security.handler; -import javax.servlet.http.HttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.validation.BindException; -import org.springframework.web.HttpRequestMethodNotSupportedException; -import org.springframework.web.bind.MethodArgumentNotValidException; -import org.springframework.web.bind.MissingPathVariableException; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.exception.DemoModeException; import com.ruoyi.common.core.exception.InnerAuthException; @@ -20,6 +10,16 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.html.EscapeUtil; import com.ruoyi.common.core.web.domain.AjaxResult; +import javax.servlet.http.HttpServletRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.validation.BindException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingPathVariableException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; /** * 鍏ㄥ眬寮傚父澶勭悊鍣 @@ -27,140 +27,111 @@ import com.ruoyi.common.core.web.domain.AjaxResult; * @author ruoyi */ @RestControllerAdvice -public class GlobalExceptionHandler -{ - private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); +public class GlobalExceptionHandler { + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); - /** - * 鏉冮檺鐮佸紓甯 - */ - @ExceptionHandler(NotPermissionException.class) - public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰鍦板潃'{}',鏉冮檺鐮佹牎楠屽け璐'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.FORBIDDEN, "娌℃湁璁块棶鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉"); - } + /** 鏉冮檺鐮佸紓甯 */ + @ExceptionHandler(NotPermissionException.class) + public AjaxResult handleNotPermissionException( + NotPermissionException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰鍦板潃'{}',鏉冮檺鐮佹牎楠屽け璐'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.FORBIDDEN, "娌℃湁璁块棶鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉"); + } - /** - * 瑙掕壊鏉冮檺寮傚父 - */ - @ExceptionHandler(NotRoleException.class) - public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰鍦板潃'{}',瑙掕壊鏉冮檺鏍¢獙澶辫触'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.FORBIDDEN, "娌℃湁璁块棶鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉"); - } + /** 瑙掕壊鏉冮檺寮傚父 */ + @ExceptionHandler(NotRoleException.class) + public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰鍦板潃'{}',瑙掕壊鏉冮檺鏍¢獙澶辫触'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.FORBIDDEN, "娌℃湁璁块棶鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉"); + } - /** - * 璇锋眰鏂瑰紡涓嶆敮鎸 - */ - @ExceptionHandler(HttpRequestMethodNotSupportedException.class) - public AjaxResult handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰鍦板潃'{}',涓嶆敮鎸'{}'璇锋眰", requestURI, e.getMethod()); - return AjaxResult.error(e.getMessage()); - } + /** 璇锋眰鏂瑰紡涓嶆敮鎸 */ + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public AjaxResult handleHttpRequestMethodNotSupported( + HttpRequestMethodNotSupportedException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰鍦板潃'{}',涓嶆敮鎸'{}'璇锋眰", requestURI, e.getMethod()); + return AjaxResult.error(e.getMessage()); + } - /** - * 涓氬姟寮傚父 - */ - @ExceptionHandler(ServiceException.class) - public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request) - { - log.error(e.getMessage(), e); - Integer code = e.getCode(); - return StringUtils.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage()); - } + /** 涓氬姟寮傚父 */ + @ExceptionHandler(ServiceException.class) + public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request) { + log.error(e.getMessage(), e); + Integer code = e.getCode(); + return StringUtils.isNotNull(code) + ? AjaxResult.error(code, e.getMessage()) + : AjaxResult.error(e.getMessage()); + } - /** - * 璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲 - */ - @ExceptionHandler(MissingPathVariableException.class) - public AjaxResult handleMissingPathVariableException(MissingPathVariableException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); - return AjaxResult.error(String.format("璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲廩%s]", e.getVariableName())); - } + /** 璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲 */ + @ExceptionHandler(MissingPathVariableException.class) + public AjaxResult handleMissingPathVariableException( + MissingPathVariableException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); + return AjaxResult.error(String.format("璇锋眰璺緞涓己灏戝繀闇鐨勮矾寰勫彉閲廩%s]", e.getVariableName())); + } - /** - * 璇锋眰鍙傛暟绫诲瀷涓嶅尮閰 - */ - @ExceptionHandler(MethodArgumentTypeMismatchException.class) - public AjaxResult handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - String value = Convert.toStr(e.getValue()); - if (StringUtils.isNotEmpty(value)) - { - value = EscapeUtil.clean(value); - } - log.error("璇锋眰鍙傛暟绫诲瀷涓嶅尮閰'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); - return AjaxResult.error(String.format("璇锋眰鍙傛暟绫诲瀷涓嶅尮閰嶏紝鍙傛暟[%s]瑕佹眰绫诲瀷涓猴細'%s'锛屼絾杈撳叆鍊间负锛'%s'", e.getName(), e.getRequiredType().getName(), value)); + /** 璇锋眰鍙傛暟绫诲瀷涓嶅尮閰 */ + @ExceptionHandler(MethodArgumentTypeMismatchException.class) + public AjaxResult handleMethodArgumentTypeMismatchException( + MethodArgumentTypeMismatchException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + String value = Convert.toStr(e.getValue()); + if (StringUtils.isNotEmpty(value)) { + value = EscapeUtil.clean(value); } + log.error("璇锋眰鍙傛暟绫诲瀷涓嶅尮閰'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); + return AjaxResult.error( + String.format( + "璇锋眰鍙傛暟绫诲瀷涓嶅尮閰嶏紝鍙傛暟[%s]瑕佹眰绫诲瀷涓猴細'%s'锛屼絾杈撳叆鍊间负锛'%s'", + e.getName(), e.getRequiredType().getName(), value)); + } - /** - * 鎷︽埅鏈煡鐨勮繍琛屾椂寮傚父 - */ - @ExceptionHandler(RuntimeException.class) - public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰鍦板潃'{}',鍙戠敓鏈煡寮傚父.", requestURI, e); - return AjaxResult.error(e.getMessage()); - } + /** 鎷︽埅鏈煡鐨勮繍琛屾椂寮傚父 */ + @ExceptionHandler(RuntimeException.class) + public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰鍦板潃'{}',鍙戠敓鏈煡寮傚父.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } - /** - * 绯荤粺寮傚父 - */ - @ExceptionHandler(Exception.class) - public AjaxResult handleException(Exception e, HttpServletRequest request) - { - String requestURI = request.getRequestURI(); - log.error("璇锋眰鍦板潃'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); - return AjaxResult.error(e.getMessage()); - } + /** 绯荤粺寮傚父 */ + @ExceptionHandler(Exception.class) + public AjaxResult handleException(Exception e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("璇锋眰鍦板潃'{}',鍙戠敓绯荤粺寮傚父.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } - /** - * 鑷畾涔夐獙璇佸紓甯 - */ - @ExceptionHandler(BindException.class) - public AjaxResult handleBindException(BindException e) - { - log.error(e.getMessage(), e); - String message = e.getAllErrors().get(0).getDefaultMessage(); - return AjaxResult.error(message); - } + /** 鑷畾涔夐獙璇佸紓甯 */ + @ExceptionHandler(BindException.class) + public AjaxResult handleBindException(BindException e) { + log.error(e.getMessage(), e); + String message = e.getAllErrors().get(0).getDefaultMessage(); + return AjaxResult.error(message); + } - /** - * 鑷畾涔夐獙璇佸紓甯 - */ - @ExceptionHandler(MethodArgumentNotValidException.class) - public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) - { - log.error(e.getMessage(), e); - String message = e.getBindingResult().getFieldError().getDefaultMessage(); - return AjaxResult.error(message); - } + /** 鑷畾涔夐獙璇佸紓甯 */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { + log.error(e.getMessage(), e); + String message = e.getBindingResult().getFieldError().getDefaultMessage(); + return AjaxResult.error(message); + } - /** - * 鍐呴儴璁よ瘉寮傚父 - */ - @ExceptionHandler(InnerAuthException.class) - public AjaxResult handleInnerAuthException(InnerAuthException e) - { - return AjaxResult.error(e.getMessage()); - } + /** 鍐呴儴璁よ瘉寮傚父 */ + @ExceptionHandler(InnerAuthException.class) + public AjaxResult handleInnerAuthException(InnerAuthException e) { + return AjaxResult.error(e.getMessage()); + } - /** - * 婕旂ず妯″紡寮傚父 - */ - @ExceptionHandler(DemoModeException.class) - public AjaxResult handleDemoModeException(DemoModeException e) - { - return AjaxResult.error("婕旂ず妯″紡锛屼笉鍏佽鎿嶄綔"); - } + /** 婕旂ず妯″紡寮傚父 */ + @ExceptionHandler(DemoModeException.class) + public AjaxResult handleDemoModeException(DemoModeException e) { + return AjaxResult.error("婕旂ず妯″紡锛屼笉鍏佽鎿嶄綔"); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java index 3453e1d19..c2730c37c 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java @@ -1,9 +1,5 @@ package com.ruoyi.common.security.interceptor; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.AsyncHandlerInterceptor; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.core.utils.ServletUtils; @@ -11,44 +7,45 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.AsyncHandlerInterceptor; /** - * 鑷畾涔夎姹傚ご鎷︽埅鍣紝灏咹eader鏁版嵁灏佽鍒扮嚎绋嬪彉閲忎腑鏂逛究鑾峰彇 - * 娉ㄦ剰锛氭鎷︽埅鍣ㄤ細鍚屾椂楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈熻嚜鍔ㄥ埛鏂版湁鏁堟湡 + * 鑷畾涔夎姹傚ご鎷︽埅鍣紝灏咹eader鏁版嵁灏佽鍒扮嚎绋嬪彉閲忎腑鏂逛究鑾峰彇 娉ㄦ剰锛氭鎷︽埅鍣ㄤ細鍚屾椂楠岃瘉褰撳墠鐢ㄦ埛鏈夋晥鏈熻嚜鍔ㄥ埛鏂版湁鏁堟湡 * * @author ruoyi */ -public class HeaderInterceptor implements AsyncHandlerInterceptor -{ - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception - { - if (!(handler instanceof HandlerMethod)) - { - return true; - } +public class HeaderInterceptor implements AsyncHandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + if (!(handler instanceof HandlerMethod)) { + return true; + } - SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID)); - SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); - SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); + SecurityContextHolder.setUserId( + ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID)); + SecurityContextHolder.setUserName( + ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); + SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); - String token = SecurityUtils.getToken(); - if (StringUtils.isNotEmpty(token)) - { - LoginUser loginUser = AuthUtil.getLoginUser(token); - if (StringUtils.isNotNull(loginUser)) - { - AuthUtil.verifyLoginUserExpire(loginUser); - SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); - } - } - return true; + String token = SecurityUtils.getToken(); + if (StringUtils.isNotEmpty(token)) { + LoginUser loginUser = AuthUtil.getLoginUser(token); + if (StringUtils.isNotNull(loginUser)) { + AuthUtil.verifyLoginUserExpire(loginUser); + SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); + } } + return true; + } - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) - throws Exception - { - SecurityContextHolder.remove(); - } + @Override + public void afterCompletion( + HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) + throws Exception { + SecurityContextHolder.remove(); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 0a63b851e..10601b663 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -1,13 +1,5 @@ package com.ruoyi.common.security.service; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import javax.servlet.http.HttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.JwtUtils; @@ -18,157 +10,142 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.servlet.http.HttpServletRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * token楠岃瘉澶勭悊 - * + * * @author ruoyi */ @Component -public class TokenService -{ - private static final Logger log = LoggerFactory.getLogger(TokenService.class); - - @Autowired - private RedisService redisService; - - protected static final long MILLIS_SECOND = 1000; - - protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND; - - private final static long TOKEN_EXPIRE_TIME = CacheConstants.EXPIRATION; - - private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY; - - private final static Long TOKEN_REFRESH_THRESHOLD_MINUTES = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; - - /** - * 鍒涘缓浠ょ墝 - */ - public Map createToken(LoginUser loginUser) - { - String token = IdUtils.fastUUID(); - Long userId = loginUser.getSysUser().getUserId(); - String userName = loginUser.getSysUser().getUserName(); - loginUser.setToken(token); - loginUser.setUserid(userId); - loginUser.setUsername(userName); - loginUser.setIpaddr(IpUtils.getIpAddr()); - refreshToken(loginUser); - - // Jwt瀛樺偍淇℃伅 - Map claimsMap = new HashMap(); - claimsMap.put(SecurityConstants.USER_KEY, token); - claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); - claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); - - // 鎺ュ彛杩斿洖淇℃伅 - Map rspMap = new HashMap(); - rspMap.put("access_token", JwtUtils.createToken(claimsMap)); - rspMap.put("expires_in", TOKEN_EXPIRE_TIME); - return rspMap; - } - - /** - * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 - * - * @return 鐢ㄦ埛淇℃伅 - */ - public LoginUser getLoginUser() - { - return getLoginUser(ServletUtils.getRequest()); - } - - /** - * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 - * - * @return 鐢ㄦ埛淇℃伅 - */ - public LoginUser getLoginUser(HttpServletRequest request) - { - // 鑾峰彇璇锋眰鎼哄甫鐨勪护鐗 - String token = SecurityUtils.getToken(request); - return getLoginUser(token); - } - - /** - * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 - * - * @return 鐢ㄦ埛淇℃伅 - */ - public LoginUser getLoginUser(String token) - { - LoginUser user = null; - try - { - if (StringUtils.isNotEmpty(token)) - { - String userkey = JwtUtils.getUserKey(token); - user = redisService.getCacheObject(getTokenKey(userkey)); - return user; - } - } - catch (Exception e) - { - log.error("鑾峰彇鐢ㄦ埛淇℃伅寮傚父'{}'", e.getMessage()); - } +public class TokenService { + private static final Logger log = LoggerFactory.getLogger(TokenService.class); + + @Autowired private RedisService redisService; + + protected static final long MILLIS_SECOND = 1000; + + protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND; + + private static final long TOKEN_EXPIRE_TIME = CacheConstants.EXPIRATION; + + private static final String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY; + + private static final Long TOKEN_REFRESH_THRESHOLD_MINUTES = + CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + + /** 鍒涘缓浠ょ墝 */ + public Map createToken(LoginUser loginUser) { + String token = IdUtils.fastUUID(); + Long userId = loginUser.getSysUser().getUserId(); + String userName = loginUser.getSysUser().getUserName(); + loginUser.setToken(token); + loginUser.setUserid(userId); + loginUser.setUsername(userName); + loginUser.setIpaddr(IpUtils.getIpAddr()); + refreshToken(loginUser); + + // Jwt瀛樺偍淇℃伅 + Map claimsMap = new HashMap(); + claimsMap.put(SecurityConstants.USER_KEY, token); + claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); + claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); + + // 鎺ュ彛杩斿洖淇℃伅 + Map rspMap = new HashMap(); + rspMap.put("access_token", JwtUtils.createToken(claimsMap)); + rspMap.put("expires_in", TOKEN_EXPIRE_TIME); + return rspMap; + } + + /** + * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 + * + * @return 鐢ㄦ埛淇℃伅 + */ + public LoginUser getLoginUser() { + return getLoginUser(ServletUtils.getRequest()); + } + + /** + * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 + * + * @return 鐢ㄦ埛淇℃伅 + */ + public LoginUser getLoginUser(HttpServletRequest request) { + // 鑾峰彇璇锋眰鎼哄甫鐨勪护鐗 + String token = SecurityUtils.getToken(request); + return getLoginUser(token); + } + + /** + * 鑾峰彇鐢ㄦ埛韬唤淇℃伅 + * + * @return 鐢ㄦ埛淇℃伅 + */ + public LoginUser getLoginUser(String token) { + LoginUser user = null; + try { + if (StringUtils.isNotEmpty(token)) { + String userkey = JwtUtils.getUserKey(token); + user = redisService.getCacheObject(getTokenKey(userkey)); return user; + } + } catch (Exception e) { + log.error("鑾峰彇鐢ㄦ埛淇℃伅寮傚父'{}'", e.getMessage()); } + return user; + } - /** - * 璁剧疆鐢ㄦ埛韬唤淇℃伅 - */ - public void setLoginUser(LoginUser loginUser) - { - if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) - { - refreshToken(loginUser); - } - } - - /** - * 鍒犻櫎鐢ㄦ埛缂撳瓨淇℃伅 - */ - public void delLoginUser(String token) - { - if (StringUtils.isNotEmpty(token)) - { - String userkey = JwtUtils.getUserKey(token); - redisService.deleteObject(getTokenKey(userkey)); - } + /** 璁剧疆鐢ㄦ埛韬唤淇℃伅 */ + public void setLoginUser(LoginUser loginUser) { + if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) { + refreshToken(loginUser); } + } - /** - * 楠岃瘉浠ょ墝鏈夋晥鏈燂紝鐩稿樊涓嶈冻120鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛 - * - * @param loginUser - */ - public void verifyToken(LoginUser loginUser) - { - long expireTime = loginUser.getExpireTime(); - long currentTime = System.currentTimeMillis(); - if (expireTime - currentTime <= TOKEN_REFRESH_THRESHOLD_MINUTES) - { - refreshToken(loginUser); - } + /** 鍒犻櫎鐢ㄦ埛缂撳瓨淇℃伅 */ + public void delLoginUser(String token) { + if (StringUtils.isNotEmpty(token)) { + String userkey = JwtUtils.getUserKey(token); + redisService.deleteObject(getTokenKey(userkey)); } - - /** - * 鍒锋柊浠ょ墝鏈夋晥鏈 - * - * @param loginUser 鐧诲綍淇℃伅 - */ - public void refreshToken(LoginUser loginUser) - { - loginUser.setLoginTime(System.currentTimeMillis()); - loginUser.setExpireTime(loginUser.getLoginTime() + TOKEN_EXPIRE_TIME * MILLIS_MINUTE); - // 鏍规嵁uuid灏唋oginUser缂撳瓨 - String userKey = getTokenKey(loginUser.getToken()); - redisService.setCacheObject(userKey, loginUser, TOKEN_EXPIRE_TIME, TimeUnit.MINUTES); - } - - private String getTokenKey(String token) - { - return ACCESS_TOKEN + token; + } + + /** + * 楠岃瘉浠ょ墝鏈夋晥鏈燂紝鐩稿樊涓嶈冻120鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛 + * + * @param loginUser + */ + public void verifyToken(LoginUser loginUser) { + long expireTime = loginUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= TOKEN_REFRESH_THRESHOLD_MINUTES) { + refreshToken(loginUser); } -} \ No newline at end of file + } + + /** + * 鍒锋柊浠ょ墝鏈夋晥鏈 + * + * @param loginUser 鐧诲綍淇℃伅 + */ + public void refreshToken(LoginUser loginUser) { + loginUser.setLoginTime(System.currentTimeMillis()); + loginUser.setExpireTime(loginUser.getLoginTime() + TOKEN_EXPIRE_TIME * MILLIS_MINUTE); + // 鏍规嵁uuid灏唋oginUser缂撳瓨 + String userKey = getTokenKey(loginUser.getToken()); + redisService.setCacheObject(userKey, loginUser, TOKEN_EXPIRE_TIME, TimeUnit.MINUTES); + } + + private String getTokenKey(String token) { + return ACCESS_TOKEN + token; + } +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java index 2c8d18d6d..335303279 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java @@ -1,75 +1,67 @@ package com.ruoyi.common.security.utils; -import java.util.Collection; -import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.api.domain.SysDictData; +import java.util.Collection; +import java.util.List; /** * 瀛楀吀宸ュ叿绫 - * + * * @author ruoyi */ -public class DictUtils -{ - /** - * 璁剧疆瀛楀吀缂撳瓨 - * - * @param key 鍙傛暟閿 - * @param dictDatas 瀛楀吀鏁版嵁鍒楄〃 - */ - public static void setDictCache(String key, List dictDatas) - { - SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas); - } +public class DictUtils { + /** + * 璁剧疆瀛楀吀缂撳瓨 + * + * @param key 鍙傛暟閿 + * @param dictDatas 瀛楀吀鏁版嵁鍒楄〃 + */ + public static void setDictCache(String key, List dictDatas) { + SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas); + } - /** - * 鑾峰彇瀛楀吀缂撳瓨 - * - * @param key 鍙傛暟閿 - * @return dictDatas 瀛楀吀鏁版嵁鍒楄〃 - */ - public static List getDictCache(String key) - { - JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(arrayCache)) - { - return arrayCache.toList(SysDictData.class); - } - return null; + /** + * 鑾峰彇瀛楀吀缂撳瓨 + * + * @param key 鍙傛暟閿 + * @return dictDatas 瀛楀吀鏁版嵁鍒楄〃 + */ + public static List getDictCache(String key) { + JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key)); + if (StringUtils.isNotNull(arrayCache)) { + return arrayCache.toList(SysDictData.class); } + return null; + } - /** - * 鍒犻櫎鎸囧畾瀛楀吀缂撳瓨 - * - * @param key 瀛楀吀閿 - */ - public static void removeDictCache(String key) - { - SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key)); - } + /** + * 鍒犻櫎鎸囧畾瀛楀吀缂撳瓨 + * + * @param key 瀛楀吀閿 + */ + public static void removeDictCache(String key) { + SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key)); + } - /** - * 娓呯┖瀛楀吀缂撳瓨 - */ - public static void clearDictCache() - { - Collection keys = SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*"); - SpringUtils.getBean(RedisService.class).deleteObject(keys); - } + /** 娓呯┖瀛楀吀缂撳瓨 */ + public static void clearDictCache() { + Collection keys = + SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*"); + SpringUtils.getBean(RedisService.class).deleteObject(keys); + } - /** - * 璁剧疆cache key - * - * @param configKey 鍙傛暟閿 - * @return 缂撳瓨閿甼ey - */ - public static String getCacheKey(String configKey) - { - return CacheConstants.SYS_DICT_KEY + configKey; - } + /** + * 璁剧疆cache key + * + * @param configKey 鍙傛暟閿 + * @return 缂撳瓨閿甼ey + */ + public static String getCacheKey(String configKey) { + return CacheConstants.SYS_DICT_KEY + configKey; + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java index 149dd8a2d..f14b64a57 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java @@ -1,117 +1,91 @@ package com.ruoyi.common.security.utils; -import javax.servlet.http.HttpServletRequest; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.api.model.LoginUser; +import javax.servlet.http.HttpServletRequest; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; /** * 鏉冮檺鑾峰彇宸ュ叿绫 - * + * * @author ruoyi */ -public class SecurityUtils -{ - /** - * 鑾峰彇鐢ㄦ埛ID - */ - public static Long getUserId() - { - return SecurityContextHolder.getUserId(); - } +public class SecurityUtils { + /** 鑾峰彇鐢ㄦ埛ID */ + public static Long getUserId() { + return SecurityContextHolder.getUserId(); + } - /** - * 鑾峰彇鐢ㄦ埛鍚嶇О - */ - public static String getUsername() - { - return SecurityContextHolder.getUserName(); - } + /** 鑾峰彇鐢ㄦ埛鍚嶇О */ + public static String getUsername() { + return SecurityContextHolder.getUserName(); + } - /** - * 鑾峰彇鐢ㄦ埛key - */ - public static String getUserKey() - { - return SecurityContextHolder.getUserKey(); - } + /** 鑾峰彇鐢ㄦ埛key */ + public static String getUserKey() { + return SecurityContextHolder.getUserKey(); + } - /** - * 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 - */ - public static LoginUser getLoginUser() - { - return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class); - } + /** 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 */ + public static LoginUser getLoginUser() { + return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class); + } - /** - * 鑾峰彇璇锋眰token - */ - public static String getToken() - { - return getToken(ServletUtils.getRequest()); - } + /** 鑾峰彇璇锋眰token */ + public static String getToken() { + return getToken(ServletUtils.getRequest()); + } - /** - * 鏍规嵁request鑾峰彇璇锋眰token - */ - public static String getToken(HttpServletRequest request) - { - // 浠巋eader鑾峰彇token鏍囪瘑 - String token = request.getHeader(SecurityConstants.AUTHORIZATION_HEADER); - return replaceTokenPrefix(token); - } + /** 鏍规嵁request鑾峰彇璇锋眰token */ + public static String getToken(HttpServletRequest request) { + // 浠巋eader鑾峰彇token鏍囪瘑 + String token = request.getHeader(SecurityConstants.AUTHORIZATION_HEADER); + return replaceTokenPrefix(token); + } - /** - * 瑁佸壀token鍓嶇紑 - */ - public static String replaceTokenPrefix(String token) - { - // 濡傛灉鍓嶇璁剧疆浜嗕护鐗屽墠缂锛屽垯瑁佸壀鎺夊墠缂 - if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) - { - token = token.replaceFirst(TokenConstants.PREFIX, ""); - } - return token; + /** 瑁佸壀token鍓嶇紑 */ + public static String replaceTokenPrefix(String token) { + // 濡傛灉鍓嶇璁剧疆浜嗕护鐗屽墠缂锛屽垯瑁佸壀鎺夊墠缂 + if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) { + token = token.replaceFirst(TokenConstants.PREFIX, ""); } + return token; + } - /** - * 鏄惁涓虹鐞嗗憳 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - public static boolean isAdmin(Long userId) - { - return userId != null && 1L == userId; - } + /** + * 鏄惁涓虹鐞嗗憳 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + public static boolean isAdmin(Long userId) { + return userId != null && 1L == userId; + } - /** - * 鐢熸垚BCryptPasswordEncoder瀵嗙爜 - * - * @param password 瀵嗙爜 - * @return 鍔犲瘑瀛楃涓 - */ - public static String encryptPassword(String password) - { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - return passwordEncoder.encode(password); - } + /** + * 鐢熸垚BCryptPasswordEncoder瀵嗙爜 + * + * @param password 瀵嗙爜 + * @return 鍔犲瘑瀛楃涓 + */ + public static String encryptPassword(String password) { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + return passwordEncoder.encode(password); + } - /** - * 鍒ゆ柇瀵嗙爜鏄惁鐩稿悓 - * - * @param rawPassword 鐪熷疄瀵嗙爜 - * @param encodedPassword 鍔犲瘑鍚庡瓧绗 - * @return 缁撴灉 - */ - public static boolean matchesPassword(String rawPassword, String encodedPassword) - { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - return passwordEncoder.matches(rawPassword, encodedPassword); - } + /** + * 鍒ゆ柇瀵嗙爜鏄惁鐩稿悓 + * + * @param rawPassword 鐪熷疄瀵嗙爜 + * @param encodedPassword 鍔犲瘑鍚庡瓧绗 + * @return 缁撴灉 + */ + public static boolean matchesPassword(String rawPassword, String encodedPassword) { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + return passwordEncoder.matches(rawPassword, encodedPassword); + } } diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/annotation/Sensitive.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/annotation/Sensitive.java index 30b24b3dc..bf0b4fa69 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/annotation/Sensitive.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/annotation/Sensitive.java @@ -1,13 +1,13 @@ package com.ruoyi.common.sensitive.annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.ruoyi.common.sensitive.config.SensitiveJsonSerializer; import com.ruoyi.common.sensitive.enums.DesensitizedType; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * 鏁版嵁鑴辨晱娉ㄨВ @@ -18,7 +18,6 @@ import com.ruoyi.common.sensitive.enums.DesensitizedType; @Target(ElementType.FIELD) @JacksonAnnotationsInside @JsonSerialize(using = SensitiveJsonSerializer.class) -public @interface Sensitive -{ - DesensitizedType desensitizedType(); +public @interface Sensitive { + DesensitizedType desensitizedType(); } diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java index cbb0d7ebf..2bafd1988 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java @@ -1,7 +1,5 @@ package com.ruoyi.common.sensitive.config; -import java.io.IOException; -import java.util.Objects; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; @@ -12,56 +10,48 @@ import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.enums.DesensitizedType; +import java.io.IOException; +import java.util.Objects; /** * 鏁版嵁鑴辨晱搴忓垪鍖栬繃婊 * * @author ruoyi */ -public class SensitiveJsonSerializer extends JsonSerializer implements ContextualSerializer -{ - private DesensitizedType desensitizedType; +public class SensitiveJsonSerializer extends JsonSerializer + implements ContextualSerializer { + private DesensitizedType desensitizedType; - @Override - public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException - { - if (desensitization()) - { - gen.writeString(desensitizedType.desensitizer().apply(value)); - } - else - { - gen.writeString(value); - } + @Override + public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + if (desensitization()) { + gen.writeString(desensitizedType.desensitizer().apply(value)); + } else { + gen.writeString(value); } + } - @Override - public JsonSerializer createContextual(SerializerProvider prov, BeanProperty property) - throws JsonMappingException - { - Sensitive annotation = property.getAnnotation(Sensitive.class); - if (Objects.nonNull(annotation) && Objects.equals(String.class, property.getType().getRawClass())) - { - this.desensitizedType = annotation.desensitizedType(); - return this; - } - return prov.findValueSerializer(property.getType(), property); + @Override + public JsonSerializer createContextual(SerializerProvider prov, BeanProperty property) + throws JsonMappingException { + Sensitive annotation = property.getAnnotation(Sensitive.class); + if (Objects.nonNull(annotation) + && Objects.equals(String.class, property.getType().getRawClass())) { + this.desensitizedType = annotation.desensitizedType(); + return this; } + return prov.findValueSerializer(property.getType(), property); + } - /** - * 鏄惁闇瑕佽劚鏁忓鐞 - */ - private boolean desensitization() - { - try - { - Long userId = SecurityContextHolder.getUserId(); - // 绠$悊鍛樹笉鑴辨晱 - return !UserConstants.isAdmin(userId); - } - catch (Exception e) - { - return true; - } + /** 鏄惁闇瑕佽劚鏁忓鐞 */ + private boolean desensitization() { + try { + Long userId = SecurityContextHolder.getUserId(); + // 绠$悊鍛樹笉鑴辨晱 + return !UserConstants.isAdmin(userId); + } catch (Exception e) { + return true; } + } } diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/enums/DesensitizedType.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/enums/DesensitizedType.java index 9504b9d49..83773eef5 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/enums/DesensitizedType.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/enums/DesensitizedType.java @@ -1,59 +1,42 @@ package com.ruoyi.common.sensitive.enums; -import java.util.function.Function; import com.ruoyi.common.sensitive.utils.DesensitizedUtil; +import java.util.function.Function; /** * 鑴辨晱绫诲瀷 * * @author ruoyi */ -public enum DesensitizedType -{ - /** - * 濮撳悕锛岀2浣嶆槦鍙锋浛鎹 - */ - USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")), - - /** - * 瀵嗙爜锛屽叏閮ㄥ瓧绗﹂兘鐢*浠f浛 - */ - PASSWORD(DesensitizedUtil::password), - - /** - * 韬唤璇侊紝涓棿10浣嶆槦鍙锋浛鎹 - */ - ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\d{3}[Xx]|\\d{4})", "$1** **** ****$2")), - - /** - * 鎵嬫満鍙凤紝涓棿4浣嶆槦鍙锋浛鎹 - */ - PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")), - - /** - * 鐢靛瓙閭锛屼粎鏄剧ず绗竴涓瓧姣嶅拰@鍚庨潰鐨勫湴鍧鏄剧ず锛屽叾浠栨槦鍙锋浛鎹 - */ - EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")), - - /** - * 閾惰鍗″彿锛屼繚鐣欐渶鍚4浣嶏紝鍏朵粬鏄熷彿鏇挎崲 - */ - BANK_CARD(s -> s.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1")), - - /** - * 杞︾墝鍙风爜锛屽寘鍚櫘閫氳溅杈嗐佹柊鑳芥簮杞﹁締 - */ - CAR_LICENSE(DesensitizedUtil::carLicense); - - private final Function desensitizer; - - DesensitizedType(Function desensitizer) - { - this.desensitizer = desensitizer; - } - - public Function desensitizer() - { - return desensitizer; - } +public enum DesensitizedType { + /** 濮撳悕锛岀2浣嶆槦鍙锋浛鎹 */ + USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")), + + /** 瀵嗙爜锛屽叏閮ㄥ瓧绗﹂兘鐢*浠f浛 */ + PASSWORD(DesensitizedUtil::password), + + /** 韬唤璇侊紝涓棿10浣嶆槦鍙锋浛鎹 */ + ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\d{3}[Xx]|\\d{4})", "$1** **** ****$2")), + + /** 鎵嬫満鍙凤紝涓棿4浣嶆槦鍙锋浛鎹 */ + PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")), + + /** 鐢靛瓙閭锛屼粎鏄剧ず绗竴涓瓧姣嶅拰@鍚庨潰鐨勫湴鍧鏄剧ず锛屽叾浠栨槦鍙锋浛鎹 */ + EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")), + + /** 閾惰鍗″彿锛屼繚鐣欐渶鍚4浣嶏紝鍏朵粬鏄熷彿鏇挎崲 */ + BANK_CARD(s -> s.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1")), + + /** 杞︾墝鍙风爜锛屽寘鍚櫘閫氳溅杈嗐佹柊鑳芥簮杞﹁締 */ + CAR_LICENSE(DesensitizedUtil::carLicense); + + private final Function desensitizer; + + DesensitizedType(Function desensitizer) { + this.desensitizer = desensitizer; + } + + public Function desensitizer() { + return desensitizer; + } } diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/utils/DesensitizedUtil.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/utils/DesensitizedUtil.java index 9c542d682..d24e5ea35 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/utils/DesensitizedUtil.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/utils/DesensitizedUtil.java @@ -7,45 +7,37 @@ import com.ruoyi.common.core.utils.StringUtils; * * @author ruoyi */ -public class DesensitizedUtil -{ - /** - * 瀵嗙爜鐨勫叏閮ㄥ瓧绗﹂兘鐢*浠f浛锛屾瘮濡傦細****** - * - * @param password 瀵嗙爜 - * @return 鑴辨晱鍚庣殑瀵嗙爜 - */ - public static String password(String password) - { - if (StringUtils.isBlank(password)) - { - return StringUtils.EMPTY; - } - return StringUtils.repeat('*', password.length()); +public class DesensitizedUtil { + /** + * 瀵嗙爜鐨勫叏閮ㄥ瓧绗﹂兘鐢*浠f浛锛屾瘮濡傦細****** + * + * @param password 瀵嗙爜 + * @return 鑴辨晱鍚庣殑瀵嗙爜 + */ + public static String password(String password) { + if (StringUtils.isBlank(password)) { + return StringUtils.EMPTY; } + return StringUtils.repeat('*', password.length()); + } - /** - * 杞︾墝涓棿鐢*浠f浛锛屽鏋滄槸閿欒鐨勮溅鐗岋紝涓嶅鐞 - * - * @param carLicense 瀹屾暣鐨勮溅鐗屽彿 - * @return 鑴辨晱鍚庣殑杞︾墝 - */ - public static String carLicense(String carLicense) - { - if (StringUtils.isBlank(carLicense)) - { - return StringUtils.EMPTY; - } - // 鏅氳溅鐗 - if (carLicense.length() == 7) - { - carLicense = StringUtils.hide(carLicense, 3, 6); - } - else if (carLicense.length() == 8) - { - // 鏂拌兘婧愯溅鐗 - carLicense = StringUtils.hide(carLicense, 3, 7); - } - return carLicense; + /** + * 杞︾墝涓棿鐢*浠f浛锛屽鏋滄槸閿欒鐨勮溅鐗岋紝涓嶅鐞 + * + * @param carLicense 瀹屾暣鐨勮溅鐗屽彿 + * @return 鑴辨晱鍚庣殑杞︾墝 + */ + public static String carLicense(String carLicense) { + if (StringUtils.isBlank(carLicense)) { + return StringUtils.EMPTY; } + // 鏅氳溅鐗 + if (carLicense.length() == 7) { + carLicense = StringUtils.hide(carLicense, 3, 6); + } else if (carLicense.length() == 8) { + // 鏂拌兘婧愯溅鐗 + carLicense = StringUtils.hide(carLicense, 3, 7); + } + return carLicense; + } } diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java index 77b6ee6f4..874f6db96 100644 --- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SpringDocAutoConfiguration.java @@ -1,11 +1,5 @@ package com.ruoyi.common.swagger.config; -import java.util.ArrayList; -import java.util.List; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; import com.ruoyi.common.swagger.config.properties.SpringDocProperties; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; @@ -13,6 +7,12 @@ import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.servers.Server; +import java.util.ArrayList; +import java.util.List; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; /** * Swagger 鏂囨。閰嶇疆 @@ -20,44 +20,45 @@ import io.swagger.v3.oas.models.servers.Server; * @author ruoyi */ @EnableConfigurationProperties(SpringDocProperties.class) -@ConditionalOnProperty(name = "springdoc.api-docs.enabled", havingValue = "true", matchIfMissing = true) -public class SpringDocAutoConfiguration -{ - @Bean - @ConditionalOnMissingBean(OpenAPI.class) - public OpenAPI openApi(SpringDocProperties properties) - { - return new OpenAPI().components(new Components() - // 璁剧疆璁よ瘉鐨勮姹傚ご - .addSecuritySchemes("apikey", securityScheme())) - .addSecurityItem(new SecurityRequirement().addList("apikey")) - .info(convertInfo(properties.getInfo())) - .servers(servers(properties.getGatewayUrl())); - } +@ConditionalOnProperty( + name = "springdoc.api-docs.enabled", + havingValue = "true", + matchIfMissing = true) +public class SpringDocAutoConfiguration { + @Bean + @ConditionalOnMissingBean(OpenAPI.class) + public OpenAPI openApi(SpringDocProperties properties) { + return new OpenAPI() + .components( + new Components() + // 璁剧疆璁よ瘉鐨勮姹傚ご + .addSecuritySchemes("apikey", securityScheme())) + .addSecurityItem(new SecurityRequirement().addList("apikey")) + .info(convertInfo(properties.getInfo())) + .servers(servers(properties.getGatewayUrl())); + } - public SecurityScheme securityScheme() - { - return new SecurityScheme().type(SecurityScheme.Type.APIKEY) - .name("Authorization") - .in(SecurityScheme.In.HEADER) - .scheme("Bearer"); - } + public SecurityScheme securityScheme() { + return new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .name("Authorization") + .in(SecurityScheme.In.HEADER) + .scheme("Bearer"); + } - private Info convertInfo(SpringDocProperties.InfoProperties infoProperties) - { - Info info = new Info(); - info.setTitle(infoProperties.getTitle()); - info.setDescription(infoProperties.getDescription()); - info.setContact(infoProperties.getContact()); - info.setLicense(infoProperties.getLicense()); - info.setVersion(infoProperties.getVersion()); - return info; - } + private Info convertInfo(SpringDocProperties.InfoProperties infoProperties) { + Info info = new Info(); + info.setTitle(infoProperties.getTitle()); + info.setDescription(infoProperties.getDescription()); + info.setContact(infoProperties.getContact()); + info.setLicense(infoProperties.getLicense()); + info.setVersion(infoProperties.getVersion()); + return info; + } - public List servers(String gatewayUrl) - { - List serverList = new ArrayList<>(); - serverList.add(new Server().url(gatewayUrl)); - return serverList; - } + public List servers(String gatewayUrl) { + List serverList = new ArrayList<>(); + serverList.add(new Server().url(gatewayUrl)); + return serverList; + } } diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SpringDocProperties.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SpringDocProperties.java index fb892c255..b44dd9c3e 100644 --- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SpringDocProperties.java +++ b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SpringDocProperties.java @@ -1,9 +1,9 @@ package com.ruoyi.common.swagger.config.properties; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.context.properties.NestedConfigurationProperty; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.License; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; /** * Swagger 閰嶇疆灞炴 @@ -11,125 +11,89 @@ import io.swagger.v3.oas.models.info.License; * @author ruoyi */ @ConfigurationProperties(prefix = "springdoc") -public class SpringDocProperties -{ - /** - * 缃戝叧 - */ - private String gatewayUrl; - - /** - * 鏂囨。鍩烘湰淇℃伅 - */ - @NestedConfigurationProperty - private InfoProperties info = new InfoProperties(); - - /** - *

- * 鏂囨。鐨勫熀纭灞炴т俊鎭 - *

- * - * @see io.swagger.v3.oas.models.info.Info - * - * 涓轰簡 springboot 鑷姩鐢熶骇閰嶇疆鎻愮ず淇℃伅锛屾墍浠ヨ繖閲屽鍒朵竴涓被鍑烘潵 - */ - public static class InfoProperties - { - /** - * 鏍囬 - */ - private String title = null; - - /** - * 鎻忚堪 - */ - private String description = null; - - /** - * 鑱旂郴浜轰俊鎭 - */ - @NestedConfigurationProperty - private Contact contact = null; - - /** - * 璁稿彲璇 - */ - @NestedConfigurationProperty - private License license = null; - - /** - * 鐗堟湰 - */ - private String version = null; - - public String getTitle() - { - return title; - } - - public void setTitle(String title) - { - this.title = title; - } - - public String getDescription() - { - return description; - } - - public void setDescription(String description) - { - this.description = description; - } - - public Contact getContact() - { - return contact; - } - - public void setContact(Contact contact) - { - this.contact = contact; - } - - public License getLicense() - { - return license; - } - - public void setLicense(License license) - { - this.license = license; - } - - public String getVersion() - { - return version; - } - - public void setVersion(String version) - { - this.version = version; - } +public class SpringDocProperties { + /** 缃戝叧 */ + private String gatewayUrl; + + /** 鏂囨。鍩烘湰淇℃伅 */ + @NestedConfigurationProperty private InfoProperties info = new InfoProperties(); + + /** + * 鏂囨。鐨勫熀纭灞炴т俊鎭 + * + * @see io.swagger.v3.oas.models.info.Info + *

涓轰簡 springboot 鑷姩鐢熶骇閰嶇疆鎻愮ず淇℃伅锛屾墍浠ヨ繖閲屽鍒朵竴涓被鍑烘潵 + */ + public static class InfoProperties { + /** 鏍囬 */ + private String title = null; + + /** 鎻忚堪 */ + private String description = null; + + /** 鑱旂郴浜轰俊鎭 */ + @NestedConfigurationProperty private Contact contact = null; + + /** 璁稿彲璇 */ + @NestedConfigurationProperty private License license = null; + + /** 鐗堟湰 */ + private String version = null; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; } - public String getGatewayUrl() - { - return gatewayUrl; + public String getDescription() { + return description; } - public void setGatewayUrl(String gatewayUrl) - { - this.gatewayUrl = gatewayUrl; + public void setDescription(String description) { + this.description = description; } - public InfoProperties getInfo() - { - return info; + public Contact getContact() { + return contact; } - public void setInfo(InfoProperties info) - { - this.info = info; + public void setContact(Contact contact) { + this.contact = contact; } + + public License getLicense() { + return license; + } + + public void setLicense(License license) { + this.license = license; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + } + + public String getGatewayUrl() { + return gatewayUrl; + } + + public void setGatewayUrl(String gatewayUrl) { + this.gatewayUrl = gatewayUrl; + } + + public InfoProperties getInfo() { + return info; + } + + public void setInfo(InfoProperties info) { + this.info = info; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java index c6f7db680..326b29948 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java @@ -6,24 +6,23 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * 缃戝叧鍚姩绋嬪簭 - * + * * @author ruoyi */ -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -public class RuoYiGatewayApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiGatewayApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 鑻ヤ緷缃戝叧鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class RuoYiGatewayApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiGatewayApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 鑻ヤ緷缃戝叧鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java index 963425e6c..b9e23fadb 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java @@ -1,83 +1,84 @@ package com.ruoyi.gateway.config; +import static com.google.code.kaptcha.Constants.*; + +import com.google.code.kaptcha.impl.DefaultKaptcha; +import com.google.code.kaptcha.util.Config; import java.util.Properties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.google.code.kaptcha.impl.DefaultKaptcha; -import com.google.code.kaptcha.util.Config; -import static com.google.code.kaptcha.Constants.*; /** * 楠岃瘉鐮侀厤缃 - * + * * @author ruoyi */ @Configuration -public class CaptchaConfig -{ - @Bean(name = "captchaProducer") - public DefaultKaptcha getKaptchaBean() - { - DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); - Properties properties = new Properties(); - // 鏄惁鏈夎竟妗 榛樿涓簍rue 鎴戜滑鍙互鑷繁璁剧疆yes锛宯o - properties.setProperty(KAPTCHA_BORDER, "yes"); - // 楠岃瘉鐮佹枃鏈瓧绗﹂鑹 榛樿涓篊olor.BLACK - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black"); - // 楠岃瘉鐮佸浘鐗囧搴 榛樿涓200 - properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); - // 楠岃瘉鐮佸浘鐗囬珮搴 榛樿涓50 - properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); - // 楠岃瘉鐮佹枃鏈瓧绗﹀ぇ灏 榛樿涓40 - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38"); - // KAPTCHA_SESSION_KEY - properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode"); - // 楠岃瘉鐮佹枃鏈瓧绗﹂暱搴 榛樿涓5 - properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4"); - // 楠岃瘉鐮佹枃鏈瓧浣撴牱寮 榛樿涓簄ew Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); - // 鍥剧墖鏍峰紡 姘寸汗com.google.code.kaptcha.impl.WaterRipple 楸肩溂com.google.code.kaptcha.impl.FishEyeGimpy 闃村奖com.google.code.kaptcha.impl.ShadowGimpy - properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); - Config config = new Config(properties); - defaultKaptcha.setConfig(config); - return defaultKaptcha; - } - - @Bean(name = "captchaProducerMath") - public DefaultKaptcha getKaptchaBeanMath() - { - DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); - Properties properties = new Properties(); - // 鏄惁鏈夎竟妗 榛樿涓簍rue 鎴戜滑鍙互鑷繁璁剧疆yes锛宯o - properties.setProperty(KAPTCHA_BORDER, "yes"); - // 杈规棰滆壊 榛樿涓篊olor.BLACK - properties.setProperty(KAPTCHA_BORDER_COLOR, "105,179,90"); - // 楠岃瘉鐮佹枃鏈瓧绗﹂鑹 榛樿涓篊olor.BLACK - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue"); - // 楠岃瘉鐮佸浘鐗囧搴 榛樿涓200 - properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); - // 楠岃瘉鐮佸浘鐗囬珮搴 榛樿涓50 - properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); - // 楠岃瘉鐮佹枃鏈瓧绗﹀ぇ灏 榛樿涓40 - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35"); - // KAPTCHA_SESSION_KEY - properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath"); - // 楠岃瘉鐮佹枃鏈敓鎴愬櫒 - properties.setProperty(KAPTCHA_TEXTPRODUCER_IMPL, "com.ruoyi.gateway.config.KaptchaTextCreator"); - // 楠岃瘉鐮佹枃鏈瓧绗﹂棿璺 榛樿涓2 - properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "3"); - // 楠岃瘉鐮佹枃鏈瓧绗﹂暱搴 榛樿涓5 - properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6"); - // 楠岃瘉鐮佹枃鏈瓧浣撴牱寮 榛樿涓簄ew Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) - properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); - // 楠岃瘉鐮佸櫔鐐归鑹 榛樿涓篊olor.BLACK - properties.setProperty(KAPTCHA_NOISE_COLOR, "white"); - // 骞叉壈瀹炵幇绫 - properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise"); - // 鍥剧墖鏍峰紡 姘寸汗com.google.code.kaptcha.impl.WaterRipple 楸肩溂com.google.code.kaptcha.impl.FishEyeGimpy 闃村奖com.google.code.kaptcha.impl.ShadowGimpy - properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); - Config config = new Config(properties); - defaultKaptcha.setConfig(config); - return defaultKaptcha; - } -} \ No newline at end of file +public class CaptchaConfig { + @Bean(name = "captchaProducer") + public DefaultKaptcha getKaptchaBean() { + DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); + Properties properties = new Properties(); + // 鏄惁鏈夎竟妗 榛樿涓簍rue 鎴戜滑鍙互鑷繁璁剧疆yes锛宯o + properties.setProperty(KAPTCHA_BORDER, "yes"); + // 楠岃瘉鐮佹枃鏈瓧绗﹂鑹 榛樿涓篊olor.BLACK + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black"); + // 楠岃瘉鐮佸浘鐗囧搴 榛樿涓200 + properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); + // 楠岃瘉鐮佸浘鐗囬珮搴 榛樿涓50 + properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); + // 楠岃瘉鐮佹枃鏈瓧绗﹀ぇ灏 榛樿涓40 + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38"); + // KAPTCHA_SESSION_KEY + properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode"); + // 楠岃瘉鐮佹枃鏈瓧绗﹂暱搴 榛樿涓5 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4"); + // 楠岃瘉鐮佹枃鏈瓧浣撴牱寮 榛樿涓簄ew Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); + // 鍥剧墖鏍峰紡 姘寸汗com.google.code.kaptcha.impl.WaterRipple 楸肩溂com.google.code.kaptcha.impl.FishEyeGimpy + // 闃村奖com.google.code.kaptcha.impl.ShadowGimpy + properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); + Config config = new Config(properties); + defaultKaptcha.setConfig(config); + return defaultKaptcha; + } + + @Bean(name = "captchaProducerMath") + public DefaultKaptcha getKaptchaBeanMath() { + DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); + Properties properties = new Properties(); + // 鏄惁鏈夎竟妗 榛樿涓簍rue 鎴戜滑鍙互鑷繁璁剧疆yes锛宯o + properties.setProperty(KAPTCHA_BORDER, "yes"); + // 杈规棰滆壊 榛樿涓篊olor.BLACK + properties.setProperty(KAPTCHA_BORDER_COLOR, "105,179,90"); + // 楠岃瘉鐮佹枃鏈瓧绗﹂鑹 榛樿涓篊olor.BLACK + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue"); + // 楠岃瘉鐮佸浘鐗囧搴 榛樿涓200 + properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); + // 楠岃瘉鐮佸浘鐗囬珮搴 榛樿涓50 + properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); + // 楠岃瘉鐮佹枃鏈瓧绗﹀ぇ灏 榛樿涓40 + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35"); + // KAPTCHA_SESSION_KEY + properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath"); + // 楠岃瘉鐮佹枃鏈敓鎴愬櫒 + properties.setProperty( + KAPTCHA_TEXTPRODUCER_IMPL, "com.ruoyi.gateway.config.KaptchaTextCreator"); + // 楠岃瘉鐮佹枃鏈瓧绗﹂棿璺 榛樿涓2 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "3"); + // 楠岃瘉鐮佹枃鏈瓧绗﹂暱搴 榛樿涓5 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6"); + // 楠岃瘉鐮佹枃鏈瓧浣撴牱寮 榛樿涓簄ew Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); + // 楠岃瘉鐮佸櫔鐐归鑹 榛樿涓篊olor.BLACK + properties.setProperty(KAPTCHA_NOISE_COLOR, "white"); + // 骞叉壈瀹炵幇绫 + properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise"); + // 鍥剧墖鏍峰紡 姘寸汗com.google.code.kaptcha.impl.WaterRipple 楸肩溂com.google.code.kaptcha.impl.FishEyeGimpy + // 闃村奖com.google.code.kaptcha.impl.ShadowGimpy + properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); + Config config = new Config(properties); + defaultKaptcha.setConfig(config); + return defaultKaptcha; + } +} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java index 8d0fee4e0..fe0aeb6c7 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java @@ -1,23 +1,21 @@ package com.ruoyi.gateway.config; +import com.ruoyi.gateway.handler.SentinelFallbackHandler; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; -import com.ruoyi.gateway.handler.SentinelFallbackHandler; /** * 缃戝叧闄愭祦閰嶇疆 - * + * * @author ruoyi */ @Configuration -public class GatewayConfig -{ - @Bean - @Order(Ordered.HIGHEST_PRECEDENCE) - public SentinelFallbackHandler sentinelGatewayExceptionHandler() - { - return new SentinelFallbackHandler(); - } -} \ No newline at end of file +public class GatewayConfig { + @Bean + @Order(Ordered.HIGHEST_PRECEDENCE) + public SentinelFallbackHandler sentinelGatewayExceptionHandler() { + return new SentinelFallbackHandler(); + } +} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java index ea65aef7b..01664a0a8 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java @@ -1,75 +1,60 @@ package com.ruoyi.gateway.config; -import java.util.Random; import com.google.code.kaptcha.text.impl.DefaultTextCreator; +import java.util.Random; /** * 楠岃瘉鐮佹枃鏈敓鎴愬櫒 - * + * * @author ruoyi */ -public class KaptchaTextCreator extends DefaultTextCreator -{ - private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(","); +public class KaptchaTextCreator extends DefaultTextCreator { + private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(","); - @Override - public String getText() - { - Integer result = 0; - Random random = new Random(); - int x = random.nextInt(10); - int y = random.nextInt(10); - StringBuilder suChinese = new StringBuilder(); - int randomoperands = random.nextInt(3); - if (randomoperands == 0) - { - result = x * y; - suChinese.append(CNUMBERS[x]); - suChinese.append("*"); - suChinese.append(CNUMBERS[y]); - } - else if (randomoperands == 1) - { - if ((x != 0) && y % x == 0) - { - result = y / x; - suChinese.append(CNUMBERS[y]); - suChinese.append("/"); - suChinese.append(CNUMBERS[x]); - } - else - { - result = x + y; - suChinese.append(CNUMBERS[x]); - suChinese.append("+"); - suChinese.append(CNUMBERS[y]); - } - } - else if (randomoperands == 2) - { - if (x >= y) - { - result = x - y; - suChinese.append(CNUMBERS[x]); - suChinese.append("-"); - suChinese.append(CNUMBERS[y]); - } - else - { - result = y - x; - suChinese.append(CNUMBERS[y]); - suChinese.append("-"); - suChinese.append(CNUMBERS[x]); - } - } - else - { - result = x + y; - suChinese.append(CNUMBERS[x]); - suChinese.append("+"); - suChinese.append(CNUMBERS[y]); - } - suChinese.append("=?@" + result); - return suChinese.toString(); + @Override + public String getText() { + Integer result = 0; + Random random = new Random(); + int x = random.nextInt(10); + int y = random.nextInt(10); + StringBuilder suChinese = new StringBuilder(); + int randomoperands = random.nextInt(3); + if (randomoperands == 0) { + result = x * y; + suChinese.append(CNUMBERS[x]); + suChinese.append("*"); + suChinese.append(CNUMBERS[y]); + } else if (randomoperands == 1) { + if ((x != 0) && y % x == 0) { + result = y / x; + suChinese.append(CNUMBERS[y]); + suChinese.append("/"); + suChinese.append(CNUMBERS[x]); + } else { + result = x + y; + suChinese.append(CNUMBERS[x]); + suChinese.append("+"); + suChinese.append(CNUMBERS[y]); + } + } else if (randomoperands == 2) { + if (x >= y) { + result = x - y; + suChinese.append(CNUMBERS[x]); + suChinese.append("-"); + suChinese.append(CNUMBERS[y]); + } else { + result = y - x; + suChinese.append(CNUMBERS[y]); + suChinese.append("-"); + suChinese.append(CNUMBERS[x]); + } + } else { + result = x + y; + suChinese.append(CNUMBERS[x]); + suChinese.append("+"); + suChinese.append(CNUMBERS[y]); } -} \ No newline at end of file + suChinese.append("=?@" + result); + return suChinese.toString(); + } +} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java index 7e4cdf235..911c0921e 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java @@ -1,5 +1,6 @@ package com.ruoyi.gateway.config; +import com.ruoyi.gateway.handler.ValidateCodeHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -7,25 +8,21 @@ import org.springframework.http.MediaType; import org.springframework.web.reactive.function.server.RequestPredicates; import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunctions; -import com.ruoyi.gateway.handler.ValidateCodeHandler; /** * 璺敱閰嶇疆淇℃伅 - * + * * @author ruoyi */ @Configuration -public class RouterFunctionConfiguration -{ - @Autowired - private ValidateCodeHandler validateCodeHandler; +public class RouterFunctionConfiguration { + @Autowired private ValidateCodeHandler validateCodeHandler; - @SuppressWarnings("rawtypes") - @Bean - public RouterFunction routerFunction() - { - return RouterFunctions.route( - RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), - validateCodeHandler); - } + @SuppressWarnings("rawtypes") + @Bean + public RouterFunction routerFunction() { + return RouterFunctions.route( + RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), + validateCodeHandler); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java index 2df8ea0fa..e5e15c0e1 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java @@ -1,5 +1,10 @@ package com.ruoyi.gateway.config; +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.Event; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import com.ruoyi.common.core.utils.StringUtils; import java.util.Set; import java.util.stream.Collectors; import org.springdoc.core.AbstractSwaggerUiConfigProperties; @@ -9,11 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.annotation.Configuration; -import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; -import com.alibaba.nacos.common.notify.Event; -import com.alibaba.nacos.common.notify.NotifyCenter; -import com.alibaba.nacos.common.notify.listener.Subscriber; -import com.ruoyi.common.core.utils.StringUtils; /** * SpringDoc閰嶇疆绫 @@ -22,72 +22,67 @@ import com.ruoyi.common.core.utils.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "springdoc.api-docs.enabled", matchIfMissing = true) -public class SpringDocConfig implements InitializingBean -{ - @Autowired - private SwaggerUiConfigProperties swaggerUiConfigProperties; +public class SpringDocConfig implements InitializingBean { + @Autowired private SwaggerUiConfigProperties swaggerUiConfigProperties; - @Autowired - private DiscoveryClient discoveryClient; + @Autowired private DiscoveryClient discoveryClient; - /** - * 鍦ㄥ垵濮嬪寲鍚庤皟鐢ㄧ殑鏂规硶 - */ - @Override - public void afterPropertiesSet() - { - NotifyCenter.registerSubscriber(new SwaggerDocRegister(swaggerUiConfigProperties, discoveryClient)); - } + /** 鍦ㄥ垵濮嬪寲鍚庤皟鐢ㄧ殑鏂规硶 */ + @Override + public void afterPropertiesSet() { + NotifyCenter.registerSubscriber( + new SwaggerDocRegister(swaggerUiConfigProperties, discoveryClient)); + } } -/** - * Swagger鏂囨。娉ㄥ唽鍣 - */ -class SwaggerDocRegister extends Subscriber -{ - @Autowired - private SwaggerUiConfigProperties swaggerUiConfigProperties; +/** Swagger鏂囨。娉ㄥ唽鍣 */ +class SwaggerDocRegister extends Subscriber { + @Autowired private SwaggerUiConfigProperties swaggerUiConfigProperties; - @Autowired - private DiscoveryClient discoveryClient; + @Autowired private DiscoveryClient discoveryClient; - private final static String[] EXCLUDE_ROUTES = new String[] { "ruoyi-gateway", "ruoyi-auth", "ruoyi-file", "ruoyi-monitor" }; + private static final String[] EXCLUDE_ROUTES = + new String[] {"ruoyi-gateway", "ruoyi-auth", "ruoyi-file", "ruoyi-monitor"}; - public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) - { - this.swaggerUiConfigProperties = swaggerUiConfigProperties; - this.discoveryClient = discoveryClient; - } + public SwaggerDocRegister( + SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) { + this.swaggerUiConfigProperties = swaggerUiConfigProperties; + this.discoveryClient = discoveryClient; + } - /** - * 浜嬩欢鍥炶皟鏂规硶锛屽鐞咺nstancesChangeEvent浜嬩欢 - * @param event 浜嬩欢瀵硅薄 - */ - @Override - public void onEvent(InstancesChangeEvent event) - { - Set swaggerUrlSet = discoveryClient.getServices() - .stream() + /** + * 浜嬩欢鍥炶皟鏂规硶锛屽鐞咺nstancesChangeEvent浜嬩欢 + * + * @param event 浜嬩欢瀵硅薄 + */ + @Override + public void onEvent(InstancesChangeEvent event) { + Set swaggerUrlSet = + discoveryClient.getServices().stream() .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream()) - .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) - .map(instance -> { - AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl(); - swaggerUrl.setName(instance.getServiceId()); - swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); - return swaggerUrl; - }) + .filter( + instance -> + !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) + .map( + instance -> { + AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = + new AbstractSwaggerUiConfigProperties.SwaggerUrl(); + swaggerUrl.setName(instance.getServiceId()); + swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); + return swaggerUrl; + }) .collect(Collectors.toSet()); - swaggerUiConfigProperties.setUrls(swaggerUrlSet); - } + swaggerUiConfigProperties.setUrls(swaggerUrlSet); + } - /** - * 璁㈤槄绫诲瀷鏂规硶锛岃繑鍥炶闃呯殑浜嬩欢绫诲瀷 - * @return 璁㈤槄鐨勪簨浠剁被鍨 - */ - @Override - public Class subscribeType() - { - return InstancesChangeEvent.class; - } + /** + * 璁㈤槄绫诲瀷鏂规硶锛岃繑鍥炶闃呯殑浜嬩欢绫诲瀷 + * + * @return 璁㈤槄鐨勪簨浠剁被鍨 + */ + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/CaptchaProperties.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/CaptchaProperties.java index dea2e1685..429541e82 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/CaptchaProperties.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/CaptchaProperties.java @@ -6,41 +6,32 @@ import org.springframework.context.annotation.Configuration; /** * 楠岃瘉鐮侀厤缃 - * + * * @author ruoyi */ @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.captcha") -public class CaptchaProperties -{ - /** - * 楠岃瘉鐮佸紑鍏 - */ - private Boolean enabled; +public class CaptchaProperties { + /** 楠岃瘉鐮佸紑鍏 */ + private Boolean enabled; - /** - * 楠岃瘉鐮佺被鍨嬶紙math 鏁扮粍璁$畻 char 瀛楃锛 - */ - private String type; + /** 楠岃瘉鐮佺被鍨嬶紙math 鏁扮粍璁$畻 char 瀛楃锛 */ + private String type; - public Boolean getEnabled() - { - return enabled; - } + public Boolean getEnabled() { + return enabled; + } - public void setEnabled(Boolean enabled) - { - this.enabled = enabled; - } + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } - public String getType() - { - return type; - } + public String getType() { + return type; + } - public void setType(String type) - { - this.type = type; - } + public void setType(String type) { + this.type = type; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java index 7df117139..3c807c7f8 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java @@ -8,26 +8,21 @@ import org.springframework.context.annotation.Configuration; /** * 鏀捐鐧藉悕鍗曢厤缃 - * + * * @author ruoyi */ @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.ignore") -public class IgnoreWhiteProperties -{ - /** - * 鏀捐鐧藉悕鍗曢厤缃紝缃戝叧涓嶆牎楠屾澶勭殑鐧藉悕鍗 - */ - private List whites = new ArrayList<>(); +public class IgnoreWhiteProperties { + /** 鏀捐鐧藉悕鍗曢厤缃紝缃戝叧涓嶆牎楠屾澶勭殑鐧藉悕鍗 */ + private List whites = new ArrayList<>(); - public List getWhites() - { - return whites; - } + public List getWhites() { + return whites; + } - public void setWhites(List whites) - { - this.whites = whites; - } + public void setWhites(List whites) { + this.whites = whites; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java index 834188baf..6eda82148 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java @@ -8,41 +8,32 @@ import org.springframework.context.annotation.Configuration; /** * XSS璺ㄧ珯鑴氭湰閰嶇疆 - * + * * @author ruoyi */ @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.xss") -public class XssProperties -{ - /** - * Xss寮鍏 - */ - private Boolean enabled; +public class XssProperties { + /** Xss寮鍏 */ + private Boolean enabled; - /** - * 鎺掗櫎璺緞 - */ - private List excludeUrls = new ArrayList<>(); + /** 鎺掗櫎璺緞 */ + private List excludeUrls = new ArrayList<>(); - public Boolean getEnabled() - { - return enabled; - } + public Boolean getEnabled() { + return enabled; + } - public void setEnabled(Boolean enabled) - { - this.enabled = enabled; - } + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } - public List getExcludeUrls() - { - return excludeUrls; - } + public List getExcludeUrls() { + return excludeUrls; + } - public void setExcludeUrls(List excludeUrls) - { - this.excludeUrls = excludeUrls; - } + public void setExcludeUrls(List excludeUrls) { + this.excludeUrls = excludeUrls; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 51d39ef9f..c45480089 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -1,14 +1,5 @@ package com.ruoyi.gateway.filter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.gateway.filter.GatewayFilterChain; -import org.springframework.cloud.gateway.filter.GlobalFilter; -import org.springframework.core.Ordered; -import org.springframework.http.server.reactive.ServerHttpRequest; -import org.springframework.stereotype.Component; -import org.springframework.web.server.ServerWebExchange; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.constant.SecurityConstants; @@ -19,117 +10,104 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import io.jsonwebtoken.Claims; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; /** * 缃戝叧閴存潈 - * + * * @author ruoyi */ @Component -public class AuthFilter implements GlobalFilter, Ordered -{ - private static final Logger log = LoggerFactory.getLogger(AuthFilter.class); - - // 鎺掗櫎杩囨护鐨 uri 鍦板潃锛宯acos鑷娣诲姞 - @Autowired - private IgnoreWhiteProperties ignoreWhite; +public class AuthFilter implements GlobalFilter, Ordered { + private static final Logger log = LoggerFactory.getLogger(AuthFilter.class); - @Autowired - private RedisService redisService; + // 鎺掗櫎杩囨护鐨 uri 鍦板潃锛宯acos鑷娣诲姞 + @Autowired private IgnoreWhiteProperties ignoreWhite; + @Autowired private RedisService redisService; - @Override - public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) - { - ServerHttpRequest request = exchange.getRequest(); - ServerHttpRequest.Builder mutate = request.mutate(); + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + ServerHttpRequest.Builder mutate = request.mutate(); - String url = request.getURI().getPath(); - // 璺宠繃涓嶉渶瑕侀獙璇佺殑璺緞 - if (StringUtils.matches(url, ignoreWhite.getWhites())) - { - return chain.filter(exchange); - } - String token = getToken(request); - if (StringUtils.isEmpty(token)) - { - return unauthorizedResponse(exchange, "浠ょ墝涓嶈兘涓虹┖"); - } - Claims claims = JwtUtils.parseToken(token); - if (claims == null) - { - return unauthorizedResponse(exchange, "浠ょ墝宸茶繃鏈熸垨楠岃瘉涓嶆纭紒"); - } - String userkey = JwtUtils.getUserKey(claims); - boolean islogin = redisService.hasKey(getTokenKey(userkey)); - if (!islogin) - { - return unauthorizedResponse(exchange, "鐧诲綍鐘舵佸凡杩囨湡"); - } - String userid = JwtUtils.getUserId(claims); - String username = JwtUtils.getUserName(claims); - if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) - { - return unauthorizedResponse(exchange, "浠ょ墝楠岃瘉澶辫触"); - } - - // 璁剧疆鐢ㄦ埛淇℃伅鍒拌姹 - addHeader(mutate, SecurityConstants.USER_KEY, userkey); - addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); - addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); - // 鍐呴儴璇锋眰鏉ユ簮鍙傛暟娓呴櫎 - removeHeader(mutate, SecurityConstants.FROM_SOURCE); - return chain.filter(exchange.mutate().request(mutate.build()).build()); + String url = request.getURI().getPath(); + // 璺宠繃涓嶉渶瑕侀獙璇佺殑璺緞 + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + return chain.filter(exchange); } - - private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) - { - if (value == null) - { - return; - } - String valueStr = value.toString(); - String valueEncode = ServletUtils.urlEncode(valueStr); - mutate.header(name, valueEncode); + String token = getToken(request); + if (StringUtils.isEmpty(token)) { + return unauthorizedResponse(exchange, "浠ょ墝涓嶈兘涓虹┖"); } - - private void removeHeader(ServerHttpRequest.Builder mutate, String name) - { - mutate.headers(httpHeaders -> httpHeaders.remove(name)).build(); + Claims claims = JwtUtils.parseToken(token); + if (claims == null) { + return unauthorizedResponse(exchange, "浠ょ墝宸茶繃鏈熸垨楠岃瘉涓嶆纭紒"); } - - private Mono unauthorizedResponse(ServerWebExchange exchange, String msg) - { - log.error("[閴存潈寮傚父澶勭悊]璇锋眰璺緞:{},閿欒淇℃伅:{}", exchange.getRequest().getPath(), msg); - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); + String userkey = JwtUtils.getUserKey(claims); + boolean islogin = redisService.hasKey(getTokenKey(userkey)); + if (!islogin) { + return unauthorizedResponse(exchange, "鐧诲綍鐘舵佸凡杩囨湡"); } - - /** - * 鑾峰彇缂撳瓨key - */ - private String getTokenKey(String token) - { - return CacheConstants.LOGIN_TOKEN_KEY + token; + String userid = JwtUtils.getUserId(claims); + String username = JwtUtils.getUserName(claims); + if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { + return unauthorizedResponse(exchange, "浠ょ墝楠岃瘉澶辫触"); } - /** - * 鑾峰彇璇锋眰token - */ - private String getToken(ServerHttpRequest request) - { - String token = request.getHeaders().getFirst(SecurityConstants.AUTHORIZATION_HEADER); - // 濡傛灉鍓嶇璁剧疆浜嗕护鐗屽墠缂锛屽垯瑁佸壀鎺夊墠缂 - if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) - { - token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY); - } - return token; + // 璁剧疆鐢ㄦ埛淇℃伅鍒拌姹 + addHeader(mutate, SecurityConstants.USER_KEY, userkey); + addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); + addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); + // 鍐呴儴璇锋眰鏉ユ簮鍙傛暟娓呴櫎 + removeHeader(mutate, SecurityConstants.FROM_SOURCE); + return chain.filter(exchange.mutate().request(mutate.build()).build()); + } + + private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) { + if (value == null) { + return; } + String valueStr = value.toString(); + String valueEncode = ServletUtils.urlEncode(valueStr); + mutate.header(name, valueEncode); + } + + private void removeHeader(ServerHttpRequest.Builder mutate, String name) { + mutate.headers(httpHeaders -> httpHeaders.remove(name)).build(); + } - @Override - public int getOrder() - { - return -200; + private Mono unauthorizedResponse(ServerWebExchange exchange, String msg) { + log.error("[閴存潈寮傚父澶勭悊]璇锋眰璺緞:{},閿欒淇℃伅:{}", exchange.getRequest().getPath(), msg); + return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); + } + + /** 鑾峰彇缂撳瓨key */ + private String getTokenKey(String token) { + return CacheConstants.LOGIN_TOKEN_KEY + token; + } + + /** 鑾峰彇璇锋眰token */ + private String getToken(ServerHttpRequest request) { + String token = request.getHeaders().getFirst(SecurityConstants.AUTHORIZATION_HEADER); + // 濡傛灉鍓嶇璁剧疆浜嗕护鐗屽墠缂锛屽垯瑁佸壀鎺夊墠缂 + if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) { + token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY); } -} \ No newline at end of file + return token; + } + + @Override + public int getOrder() { + return -200; + } +} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java index ec7801b2c..76b59f913 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java @@ -1,65 +1,58 @@ package com.ruoyi.gateway.filter; +import com.ruoyi.common.core.utils.ServletUtils; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.stereotype.Component; -import com.ruoyi.common.core.utils.ServletUtils; /** * 榛戝悕鍗曡繃婊ゅ櫒 - * + * * @author ruoyi */ @Component -public class BlackListUrlFilter extends AbstractGatewayFilterFactory -{ - @Override - public GatewayFilter apply(Config config) - { - return (exchange, chain) -> { - - String url = exchange.getRequest().getURI().getPath(); - if (config.matchBlacklist(url)) - { - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "璇锋眰鍦板潃涓嶅厑璁歌闂"); - } - - return chain.filter(exchange); - }; +public class BlackListUrlFilter extends AbstractGatewayFilterFactory { + @Override + public GatewayFilter apply(Config config) { + return (exchange, chain) -> { + String url = exchange.getRequest().getURI().getPath(); + if (config.matchBlacklist(url)) { + return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "璇锋眰鍦板潃涓嶅厑璁歌闂"); + } + + return chain.filter(exchange); + }; + } + + public BlackListUrlFilter() { + super(Config.class); + } + + public static class Config { + private List blacklistUrl; + + private List blacklistUrlPattern = new ArrayList<>(); + + public boolean matchBlacklist(String url) { + return !blacklistUrlPattern.isEmpty() + && blacklistUrlPattern.stream().anyMatch(p -> p.matcher(url).find()); } - public BlackListUrlFilter() - { - super(Config.class); + public List getBlacklistUrl() { + return blacklistUrl; } - public static class Config - { - private List blacklistUrl; - - private List blacklistUrlPattern = new ArrayList<>(); - - public boolean matchBlacklist(String url) - { - return !blacklistUrlPattern.isEmpty() && blacklistUrlPattern.stream().anyMatch(p -> p.matcher(url).find()); - } - - public List getBlacklistUrl() - { - return blacklistUrl; - } - - public void setBlacklistUrl(List blacklistUrl) - { - this.blacklistUrl = blacklistUrl; - this.blacklistUrlPattern.clear(); - this.blacklistUrl.forEach(url -> { - this.blacklistUrlPattern.add(Pattern.compile(url.replaceAll("\\*\\*", "(.*?)"), Pattern.CASE_INSENSITIVE)); - }); - } + public void setBlacklistUrl(List blacklistUrl) { + this.blacklistUrl = blacklistUrl; + this.blacklistUrlPattern.clear(); + this.blacklistUrl.forEach( + url -> { + this.blacklistUrlPattern.add( + Pattern.compile(url.replaceAll("\\*\\*", "(.*?)"), Pattern.CASE_INSENSITIVE)); + }); } - + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java index 0e2d1bc63..6fa51e6e0 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java @@ -1,5 +1,11 @@ package com.ruoyi.gateway.filter; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.gateway.config.properties.CaptchaProperties; +import com.ruoyi.gateway.service.ValidateCodeService; import java.nio.CharBuffer; import java.nio.charset.StandardCharsets; import java.util.concurrent.atomic.AtomicReference; @@ -10,12 +16,6 @@ import org.springframework.core.io.buffer.DataBuffer; import org.springframework.core.io.buffer.DataBufferUtils; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.stereotype.Component; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.ruoyi.common.core.utils.ServletUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.gateway.config.properties.CaptchaProperties; -import com.ruoyi.gateway.service.ValidateCodeService; import reactor.core.publisher.Flux; /** @@ -24,56 +24,49 @@ import reactor.core.publisher.Flux; * @author ruoyi */ @Component -public class ValidateCodeFilter extends AbstractGatewayFilterFactory -{ - private final static String[] VALIDATE_URL = new String[] { "/auth/login", "/auth/register" }; +public class ValidateCodeFilter extends AbstractGatewayFilterFactory { + private static final String[] VALIDATE_URL = new String[] {"/auth/login", "/auth/register"}; - @Autowired - private ValidateCodeService validateCodeService; + @Autowired private ValidateCodeService validateCodeService; - @Autowired - private CaptchaProperties captchaProperties; + @Autowired private CaptchaProperties captchaProperties; - private static final String CODE = "code"; + private static final String CODE = "code"; - private static final String UUID = "uuid"; + private static final String UUID = "uuid"; - @Override - public GatewayFilter apply(Object config) - { - return (exchange, chain) -> { - ServerHttpRequest request = exchange.getRequest(); + @Override + public GatewayFilter apply(Object config) { + return (exchange, chain) -> { + ServerHttpRequest request = exchange.getRequest(); - // 闈炵櫥褰/娉ㄥ唽璇锋眰鎴栭獙璇佺爜鍏抽棴锛屼笉澶勭悊 - if (!StringUtils.equalsAnyIgnoreCase(request.getURI().getPath(), VALIDATE_URL) || !captchaProperties.getEnabled()) - { - return chain.filter(exchange); - } + // 闈炵櫥褰/娉ㄥ唽璇锋眰鎴栭獙璇佺爜鍏抽棴锛屼笉澶勭悊 + if (!StringUtils.equalsAnyIgnoreCase(request.getURI().getPath(), VALIDATE_URL) + || !captchaProperties.getEnabled()) { + return chain.filter(exchange); + } - try - { - String rspStr = resolveBodyFromRequest(request); - JSONObject obj = JSON.parseObject(rspStr); - validateCodeService.checkCaptcha(obj.getString(CODE), obj.getString(UUID)); - } - catch (Exception e) - { - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage()); - } - return chain.filter(exchange); - }; - } + try { + String rspStr = resolveBodyFromRequest(request); + JSONObject obj = JSON.parseObject(rspStr); + validateCodeService.checkCaptcha(obj.getString(CODE), obj.getString(UUID)); + } catch (Exception e) { + return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage()); + } + return chain.filter(exchange); + }; + } - private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) - { - // 鑾峰彇璇锋眰浣 - Flux body = serverHttpRequest.getBody(); - AtomicReference bodyRef = new AtomicReference<>(); - body.subscribe(buffer -> { - CharBuffer charBuffer = StandardCharsets.UTF_8.decode(buffer.asByteBuffer()); - DataBufferUtils.release(buffer); - bodyRef.set(charBuffer.toString()); + private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) { + // 鑾峰彇璇锋眰浣 + Flux body = serverHttpRequest.getBody(); + AtomicReference bodyRef = new AtomicReference<>(); + body.subscribe( + buffer -> { + CharBuffer charBuffer = StandardCharsets.UTF_8.decode(buffer.asByteBuffer()); + DataBufferUtils.release(buffer); + bodyRef.set(charBuffer.toString()); }); - return bodyRef.get(); - } + return bodyRef.get(); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java index a82ee843a..4c8f64bba 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java @@ -1,5 +1,9 @@ package com.ruoyi.gateway.filter; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.html.EscapeUtil; +import com.ruoyi.gateway.config.properties.XssProperties; +import io.netty.buffer.ByteBufAllocator; import java.nio.charset.StandardCharsets; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -18,10 +22,6 @@ import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequestDecorator; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.html.EscapeUtil; -import com.ruoyi.gateway.config.properties.XssProperties; -import io.netty.buffer.ByteBufAllocator; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -32,98 +32,87 @@ import reactor.core.publisher.Mono; */ @Component @ConditionalOnProperty(value = "security.xss.enabled", havingValue = "true") -public class XssFilter implements GlobalFilter, Ordered -{ - // 璺ㄧ珯鑴氭湰鐨 xss 閰嶇疆锛宯acos鑷娣诲姞 - @Autowired - private XssProperties xss; - - @Override - public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) - { - ServerHttpRequest request = exchange.getRequest(); - // xss寮鍏虫湭寮鍚 鎴 閫氳繃nacos鍏抽棴锛屼笉杩囨护 - if (!xss.getEnabled()) - { - return chain.filter(exchange); - } - // GET DELETE 涓嶈繃婊 - HttpMethod method = request.getMethod(); - if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) - { - return chain.filter(exchange); - } - // 闈瀓son绫诲瀷锛屼笉杩囨护 - if (!isJsonRequest(exchange)) - { - return chain.filter(exchange); - } - // excludeUrls 涓嶈繃婊 - String url = request.getURI().getPath(); - if (StringUtils.matches(url, xss.getExcludeUrls())) - { - return chain.filter(exchange); - } - ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); - return chain.filter(exchange.mutate().request(httpRequestDecorator).build()); +public class XssFilter implements GlobalFilter, Ordered { + // 璺ㄧ珯鑴氭湰鐨 xss 閰嶇疆锛宯acos鑷娣诲姞 + @Autowired private XssProperties xss; + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + // xss寮鍏虫湭寮鍚 鎴 閫氳繃nacos鍏抽棴锛屼笉杩囨护 + if (!xss.getEnabled()) { + return chain.filter(exchange); } + // GET DELETE 涓嶈繃婊 + HttpMethod method = request.getMethod(); + if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) { + return chain.filter(exchange); + } + // 闈瀓son绫诲瀷锛屼笉杩囨护 + if (!isJsonRequest(exchange)) { + return chain.filter(exchange); + } + // excludeUrls 涓嶈繃婊 + String url = request.getURI().getPath(); + if (StringUtils.matches(url, xss.getExcludeUrls())) { + return chain.filter(exchange); + } + ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); + return chain.filter(exchange.mutate().request(httpRequestDecorator).build()); + } - private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange) - { - ServerHttpRequestDecorator serverHttpRequestDecorator = new ServerHttpRequestDecorator(exchange.getRequest()) - { - @Override - public Flux getBody() - { - Flux body = super.getBody(); - return body.buffer().map(dataBuffers -> { - DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory(); - DataBuffer join = dataBufferFactory.join(dataBuffers); - byte[] content = new byte[join.readableByteCount()]; - join.read(content); - DataBufferUtils.release(join); - String bodyStr = new String(content, StandardCharsets.UTF_8); - // 闃瞲ss鏀诲嚮杩囨护 - bodyStr = EscapeUtil.clean(bodyStr); - // 杞垚瀛楄妭 - byte[] bytes = bodyStr.getBytes(StandardCharsets.UTF_8); - NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT); - DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length); - buffer.write(bytes); - return buffer; - }); - } - - @Override - public HttpHeaders getHeaders() - { - HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.putAll(super.getHeaders()); - // 鐢变簬淇敼浜嗚姹備綋鐨刡ody锛屽鑷碿ontent-length闀垮害涓嶇‘瀹氾紝鍥犳闇瑕佸垹闄ゅ師鍏堢殑content-length - httpHeaders.remove(HttpHeaders.CONTENT_LENGTH); - httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, "chunked"); - return httpHeaders; - } + private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange) { + ServerHttpRequestDecorator serverHttpRequestDecorator = + new ServerHttpRequestDecorator(exchange.getRequest()) { + @Override + public Flux getBody() { + Flux body = super.getBody(); + return body.buffer() + .map( + dataBuffers -> { + DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory(); + DataBuffer join = dataBufferFactory.join(dataBuffers); + byte[] content = new byte[join.readableByteCount()]; + join.read(content); + DataBufferUtils.release(join); + String bodyStr = new String(content, StandardCharsets.UTF_8); + // 闃瞲ss鏀诲嚮杩囨护 + bodyStr = EscapeUtil.clean(bodyStr); + // 杞垚瀛楄妭 + byte[] bytes = bodyStr.getBytes(StandardCharsets.UTF_8); + NettyDataBufferFactory nettyDataBufferFactory = + new NettyDataBufferFactory(ByteBufAllocator.DEFAULT); + DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length); + buffer.write(bytes); + return buffer; + }); + } + @Override + public HttpHeaders getHeaders() { + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.putAll(super.getHeaders()); + // 鐢变簬淇敼浜嗚姹備綋鐨刡ody锛屽鑷碿ontent-length闀垮害涓嶇‘瀹氾紝鍥犳闇瑕佸垹闄ゅ師鍏堢殑content-length + httpHeaders.remove(HttpHeaders.CONTENT_LENGTH); + httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, "chunked"); + return httpHeaders; + } }; - return serverHttpRequestDecorator; - } + return serverHttpRequestDecorator; + } - /** - * 鏄惁鏄疛son璇锋眰 - * - * @param exchange HTTP璇锋眰 - */ - public boolean isJsonRequest(ServerWebExchange exchange) - { - String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE); - return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); - } + /** + * 鏄惁鏄疛son璇锋眰 + * + * @param exchange HTTP璇锋眰 + */ + public boolean isJsonRequest(ServerWebExchange exchange) { + String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE); + return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); + } - @Override - public int getOrder() - { - return -100; - } + @Override + public int getOrder() { + return -100; + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java index 593e7e62a..f28152e30 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java @@ -1,15 +1,15 @@ package com.ruoyi.gateway.handler; -import org.springframework.cloud.gateway.support.NotFoundException; +import com.ruoyi.common.core.utils.ServletUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.cloud.gateway.support.NotFoundException; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ServerWebExchange; -import com.ruoyi.common.core.utils.ServletUtils; import reactor.core.publisher.Mono; /** @@ -19,38 +19,30 @@ import reactor.core.publisher.Mono; */ @Order(-1) @Configuration -public class GatewayExceptionHandler implements ErrorWebExceptionHandler -{ - private static final Logger log = LoggerFactory.getLogger(GatewayExceptionHandler.class); - - @Override - public Mono handle(ServerWebExchange exchange, Throwable ex) - { - ServerHttpResponse response = exchange.getResponse(); - - if (exchange.getResponse().isCommitted()) - { - return Mono.error(ex); - } - - String msg; - - if (ex instanceof NotFoundException) - { - msg = "鏈嶅姟鏈壘鍒"; - } - else if (ex instanceof ResponseStatusException) - { - ResponseStatusException responseStatusException = (ResponseStatusException) ex; - msg = responseStatusException.getMessage(); - } - else - { - msg = "鍐呴儴鏈嶅姟鍣ㄩ敊璇"; - } - - log.error("[缃戝叧寮傚父澶勭悊]璇锋眰璺緞:{},寮傚父淇℃伅:{}", exchange.getRequest().getPath(), ex.getMessage()); - - return ServletUtils.webFluxResponseWriter(response, msg); +public class GatewayExceptionHandler implements ErrorWebExceptionHandler { + private static final Logger log = LoggerFactory.getLogger(GatewayExceptionHandler.class); + + @Override + public Mono handle(ServerWebExchange exchange, Throwable ex) { + ServerHttpResponse response = exchange.getResponse(); + + if (exchange.getResponse().isCommitted()) { + return Mono.error(ex); } -} \ No newline at end of file + + String msg; + + if (ex instanceof NotFoundException) { + msg = "鏈嶅姟鏈壘鍒"; + } else if (ex instanceof ResponseStatusException) { + ResponseStatusException responseStatusException = (ResponseStatusException) ex; + msg = responseStatusException.getMessage(); + } else { + msg = "鍐呴儴鏈嶅姟鍣ㄩ敊璇"; + } + + log.error("[缃戝叧寮傚父澶勭悊]璇锋眰璺緞:{},寮傚父淇℃伅:{}", exchange.getRequest().getPath(), ex.getMessage()); + + return ServletUtils.webFluxResponseWriter(response, msg); + } +} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java index 1b496e29e..02a2da5c4 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java @@ -13,29 +13,25 @@ import reactor.core.publisher.Mono; * * @author ruoyi */ -public class SentinelFallbackHandler implements WebExceptionHandler -{ - private Mono writeResponse(ServerResponse response, ServerWebExchange exchange) - { - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "璇锋眰瓒呰繃鏈澶ф暟锛岃绋嶅欏啀璇"); - } +public class SentinelFallbackHandler implements WebExceptionHandler { + private Mono writeResponse(ServerResponse response, ServerWebExchange exchange) { + return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "璇锋眰瓒呰繃鏈澶ф暟锛岃绋嶅欏啀璇"); + } - @Override - public Mono handle(ServerWebExchange exchange, Throwable ex) - { - if (exchange.getResponse().isCommitted()) - { - return Mono.error(ex); - } - if (!BlockException.isBlockException(ex)) - { - return Mono.error(ex); - } - return handleBlockedRequest(exchange, ex).flatMap(response -> writeResponse(response, exchange)); + @Override + public Mono handle(ServerWebExchange exchange, Throwable ex) { + if (exchange.getResponse().isCommitted()) { + return Mono.error(ex); } - - private Mono handleBlockedRequest(ServerWebExchange exchange, Throwable throwable) - { - return GatewayCallbackManager.getBlockHandler().handleRequest(exchange, throwable); + if (!BlockException.isBlockException(ex)) { + return Mono.error(ex); } + return handleBlockedRequest(exchange, ex) + .flatMap(response -> writeResponse(response, exchange)); + } + + private Mono handleBlockedRequest( + ServerWebExchange exchange, Throwable throwable) { + return GatewayCallbackManager.getBlockHandler().handleRequest(exchange, throwable); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java index ef197deb5..57a94a296 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java @@ -1,5 +1,8 @@ package com.ruoyi.gateway.handler; +import com.ruoyi.common.core.exception.CaptchaException; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.gateway.service.ValidateCodeService; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -8,9 +11,6 @@ import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.server.HandlerFunction; import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.reactive.function.server.ServerResponse; -import com.ruoyi.common.core.exception.CaptchaException; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.gateway.service.ValidateCodeService; import reactor.core.publisher.Mono; /** @@ -19,23 +19,17 @@ import reactor.core.publisher.Mono; * @author ruoyi */ @Component -public class ValidateCodeHandler implements HandlerFunction -{ - @Autowired - private ValidateCodeService validateCodeService; +public class ValidateCodeHandler implements HandlerFunction { + @Autowired private ValidateCodeService validateCodeService; - @Override - public Mono handle(ServerRequest serverRequest) - { - AjaxResult ajax; - try - { - ajax = validateCodeService.createCaptcha(); - } - catch (CaptchaException | IOException e) - { - return Mono.error(e); - } - return ServerResponse.status(HttpStatus.OK).body(BodyInserters.fromValue(ajax)); + @Override + public Mono handle(ServerRequest serverRequest) { + AjaxResult ajax; + try { + ajax = validateCodeService.createCaptcha(); + } catch (CaptchaException | IOException e) { + return Mono.error(e); } + return ServerResponse.status(HttpStatus.OK).body(BodyInserters.fromValue(ajax)); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java index 615fb07bb..31f094c73 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java @@ -1,23 +1,18 @@ package com.ruoyi.gateway.service; -import java.io.IOException; import com.ruoyi.common.core.exception.CaptchaException; import com.ruoyi.common.core.web.domain.AjaxResult; +import java.io.IOException; /** * 楠岃瘉鐮佸鐞 * * @author ruoyi */ -public interface ValidateCodeService -{ - /** - * 鐢熸垚楠岃瘉鐮 - */ - public AjaxResult createCaptcha() throws IOException, CaptchaException; +public interface ValidateCodeService { + /** 鐢熸垚楠岃瘉鐮 */ + public AjaxResult createCaptcha() throws IOException, CaptchaException; - /** - * 鏍¢獙楠岃瘉鐮 - */ - public void checkCaptcha(String key, String value) throws CaptchaException; + /** 鏍¢獙楠岃瘉鐮 */ + public void checkCaptcha(String key, String value) throws CaptchaException; } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java index f45010266..7a17a9151 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java @@ -1,13 +1,5 @@ package com.ruoyi.gateway.service.impl; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import javax.annotation.Resource; -import javax.imageio.ImageIO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.FastByteArrayOutputStream; import com.google.code.kaptcha.Producer; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; @@ -19,6 +11,14 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.CaptchaProperties; import com.ruoyi.gateway.service.ValidateCodeService; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.FastByteArrayOutputStream; /** * 楠岃瘉鐮佸疄鐜板鐞 @@ -26,93 +26,74 @@ import com.ruoyi.gateway.service.ValidateCodeService; * @author ruoyi */ @Service -public class ValidateCodeServiceImpl implements ValidateCodeService -{ - @Resource(name = "captchaProducer") - private Producer captchaProducer; - - @Resource(name = "captchaProducerMath") - private Producer captchaProducerMath; +public class ValidateCodeServiceImpl implements ValidateCodeService { + @Resource(name = "captchaProducer") + private Producer captchaProducer; - @Autowired - private RedisService redisService; + @Resource(name = "captchaProducerMath") + private Producer captchaProducerMath; - @Autowired - private CaptchaProperties captchaProperties; + @Autowired private RedisService redisService; - /** - * 鐢熸垚楠岃瘉鐮 - */ - @Override - public AjaxResult createCaptcha() throws IOException, CaptchaException - { - AjaxResult ajax = AjaxResult.success(); - boolean captchaEnabled = captchaProperties.getEnabled(); - ajax.put("captchaEnabled", captchaEnabled); - if (!captchaEnabled) - { - return ajax; - } + @Autowired private CaptchaProperties captchaProperties; - // 淇濆瓨楠岃瘉鐮佷俊鎭 - String uuid = IdUtils.simpleUUID(); - String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; + /** 鐢熸垚楠岃瘉鐮 */ + @Override + public AjaxResult createCaptcha() throws IOException, CaptchaException { + AjaxResult ajax = AjaxResult.success(); + boolean captchaEnabled = captchaProperties.getEnabled(); + ajax.put("captchaEnabled", captchaEnabled); + if (!captchaEnabled) { + return ajax; + } - String capStr = null, code = null; - BufferedImage image = null; + // 淇濆瓨楠岃瘉鐮佷俊鎭 + String uuid = IdUtils.simpleUUID(); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; - String captchaType = captchaProperties.getType(); - // 鐢熸垚楠岃瘉鐮 - if ("math".equals(captchaType)) - { - String capText = captchaProducerMath.createText(); - capStr = capText.substring(0, capText.lastIndexOf("@")); - code = capText.substring(capText.lastIndexOf("@") + 1); - image = captchaProducerMath.createImage(capStr); - } - else if ("char".equals(captchaType)) - { - capStr = code = captchaProducer.createText(); - image = captchaProducer.createImage(capStr); - } + String capStr = null, code = null; + BufferedImage image = null; - redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); - // 杞崲娴佷俊鎭啓鍑 - FastByteArrayOutputStream os = new FastByteArrayOutputStream(); - try - { - ImageIO.write(image, "jpg", os); - } - catch (IOException e) - { - return AjaxResult.error(e.getMessage()); - } + String captchaType = captchaProperties.getType(); + // 鐢熸垚楠岃瘉鐮 + if ("math".equals(captchaType)) { + String capText = captchaProducerMath.createText(); + capStr = capText.substring(0, capText.lastIndexOf("@")); + code = capText.substring(capText.lastIndexOf("@") + 1); + image = captchaProducerMath.createImage(capStr); + } else if ("char".equals(captchaType)) { + capStr = code = captchaProducer.createText(); + image = captchaProducer.createImage(capStr); + } - ajax.put("uuid", uuid); - ajax.put("img", Base64.encode(os.toByteArray())); - return ajax; + redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + // 杞崲娴佷俊鎭啓鍑 + FastByteArrayOutputStream os = new FastByteArrayOutputStream(); + try { + ImageIO.write(image, "jpg", os); + } catch (IOException e) { + return AjaxResult.error(e.getMessage()); } - /** - * 鏍¢獙楠岃瘉鐮 - */ - @Override - public void checkCaptcha(String code, String uuid) throws CaptchaException - { - if (StringUtils.isEmpty(code)) - { - throw new CaptchaException("楠岃瘉鐮佷笉鑳戒负绌"); - } - String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); - String captcha = redisService.getCacheObject(verifyKey); - if (captcha == null) - { - throw new CaptchaException("楠岃瘉鐮佸凡澶辨晥"); - } - redisService.deleteObject(verifyKey); - if (!code.equalsIgnoreCase(captcha)) - { - throw new CaptchaException("楠岃瘉鐮侀敊璇"); - } + ajax.put("uuid", uuid); + ajax.put("img", Base64.encode(os.toByteArray())); + return ajax; + } + + /** 鏍¢獙楠岃瘉鐮 */ + @Override + public void checkCaptcha(String code, String uuid) throws CaptchaException { + if (StringUtils.isEmpty(code)) { + throw new CaptchaException("楠岃瘉鐮佷笉鑳戒负绌"); + } + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); + String captcha = redisService.getCacheObject(verifyKey); + if (captcha == null) { + throw new CaptchaException("楠岃瘉鐮佸凡澶辨晥"); + } + redisService.deleteObject(verifyKey); + if (!code.equalsIgnoreCase(captcha)) { + throw new CaptchaException("楠岃瘉鐮侀敊璇"); } + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java index cc6fdd087..1e169a9ea 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java @@ -6,24 +6,23 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * 鏂囦欢鏈嶅姟 - * + * * @author ruoyi */ -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -public class RuoYiFileApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiFileApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 鏂囦欢鏈嶅姟妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class RuoYiFileApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiFileApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 鏂囦欢鏈嶅姟妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java index 09136bb27..dcb3fe227 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java @@ -1,5 +1,6 @@ package com.ruoyi.file.config; +import com.ruoyi.file.filter.RefererFilter; import java.util.HashMap; import java.util.Map; import javax.servlet.DispatcherType; @@ -8,7 +9,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.ruoyi.file.filter.RefererFilter; /** * Filter閰嶇疆 @@ -16,31 +16,27 @@ import com.ruoyi.file.filter.RefererFilter; * @author ruoyi */ @Configuration -public class FilterConfig -{ - /** - * 璧勬簮鏄犲皠璺緞 鍓嶇紑 - */ - @Value("${file.prefix}") - public String localFilePrefix; - - @Value("${referer.allowed-domains}") - private String allowedDomains; - - @SuppressWarnings({"rawtypes", "unchecked"}) - @Bean - @ConditionalOnProperty(value = "referer.enabled", havingValue = "true") - public FilterRegistrationBean refererFilterRegistration() - { - FilterRegistrationBean registration = new FilterRegistrationBean(); - registration.setDispatcherTypes(DispatcherType.REQUEST); - registration.setFilter(new RefererFilter()); - registration.addUrlPatterns(localFilePrefix + "/*"); - registration.setName("refererFilter"); - registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); - Map initParameters = new HashMap(); - initParameters.put("allowedDomains", allowedDomains); - registration.setInitParameters(initParameters); - return registration; - } +public class FilterConfig { + /** 璧勬簮鏄犲皠璺緞 鍓嶇紑 */ + @Value("${file.prefix}") + public String localFilePrefix; + + @Value("${referer.allowed-domains}") + private String allowedDomains; + + @SuppressWarnings({"rawtypes", "unchecked"}) + @Bean + @ConditionalOnProperty(value = "referer.enabled", havingValue = "true") + public FilterRegistrationBean refererFilterRegistration() { + FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setDispatcherTypes(DispatcherType.REQUEST); + registration.setFilter(new RefererFilter()); + registration.addUrlPatterns(localFilePrefix + "/*"); + registration.setName("refererFilter"); + registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); + Map initParameters = new HashMap(); + initParameters.put("allowedDomains", allowedDomains); + registration.setInitParameters(initParameters); + return registration; + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java index ee3e14c27..fbb65af53 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java @@ -1,9 +1,9 @@ package com.ruoyi.file.config; +import io.minio.MinioClient; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import io.minio.MinioClient; /** * Minio 閰嶇疆淇℃伅 @@ -12,71 +12,53 @@ import io.minio.MinioClient; */ @Configuration @ConfigurationProperties(prefix = "minio") -public class MinioConfig -{ - /** - * 鏈嶅姟鍦板潃 - */ - private String url; +public class MinioConfig { + /** 鏈嶅姟鍦板潃 */ + private String url; - /** - * 鐢ㄦ埛鍚 - */ - private String accessKey; + /** 鐢ㄦ埛鍚 */ + private String accessKey; - /** - * 瀵嗙爜 - */ - private String secretKey; + /** 瀵嗙爜 */ + private String secretKey; - /** - * 瀛樺偍妗跺悕绉 - */ - private String bucketName; + /** 瀛樺偍妗跺悕绉 */ + private String bucketName; - public String getUrl() - { - return url; - } + public String getUrl() { + return url; + } - public void setUrl(String url) - { - this.url = url; - } + public void setUrl(String url) { + this.url = url; + } - public String getAccessKey() - { - return accessKey; - } + public String getAccessKey() { + return accessKey; + } - public void setAccessKey(String accessKey) - { - this.accessKey = accessKey; - } + public void setAccessKey(String accessKey) { + this.accessKey = accessKey; + } - public String getSecretKey() - { - return secretKey; - } + public String getSecretKey() { + return secretKey; + } - public void setSecretKey(String secretKey) - { - this.secretKey = secretKey; - } + public void setSecretKey(String secretKey) { + this.secretKey = secretKey; + } - public String getBucketName() - { - return bucketName; - } + public String getBucketName() { + return bucketName; + } - public void setBucketName(String bucketName) - { - this.bucketName = bucketName; - } + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } - @Bean - public MinioClient getMinioClient() - { - return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build(); - } + @Bean + public MinioClient getMinioClient() { + return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build(); + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java index 3bca6686e..a75823f1b 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/ResourcesConfig.java @@ -9,42 +9,36 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * 閫氱敤鏄犲皠閰嶇疆 - * + * * @author ruoyi */ @Configuration -public class ResourcesConfig implements WebMvcConfigurer -{ - /** - * 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰 - */ - @Value("${file.path}") - private String localFilePath; +public class ResourcesConfig implements WebMvcConfigurer { + /** 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰 */ + @Value("${file.path}") + private String localFilePath; - /** - * 璧勬簮鏄犲皠璺緞 鍓嶇紑 - */ - @Value("${file.prefix}") - public String localFilePrefix; + /** 璧勬簮鏄犲皠璺緞 鍓嶇紑 */ + @Value("${file.prefix}") + public String localFilePrefix; - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) - { - /** 鏈湴鏂囦欢涓婁紶璺緞 */ - registry.addResourceHandler(localFilePrefix + "/**") - .addResourceLocations("file:" + localFilePath + File.separator); - } - - /** - * 寮鍚法鍩 - */ - @Override - public void addCorsMappings(CorsRegistry registry) { - // 璁剧疆鍏佽璺ㄥ煙鐨勮矾鐢 - registry.addMapping(localFilePrefix + "/**") - // 璁剧疆鍏佽璺ㄥ煙璇锋眰鐨勫煙鍚 - .allowedOrigins("*") - // 璁剧疆鍏佽鐨勬柟娉 - .allowedMethods("GET"); - } -} \ No newline at end of file + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + /** 鏈湴鏂囦欢涓婁紶璺緞 */ + registry + .addResourceHandler(localFilePrefix + "/**") + .addResourceLocations("file:" + localFilePath + File.separator); + } + + /** 寮鍚法鍩 */ + @Override + public void addCorsMappings(CorsRegistry registry) { + // 璁剧疆鍏佽璺ㄥ煙鐨勮矾鐢 + registry + .addMapping(localFilePrefix + "/**") + // 璁剧疆鍏佽璺ㄥ煙璇锋眰鐨勫煙鍚 + .allowedOrigins("*") + // 璁剧疆鍏佽鐨勬柟娉 + .allowedMethods("GET"); + } +} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java index 82db19bca..169d96369 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java @@ -1,5 +1,10 @@ package com.ruoyi.file.controller; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.file.FileUtils; +import com.ruoyi.file.service.ISysFileService; +import com.ruoyi.system.api.domain.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -7,66 +12,46 @@ import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.file.FileUtils; -import com.ruoyi.file.service.ISysFileService; -import com.ruoyi.system.api.domain.SysFile; /** * 鏂囦欢璇锋眰澶勭悊 - * + * * @author ruoyi */ @RestController -public class SysFileController -{ - private static final Logger log = LoggerFactory.getLogger(SysFileController.class); +public class SysFileController { + private static final Logger log = LoggerFactory.getLogger(SysFileController.class); - @Autowired - private ISysFileService sysFileService; + @Autowired private ISysFileService sysFileService; - /** - * 鏂囦欢涓婁紶璇锋眰 - */ - @PostMapping("upload") - public R upload(MultipartFile file) - { - try - { - // 涓婁紶骞惰繑鍥炶闂湴鍧 - String url = sysFileService.uploadFile(file); - SysFile sysFile = new SysFile(); - sysFile.setName(FileUtils.getName(url)); - sysFile.setUrl(url); - return R.ok(sysFile); - } - catch (Exception e) - { - log.error("涓婁紶鏂囦欢澶辫触", e); - return R.fail(e.getMessage()); - } + /** 鏂囦欢涓婁紶璇锋眰 */ + @PostMapping("upload") + public R upload(MultipartFile file) { + try { + // 涓婁紶骞惰繑鍥炶闂湴鍧 + String url = sysFileService.uploadFile(file); + SysFile sysFile = new SysFile(); + sysFile.setName(FileUtils.getName(url)); + sysFile.setUrl(url); + return R.ok(sysFile); + } catch (Exception e) { + log.error("涓婁紶鏂囦欢澶辫触", e); + return R.fail(e.getMessage()); } + } - /** - * 鏂囦欢鍒犻櫎璇锋眰 - */ - @DeleteMapping("delete") - public R delete(String fileUrl) - { - try - { - if (!FileUtils.validateFilePath(fileUrl)) - { - throw new Exception(StringUtils.format("璧勬簮鏂囦欢({})闈炴硶锛屼笉鍏佽鍒犻櫎銆 ", fileUrl)); - } - sysFileService.deleteFile(fileUrl); - return R.ok(); - } - catch (Exception e) - { - log.error("鍒犻櫎鏂囦欢澶辫触", e); - return R.fail(e.getMessage()); - } + /** 鏂囦欢鍒犻櫎璇锋眰 */ + @DeleteMapping("delete") + public R delete(String fileUrl) { + try { + if (!FileUtils.validateFilePath(fileUrl)) { + throw new Exception(StringUtils.format("璧勬簮鏂囦欢({})闈炴硶锛屼笉鍏佽鍒犻櫎銆 ", fileUrl)); + } + sysFileService.deleteFile(fileUrl); + return R.ok(); + } catch (Exception e) { + log.error("鍒犻櫎鏂囦欢澶辫触", e); + return R.fail(e.getMessage()); } + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java index 0aafbe7e6..4d8d3d415 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java @@ -14,64 +14,52 @@ import javax.servlet.http.HttpServletResponse; /** * 闃茬洍閾捐繃婊ゅ櫒 - * + * * @author ruoyi */ -public class RefererFilter implements Filter -{ - /** - * 鍏佽鐨勫煙鍚嶅垪琛 - */ - public List allowedDomains; +public class RefererFilter implements Filter { + /** 鍏佽鐨勫煙鍚嶅垪琛 */ + public List allowedDomains; - @Override - public void init(FilterConfig filterConfig) throws ServletException - { - String domains = filterConfig.getInitParameter("allowedDomains"); - this.allowedDomains = Arrays.asList(domains.split(",")); - } - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException - { - HttpServletRequest req = (HttpServletRequest) request; - HttpServletResponse resp = (HttpServletResponse) response; - - String referer = req.getHeader("Referer"); + @Override + public void init(FilterConfig filterConfig) throws ServletException { + String domains = filterConfig.getInitParameter("allowedDomains"); + this.allowedDomains = Arrays.asList(domains.split(",")); + } - // 濡傛灉Referer涓虹┖锛屾嫆缁濊闂 - if (referer == null || referer.isEmpty()) - { - resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Access denied: Referer header is required"); - return; - } + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse resp = (HttpServletResponse) response; - // 妫鏌eferer鏄惁鍦ㄥ厑璁哥殑鍩熷悕鍒楄〃涓 - boolean allowed = false; - for (String domain : allowedDomains) - { - if (referer.contains(domain)) - { - allowed = true; - break; - } - } + String referer = req.getHeader("Referer"); - // 鏍规嵁妫鏌ョ粨鏋滃喅瀹氭槸鍚︽斁琛 - if (allowed) - { - chain.doFilter(request, response); - } - else - { - resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Access denied: Referer '" + referer + "' is not allowed"); - } + // 濡傛灉Referer涓虹┖锛屾嫆缁濊闂 + if (referer == null || referer.isEmpty()) { + resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Access denied: Referer header is required"); + return; } - @Override - public void destroy() - { + // 妫鏌eferer鏄惁鍦ㄥ厑璁哥殑鍩熷悕鍒楄〃涓 + boolean allowed = false; + for (String domain : allowedDomains) { + if (referer.contains(domain)) { + allowed = true; + break; + } + } + // 鏍规嵁妫鏌ョ粨鏋滃喅瀹氭槸鍚︽斁琛 + if (allowed) { + chain.doFilter(request, response); + } else { + resp.sendError( + HttpServletResponse.SC_FORBIDDEN, + "Access denied: Referer '" + referer + "' is not allowed"); } -} \ No newline at end of file + } + + @Override + public void destroy() {} +} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java index 456c6977d..7a41d0ad0 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java @@ -1,14 +1,14 @@ package com.ruoyi.file.service; +import com.alibaba.nacos.common.utils.IoUtils; +import com.github.tobato.fastdfs.domain.fdfs.StorePath; +import com.github.tobato.fastdfs.service.FastFileStorageClient; +import com.ruoyi.common.core.utils.file.FileTypeUtils; import java.io.InputStream; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import com.alibaba.nacos.common.utils.IoUtils; -import com.github.tobato.fastdfs.domain.fdfs.StorePath; -import com.github.tobato.fastdfs.service.FastFileStorageClient; -import com.ruoyi.common.core.utils.file.FileTypeUtils; /** * FastDFS 鏂囦欢瀛樺偍 @@ -16,61 +16,49 @@ import com.ruoyi.common.core.utils.file.FileTypeUtils; * @author ruoyi */ @Service -public class FastDfsSysFileServiceImpl implements ISysFileService -{ - /** - * 鍩熷悕鎴栨湰鏈鸿闂湴鍧 - */ - @Value("${fdfs.domain}") - public String domain; +public class FastDfsSysFileServiceImpl implements ISysFileService { + /** 鍩熷悕鎴栨湰鏈鸿闂湴鍧 */ + @Value("${fdfs.domain}") + public String domain; - @Autowired - private FastFileStorageClient storageClient; + @Autowired private FastFileStorageClient storageClient; - /** - * FastDfs鏂囦欢涓婁紶鎺ュ彛 - * - * @param file 涓婁紶鐨勬枃浠 - * @return 璁块棶鍦板潃 - * @throws Exception - */ - @Override - public String uploadFile(MultipartFile file) throws Exception - { - InputStream inputStream = null; - try - { - inputStream = file.getInputStream(); - StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(), FileTypeUtils.getExtension(file), null); - return domain + "/" + storePath.getFullPath(); - } - catch (Exception e) - { - throw new RuntimeException("FastDfs Failed to upload file", e); - } - finally - { - IoUtils.closeQuietly(inputStream); - } + /** + * FastDfs鏂囦欢涓婁紶鎺ュ彛 + * + * @param file 涓婁紶鐨勬枃浠 + * @return 璁块棶鍦板潃 + * @throws Exception + */ + @Override + public String uploadFile(MultipartFile file) throws Exception { + InputStream inputStream = null; + try { + inputStream = file.getInputStream(); + StorePath storePath = + storageClient.uploadFile( + inputStream, file.getSize(), FileTypeUtils.getExtension(file), null); + return domain + "/" + storePath.getFullPath(); + } catch (Exception e) { + throw new RuntimeException("FastDfs Failed to upload file", e); + } finally { + IoUtils.closeQuietly(inputStream); } + } - /** - * FastDFS鏂囦欢鍒犻櫎鎺ュ彛 - * - * @param fileUrl 鏂囦欢璁块棶URL - * @throws Exception - */ - @Override - public void deleteFile(String fileUrl) throws Exception - { - try - { - StorePath storePath = StorePath.parseFromUrl(fileUrl); - storageClient.deleteFile(storePath.getGroup(), storePath.getPath()); - } - catch (Exception e) - { - throw new RuntimeException("FastDfs Failed to delete file: ", e); - } + /** + * FastDFS鏂囦欢鍒犻櫎鎺ュ彛 + * + * @param fileUrl 鏂囦欢璁块棶URL + * @throws Exception + */ + @Override + public void deleteFile(String fileUrl) throws Exception { + try { + StorePath storePath = StorePath.parseFromUrl(fileUrl); + storageClient.deleteFile(storePath.getGroup(), storePath.getPath()); + } catch (Exception e) { + throw new RuntimeException("FastDfs Failed to delete file: ", e); } + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ISysFileService.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ISysFileService.java index d6119ef91..c9f9267f1 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ISysFileService.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ISysFileService.java @@ -4,25 +4,24 @@ import org.springframework.web.multipart.MultipartFile; /** * 鏂囦欢涓婁紶鎺ュ彛 - * + * * @author ruoyi */ -public interface ISysFileService -{ - /** - * 鏂囦欢涓婁紶鎺ュ彛 - * - * @param file 涓婁紶鐨勬枃浠 - * @return 璁块棶鍦板潃 - * @throws Exception - */ - public String uploadFile(MultipartFile file) throws Exception; +public interface ISysFileService { + /** + * 鏂囦欢涓婁紶鎺ュ彛 + * + * @param file 涓婁紶鐨勬枃浠 + * @return 璁块棶鍦板潃 + * @throws Exception + */ + public String uploadFile(MultipartFile file) throws Exception; - /** - * 鏂囦欢鍒犻櫎鎺ュ彛 - * - * @param fileUrl 鏂囦欢璁块棶URL - * @throws Exception - */ - public void deleteFile(String fileUrl) throws Exception; + /** + * 鏂囦欢鍒犻櫎鎺ュ彛 + * + * @param fileUrl 鏂囦欢璁块棶URL + * @throws Exception + */ + public void deleteFile(String fileUrl) throws Exception; } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java index 56c6afd21..8efc54f60 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java @@ -1,65 +1,56 @@ package com.ruoyi.file.service; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.file.FileUtils; +import com.ruoyi.file.utils.FileUploadUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.file.FileUtils; -import com.ruoyi.file.utils.FileUploadUtils; /** * 鏈湴鏂囦欢瀛樺偍 - * + * * @author ruoyi */ @Primary @Service -public class LocalSysFileServiceImpl implements ISysFileService -{ - /** - * 璧勬簮鏄犲皠璺緞 鍓嶇紑 - */ - @Value("${file.prefix}") - public String localFilePrefix; +public class LocalSysFileServiceImpl implements ISysFileService { + /** 璧勬簮鏄犲皠璺緞 鍓嶇紑 */ + @Value("${file.prefix}") + public String localFilePrefix; + + /** 鍩熷悕鎴栨湰鏈鸿闂湴鍧 */ + @Value("${file.domain}") + public String domain; - /** - * 鍩熷悕鎴栨湰鏈鸿闂湴鍧 - */ - @Value("${file.domain}") - public String domain; - - /** - * 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰 - */ - @Value("${file.path}") - private String localFilePath; + /** 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰 */ + @Value("${file.path}") + private String localFilePath; - /** - * 鏈湴鏂囦欢涓婁紶鎺ュ彛 - * - * @param file 涓婁紶鐨勬枃浠 - * @return 璁块棶鍦板潃 - * @throws Exception - */ - @Override - public String uploadFile(MultipartFile file) throws Exception - { - String name = FileUploadUtils.upload(localFilePath, file); - String url = domain + localFilePrefix + name; - return url; - } + /** + * 鏈湴鏂囦欢涓婁紶鎺ュ彛 + * + * @param file 涓婁紶鐨勬枃浠 + * @return 璁块棶鍦板潃 + * @throws Exception + */ + @Override + public String uploadFile(MultipartFile file) throws Exception { + String name = FileUploadUtils.upload(localFilePath, file); + String url = domain + localFilePrefix + name; + return url; + } - /** - * 鏈湴鏂囦欢鍒犻櫎鎺ュ彛 - * - * @param fileUrl 鏂囦欢璁块棶URL - * @throws Exception - */ - @Override - public void deleteFile(String fileUrl) throws Exception - { - String localFile = StringUtils.substringAfter(fileUrl, localFilePrefix); - FileUtils.deleteFile(localFilePath + localFile); - } + /** + * 鏈湴鏂囦欢鍒犻櫎鎺ュ彛 + * + * @param fileUrl 鏂囦欢璁块棶URL + * @throws Exception + */ + @Override + public void deleteFile(String fileUrl) throws Exception { + String localFile = StringUtils.substringAfter(fileUrl, localFilePrefix); + FileUtils.deleteFile(localFilePath + localFile); + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java index 9afd29100..05ce00bd5 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java @@ -1,9 +1,5 @@ package com.ruoyi.file.service; -import java.io.InputStream; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; import com.alibaba.nacos.common.utils.IoUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.file.config.MinioConfig; @@ -11,6 +7,10 @@ import com.ruoyi.file.utils.FileUploadUtils; import io.minio.MinioClient; import io.minio.PutObjectArgs; import io.minio.RemoveObjectArgs; +import java.io.InputStream; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; /** * Minio 鏂囦欢瀛樺偍 @@ -18,65 +18,52 @@ import io.minio.RemoveObjectArgs; * @author ruoyi */ @Service -public class MinioSysFileServiceImpl implements ISysFileService -{ - @Autowired - private MinioConfig minioConfig; +public class MinioSysFileServiceImpl implements ISysFileService { + @Autowired private MinioConfig minioConfig; - @Autowired - private MinioClient client; + @Autowired private MinioClient client; - /** - * Minio鏂囦欢涓婁紶鎺ュ彛 - * - * @param file 涓婁紶鐨勬枃浠 - * @return 璁块棶鍦板潃 - * @throws Exception - */ - @Override - public String uploadFile(MultipartFile file) throws Exception - { - InputStream inputStream = null; - try - { - String fileName = FileUploadUtils.extractFilename(file); - inputStream = file.getInputStream(); - PutObjectArgs args = PutObjectArgs.builder() - .bucket(minioConfig.getBucketName()) - .object(fileName) - .stream(inputStream, file.getSize(), -1) - .contentType(file.getContentType()) - .build(); - client.putObject(args); - return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; - } - catch (Exception e) - { - throw new RuntimeException("Minio Failed to upload file", e); - } - finally - { - IoUtils.closeQuietly(inputStream); - } + /** + * Minio鏂囦欢涓婁紶鎺ュ彛 + * + * @param file 涓婁紶鐨勬枃浠 + * @return 璁块棶鍦板潃 + * @throws Exception + */ + @Override + public String uploadFile(MultipartFile file) throws Exception { + InputStream inputStream = null; + try { + String fileName = FileUploadUtils.extractFilename(file); + inputStream = file.getInputStream(); + PutObjectArgs args = + PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).stream( + inputStream, file.getSize(), -1) + .contentType(file.getContentType()) + .build(); + client.putObject(args); + return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; + } catch (Exception e) { + throw new RuntimeException("Minio Failed to upload file", e); + } finally { + IoUtils.closeQuietly(inputStream); } + } - /** - * Minio鏂囦欢鍒犻櫎鎺ュ彛 - * - * @param fileUrl 鏂囦欢璁块棶URL - * @throws Exception - */ - @Override - public void deleteFile(String fileUrl) throws Exception - { - try - { - String minioFile = StringUtils.substringAfter(fileUrl, minioConfig.getBucketName()); - client.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(minioFile).build()); - } - catch (Exception e) - { - throw new RuntimeException("Minio Failed to delete file", e); - } + /** + * Minio鏂囦欢鍒犻櫎鎺ュ彛 + * + * @param fileUrl 鏂囦欢璁块棶URL + * @throws Exception + */ + @Override + public void deleteFile(String fileUrl) throws Exception { + try { + String minioFile = StringUtils.substringAfter(fileUrl, minioConfig.getBucketName()); + client.removeObject( + RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(minioFile).build()); + } catch (Exception e) { + throw new RuntimeException("Minio Failed to delete file", e); } + } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java index b53c3fa3a..620d619a2 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java @@ -1,11 +1,5 @@ package com.ruoyi.file.utils; -import java.io.File; -import java.io.IOException; -import java.nio.file.Paths; -import java.util.Objects; -import org.apache.commons.io.FilenameUtils; -import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.exception.file.FileException; import com.ruoyi.common.core.exception.file.FileNameLengthLimitExceededException; import com.ruoyi.common.core.exception.file.FileSizeLimitExceededException; @@ -15,171 +9,148 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.file.FileTypeUtils; import com.ruoyi.common.core.utils.file.MimeTypeUtils; import com.ruoyi.common.core.utils.uuid.Seq; +import java.io.File; +import java.io.IOException; +import java.nio.file.Paths; +import java.util.Objects; +import org.apache.commons.io.FilenameUtils; +import org.springframework.web.multipart.MultipartFile; /** * 鏂囦欢涓婁紶宸ュ叿绫 - * + * * @author ruoyi */ -public class FileUploadUtils -{ - /** - * 榛樿澶у皬 50M - */ - public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024L; +public class FileUploadUtils { + /** 榛樿澶у皬 50M */ + public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024L; - /** - * 榛樿鐨勬枃浠跺悕鏈澶ч暱搴 100 - */ - public static final int DEFAULT_FILE_NAME_LENGTH = 100; + /** 榛樿鐨勬枃浠跺悕鏈澶ч暱搴 100 */ + public static final int DEFAULT_FILE_NAME_LENGTH = 100; - /** - * 鏍规嵁鏂囦欢璺緞涓婁紶 - * - * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍 - * @param file 涓婁紶鐨勬枃浠 - * @return 鏂囦欢鍚嶇О - * @throws IOException - */ - public static final String upload(String baseDir, MultipartFile file) throws IOException - { - try - { - return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); - } - catch (FileException fe) - { - throw new IOException(fe.getDefaultMessage(), fe); - } - catch (Exception e) - { - throw new IOException(e.getMessage(), e); - } + /** + * 鏍规嵁鏂囦欢璺緞涓婁紶 + * + * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍 + * @param file 涓婁紶鐨勬枃浠 + * @return 鏂囦欢鍚嶇О + * @throws IOException + */ + public static final String upload(String baseDir, MultipartFile file) throws IOException { + try { + return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + } catch (FileException fe) { + throw new IOException(fe.getDefaultMessage(), fe); + } catch (Exception e) { + throw new IOException(e.getMessage(), e); } + } - /** - * 鏂囦欢涓婁紶 - * - * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍 - * @param file 涓婁紶鐨勬枃浠 - * @param allowedExtension 涓婁紶鏂囦欢绫诲瀷 - * @return 杩斿洖涓婁紶鎴愬姛鐨勬枃浠跺悕 - * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈澶уぇ灏 - * @throws FileNameLengthLimitExceededException 鏂囦欢鍚嶅お闀 - * @throws IOException 姣斿璇诲啓鏂囦欢鍑洪敊鏃 - * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父 - */ - public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension) - throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, - InvalidExtensionException - { - int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); - if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) - { - throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); - } + /** + * 鏂囦欢涓婁紶 + * + * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍 + * @param file 涓婁紶鐨勬枃浠 + * @param allowedExtension 涓婁紶鏂囦欢绫诲瀷 + * @return 杩斿洖涓婁紶鎴愬姛鐨勬枃浠跺悕 + * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈澶уぇ灏 + * @throws FileNameLengthLimitExceededException 鏂囦欢鍚嶅お闀 + * @throws IOException 姣斿璇诲啓鏂囦欢鍑洪敊鏃 + * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父 + */ + public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, + IOException, + FileNameLengthLimitExceededException, + InvalidExtensionException { + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } - assertAllowed(file, allowedExtension); + assertAllowed(file, allowedExtension); - String fileName = extractFilename(file); + String fileName = extractFilename(file); - String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); - file.transferTo(Paths.get(absPath)); - return getPathFileName(fileName); - } + String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); + file.transferTo(Paths.get(absPath)); + return getPathFileName(fileName); + } - /** - * 缂栫爜鏂囦欢鍚 - */ - public static final String extractFilename(MultipartFile file) - { - return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), - FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), FileTypeUtils.getExtension(file)); - } + /** 缂栫爜鏂囦欢鍚 */ + public static final String extractFilename(MultipartFile file) { + return StringUtils.format( + "{}/{}_{}.{}", + DateUtils.datePath(), + FilenameUtils.getBaseName(file.getOriginalFilename()), + Seq.getId(Seq.uploadSeqType), + FileTypeUtils.getExtension(file)); + } - private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException - { - File desc = new File(uploadDir + File.separator + fileName); + private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException { + File desc = new File(uploadDir + File.separator + fileName); - if (!desc.exists()) - { - if (!desc.getParentFile().exists()) - { - desc.getParentFile().mkdirs(); - } - } - return desc.isAbsolute() ? desc : desc.getAbsoluteFile(); + if (!desc.exists()) { + if (!desc.getParentFile().exists()) { + desc.getParentFile().mkdirs(); + } } + return desc.isAbsolute() ? desc : desc.getAbsoluteFile(); + } - private static final String getPathFileName(String fileName) throws IOException - { - String pathFileName = "/" + fileName; - return pathFileName; - } + private static final String getPathFileName(String fileName) throws IOException { + String pathFileName = "/" + fileName; + return pathFileName; + } - /** - * 鏂囦欢澶у皬鏍¢獙 - * - * @param file 涓婁紶鐨勬枃浠 - * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈澶уぇ灏 - * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父 - */ - public static final void assertAllowed(MultipartFile file, String[] allowedExtension) - throws FileSizeLimitExceededException, InvalidExtensionException - { - long size = file.getSize(); - if (size > DEFAULT_MAX_SIZE) - { - throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); - } + /** + * 鏂囦欢澶у皬鏍¢獙 + * + * @param file 涓婁紶鐨勬枃浠 + * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈澶уぇ灏 + * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父 + */ + public static final void assertAllowed(MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, InvalidExtensionException { + long size = file.getSize(); + if (size > DEFAULT_MAX_SIZE) { + throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); + } - String fileName = file.getOriginalFilename(); - String extension = FileTypeUtils.getExtension(file); - if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) - { - if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) - { - throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension, - fileName); - } - else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) - { - throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension, - fileName); - } - else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) - { - throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension, - fileName); - } - else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) - { - throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension, - fileName); - } - else - { - throw new InvalidExtensionException(allowedExtension, extension, fileName); - } - } + String fileName = file.getOriginalFilename(); + String extension = FileTypeUtils.getExtension(file); + if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) { + if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) { + throw new InvalidExtensionException.InvalidImageExtensionException( + allowedExtension, extension, fileName); + } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) { + throw new InvalidExtensionException.InvalidFlashExtensionException( + allowedExtension, extension, fileName); + } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) { + throw new InvalidExtensionException.InvalidMediaExtensionException( + allowedExtension, extension, fileName); + } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) { + throw new InvalidExtensionException.InvalidVideoExtensionException( + allowedExtension, extension, fileName); + } else { + throw new InvalidExtensionException(allowedExtension, extension, fileName); + } } + } - /** - * 鍒ゆ柇MIME绫诲瀷鏄惁鏄厑璁哥殑MIME绫诲瀷 - * - * @param extension 涓婁紶鏂囦欢绫诲瀷 - * @param allowedExtension 鍏佽涓婁紶鏂囦欢绫诲瀷 - * @return true/false - */ - public static final boolean isAllowedExtension(String extension, String[] allowedExtension) - { - for (String str : allowedExtension) - { - if (str.equalsIgnoreCase(extension)) - { - return true; - } - } - return false; + /** + * 鍒ゆ柇MIME绫诲瀷鏄惁鏄厑璁哥殑MIME绫诲瀷 + * + * @param extension 涓婁紶鏂囦欢绫诲瀷 + * @param allowedExtension 鍏佽涓婁紶鏂囦欢绫诲瀷 + * @return true/false + */ + public static final boolean isAllowedExtension(String extension, String[] allowedExtension) { + for (String str : allowedExtension) { + if (str.equalsIgnoreCase(extension)) { + return true; + } } -} \ No newline at end of file + return false; + } +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java index 248ee76d9..d94703dc2 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java @@ -1,32 +1,31 @@ package com.ruoyi.gen; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 浠g爜鐢熸垚 - * + * * @author ruoyi */ @EnableCustomConfig @EnableRyFeignClients @SpringBootApplication -public class RuoYiGenApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiGenApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 浠g爜鐢熸垚妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +public class RuoYiGenApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiGenApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 浠g爜鐢熸垚妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/GenConfig.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/GenConfig.java index c36549791..85898e303 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/GenConfig.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/GenConfig.java @@ -5,75 +5,64 @@ import org.springframework.stereotype.Component; /** * 浠g爜鐢熸垚鐩稿叧閰嶇疆 - * + * * @author ruoyi */ @Component @ConfigurationProperties(prefix = "gen") -public class GenConfig -{ - /** 浣滆 */ - public static String author; - - /** 鐢熸垚鍖呰矾寰 */ - public static String packageName; - - /** 鑷姩鍘婚櫎琛ㄥ墠缂 */ - public static boolean autoRemovePre; - - /** 琛ㄥ墠缂 */ - public static String tablePrefix; - - /** 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級 */ - public static boolean allowOverwrite; - - public static String getAuthor() - { - return author; - } - - public void setAuthor(String author) - { - GenConfig.author = author; - } - - public static String getPackageName() - { - return packageName; - } - - public void setPackageName(String packageName) - { - GenConfig.packageName = packageName; - } - - public static boolean getAutoRemovePre() - { - return autoRemovePre; - } - - public void setAutoRemovePre(boolean autoRemovePre) - { - GenConfig.autoRemovePre = autoRemovePre; - } - - public static String getTablePrefix() - { - return tablePrefix; - } - - public void setTablePrefix(String tablePrefix) - { - GenConfig.tablePrefix = tablePrefix; - } - - public static boolean isAllowOverwrite() - { - return allowOverwrite; - } - - public void setAllowOverwrite(boolean allowOverwrite) - { - GenConfig.allowOverwrite = allowOverwrite; - } +public class GenConfig { + /** 浣滆 */ + public static String author; + + /** 鐢熸垚鍖呰矾寰 */ + public static String packageName; + + /** 鑷姩鍘婚櫎琛ㄥ墠缂 */ + public static boolean autoRemovePre; + + /** 琛ㄥ墠缂 */ + public static String tablePrefix; + + /** 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級 */ + public static boolean allowOverwrite; + + public static String getAuthor() { + return author; + } + + public void setAuthor(String author) { + GenConfig.author = author; + } + + public static String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + GenConfig.packageName = packageName; + } + + public static boolean getAutoRemovePre() { + return autoRemovePre; + } + + public void setAutoRemovePre(boolean autoRemovePre) { + GenConfig.autoRemovePre = autoRemovePre; + } + + public static String getTablePrefix() { + return tablePrefix; + } + + public void setTablePrefix(String tablePrefix) { + GenConfig.tablePrefix = tablePrefix; + } + + public static boolean isAllowOverwrite() { + return allowOverwrite; + } + + public void setAllowOverwrite(boolean allowOverwrite) { + GenConfig.allowOverwrite = allowOverwrite; + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java index fe07f59b1..6b7c82863 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java @@ -1,5 +1,17 @@ package com.ruoyi.gen.controller; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.gen.config.GenConfig; +import com.ruoyi.gen.domain.GenTable; +import com.ruoyi.gen.domain.GenTableColumn; +import com.ruoyi.gen.service.IGenTableColumnService; +import com.ruoyi.gen.service.IGenTableService; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -16,201 +28,147 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.gen.config.GenConfig; -import com.ruoyi.gen.domain.GenTable; -import com.ruoyi.gen.domain.GenTableColumn; -import com.ruoyi.gen.service.IGenTableColumnService; -import com.ruoyi.gen.service.IGenTableService; /** * 浠g爜鐢熸垚 鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RequestMapping("/gen") @RestController -public class GenController extends BaseController -{ - @Autowired - private IGenTableService genTableService; - - @Autowired - private IGenTableColumnService genTableColumnService; - - /** - * 鏌ヨ浠g爜鐢熸垚鍒楄〃 - */ - @RequiresPermissions("tool:gen:list") - @GetMapping("/list") - public TableDataInfo genList(GenTable genTable) - { - startPage(); - List list = genTableService.selectGenTableList(genTable); - return getDataTable(list); - } - - /** - * 鑾峰彇浠g爜鐢熸垚淇℃伅 - */ - @RequiresPermissions("tool:gen:query") - @GetMapping(value = "/{tableId}") - public AjaxResult getInfo(@PathVariable Long tableId) - { - GenTable table = genTableService.selectGenTableById(tableId); - List tables = genTableService.selectGenTableAll(); - List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); - Map map = new HashMap(); - map.put("info", table); - map.put("rows", list); - map.put("tables", tables); - return success(map); - } - - /** - * 鏌ヨ鏁版嵁搴撳垪琛 - */ - @RequiresPermissions("tool:gen:list") - @GetMapping("/db/list") - public TableDataInfo dataList(GenTable genTable) - { - startPage(); - List list = genTableService.selectDbTableList(genTable); - return getDataTable(list); - } - - /** - * 鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛 - */ - @GetMapping(value = "/column/{tableId}") - public TableDataInfo columnList(Long tableId) - { - TableDataInfo dataInfo = new TableDataInfo(); - List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); - dataInfo.setRows(list); - dataInfo.setTotal(list.size()); - return dataInfo; - } - - /** - * 瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛 - */ - @RequiresPermissions("tool:gen:import") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT) - @PostMapping("/importTable") - public AjaxResult importTableSave(String tables) - { - String[] tableNames = Convert.toStrArray(tables); - // 鏌ヨ琛ㄤ俊鎭 - List tableList = genTableService.selectDbTableListByNames(tableNames); - genTableService.importGenTable(tableList); - return success(); - } - - /** - * 淇敼淇濆瓨浠g爜鐢熸垚涓氬姟 - */ - @RequiresPermissions("tool:gen:edit") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult editSave(@Validated @RequestBody GenTable genTable) - { - genTableService.validateEdit(genTable); - genTableService.updateGenTable(genTable); - return success(); - } - - /** - * 鍒犻櫎浠g爜鐢熸垚 - */ - @RequiresPermissions("tool:gen:remove") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.DELETE) - @DeleteMapping("/{tableIds}") - public AjaxResult remove(@PathVariable Long[] tableIds) - { - genTableService.deleteGenTableByIds(tableIds); - return success(); - } - - /** - * 棰勮浠g爜 - */ - @RequiresPermissions("tool:gen:preview") - @GetMapping("/preview/{tableId}") - public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException - { - Map dataMap = genTableService.previewCode(tableId); - return success(dataMap); - } - - /** - * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - */ - @RequiresPermissions("tool:gen:code") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) - @GetMapping("/download/{tableName}") - public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException - { - byte[] data = genTableService.downloadCode(tableName); - genCode(response, data); - } - - /** - * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 - */ - @RequiresPermissions("tool:gen:code") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) - @GetMapping("/genCode/{tableName}") - public AjaxResult genCode(@PathVariable("tableName") String tableName) - { - if (!GenConfig.isAllowOverwrite()) - { - return AjaxResult.error("銆愮郴缁熼璁俱戜笉鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦"); - } - genTableService.generatorCode(tableName); - return success(); - } - - /** - * 鍚屾鏁版嵁搴 - */ - @RequiresPermissions("tool:gen:edit") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) - @GetMapping("/synchDb/{tableName}") - public AjaxResult synchDb(@PathVariable("tableName") String tableName) - { - genTableService.synchDb(tableName); - return success(); - } - - /** - * 鎵归噺鐢熸垚浠g爜 - */ - @RequiresPermissions("tool:gen:code") - @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) - @GetMapping("/batchGenCode") - public void batchGenCode(HttpServletResponse response, String tables) throws IOException - { - String[] tableNames = Convert.toStrArray(tables); - byte[] data = genTableService.downloadCode(tableNames); - genCode(response, data); - } - - /** - * 鐢熸垚zip鏂囦欢 - */ - private void genCode(HttpServletResponse response, byte[] data) throws IOException - { - response.reset(); - response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); - response.addHeader("Content-Length", "" + data.length); - response.setContentType("application/octet-stream; charset=UTF-8"); - IOUtils.write(data, response.getOutputStream()); +public class GenController extends BaseController { + @Autowired private IGenTableService genTableService; + + @Autowired private IGenTableColumnService genTableColumnService; + + /** 鏌ヨ浠g爜鐢熸垚鍒楄〃 */ + @RequiresPermissions("tool:gen:list") + @GetMapping("/list") + public TableDataInfo genList(GenTable genTable) { + startPage(); + List list = genTableService.selectGenTableList(genTable); + return getDataTable(list); + } + + /** 鑾峰彇浠g爜鐢熸垚淇℃伅 */ + @RequiresPermissions("tool:gen:query") + @GetMapping(value = "/{tableId}") + public AjaxResult getInfo(@PathVariable Long tableId) { + GenTable table = genTableService.selectGenTableById(tableId); + List tables = genTableService.selectGenTableAll(); + List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); + Map map = new HashMap(); + map.put("info", table); + map.put("rows", list); + map.put("tables", tables); + return success(map); + } + + /** 鏌ヨ鏁版嵁搴撳垪琛 */ + @RequiresPermissions("tool:gen:list") + @GetMapping("/db/list") + public TableDataInfo dataList(GenTable genTable) { + startPage(); + List list = genTableService.selectDbTableList(genTable); + return getDataTable(list); + } + + /** 鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛 */ + @GetMapping(value = "/column/{tableId}") + public TableDataInfo columnList(Long tableId) { + TableDataInfo dataInfo = new TableDataInfo(); + List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); + dataInfo.setRows(list); + dataInfo.setTotal(list.size()); + return dataInfo; + } + + /** 瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛 */ + @RequiresPermissions("tool:gen:import") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT) + @PostMapping("/importTable") + public AjaxResult importTableSave(String tables) { + String[] tableNames = Convert.toStrArray(tables); + // 鏌ヨ琛ㄤ俊鎭 + List tableList = genTableService.selectDbTableListByNames(tableNames); + genTableService.importGenTable(tableList); + return success(); + } + + /** 淇敼淇濆瓨浠g爜鐢熸垚涓氬姟 */ + @RequiresPermissions("tool:gen:edit") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult editSave(@Validated @RequestBody GenTable genTable) { + genTableService.validateEdit(genTable); + genTableService.updateGenTable(genTable); + return success(); + } + + /** 鍒犻櫎浠g爜鐢熸垚 */ + @RequiresPermissions("tool:gen:remove") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.DELETE) + @DeleteMapping("/{tableIds}") + public AjaxResult remove(@PathVariable Long[] tableIds) { + genTableService.deleteGenTableByIds(tableIds); + return success(); + } + + /** 棰勮浠g爜 */ + @RequiresPermissions("tool:gen:preview") + @GetMapping("/preview/{tableId}") + public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException { + Map dataMap = genTableService.previewCode(tableId); + return success(dataMap); + } + + /** 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 */ + @RequiresPermissions("tool:gen:code") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) + @GetMapping("/download/{tableName}") + public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) + throws IOException { + byte[] data = genTableService.downloadCode(tableName); + genCode(response, data); + } + + /** 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 */ + @RequiresPermissions("tool:gen:code") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) + @GetMapping("/genCode/{tableName}") + public AjaxResult genCode(@PathVariable("tableName") String tableName) { + if (!GenConfig.isAllowOverwrite()) { + return AjaxResult.error("銆愮郴缁熼璁俱戜笉鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦"); } + genTableService.generatorCode(tableName); + return success(); + } + + /** 鍚屾鏁版嵁搴 */ + @RequiresPermissions("tool:gen:edit") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE) + @GetMapping("/synchDb/{tableName}") + public AjaxResult synchDb(@PathVariable("tableName") String tableName) { + genTableService.synchDb(tableName); + return success(); + } + + /** 鎵归噺鐢熸垚浠g爜 */ + @RequiresPermissions("tool:gen:code") + @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE) + @GetMapping("/batchGenCode") + public void batchGenCode(HttpServletResponse response, String tables) throws IOException { + String[] tableNames = Convert.toStrArray(tables); + byte[] data = genTableService.downloadCode(tableNames); + genCode(response, data); + } + + /** 鐢熸垚zip鏂囦欢 */ + private void genCode(HttpServletResponse response, byte[] data) throws IOException { + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("application/octet-stream; charset=UTF-8"); + IOUtils.write(data, response.getOutputStream()); + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java index 43b7d0dd7..14049f85d 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java @@ -1,383 +1,326 @@ package com.ruoyi.gen.domain; +import com.ruoyi.common.core.constant.GenConstants; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.List; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import org.apache.commons.lang3.ArrayUtils; -import com.ruoyi.common.core.constant.GenConstants; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 涓氬姟琛 gen_table - * + * * @author ruoyi */ -public class GenTable extends BaseEntity -{ - private static final long serialVersionUID = 1L; +public class GenTable extends BaseEntity { + private static final long serialVersionUID = 1L; - /** 缂栧彿 */ - private Long tableId; + /** 缂栧彿 */ + private Long tableId; - /** 琛ㄥ悕绉 */ - @NotBlank(message = "琛ㄥ悕绉颁笉鑳戒负绌") - private String tableName; + /** 琛ㄥ悕绉 */ + @NotBlank(message = "琛ㄥ悕绉颁笉鑳戒负绌") + private String tableName; - /** 琛ㄦ弿杩 */ - @NotBlank(message = "琛ㄦ弿杩颁笉鑳戒负绌") - private String tableComment; + /** 琛ㄦ弿杩 */ + @NotBlank(message = "琛ㄦ弿杩颁笉鑳戒负绌") + private String tableComment; - /** 鍏宠仈鐖惰〃鐨勮〃鍚 */ - private String subTableName; + /** 鍏宠仈鐖惰〃鐨勮〃鍚 */ + private String subTableName; - /** 鏈〃鍏宠仈鐖惰〃鐨勫閿悕 */ - private String subTableFkName; + /** 鏈〃鍏宠仈鐖惰〃鐨勫閿悕 */ + private String subTableFkName; - /** 瀹炰綋绫诲悕绉(棣栧瓧姣嶅ぇ鍐) */ - @NotBlank(message = "瀹炰綋绫诲悕绉颁笉鑳戒负绌") - private String className; + /** 瀹炰綋绫诲悕绉(棣栧瓧姣嶅ぇ鍐) */ + @NotBlank(message = "瀹炰綋绫诲悕绉颁笉鑳戒负绌") + private String className; - /** 浣跨敤鐨勬ā鏉匡紙crud鍗曡〃鎿嶄綔 tree鏍戣〃鎿嶄綔 sub涓诲瓙琛ㄦ搷浣滐級 */ - private String tplCategory; + /** 浣跨敤鐨勬ā鏉匡紙crud鍗曡〃鎿嶄綔 tree鏍戣〃鎿嶄綔 sub涓诲瓙琛ㄦ搷浣滐級 */ + private String tplCategory; - /** 鍓嶇绫诲瀷锛坋lement-ui妯$増 element-plus妯$増锛 */ - private String tplWebType; + /** 鍓嶇绫诲瀷锛坋lement-ui妯$増 element-plus妯$増锛 */ + private String tplWebType; - /** 鐢熸垚鍖呰矾寰 */ - @NotBlank(message = "鐢熸垚鍖呰矾寰勪笉鑳戒负绌") - private String packageName; + /** 鐢熸垚鍖呰矾寰 */ + @NotBlank(message = "鐢熸垚鍖呰矾寰勪笉鑳戒负绌") + private String packageName; - /** 鐢熸垚妯″潡鍚 */ - @NotBlank(message = "鐢熸垚妯″潡鍚嶄笉鑳戒负绌") - private String moduleName; + /** 鐢熸垚妯″潡鍚 */ + @NotBlank(message = "鐢熸垚妯″潡鍚嶄笉鑳戒负绌") + private String moduleName; - /** 鐢熸垚涓氬姟鍚 */ - @NotBlank(message = "鐢熸垚涓氬姟鍚嶄笉鑳戒负绌") - private String businessName; + /** 鐢熸垚涓氬姟鍚 */ + @NotBlank(message = "鐢熸垚涓氬姟鍚嶄笉鑳戒负绌") + private String businessName; - /** 鐢熸垚鍔熻兘鍚 */ - @NotBlank(message = "鐢熸垚鍔熻兘鍚嶄笉鑳戒负绌") - private String functionName; + /** 鐢熸垚鍔熻兘鍚 */ + @NotBlank(message = "鐢熸垚鍔熻兘鍚嶄笉鑳戒负绌") + private String functionName; - /** 鐢熸垚浣滆 */ - @NotBlank(message = "浣滆呬笉鑳戒负绌") - private String functionAuthor; + /** 鐢熸垚浣滆 */ + @NotBlank(message = "浣滆呬笉鑳戒负绌") + private String functionAuthor; - /** 鐢熸垚浠g爜鏂瑰紡锛0zip鍘嬬缉鍖 1鑷畾涔夎矾寰勶級 */ - private String genType; + /** 鐢熸垚浠g爜鏂瑰紡锛0zip鍘嬬缉鍖 1鑷畾涔夎矾寰勶級 */ + private String genType; - /** 鐢熸垚璺緞锛堜笉濉粯璁ら」鐩矾寰勶級 */ - private String genPath; + /** 鐢熸垚璺緞锛堜笉濉粯璁ら」鐩矾寰勶級 */ + private String genPath; - /** 涓婚敭淇℃伅 */ - private GenTableColumn pkColumn; + /** 涓婚敭淇℃伅 */ + private GenTableColumn pkColumn; - /** 瀛愯〃淇℃伅 */ - private GenTable subTable; + /** 瀛愯〃淇℃伅 */ + private GenTable subTable; - /** 琛ㄥ垪淇℃伅 */ - @Valid - private List columns; + /** 琛ㄥ垪淇℃伅 */ + @Valid private List columns; - /** 鍏跺畠鐢熸垚閫夐」 */ - private String options; + /** 鍏跺畠鐢熸垚閫夐」 */ + private String options; - /** 鏍戠紪鐮佸瓧娈 */ - private String treeCode; + /** 鏍戠紪鐮佸瓧娈 */ + private String treeCode; - /** 鏍戠埗缂栫爜瀛楁 */ - private String treeParentCode; + /** 鏍戠埗缂栫爜瀛楁 */ + private String treeParentCode; - /** 鏍戝悕绉板瓧娈 */ - private String treeName; + /** 鏍戝悕绉板瓧娈 */ + private String treeName; - /** 涓婄骇鑿滃崟ID瀛楁 */ - private Long parentMenuId; + /** 涓婄骇鑿滃崟ID瀛楁 */ + private Long parentMenuId; - /** 涓婄骇鑿滃崟鍚嶇О瀛楁 */ - private String parentMenuName; + /** 涓婄骇鑿滃崟鍚嶇О瀛楁 */ + private String parentMenuName; - public Long getTableId() - { - return tableId; - } + public Long getTableId() { + return tableId; + } - public void setTableId(Long tableId) - { - this.tableId = tableId; - } + public void setTableId(Long tableId) { + this.tableId = tableId; + } - public String getTableName() - { - return tableName; - } + public String getTableName() { + return tableName; + } - public void setTableName(String tableName) - { - this.tableName = tableName; - } + public void setTableName(String tableName) { + this.tableName = tableName; + } - public String getTableComment() - { - return tableComment; - } + public String getTableComment() { + return tableComment; + } - public void setTableComment(String tableComment) - { - this.tableComment = tableComment; - } + public void setTableComment(String tableComment) { + this.tableComment = tableComment; + } - public String getSubTableName() - { - return subTableName; - } + public String getSubTableName() { + return subTableName; + } - public void setSubTableName(String subTableName) - { - this.subTableName = subTableName; - } + public void setSubTableName(String subTableName) { + this.subTableName = subTableName; + } - public String getSubTableFkName() - { - return subTableFkName; - } + public String getSubTableFkName() { + return subTableFkName; + } - public void setSubTableFkName(String subTableFkName) - { - this.subTableFkName = subTableFkName; - } + public void setSubTableFkName(String subTableFkName) { + this.subTableFkName = subTableFkName; + } - public String getClassName() - { - return className; - } + public String getClassName() { + return className; + } - public void setClassName(String className) - { - this.className = className; - } + public void setClassName(String className) { + this.className = className; + } - public String getTplCategory() - { - return tplCategory; - } + public String getTplCategory() { + return tplCategory; + } - public void setTplCategory(String tplCategory) - { - this.tplCategory = tplCategory; - } + public void setTplCategory(String tplCategory) { + this.tplCategory = tplCategory; + } - public String getTplWebType() - { - return tplWebType; - } + public String getTplWebType() { + return tplWebType; + } - public void setTplWebType(String tplWebType) - { - this.tplWebType = tplWebType; - } + public void setTplWebType(String tplWebType) { + this.tplWebType = tplWebType; + } - public String getPackageName() - { - return packageName; - } + public String getPackageName() { + return packageName; + } - public void setPackageName(String packageName) - { - this.packageName = packageName; - } + public void setPackageName(String packageName) { + this.packageName = packageName; + } - public String getModuleName() - { - return moduleName; - } + public String getModuleName() { + return moduleName; + } - public void setModuleName(String moduleName) - { - this.moduleName = moduleName; - } + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } - public String getBusinessName() - { - return businessName; - } + public String getBusinessName() { + return businessName; + } - public void setBusinessName(String businessName) - { - this.businessName = businessName; - } + public void setBusinessName(String businessName) { + this.businessName = businessName; + } - public String getFunctionName() - { - return functionName; - } + public String getFunctionName() { + return functionName; + } - public void setFunctionName(String functionName) - { - this.functionName = functionName; - } + public void setFunctionName(String functionName) { + this.functionName = functionName; + } - public String getFunctionAuthor() - { - return functionAuthor; - } + public String getFunctionAuthor() { + return functionAuthor; + } - public void setFunctionAuthor(String functionAuthor) - { - this.functionAuthor = functionAuthor; - } + public void setFunctionAuthor(String functionAuthor) { + this.functionAuthor = functionAuthor; + } - public String getGenType() - { - return genType; - } + public String getGenType() { + return genType; + } - public void setGenType(String genType) - { - this.genType = genType; - } + public void setGenType(String genType) { + this.genType = genType; + } - public String getGenPath() - { - return genPath; - } + public String getGenPath() { + return genPath; + } - public void setGenPath(String genPath) - { - this.genPath = genPath; - } + public void setGenPath(String genPath) { + this.genPath = genPath; + } - public GenTableColumn getPkColumn() - { - return pkColumn; - } + public GenTableColumn getPkColumn() { + return pkColumn; + } - public void setPkColumn(GenTableColumn pkColumn) - { - this.pkColumn = pkColumn; - } + public void setPkColumn(GenTableColumn pkColumn) { + this.pkColumn = pkColumn; + } - public GenTable getSubTable() - { - return subTable; - } + public GenTable getSubTable() { + return subTable; + } - public void setSubTable(GenTable subTable) - { - this.subTable = subTable; - } - public List getColumns() - { - return columns; - } + public void setSubTable(GenTable subTable) { + this.subTable = subTable; + } - public void setColumns(List columns) - { - this.columns = columns; - } + public List getColumns() { + return columns; + } - public String getOptions() - { - return options; - } + public void setColumns(List columns) { + this.columns = columns; + } - public void setOptions(String options) - { - this.options = options; - } + public String getOptions() { + return options; + } - public String getTreeCode() - { - return treeCode; - } + public void setOptions(String options) { + this.options = options; + } - public void setTreeCode(String treeCode) - { - this.treeCode = treeCode; - } + public String getTreeCode() { + return treeCode; + } - public String getTreeParentCode() - { - return treeParentCode; - } + public void setTreeCode(String treeCode) { + this.treeCode = treeCode; + } - public void setTreeParentCode(String treeParentCode) - { - this.treeParentCode = treeParentCode; - } + public String getTreeParentCode() { + return treeParentCode; + } - public String getTreeName() - { - return treeName; - } + public void setTreeParentCode(String treeParentCode) { + this.treeParentCode = treeParentCode; + } - public void setTreeName(String treeName) - { - this.treeName = treeName; - } + public String getTreeName() { + return treeName; + } - public Long getParentMenuId() - { - return parentMenuId; - } + public void setTreeName(String treeName) { + this.treeName = treeName; + } - public void setParentMenuId(Long parentMenuId) - { - this.parentMenuId = parentMenuId; - } + public Long getParentMenuId() { + return parentMenuId; + } - public String getParentMenuName() - { - return parentMenuName; - } + public void setParentMenuId(Long parentMenuId) { + this.parentMenuId = parentMenuId; + } - public void setParentMenuName(String parentMenuName) - { - this.parentMenuName = parentMenuName; - } + public String getParentMenuName() { + return parentMenuName; + } - public boolean isSub() - { - return isSub(this.tplCategory); - } + public void setParentMenuName(String parentMenuName) { + this.parentMenuName = parentMenuName; + } - public static boolean isSub(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); - } - public boolean isTree() - { - return isTree(this.tplCategory); - } + public boolean isSub() { + return isSub(this.tplCategory); + } - public static boolean isTree(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); - } + public static boolean isSub(String tplCategory) { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); + } - public boolean isCrud() - { - return isCrud(this.tplCategory); - } + public boolean isTree() { + return isTree(this.tplCategory); + } - public static boolean isCrud(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); - } + public static boolean isTree(String tplCategory) { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); + } - public boolean isSuperColumn(String javaField) - { - return isSuperColumn(this.tplCategory, javaField); - } + public boolean isCrud() { + return isCrud(this.tplCategory); + } + + public static boolean isCrud(String tplCategory) { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); + } + + public boolean isSuperColumn(String javaField) { + return isSuperColumn(this.tplCategory, javaField); + } - public static boolean isSuperColumn(String tplCategory, String javaField) - { - if (isTree(tplCategory)) - { - return StringUtils.equalsAnyIgnoreCase(javaField, - ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); - } - return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); + public static boolean isSuperColumn(String tplCategory, String javaField) { + if (isTree(tplCategory)) { + return StringUtils.equalsAnyIgnoreCase( + javaField, ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); } + return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java index b26863c23..75d5460d0 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java @@ -1,373 +1,321 @@ package com.ruoyi.gen.domain; -import javax.validation.constraints.NotBlank; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; +import javax.validation.constraints.NotBlank; /** * 浠g爜鐢熸垚涓氬姟瀛楁琛 gen_table_column - * + * * @author ruoyi */ -public class GenTableColumn extends BaseEntity -{ - private static final long serialVersionUID = 1L; +public class GenTableColumn extends BaseEntity { + private static final long serialVersionUID = 1L; - /** 缂栧彿 */ - private Long columnId; + /** 缂栧彿 */ + private Long columnId; - /** 褰掑睘琛ㄧ紪鍙 */ - private Long tableId; + /** 褰掑睘琛ㄧ紪鍙 */ + private Long tableId; - /** 鍒楀悕绉 */ - private String columnName; + /** 鍒楀悕绉 */ + private String columnName; - /** 鍒楁弿杩 */ - private String columnComment; + /** 鍒楁弿杩 */ + private String columnComment; - /** 鍒楃被鍨 */ - private String columnType; + /** 鍒楃被鍨 */ + private String columnType; - /** JAVA绫诲瀷 */ - private String javaType; + /** JAVA绫诲瀷 */ + private String javaType; - /** JAVA瀛楁鍚 */ - @NotBlank(message = "Java灞炴т笉鑳戒负绌") - private String javaField; + /** JAVA瀛楁鍚 */ + @NotBlank(message = "Java灞炴т笉鑳戒负绌") + private String javaField; - /** 鏄惁涓婚敭锛1鏄級 */ - private String isPk; + /** 鏄惁涓婚敭锛1鏄級 */ + private String isPk; - /** 鏄惁鑷锛1鏄級 */ - private String isIncrement; + /** 鏄惁鑷锛1鏄級 */ + private String isIncrement; - /** 鏄惁蹇呭~锛1鏄級 */ - private String isRequired; + /** 鏄惁蹇呭~锛1鏄級 */ + private String isRequired; - /** 鏄惁涓烘彃鍏ュ瓧娈碉紙1鏄級 */ - private String isInsert; + /** 鏄惁涓烘彃鍏ュ瓧娈碉紙1鏄級 */ + private String isInsert; - /** 鏄惁缂栬緫瀛楁锛1鏄級 */ - private String isEdit; + /** 鏄惁缂栬緫瀛楁锛1鏄級 */ + private String isEdit; - /** 鏄惁鍒楄〃瀛楁锛1鏄級 */ - private String isList; + /** 鏄惁鍒楄〃瀛楁锛1鏄級 */ + private String isList; - /** 鏄惁鏌ヨ瀛楁锛1鏄級 */ - private String isQuery; + /** 鏄惁鏌ヨ瀛楁锛1鏄級 */ + private String isQuery; - /** 鏌ヨ鏂瑰紡锛圗Q绛変簬銆丯E涓嶇瓑浜庛丟T澶т簬銆丩T灏忎簬銆丩IKE妯$硦銆丅ETWEEN鑼冨洿锛 */ - private String queryType; + /** 鏌ヨ鏂瑰紡锛圗Q绛変簬銆丯E涓嶇瓑浜庛丟T澶т簬銆丩T灏忎簬銆丩IKE妯$硦銆丅ETWEEN鑼冨洿锛 */ + private String queryType; - /** 鏄剧ず绫诲瀷锛坕nput鏂囨湰妗嗐乼extarea鏂囨湰鍩熴乻elect涓嬫媺妗嗐乧heckbox澶嶉夋銆乺adio鍗曢夋銆乨atetime鏃ユ湡鎺т欢銆乮mage鍥剧墖涓婁紶鎺т欢銆乽pload鏂囦欢涓婁紶鎺т欢銆乪ditor瀵屾枃鏈帶浠讹級 */ - private String htmlType; + /** + * 鏄剧ず绫诲瀷锛坕nput鏂囨湰妗嗐乼extarea鏂囨湰鍩熴乻elect涓嬫媺妗嗐乧heckbox澶嶉夋銆乺adio鍗曢夋銆乨atetime鏃ユ湡鎺т欢銆乮mage鍥剧墖涓婁紶鎺т欢銆乽pload鏂囦欢涓婁紶鎺т欢銆乪ditor瀵屾枃鏈帶浠讹級 + */ + private String htmlType; - /** 瀛楀吀绫诲瀷 */ - private String dictType; + /** 瀛楀吀绫诲瀷 */ + private String dictType; - /** 鎺掑簭 */ - private Integer sort; + /** 鎺掑簭 */ + private Integer sort; - public void setColumnId(Long columnId) - { - this.columnId = columnId; - } + public void setColumnId(Long columnId) { + this.columnId = columnId; + } - public Long getColumnId() - { - return columnId; - } + public Long getColumnId() { + return columnId; + } - public void setTableId(Long tableId) - { - this.tableId = tableId; - } + public void setTableId(Long tableId) { + this.tableId = tableId; + } - public Long getTableId() - { - return tableId; - } + public Long getTableId() { + return tableId; + } - public void setColumnName(String columnName) - { - this.columnName = columnName; - } + public void setColumnName(String columnName) { + this.columnName = columnName; + } - public String getColumnName() - { - return columnName; - } + public String getColumnName() { + return columnName; + } - public void setColumnComment(String columnComment) - { - this.columnComment = columnComment; - } + public void setColumnComment(String columnComment) { + this.columnComment = columnComment; + } - public String getColumnComment() - { - return columnComment; - } + public String getColumnComment() { + return columnComment; + } - public void setColumnType(String columnType) - { - this.columnType = columnType; - } + public void setColumnType(String columnType) { + this.columnType = columnType; + } - public String getColumnType() - { - return columnType; - } + public String getColumnType() { + return columnType; + } - public void setJavaType(String javaType) - { - this.javaType = javaType; - } + public void setJavaType(String javaType) { + this.javaType = javaType; + } - public String getJavaType() - { - return javaType; - } + public String getJavaType() { + return javaType; + } - public void setJavaField(String javaField) - { - this.javaField = javaField; - } + public void setJavaField(String javaField) { + this.javaField = javaField; + } - public String getJavaField() - { - return javaField; - } + public String getJavaField() { + return javaField; + } - public String getCapJavaField() - { - return StringUtils.capitalize(javaField); - } + public String getCapJavaField() { + return StringUtils.capitalize(javaField); + } - public void setIsPk(String isPk) - { - this.isPk = isPk; - } + public void setIsPk(String isPk) { + this.isPk = isPk; + } - public String getIsPk() - { - return isPk; - } + public String getIsPk() { + return isPk; + } - public boolean isPk() - { - return isPk(this.isPk); - } + public boolean isPk() { + return isPk(this.isPk); + } - public boolean isPk(String isPk) - { - return isPk != null && StringUtils.equals("1", isPk); - } + public boolean isPk(String isPk) { + return isPk != null && StringUtils.equals("1", isPk); + } - public String getIsIncrement() - { - return isIncrement; - } + public String getIsIncrement() { + return isIncrement; + } - public void setIsIncrement(String isIncrement) - { - this.isIncrement = isIncrement; - } + public void setIsIncrement(String isIncrement) { + this.isIncrement = isIncrement; + } - public boolean isIncrement() - { - return isIncrement(this.isIncrement); - } + public boolean isIncrement() { + return isIncrement(this.isIncrement); + } - public boolean isIncrement(String isIncrement) - { - return isIncrement != null && StringUtils.equals("1", isIncrement); - } + public boolean isIncrement(String isIncrement) { + return isIncrement != null && StringUtils.equals("1", isIncrement); + } - public void setIsRequired(String isRequired) - { - this.isRequired = isRequired; - } + public void setIsRequired(String isRequired) { + this.isRequired = isRequired; + } - public String getIsRequired() - { - return isRequired; - } + public String getIsRequired() { + return isRequired; + } - public boolean isRequired() - { - return isRequired(this.isRequired); - } + public boolean isRequired() { + return isRequired(this.isRequired); + } - public boolean isRequired(String isRequired) - { - return isRequired != null && StringUtils.equals("1", isRequired); - } + public boolean isRequired(String isRequired) { + return isRequired != null && StringUtils.equals("1", isRequired); + } - public void setIsInsert(String isInsert) - { - this.isInsert = isInsert; - } + public void setIsInsert(String isInsert) { + this.isInsert = isInsert; + } - public String getIsInsert() - { - return isInsert; - } - - public boolean isInsert() - { - return isInsert(this.isInsert); - } - - public boolean isInsert(String isInsert) - { - return isInsert != null && StringUtils.equals("1", isInsert); - } - - public void setIsEdit(String isEdit) - { - this.isEdit = isEdit; - } - - public String getIsEdit() - { - return isEdit; - } - - public boolean isEdit() - { - return isInsert(this.isEdit); - } - - public boolean isEdit(String isEdit) - { - return isEdit != null && StringUtils.equals("1", isEdit); - } - - public void setIsList(String isList) - { - this.isList = isList; - } - - public String getIsList() - { - return isList; - } - - public boolean isList() - { - return isList(this.isList); - } - - public boolean isList(String isList) - { - return isList != null && StringUtils.equals("1", isList); - } - - public void setIsQuery(String isQuery) - { - this.isQuery = isQuery; - } - - public String getIsQuery() - { - return isQuery; - } - - public boolean isQuery() - { - return isQuery(this.isQuery); - } - - public boolean isQuery(String isQuery) - { - return isQuery != null && StringUtils.equals("1", isQuery); - } - - public void setQueryType(String queryType) - { - this.queryType = queryType; - } - - public String getQueryType() - { - return queryType; - } - - public String getHtmlType() - { - return htmlType; - } - - public void setHtmlType(String htmlType) - { - this.htmlType = htmlType; - } - - public void setDictType(String dictType) - { - this.dictType = dictType; - } - - public String getDictType() - { - return dictType; - } - - public void setSort(Integer sort) - { - this.sort = sort; - } - - public Integer getSort() - { - return sort; - } - - public boolean isSuperColumn() - { - return isSuperColumn(this.javaField); - } - - public static boolean isSuperColumn(String javaField) - { - return StringUtils.equalsAnyIgnoreCase(javaField, - // BaseEntity - "createBy", "createTime", "updateBy", "updateTime", "remark", - // TreeEntity - "parentName", "parentId", "orderNum", "ancestors"); - } - - public boolean isUsableColumn() - { - return isUsableColumn(javaField); - } - - public static boolean isUsableColumn(String javaField) - { - // isSuperColumn()涓殑鍚嶅崟鐢ㄤ簬閬垮厤鐢熸垚澶氫綑Domain灞炴э紝鑻ユ煇浜涘睘鎬у湪鐢熸垚椤甸潰鏃堕渶瑕佺敤鍒颁笉鑳藉拷鐣ワ紝鍒欐斁鍦ㄦ澶勭櫧鍚嶅崟 - return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); - } - - public String readConverterExp() - { - String remarks = StringUtils.substringBetween(this.columnComment, "锛", "锛"); - StringBuffer sb = new StringBuffer(); - if (StringUtils.isNotEmpty(remarks)) - { - for (String value : remarks.split(" ")) - { - if (StringUtils.isNotEmpty(value)) - { - Object startStr = value.subSequence(0, 1); - String endStr = value.substring(1); - sb.append("").append(startStr).append("=").append(endStr).append(","); - } - } - return sb.deleteCharAt(sb.length() - 1).toString(); - } - else - { - return this.columnComment; + public String getIsInsert() { + return isInsert; + } + + public boolean isInsert() { + return isInsert(this.isInsert); + } + + public boolean isInsert(String isInsert) { + return isInsert != null && StringUtils.equals("1", isInsert); + } + + public void setIsEdit(String isEdit) { + this.isEdit = isEdit; + } + + public String getIsEdit() { + return isEdit; + } + + public boolean isEdit() { + return isInsert(this.isEdit); + } + + public boolean isEdit(String isEdit) { + return isEdit != null && StringUtils.equals("1", isEdit); + } + + public void setIsList(String isList) { + this.isList = isList; + } + + public String getIsList() { + return isList; + } + + public boolean isList() { + return isList(this.isList); + } + + public boolean isList(String isList) { + return isList != null && StringUtils.equals("1", isList); + } + + public void setIsQuery(String isQuery) { + this.isQuery = isQuery; + } + + public String getIsQuery() { + return isQuery; + } + + public boolean isQuery() { + return isQuery(this.isQuery); + } + + public boolean isQuery(String isQuery) { + return isQuery != null && StringUtils.equals("1", isQuery); + } + + public void setQueryType(String queryType) { + this.queryType = queryType; + } + + public String getQueryType() { + return queryType; + } + + public String getHtmlType() { + return htmlType; + } + + public void setHtmlType(String htmlType) { + this.htmlType = htmlType; + } + + public void setDictType(String dictType) { + this.dictType = dictType; + } + + public String getDictType() { + return dictType; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getSort() { + return sort; + } + + public boolean isSuperColumn() { + return isSuperColumn(this.javaField); + } + + public static boolean isSuperColumn(String javaField) { + return StringUtils.equalsAnyIgnoreCase( + javaField, + // BaseEntity + "createBy", + "createTime", + "updateBy", + "updateTime", + "remark", + // TreeEntity + "parentName", + "parentId", + "orderNum", + "ancestors"); + } + + public boolean isUsableColumn() { + return isUsableColumn(javaField); + } + + public static boolean isUsableColumn(String javaField) { + // isSuperColumn()涓殑鍚嶅崟鐢ㄤ簬閬垮厤鐢熸垚澶氫綑Domain灞炴э紝鑻ユ煇浜涘睘鎬у湪鐢熸垚椤甸潰鏃堕渶瑕佺敤鍒颁笉鑳藉拷鐣ワ紝鍒欐斁鍦ㄦ澶勭櫧鍚嶅崟 + return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); + } + + public String readConverterExp() { + String remarks = StringUtils.substringBetween(this.columnComment, "锛", "锛"); + StringBuffer sb = new StringBuffer(); + if (StringUtils.isNotEmpty(remarks)) { + for (String value : remarks.split(" ")) { + if (StringUtils.isNotEmpty(value)) { + Object startStr = value.subSequence(0, 1); + String endStr = value.substring(1); + sb.append("").append(startStr).append("=").append(endStr).append(","); } + } + return sb.deleteCharAt(sb.length() - 1).toString(); + } else { + return this.columnComment; } -} \ No newline at end of file + } +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableColumnMapper.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableColumnMapper.java index e5df0027e..73eeeb046 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableColumnMapper.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableColumnMapper.java @@ -1,60 +1,59 @@ package com.ruoyi.gen.mapper; -import java.util.List; import com.ruoyi.gen.domain.GenTableColumn; +import java.util.List; /** * 涓氬姟瀛楁 鏁版嵁灞 - * + * * @author ruoyi */ -public interface GenTableColumnMapper -{ - /** - * 鏍规嵁琛ㄥ悕绉版煡璇㈠垪淇℃伅 - * - * @param tableName 琛ㄥ悕绉 - * @return 鍒椾俊鎭 - */ - public List selectDbTableColumnsByName(String tableName); +public interface GenTableColumnMapper { + /** + * 鏍规嵁琛ㄥ悕绉版煡璇㈠垪淇℃伅 + * + * @param tableName 琛ㄥ悕绉 + * @return 鍒椾俊鎭 + */ + public List selectDbTableColumnsByName(String tableName); - /** - * 鏌ヨ涓氬姟瀛楁鍒楄〃 - * - * @param tableId 涓氬姟瀛楁缂栧彿 - * @return 涓氬姟瀛楁闆嗗悎 - */ - public List selectGenTableColumnListByTableId(Long tableId); + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + public List selectGenTableColumnListByTableId(Long tableId); - /** - * 鏂板涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - public int insertGenTableColumn(GenTableColumn genTableColumn); + /** + * 鏂板涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + public int insertGenTableColumn(GenTableColumn genTableColumn); - /** - * 淇敼涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - public int updateGenTableColumn(GenTableColumn genTableColumn); + /** + * 淇敼涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + public int updateGenTableColumn(GenTableColumn genTableColumn); - /** - * 鍒犻櫎涓氬姟瀛楁 - * - * @param genTableColumns 鍒楁暟鎹 - * @return 缁撴灉 - */ - public int deleteGenTableColumns(List genTableColumns); + /** + * 鍒犻櫎涓氬姟瀛楁 + * + * @param genTableColumns 鍒楁暟鎹 + * @return 缁撴灉 + */ + public int deleteGenTableColumns(List genTableColumns); - /** - * 鎵归噺鍒犻櫎涓氬姟瀛楁 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteGenTableColumnByIds(Long[] ids); -} \ No newline at end of file + /** + * 鎵归噺鍒犻櫎涓氬姟瀛楁 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteGenTableColumnByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableMapper.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableMapper.java index 3d36d88e4..4a239ff58 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableMapper.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/mapper/GenTableMapper.java @@ -1,83 +1,82 @@ package com.ruoyi.gen.mapper; -import java.util.List; import com.ruoyi.gen.domain.GenTable; +import java.util.List; /** * 涓氬姟 鏁版嵁灞 - * + * * @author ruoyi */ -public interface GenTableMapper -{ - /** - * 鏌ヨ涓氬姟鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 涓氬姟闆嗗悎 - */ - public List selectGenTableList(GenTable genTable); +public interface GenTableMapper { + /** + * 鏌ヨ涓氬姟鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 涓氬姟闆嗗悎 + */ + public List selectGenTableList(GenTable genTable); - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - public List selectDbTableList(GenTable genTable); + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + public List selectDbTableList(GenTable genTable); - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param tableNames 琛ㄥ悕绉扮粍 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - public List selectDbTableListByNames(String[] tableNames); + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + public List selectDbTableListByNames(String[] tableNames); - /** - * 鏌ヨ鎵鏈夎〃淇℃伅 - * - * @return 琛ㄤ俊鎭泦鍚 - */ - public List selectGenTableAll(); + /** + * 鏌ヨ鎵鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚 + */ + public List selectGenTableAll(); - /** - * 鏌ヨ琛↖D涓氬姟淇℃伅 - * - * @param id 涓氬姟ID - * @return 涓氬姟淇℃伅 - */ - public GenTable selectGenTableById(Long id); + /** + * 鏌ヨ琛↖D涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + public GenTable selectGenTableById(Long id); - /** - * 鏌ヨ琛ㄥ悕绉颁笟鍔′俊鎭 - * - * @param tableName 琛ㄥ悕绉 - * @return 涓氬姟淇℃伅 - */ - public GenTable selectGenTableByName(String tableName); + /** + * 鏌ヨ琛ㄥ悕绉颁笟鍔′俊鎭 + * + * @param tableName 琛ㄥ悕绉 + * @return 涓氬姟淇℃伅 + */ + public GenTable selectGenTableByName(String tableName); - /** - * 鏂板涓氬姟 - * - * @param genTable 涓氬姟淇℃伅 - * @return 缁撴灉 - */ - public int insertGenTable(GenTable genTable); + /** + * 鏂板涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + public int insertGenTable(GenTable genTable); - /** - * 淇敼涓氬姟 - * - * @param genTable 涓氬姟淇℃伅 - * @return 缁撴灉 - */ - public int updateGenTable(GenTable genTable); + /** + * 淇敼涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + public int updateGenTable(GenTable genTable); - /** - * 鎵归噺鍒犻櫎涓氬姟 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteGenTableByIds(Long[] ids); -} \ No newline at end of file + /** + * 鎵归噺鍒犻櫎涓氬姟 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteGenTableByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java index 8aac0e408..5bce373b3 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java @@ -1,68 +1,62 @@ package com.ruoyi.gen.service; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.text.Convert; import com.ruoyi.gen.domain.GenTableColumn; import com.ruoyi.gen.mapper.GenTableColumnMapper; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 涓氬姟瀛楁 鏈嶅姟灞傚疄鐜 - * + * * @author ruoyi */ @Service -public class GenTableColumnServiceImpl implements IGenTableColumnService -{ - @Autowired - private GenTableColumnMapper genTableColumnMapper; +public class GenTableColumnServiceImpl implements IGenTableColumnService { + @Autowired private GenTableColumnMapper genTableColumnMapper; + + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + @Override + public List selectGenTableColumnListByTableId(Long tableId) { + return genTableColumnMapper.selectGenTableColumnListByTableId(tableId); + } + + /** + * 鏂板涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertGenTableColumn(GenTableColumn genTableColumn) { + return genTableColumnMapper.insertGenTableColumn(genTableColumn); + } - /** - * 鏌ヨ涓氬姟瀛楁鍒楄〃 - * - * @param tableId 涓氬姟瀛楁缂栧彿 - * @return 涓氬姟瀛楁闆嗗悎 - */ - @Override - public List selectGenTableColumnListByTableId(Long tableId) - { - return genTableColumnMapper.selectGenTableColumnListByTableId(tableId); - } - - /** - * 鏂板涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertGenTableColumn(GenTableColumn genTableColumn) - { - return genTableColumnMapper.insertGenTableColumn(genTableColumn); - } - - /** - * 淇敼涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateGenTableColumn(GenTableColumn genTableColumn) - { - return genTableColumnMapper.updateGenTableColumn(genTableColumn); - } + /** + * 淇敼涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateGenTableColumn(GenTableColumn genTableColumn) { + return genTableColumnMapper.updateGenTableColumn(genTableColumn); + } - /** - * 鍒犻櫎涓氬姟瀛楁瀵硅薄 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int deleteGenTableColumnByIds(String ids) - { - return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids)); - } -} \ No newline at end of file + /** + * 鍒犻櫎涓氬姟瀛楁瀵硅薄 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteGenTableColumnByIds(String ids) { + return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids)); + } +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java index 6031be171..1d4326314 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java @@ -1,5 +1,20 @@ package com.ruoyi.gen.service; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.GenConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.text.CharsetKit; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.gen.domain.GenTable; +import com.ruoyi.gen.domain.GenTableColumn; +import com.ruoyi.gen.mapper.GenTableColumnMapper; +import com.ruoyi.gen.mapper.GenTableMapper; +import com.ruoyi.gen.util.GenUtils; +import com.ruoyi.gen.util.VelocityInitializer; +import com.ruoyi.gen.util.VelocityUtils; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -21,501 +36,433 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.constant.GenConstants; -import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.common.core.text.CharsetKit; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.gen.domain.GenTable; -import com.ruoyi.gen.domain.GenTableColumn; -import com.ruoyi.gen.mapper.GenTableColumnMapper; -import com.ruoyi.gen.mapper.GenTableMapper; -import com.ruoyi.gen.util.GenUtils; -import com.ruoyi.gen.util.VelocityInitializer; -import com.ruoyi.gen.util.VelocityUtils; /** * 涓氬姟 鏈嶅姟灞傚疄鐜 - * + * * @author ruoyi */ @Service -public class GenTableServiceImpl implements IGenTableService -{ - private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); - - @Autowired - private GenTableMapper genTableMapper; - - @Autowired - private GenTableColumnMapper genTableColumnMapper; - - /** - * 鏌ヨ涓氬姟淇℃伅 - * - * @param id 涓氬姟ID - * @return 涓氬姟淇℃伅 - */ - @Override - public GenTable selectGenTableById(Long id) - { - GenTable genTable = genTableMapper.selectGenTableById(id); - setTableFromOptions(genTable); - return genTable; +public class GenTableServiceImpl implements IGenTableService { + private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); + + @Autowired private GenTableMapper genTableMapper; + + @Autowired private GenTableColumnMapper genTableColumnMapper; + + /** + * 鏌ヨ涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + @Override + public GenTable selectGenTableById(Long id) { + GenTable genTable = genTableMapper.selectGenTableById(id); + setTableFromOptions(genTable); + return genTable; + } + + /** + * 鏌ヨ涓氬姟鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 涓氬姟闆嗗悎 + */ + @Override + public List selectGenTableList(GenTable genTable) { + return genTableMapper.selectGenTableList(genTable); + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List selectDbTableList(GenTable genTable) { + return genTableMapper.selectDbTableList(genTable); + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List selectDbTableListByNames(String[] tableNames) { + return genTableMapper.selectDbTableListByNames(tableNames); + } + + /** + * 鏌ヨ鎵鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚 + */ + @Override + public List selectGenTableAll() { + return genTableMapper.selectGenTableAll(); + } + + /** + * 淇敼涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void updateGenTable(GenTable genTable) { + String options = JSON.toJSONString(genTable.getParams()); + genTable.setOptions(options); + int row = genTableMapper.updateGenTable(genTable); + if (row > 0) { + for (GenTableColumn genTableColumn : genTable.getColumns()) { + genTableColumnMapper.updateGenTableColumn(genTableColumn); + } } - - /** - * 鏌ヨ涓氬姟鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 涓氬姟闆嗗悎 - */ - @Override - public List selectGenTableList(GenTable genTable) - { - return genTableMapper.selectGenTableList(genTable); - } - - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - @Override - public List selectDbTableList(GenTable genTable) - { - return genTableMapper.selectDbTableList(genTable); - } - - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param tableNames 琛ㄥ悕绉扮粍 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - @Override - public List selectDbTableListByNames(String[] tableNames) - { - return genTableMapper.selectDbTableListByNames(tableNames); - } - - /** - * 鏌ヨ鎵鏈夎〃淇℃伅 - * - * @return 琛ㄤ俊鎭泦鍚 - */ - @Override - public List selectGenTableAll() - { - return genTableMapper.selectGenTableAll(); - } - - /** - * 淇敼涓氬姟 - * - * @param genTable 涓氬姟淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void updateGenTable(GenTable genTable) - { - String options = JSON.toJSONString(genTable.getParams()); - genTable.setOptions(options); - int row = genTableMapper.updateGenTable(genTable); - if (row > 0) - { - for (GenTableColumn genTableColumn : genTable.getColumns()) - { - genTableColumnMapper.updateGenTableColumn(genTableColumn); - } + } + + /** + * 鍒犻櫎涓氬姟瀵硅薄 + * + * @param tableIds 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteGenTableByIds(Long[] tableIds) { + genTableMapper.deleteGenTableByIds(tableIds); + genTableColumnMapper.deleteGenTableColumnByIds(tableIds); + } + + /** + * 瀵煎叆琛ㄧ粨鏋 + * + * @param tableList 瀵煎叆琛ㄥ垪琛 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void importGenTable(List tableList) { + String operName = SecurityUtils.getUsername(); + try { + for (GenTable table : tableList) { + String tableName = table.getTableName(); + GenUtils.initTable(table, operName); + int row = genTableMapper.insertGenTable(table); + if (row > 0) { + // 淇濆瓨鍒椾俊鎭 + List genTableColumns = + genTableColumnMapper.selectDbTableColumnsByName(tableName); + for (GenTableColumn column : genTableColumns) { + GenUtils.initColumnField(column, table); + genTableColumnMapper.insertGenTableColumn(column); + } } + } + } catch (Exception e) { + throw new ServiceException("瀵煎叆澶辫触锛" + e.getMessage()); } - - /** - * 鍒犻櫎涓氬姟瀵硅薄 - * - * @param tableIds 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteGenTableByIds(Long[] tableIds) - { - genTableMapper.deleteGenTableByIds(tableIds); - genTableColumnMapper.deleteGenTableColumnByIds(tableIds); - } - - /** - * 瀵煎叆琛ㄧ粨鏋 - * - * @param tableList 瀵煎叆琛ㄥ垪琛 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void importGenTable(List tableList) - { - String operName = SecurityUtils.getUsername(); - try - { - for (GenTable table : tableList) - { - String tableName = table.getTableName(); - GenUtils.initTable(table, operName); - int row = genTableMapper.insertGenTable(table); - if (row > 0) - { - // 淇濆瓨鍒椾俊鎭 - List genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); - for (GenTableColumn column : genTableColumns) - { - GenUtils.initColumnField(column, table); - genTableColumnMapper.insertGenTableColumn(column); - } - } - } - } - catch (Exception e) - { - throw new ServiceException("瀵煎叆澶辫触锛" + e.getMessage()); - } + } + + /** + * 棰勮浠g爜 + * + * @param tableId 琛ㄧ紪鍙 + * @return 棰勮鏁版嵁鍒楄〃 + */ + @Override + public Map previewCode(Long tableId) { + Map dataMap = new LinkedHashMap<>(); + // 鏌ヨ琛ㄤ俊鎭 + GenTable table = genTableMapper.selectGenTableById(tableId); + // 璁剧疆涓诲瓙琛ㄤ俊鎭 + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭 + setPkColumn(table); + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List templates = + VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); + for (String template : templates) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + dataMap.put(template, sw.toString()); } - - /** - * 棰勮浠g爜 - * - * @param tableId 琛ㄧ紪鍙 - * @return 棰勮鏁版嵁鍒楄〃 - */ - @Override - public Map previewCode(Long tableId) - { - Map dataMap = new LinkedHashMap<>(); - // 鏌ヨ琛ㄤ俊鎭 - GenTable table = genTableMapper.selectGenTableById(tableId); - // 璁剧疆涓诲瓙琛ㄤ俊鎭 - setSubTable(table); - // 璁剧疆涓婚敭鍒椾俊鎭 - setPkColumn(table); - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 鑾峰彇妯℃澘鍒楄〃 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - // 娓叉煋妯℃澘 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - dataMap.put(template, sw.toString()); + return dataMap; + } + + /** + * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableName 琛ㄥ悕绉 + * @return 鏁版嵁 + */ + @Override + public byte[] downloadCode(String tableName) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + generatorCode(tableName, zip); + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + /** + * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 + * + * @param tableName 琛ㄥ悕绉 + */ + @Override + public void generatorCode(String tableName) { + // 鏌ヨ琛ㄤ俊鎭 + GenTable table = genTableMapper.selectGenTableByName(tableName); + // 璁剧疆涓诲瓙琛ㄤ俊鎭 + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭 + setPkColumn(table); + + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List templates = + VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); + for (String template : templates) { + if (!StringUtils.containsAny( + template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + String path = getGenPath(table, template); + FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8); + } catch (IOException e) { + throw new ServiceException("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName()); } - return dataMap; + } } - - /** - * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableName 琛ㄥ悕绉 - * @return 鏁版嵁 - */ - @Override - public byte[] downloadCode(String tableName) - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - generatorCode(tableName, zip); - IOUtils.closeQuietly(zip); - return outputStream.toByteArray(); + } + + /** + * 鍚屾鏁版嵁搴 + * + * @param tableName 琛ㄥ悕绉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void synchDb(String tableName) { + GenTable table = genTableMapper.selectGenTableByName(tableName); + List tableColumns = table.getColumns(); + Map tableColumnMap = + tableColumns.stream() + .collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); + + List dbTableColumns = + genTableColumnMapper.selectDbTableColumnsByName(tableName); + if (StringUtils.isEmpty(dbTableColumns)) { + throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪"); } - - /** - * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 - * - * @param tableName 琛ㄥ悕绉 - */ - @Override - public void generatorCode(String tableName) - { - // 鏌ヨ琛ㄤ俊鎭 - GenTable table = genTableMapper.selectGenTableByName(tableName); - // 璁剧疆涓诲瓙琛ㄤ俊鎭 - setSubTable(table); - // 璁剧疆涓婚敭鍒椾俊鎭 - setPkColumn(table); - - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 鑾峰彇妯℃澘鍒楄〃 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) - { - // 娓叉煋妯℃澘 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - try - { - String path = getGenPath(table, template); - FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8); - } - catch (IOException e) - { - throw new ServiceException("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName()); - } - } - } - } - - /** - * 鍚屾鏁版嵁搴 - * - * @param tableName 琛ㄥ悕绉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void synchDb(String tableName) - { - GenTable table = genTableMapper.selectGenTableByName(tableName); - List tableColumns = table.getColumns(); - Map tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); - - List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); - if (StringUtils.isEmpty(dbTableColumns)) - { - throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪"); - } - List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); - - dbTableColumns.forEach(column -> { - GenUtils.initColumnField(column, table); - if (tableColumnMap.containsKey(column.getColumnName())) - { - GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); - column.setColumnId(prevColumn.getColumnId()); - if (column.isList()) - { - // 濡傛灉鏄垪琛紝缁х画淇濈暀鏌ヨ鏂瑰紡/瀛楀吀绫诲瀷閫夐」 - column.setDictType(prevColumn.getDictType()); - column.setQueryType(prevColumn.getQueryType()); - } - if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() - && (column.isInsert() || column.isEdit()) - && ((column.isUsableColumn()) || (!column.isSuperColumn()))) - { - // 濡傛灉鏄(鏂板/淇敼&闈炰富閿/闈炲拷鐣ュ強鐖跺睘鎬)锛岀户缁繚鐣欏繀濉/鏄剧ず绫诲瀷閫夐」 - column.setIsRequired(prevColumn.getIsRequired()); - column.setHtmlType(prevColumn.getHtmlType()); - } - genTableColumnMapper.updateGenTableColumn(column); + List dbTableColumnNames = + dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + + dbTableColumns.forEach( + column -> { + GenUtils.initColumnField(column, table); + if (tableColumnMap.containsKey(column.getColumnName())) { + GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); + column.setColumnId(prevColumn.getColumnId()); + if (column.isList()) { + // 濡傛灉鏄垪琛紝缁х画淇濈暀鏌ヨ鏂瑰紡/瀛楀吀绫诲瀷閫夐」 + column.setDictType(prevColumn.getDictType()); + column.setQueryType(prevColumn.getQueryType()); } - else - { - genTableColumnMapper.insertGenTableColumn(column); + if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) + && !column.isPk() + && (column.isInsert() || column.isEdit()) + && ((column.isUsableColumn()) || (!column.isSuperColumn()))) { + // 濡傛灉鏄(鏂板/淇敼&闈炰富閿/闈炲拷鐣ュ強鐖跺睘鎬)锛岀户缁繚鐣欏繀濉/鏄剧ず绫诲瀷閫夐」 + column.setIsRequired(prevColumn.getIsRequired()); + column.setHtmlType(prevColumn.getHtmlType()); } + genTableColumnMapper.updateGenTableColumn(column); + } else { + genTableColumnMapper.insertGenTableColumn(column); + } }); - List delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); - if (StringUtils.isNotEmpty(delColumns)) - { - genTableColumnMapper.deleteGenTableColumns(delColumns); - } + List delColumns = + tableColumns.stream() + .filter(column -> !dbTableColumnNames.contains(column.getColumnName())) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(delColumns)) { + genTableColumnMapper.deleteGenTableColumns(delColumns); } - - /** - * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableNames 琛ㄦ暟缁 - * @return 鏁版嵁 - */ - @Override - public byte[] downloadCode(String[] tableNames) - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - for (String tableName : tableNames) - { - generatorCode(tableName, zip); - } - IOUtils.closeQuietly(zip); - return outputStream.toByteArray(); + } + + /** + * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableNames 琛ㄦ暟缁 + * @return 鏁版嵁 + */ + @Override + public byte[] downloadCode(String[] tableNames) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for (String tableName : tableNames) { + generatorCode(tableName, zip); } - - /** - * 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜 - */ - private void generatorCode(String tableName, ZipOutputStream zip) - { - // 鏌ヨ琛ㄤ俊鎭 - GenTable table = genTableMapper.selectGenTableByName(tableName); - // 璁剧疆涓诲瓙琛ㄤ俊鎭 - setSubTable(table); - // 璁剧疆涓婚敭鍒椾俊鎭 - setPkColumn(table); - - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 鑾峰彇妯℃澘鍒楄〃 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - // 娓叉煋妯℃澘 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - try - { - // 娣诲姞鍒皕ip - zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); - IOUtils.write(sw.toString(), zip, Constants.UTF8); - IOUtils.closeQuietly(sw); - zip.flush(); - zip.closeEntry(); - } - catch (IOException e) - { - log.error("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName(), e); - } - } + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + /** 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜 */ + private void generatorCode(String tableName, ZipOutputStream zip) { + // 鏌ヨ琛ㄤ俊鎭 + GenTable table = genTableMapper.selectGenTableByName(tableName); + // 璁剧疆涓诲瓙琛ㄤ俊鎭 + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭 + setPkColumn(table); + + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List templates = + VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); + for (String template : templates) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + // 娣诲姞鍒皕ip + zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); + IOUtils.write(sw.toString(), zip, Constants.UTF8); + IOUtils.closeQuietly(sw); + zip.flush(); + zip.closeEntry(); + } catch (IOException e) { + log.error("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName(), e); + } } - - /** - * 淇敼淇濆瓨鍙傛暟鏍¢獙 - * - * @param genTable 涓氬姟淇℃伅 - */ - @Override - public void validateEdit(GenTable genTable) - { - if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) - { - String options = JSON.toJSONString(genTable.getParams()); - JSONObject paramsObj = JSON.parseObject(options); - if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) - { - throw new ServiceException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌"); - } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) - { - throw new ServiceException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖"); - } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) - { - throw new ServiceException("鏍戝悕绉板瓧娈典笉鑳戒负绌"); - } - } - else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) - { - if (StringUtils.isEmpty(genTable.getSubTableName())) - { - throw new ServiceException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌"); - } - else if (StringUtils.isEmpty(genTable.getSubTableFkName())) - { - throw new ServiceException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖"); - } - } + } + + /** + * 淇敼淇濆瓨鍙傛暟鏍¢獙 + * + * @param genTable 涓氬姟淇℃伅 + */ + @Override + public void validateEdit(GenTable genTable) { + if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { + String options = JSON.toJSONString(genTable.getParams()); + JSONObject paramsObj = JSON.parseObject(options); + if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) { + throw new ServiceException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌"); + } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) { + throw new ServiceException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖"); + } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) { + throw new ServiceException("鏍戝悕绉板瓧娈典笉鑳戒负绌"); + } + } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { + if (StringUtils.isEmpty(genTable.getSubTableName())) { + throw new ServiceException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌"); + } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) { + throw new ServiceException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖"); + } } - - /** - * 璁剧疆涓婚敭鍒椾俊鎭 - * - * @param table 涓氬姟琛ㄤ俊鎭 - */ - public void setPkColumn(GenTable table) - { - for (GenTableColumn column : table.getColumns()) - { - if (column.isPk()) - { - table.setPkColumn(column); - break; - } - } - if (StringUtils.isNull(table.getPkColumn())) - { - table.setPkColumn(table.getColumns().get(0)); - } - if (GenConstants.TPL_SUB.equals(table.getTplCategory())) - { - for (GenTableColumn column : table.getSubTable().getColumns()) - { - if (column.isPk()) - { - table.getSubTable().setPkColumn(column); - break; - } - } - if (StringUtils.isNull(table.getSubTable().getPkColumn())) - { - table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); - } - } + } + + /** + * 璁剧疆涓婚敭鍒椾俊鎭 + * + * @param table 涓氬姟琛ㄤ俊鎭 + */ + public void setPkColumn(GenTable table) { + for (GenTableColumn column : table.getColumns()) { + if (column.isPk()) { + table.setPkColumn(column); + break; + } } - - /** - * 璁剧疆涓诲瓙琛ㄤ俊鎭 - * - * @param table 涓氬姟琛ㄤ俊鎭 - */ - public void setSubTable(GenTable table) - { - String subTableName = table.getSubTableName(); - if (StringUtils.isNotEmpty(subTableName)) - { - table.setSubTable(genTableMapper.selectGenTableByName(subTableName)); - } + if (StringUtils.isNull(table.getPkColumn())) { + table.setPkColumn(table.getColumns().get(0)); } - - /** - * 璁剧疆浠g爜鐢熸垚鍏朵粬閫夐」鍊 - * - * @param genTable 璁剧疆鍚庣殑鐢熸垚瀵硅薄 - */ - public void setTableFromOptions(GenTable genTable) - { - JSONObject paramsObj = JSON.parseObject(genTable.getOptions()); - if (StringUtils.isNotNull(paramsObj)) - { - String treeCode = paramsObj.getString(GenConstants.TREE_CODE); - String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); - Long parentMenuId = paramsObj.getLongValue(GenConstants.PARENT_MENU_ID); - String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); - - genTable.setTreeCode(treeCode); - genTable.setTreeParentCode(treeParentCode); - genTable.setTreeName(treeName); - genTable.setParentMenuId(parentMenuId); - genTable.setParentMenuName(parentMenuName); + if (GenConstants.TPL_SUB.equals(table.getTplCategory())) { + for (GenTableColumn column : table.getSubTable().getColumns()) { + if (column.isPk()) { + table.getSubTable().setPkColumn(column); + break; } + } + if (StringUtils.isNull(table.getSubTable().getPkColumn())) { + table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); + } } - - /** - * 鑾峰彇浠g爜鐢熸垚鍦板潃 - * - * @param table 涓氬姟琛ㄤ俊鎭 - * @param template 妯℃澘鏂囦欢璺緞 - * @return 鐢熸垚鍦板潃 - */ - public static String getGenPath(GenTable table, String template) - { - String genPath = table.getGenPath(); - if (StringUtils.equals(genPath, "/")) - { - return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); - } - return genPath + File.separator + VelocityUtils.getFileName(template, table); + } + + /** + * 璁剧疆涓诲瓙琛ㄤ俊鎭 + * + * @param table 涓氬姟琛ㄤ俊鎭 + */ + public void setSubTable(GenTable table) { + String subTableName = table.getSubTableName(); + if (StringUtils.isNotEmpty(subTableName)) { + table.setSubTable(genTableMapper.selectGenTableByName(subTableName)); + } + } + + /** + * 璁剧疆浠g爜鐢熸垚鍏朵粬閫夐」鍊 + * + * @param genTable 璁剧疆鍚庣殑鐢熸垚瀵硅薄 + */ + public void setTableFromOptions(GenTable genTable) { + JSONObject paramsObj = JSON.parseObject(genTable.getOptions()); + if (StringUtils.isNotNull(paramsObj)) { + String treeCode = paramsObj.getString(GenConstants.TREE_CODE); + String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); + String treeName = paramsObj.getString(GenConstants.TREE_NAME); + Long parentMenuId = paramsObj.getLongValue(GenConstants.PARENT_MENU_ID); + String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); + + genTable.setTreeCode(treeCode); + genTable.setTreeParentCode(treeParentCode); + genTable.setTreeName(treeName); + genTable.setParentMenuId(parentMenuId); + genTable.setParentMenuName(parentMenuName); + } + } + + /** + * 鑾峰彇浠g爜鐢熸垚鍦板潃 + * + * @param table 涓氬姟琛ㄤ俊鎭 + * @param template 妯℃澘鏂囦欢璺緞 + * @return 鐢熸垚鍦板潃 + */ + public static String getGenPath(GenTable table, String template) { + String genPath = table.getGenPath(); + if (StringUtils.equals(genPath, "/")) { + return System.getProperty("user.dir") + + File.separator + + "src" + + File.separator + + VelocityUtils.getFileName(template, table); } + return genPath + File.separator + VelocityUtils.getFileName(template, table); + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableColumnService.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableColumnService.java index f7dec8480..546f11149 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableColumnService.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableColumnService.java @@ -1,44 +1,43 @@ package com.ruoyi.gen.service; -import java.util.List; import com.ruoyi.gen.domain.GenTableColumn; +import java.util.List; /** * 涓氬姟瀛楁 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface IGenTableColumnService -{ - /** - * 鏌ヨ涓氬姟瀛楁鍒楄〃 - * - * @param tableId 涓氬姟瀛楁缂栧彿 - * @return 涓氬姟瀛楁闆嗗悎 - */ - public List selectGenTableColumnListByTableId(Long tableId); +public interface IGenTableColumnService { + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + public List selectGenTableColumnListByTableId(Long tableId); - /** - * 鏂板涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - public int insertGenTableColumn(GenTableColumn genTableColumn); + /** + * 鏂板涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + public int insertGenTableColumn(GenTableColumn genTableColumn); - /** - * 淇敼涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - public int updateGenTableColumn(GenTableColumn genTableColumn); + /** + * 淇敼涓氬姟瀛楁 + * + * @param genTableColumn 涓氬姟瀛楁淇℃伅 + * @return 缁撴灉 + */ + public int updateGenTableColumn(GenTableColumn genTableColumn); - /** - * 鍒犻櫎涓氬姟瀛楁淇℃伅 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteGenTableColumnByIds(String ids); + /** + * 鍒犻櫎涓氬姟瀛楁淇℃伅 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteGenTableColumnByIds(String ids); } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableService.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableService.java index 3d6e0ff69..bacded08a 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableService.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/IGenTableService.java @@ -1,121 +1,120 @@ package com.ruoyi.gen.service; +import com.ruoyi.gen.domain.GenTable; import java.util.List; import java.util.Map; -import com.ruoyi.gen.domain.GenTable; /** * 涓氬姟 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface IGenTableService -{ - /** - * 鏌ヨ涓氬姟鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 涓氬姟闆嗗悎 - */ - public List selectGenTableList(GenTable genTable); +public interface IGenTableService { + /** + * 鏌ヨ涓氬姟鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 涓氬姟闆嗗悎 + */ + public List selectGenTableList(GenTable genTable); - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param genTable 涓氬姟淇℃伅 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - public List selectDbTableList(GenTable genTable); + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + public List selectDbTableList(GenTable genTable); - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param tableNames 琛ㄥ悕绉扮粍 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - public List selectDbTableListByNames(String[] tableNames); + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + public List selectDbTableListByNames(String[] tableNames); - /** - * 鏌ヨ鎵鏈夎〃淇℃伅 - * - * @return 琛ㄤ俊鎭泦鍚 - */ - public List selectGenTableAll(); + /** + * 鏌ヨ鎵鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚 + */ + public List selectGenTableAll(); - /** - * 鏌ヨ涓氬姟淇℃伅 - * - * @param id 涓氬姟ID - * @return 涓氬姟淇℃伅 - */ - public GenTable selectGenTableById(Long id); + /** + * 鏌ヨ涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + public GenTable selectGenTableById(Long id); - /** - * 淇敼涓氬姟 - * - * @param genTable 涓氬姟淇℃伅 - * @return 缁撴灉 - */ - public void updateGenTable(GenTable genTable); + /** + * 淇敼涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + public void updateGenTable(GenTable genTable); - /** - * 鍒犻櫎涓氬姟淇℃伅 - * - * @param tableIds 闇瑕佸垹闄ょ殑琛ㄦ暟鎹甀D - * @return 缁撴灉 - */ - public void deleteGenTableByIds(Long[] tableIds); + /** + * 鍒犻櫎涓氬姟淇℃伅 + * + * @param tableIds 闇瑕佸垹闄ょ殑琛ㄦ暟鎹甀D + * @return 缁撴灉 + */ + public void deleteGenTableByIds(Long[] tableIds); - /** - * 瀵煎叆琛ㄧ粨鏋 - * - * @param tableList 瀵煎叆琛ㄥ垪琛 - */ - public void importGenTable(List tableList); + /** + * 瀵煎叆琛ㄧ粨鏋 + * + * @param tableList 瀵煎叆琛ㄥ垪琛 + */ + public void importGenTable(List tableList); - /** - * 棰勮浠g爜 - * - * @param tableId 琛ㄧ紪鍙 - * @return 棰勮鏁版嵁鍒楄〃 - */ - public Map previewCode(Long tableId); + /** + * 棰勮浠g爜 + * + * @param tableId 琛ㄧ紪鍙 + * @return 棰勮鏁版嵁鍒楄〃 + */ + public Map previewCode(Long tableId); - /** - * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableName 琛ㄥ悕绉 - * @return 鏁版嵁 - */ - public byte[] downloadCode(String tableName); + /** + * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableName 琛ㄥ悕绉 + * @return 鏁版嵁 + */ + public byte[] downloadCode(String tableName); - /** - * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 - * - * @param tableName 琛ㄥ悕绉 - * @return 鏁版嵁 - */ - public void generatorCode(String tableName); + /** + * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛 + * + * @param tableName 琛ㄥ悕绉 + * @return 鏁版嵁 + */ + public void generatorCode(String tableName); - /** - * 鍚屾鏁版嵁搴 - * - * @param tableName 琛ㄥ悕绉 - */ - public void synchDb(String tableName); + /** + * 鍚屾鏁版嵁搴 + * + * @param tableName 琛ㄥ悕绉 + */ + public void synchDb(String tableName); - /** - * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableNames 琛ㄦ暟缁 - * @return 鏁版嵁 - */ - public byte[] downloadCode(String[] tableNames); + /** + * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableNames 琛ㄦ暟缁 + * @return 鏁版嵁 + */ + public byte[] downloadCode(String[] tableNames); - /** - * 淇敼淇濆瓨鍙傛暟鏍¢獙 - * - * @param genTable 涓氬姟淇℃伅 - */ - public void validateEdit(GenTable genTable); + /** + * 淇敼淇濆瓨鍙傛暟鏍¢獙 + * + * @param genTable 涓氬姟淇℃伅 + */ + public void validateEdit(GenTable genTable); } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java index 2c1c53173..2e21f1d65 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java @@ -1,257 +1,221 @@ package com.ruoyi.gen.util; -import java.util.Arrays; -import org.apache.commons.lang3.RegExUtils; import com.ruoyi.common.core.constant.GenConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.gen.config.GenConfig; import com.ruoyi.gen.domain.GenTable; import com.ruoyi.gen.domain.GenTableColumn; +import java.util.Arrays; +import org.apache.commons.lang3.RegExUtils; /** * 浠g爜鐢熸垚鍣 宸ュ叿绫 - * + * * @author ruoyi */ -public class GenUtils -{ - /** - * 鍒濆鍖栬〃淇℃伅 - */ - public static void initTable(GenTable genTable, String operName) - { - genTable.setClassName(convertClassName(genTable.getTableName())); - genTable.setPackageName(GenConfig.getPackageName()); - genTable.setModuleName(getModuleName(GenConfig.getPackageName())); - genTable.setBusinessName(getBusinessName(genTable.getTableName())); - genTable.setFunctionName(replaceText(genTable.getTableComment())); - genTable.setFunctionAuthor(GenConfig.getAuthor()); - genTable.setCreateBy(operName); +public class GenUtils { + /** 鍒濆鍖栬〃淇℃伅 */ + public static void initTable(GenTable genTable, String operName) { + genTable.setClassName(convertClassName(genTable.getTableName())); + genTable.setPackageName(GenConfig.getPackageName()); + genTable.setModuleName(getModuleName(GenConfig.getPackageName())); + genTable.setBusinessName(getBusinessName(genTable.getTableName())); + genTable.setFunctionName(replaceText(genTable.getTableComment())); + genTable.setFunctionAuthor(GenConfig.getAuthor()); + genTable.setCreateBy(operName); + } + + /** 鍒濆鍖栧垪灞炴у瓧娈 */ + public static void initColumnField(GenTableColumn column, GenTable table) { + String dataType = getDbType(column.getColumnType()); + String columnName = column.getColumnName(); + column.setTableId(table.getTableId()); + column.setCreateBy(table.getCreateBy()); + // 璁剧疆java瀛楁鍚 + column.setJavaField(StringUtils.toCamelCase(columnName)); + // 璁剧疆榛樿绫诲瀷 + column.setJavaType(GenConstants.TYPE_STRING); + column.setQueryType(GenConstants.QUERY_EQ); + + if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) + || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) { + // 瀛楃涓查暱搴﹁秴杩500璁剧疆涓烘枃鏈煙 + Integer columnLength = getColumnLength(column.getColumnType()); + String htmlType = + columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) + ? GenConstants.HTML_TEXTAREA + : GenConstants.HTML_INPUT; + column.setHtmlType(htmlType); + } else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) { + column.setJavaType(GenConstants.TYPE_DATE); + column.setHtmlType(GenConstants.HTML_DATETIME); + } else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) { + column.setHtmlType(GenConstants.HTML_INPUT); + + // 濡傛灉鏄诞鐐瑰瀷 缁熶竴鐢˙igDecimal + String[] str = + StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); + if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) { + column.setJavaType(GenConstants.TYPE_BIGDECIMAL); + } + // 濡傛灉鏄暣褰 + else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) { + column.setJavaType(GenConstants.TYPE_INTEGER); + } + // 闀挎暣褰 + else { + column.setJavaType(GenConstants.TYPE_LONG); + } } - /** - * 鍒濆鍖栧垪灞炴у瓧娈 - */ - public static void initColumnField(GenTableColumn column, GenTable table) - { - String dataType = getDbType(column.getColumnType()); - String columnName = column.getColumnName(); - column.setTableId(table.getTableId()); - column.setCreateBy(table.getCreateBy()); - // 璁剧疆java瀛楁鍚 - column.setJavaField(StringUtils.toCamelCase(columnName)); - // 璁剧疆榛樿绫诲瀷 - column.setJavaType(GenConstants.TYPE_STRING); - column.setQueryType(GenConstants.QUERY_EQ); - - if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) - { - // 瀛楃涓查暱搴﹁秴杩500璁剧疆涓烘枃鏈煙 - Integer columnLength = getColumnLength(column.getColumnType()); - String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; - column.setHtmlType(htmlType); - } - else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) - { - column.setJavaType(GenConstants.TYPE_DATE); - column.setHtmlType(GenConstants.HTML_DATETIME); - } - else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) - { - column.setHtmlType(GenConstants.HTML_INPUT); + // 鎻掑叆瀛楁锛堥粯璁ゆ墍鏈夊瓧娈甸兘闇瑕佹彃鍏ワ級 + column.setIsInsert(GenConstants.REQUIRE); - // 濡傛灉鏄诞鐐瑰瀷 缁熶竴鐢˙igDecimal - String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); - if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) - { - column.setJavaType(GenConstants.TYPE_BIGDECIMAL); - } - // 濡傛灉鏄暣褰 - else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) - { - column.setJavaType(GenConstants.TYPE_INTEGER); - } - // 闀挎暣褰 - else - { - column.setJavaType(GenConstants.TYPE_LONG); - } - } - - // 鎻掑叆瀛楁锛堥粯璁ゆ墍鏈夊瓧娈甸兘闇瑕佹彃鍏ワ級 - column.setIsInsert(GenConstants.REQUIRE); - - // 缂栬緫瀛楁 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) - { - column.setIsEdit(GenConstants.REQUIRE); - } - // 鍒楄〃瀛楁 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) - { - column.setIsList(GenConstants.REQUIRE); - } - // 鏌ヨ瀛楁 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) - { - column.setIsQuery(GenConstants.REQUIRE); - } - - // 鏌ヨ瀛楁绫诲瀷 - if (StringUtils.endsWithIgnoreCase(columnName, "name")) - { - column.setQueryType(GenConstants.QUERY_LIKE); - } - // 鐘舵佸瓧娈佃缃崟閫夋 - if (StringUtils.endsWithIgnoreCase(columnName, "status")) - { - column.setHtmlType(GenConstants.HTML_RADIO); - } - // 绫诲瀷&鎬у埆瀛楁璁剧疆涓嬫媺妗 - else if (StringUtils.endsWithIgnoreCase(columnName, "type") - || StringUtils.endsWithIgnoreCase(columnName, "sex")) - { - column.setHtmlType(GenConstants.HTML_SELECT); - } - // 鍥剧墖瀛楁璁剧疆鍥剧墖涓婁紶鎺т欢 - else if (StringUtils.endsWithIgnoreCase(columnName, "image")) - { - column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); - } - // 鏂囦欢瀛楁璁剧疆鏂囦欢涓婁紶鎺т欢 - else if (StringUtils.endsWithIgnoreCase(columnName, "file")) - { - column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); - } - // 鍐呭瀛楁璁剧疆瀵屾枃鏈帶浠 - else if (StringUtils.endsWithIgnoreCase(columnName, "content")) - { - column.setHtmlType(GenConstants.HTML_EDITOR); - } + // 缂栬緫瀛楁 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) { + column.setIsEdit(GenConstants.REQUIRE); } - - /** - * 鏍¢獙鏁扮粍鏄惁鍖呭惈鎸囧畾鍊 - * - * @param arr 鏁扮粍 - * @param targetValue 鍊 - * @return 鏄惁鍖呭惈 - */ - public static boolean arraysContains(String[] arr, String targetValue) - { - return Arrays.asList(arr).contains(targetValue); + // 鍒楄〃瀛楁 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) { + column.setIsList(GenConstants.REQUIRE); } - - /** - * 鑾峰彇妯″潡鍚 - * - * @param packageName 鍖呭悕 - * @return 妯″潡鍚 - */ - public static String getModuleName(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - int nameLength = packageName.length(); - return StringUtils.substring(packageName, lastIndex + 1, nameLength); + // 鏌ヨ瀛楁 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) { + column.setIsQuery(GenConstants.REQUIRE); } - /** - * 鑾峰彇涓氬姟鍚 - * - * @param tableName 琛ㄥ悕 - * @return 涓氬姟鍚 - */ - public static String getBusinessName(String tableName) - { - int lastIndex = tableName.lastIndexOf("_"); - int nameLength = tableName.length(); - return StringUtils.substring(tableName, lastIndex + 1, nameLength); + // 鏌ヨ瀛楁绫诲瀷 + if (StringUtils.endsWithIgnoreCase(columnName, "name")) { + column.setQueryType(GenConstants.QUERY_LIKE); } - - /** - * 琛ㄥ悕杞崲鎴怞ava绫诲悕 - * - * @param tableName 琛ㄥ悕绉 - * @return 绫诲悕 - */ - public static String convertClassName(String tableName) - { - boolean autoRemovePre = GenConfig.getAutoRemovePre(); - String tablePrefix = GenConfig.getTablePrefix(); - if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) - { - String[] searchList = StringUtils.split(tablePrefix, ","); - tableName = replaceFirst(tableName, searchList); - } - return StringUtils.convertToCamelCase(tableName); + // 鐘舵佸瓧娈佃缃崟閫夋 + if (StringUtils.endsWithIgnoreCase(columnName, "status")) { + column.setHtmlType(GenConstants.HTML_RADIO); } - - /** - * 鎵归噺鏇挎崲鍓嶇紑 - * - * @param replacementm 鏇挎崲鍊 - * @param searchList 鏇挎崲鍒楄〃 - * @return - */ - public static String replaceFirst(String replacementm, String[] searchList) - { - String text = replacementm; - for (String searchString : searchList) - { - if (replacementm.startsWith(searchString)) - { - text = replacementm.replaceFirst(searchString, ""); - break; - } - } - return text; + // 绫诲瀷&鎬у埆瀛楁璁剧疆涓嬫媺妗 + else if (StringUtils.endsWithIgnoreCase(columnName, "type") + || StringUtils.endsWithIgnoreCase(columnName, "sex")) { + column.setHtmlType(GenConstants.HTML_SELECT); } - - /** - * 鍏抽敭瀛楁浛鎹 - * - * @param text 闇瑕佽鏇挎崲鐨勫悕瀛 - * @return 鏇挎崲鍚庣殑鍚嶅瓧 - */ - public static String replaceText(String text) - { - return RegExUtils.replaceAll(text, "(?:琛▅鑻ヤ緷)", ""); + // 鍥剧墖瀛楁璁剧疆鍥剧墖涓婁紶鎺т欢 + else if (StringUtils.endsWithIgnoreCase(columnName, "image")) { + column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); } - - /** - * 鑾峰彇鏁版嵁搴撶被鍨嬪瓧娈 - * - * @param columnType 鍒楃被鍨 - * @return 鎴彇鍚庣殑鍒楃被鍨 - */ - public static String getDbType(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - return StringUtils.substringBefore(columnType, "("); - } - else - { - return columnType; - } + // 鏂囦欢瀛楁璁剧疆鏂囦欢涓婁紶鎺т欢 + else if (StringUtils.endsWithIgnoreCase(columnName, "file")) { + column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); } - - /** - * 鑾峰彇瀛楁闀垮害 - * - * @param columnType 鍒楃被鍨 - * @return 鎴彇鍚庣殑鍒楃被鍨 - */ - public static Integer getColumnLength(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - String length = StringUtils.substringBetween(columnType, "(", ")"); - return Integer.valueOf(length); - } - else - { - return 0; - } + // 鍐呭瀛楁璁剧疆瀵屾枃鏈帶浠 + else if (StringUtils.endsWithIgnoreCase(columnName, "content")) { + column.setHtmlType(GenConstants.HTML_EDITOR); + } + } + + /** + * 鏍¢獙鏁扮粍鏄惁鍖呭惈鎸囧畾鍊 + * + * @param arr 鏁扮粍 + * @param targetValue 鍊 + * @return 鏄惁鍖呭惈 + */ + public static boolean arraysContains(String[] arr, String targetValue) { + return Arrays.asList(arr).contains(targetValue); + } + + /** + * 鑾峰彇妯″潡鍚 + * + * @param packageName 鍖呭悕 + * @return 妯″潡鍚 + */ + public static String getModuleName(String packageName) { + int lastIndex = packageName.lastIndexOf("."); + int nameLength = packageName.length(); + return StringUtils.substring(packageName, lastIndex + 1, nameLength); + } + + /** + * 鑾峰彇涓氬姟鍚 + * + * @param tableName 琛ㄥ悕 + * @return 涓氬姟鍚 + */ + public static String getBusinessName(String tableName) { + int lastIndex = tableName.lastIndexOf("_"); + int nameLength = tableName.length(); + return StringUtils.substring(tableName, lastIndex + 1, nameLength); + } + + /** + * 琛ㄥ悕杞崲鎴怞ava绫诲悕 + * + * @param tableName 琛ㄥ悕绉 + * @return 绫诲悕 + */ + public static String convertClassName(String tableName) { + boolean autoRemovePre = GenConfig.getAutoRemovePre(); + String tablePrefix = GenConfig.getTablePrefix(); + if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) { + String[] searchList = StringUtils.split(tablePrefix, ","); + tableName = replaceFirst(tableName, searchList); + } + return StringUtils.convertToCamelCase(tableName); + } + + /** + * 鎵归噺鏇挎崲鍓嶇紑 + * + * @param replacementm 鏇挎崲鍊 + * @param searchList 鏇挎崲鍒楄〃 + * @return + */ + public static String replaceFirst(String replacementm, String[] searchList) { + String text = replacementm; + for (String searchString : searchList) { + if (replacementm.startsWith(searchString)) { + text = replacementm.replaceFirst(searchString, ""); + break; + } + } + return text; + } + + /** + * 鍏抽敭瀛楁浛鎹 + * + * @param text 闇瑕佽鏇挎崲鐨勫悕瀛 + * @return 鏇挎崲鍚庣殑鍚嶅瓧 + */ + public static String replaceText(String text) { + return RegExUtils.replaceAll(text, "(?:琛▅鑻ヤ緷)", ""); + } + + /** + * 鑾峰彇鏁版嵁搴撶被鍨嬪瓧娈 + * + * @param columnType 鍒楃被鍨 + * @return 鎴彇鍚庣殑鍒楃被鍨 + */ + public static String getDbType(String columnType) { + if (StringUtils.indexOf(columnType, "(") > 0) { + return StringUtils.substringBefore(columnType, "("); + } else { + return columnType; + } + } + + /** + * 鑾峰彇瀛楁闀垮害 + * + * @param columnType 鍒楃被鍨 + * @return 鎴彇鍚庣殑鍒楃被鍨 + */ + public static Integer getColumnLength(String columnType) { + if (StringUtils.indexOf(columnType, "(") > 0) { + String length = StringUtils.substringBetween(columnType, "(", ")"); + return Integer.valueOf(length); + } else { + return 0; } + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityInitializer.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityInitializer.java index c0736626b..78af776ac 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityInitializer.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityInitializer.java @@ -1,34 +1,29 @@ package com.ruoyi.gen.util; +import com.ruoyi.common.core.constant.Constants; import java.util.Properties; import org.apache.velocity.app.Velocity; -import com.ruoyi.common.core.constant.Constants; /** * VelocityEngine宸ュ巶 - * + * * @author ruoyi */ -public class VelocityInitializer -{ - /** - * 鍒濆鍖杤m鏂规硶 - */ - public static void initVelocity() - { - Properties p = new Properties(); - try - { - // 鍔犺浇classpath鐩綍涓嬬殑vm鏂囦欢 - p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); - // 瀹氫箟瀛楃闆 - p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); - // 鍒濆鍖朧elocity寮曟搸锛屾寚瀹氶厤缃甈roperties - Velocity.init(p); - } - catch (Exception e) - { - throw new RuntimeException(e); - } +public class VelocityInitializer { + /** 鍒濆鍖杤m鏂规硶 */ + public static void initVelocity() { + Properties p = new Properties(); + try { + // 鍔犺浇classpath鐩綍涓嬬殑vm鏂囦欢 + p.setProperty( + "resource.loader.file.class", + "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + // 瀹氫箟瀛楃闆 + p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); + // 鍒濆鍖朧elocity寮曟搸锛屾寚瀹氶厤缃甈roperties + Velocity.init(p); + } catch (Exception e) { + throw new RuntimeException(e); } + } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java index 2c8dcb1ca..15def1241 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java @@ -1,10 +1,5 @@ package com.ruoyi.gen.util; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.apache.velocity.VelocityContext; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.core.constant.GenConstants; @@ -12,397 +7,348 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.gen.domain.GenTable; import com.ruoyi.gen.domain.GenTableColumn; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.apache.velocity.VelocityContext; /** * 妯℃澘宸ュ叿绫 - * + * * @author ruoyi */ -public class VelocityUtils -{ - /** 椤圭洰绌洪棿璺緞 */ - private static final String PROJECT_PATH = "main/java"; +public class VelocityUtils { + /** 椤圭洰绌洪棿璺緞 */ + private static final String PROJECT_PATH = "main/java"; - /** mybatis绌洪棿璺緞 */ - private static final String MYBATIS_PATH = "main/resources/mapper"; + /** mybatis绌洪棿璺緞 */ + private static final String MYBATIS_PATH = "main/resources/mapper"; - /** 榛樿涓婄骇鑿滃崟锛岀郴缁熷伐鍏 */ - private static final String DEFAULT_PARENT_MENU_ID = "3"; + /** 榛樿涓婄骇鑿滃崟锛岀郴缁熷伐鍏 */ + private static final String DEFAULT_PARENT_MENU_ID = "3"; - /** - * 璁剧疆妯℃澘鍙橀噺淇℃伅 - * - * @return 妯℃澘鍒楄〃 - */ - public static VelocityContext prepareContext(GenTable genTable) - { - String moduleName = genTable.getModuleName(); - String businessName = genTable.getBusinessName(); - String packageName = genTable.getPackageName(); - String tplCategory = genTable.getTplCategory(); - String functionName = genTable.getFunctionName(); + /** + * 璁剧疆妯℃澘鍙橀噺淇℃伅 + * + * @return 妯℃澘鍒楄〃 + */ + public static VelocityContext prepareContext(GenTable genTable) { + String moduleName = genTable.getModuleName(); + String businessName = genTable.getBusinessName(); + String packageName = genTable.getPackageName(); + String tplCategory = genTable.getTplCategory(); + String functionName = genTable.getFunctionName(); - VelocityContext velocityContext = new VelocityContext(); - velocityContext.put("tplCategory", genTable.getTplCategory()); - velocityContext.put("tableName", genTable.getTableName()); - velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "銆愯濉啓鍔熻兘鍚嶇О銆"); - velocityContext.put("ClassName", genTable.getClassName()); - velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); - velocityContext.put("moduleName", genTable.getModuleName()); - velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); - velocityContext.put("businessName", genTable.getBusinessName()); - velocityContext.put("basePackage", getPackagePrefix(packageName)); - velocityContext.put("packageName", packageName); - velocityContext.put("author", genTable.getFunctionAuthor()); - velocityContext.put("datetime", DateUtils.getDate()); - velocityContext.put("pkColumn", genTable.getPkColumn()); - velocityContext.put("importList", getImportList(genTable)); - velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); - velocityContext.put("columns", genTable.getColumns()); - velocityContext.put("table", genTable); - velocityContext.put("dicts", getDicts(genTable)); - setMenuVelocityContext(velocityContext, genTable); - if (GenConstants.TPL_TREE.equals(tplCategory)) - { - setTreeVelocityContext(velocityContext, genTable); - } - if (GenConstants.TPL_SUB.equals(tplCategory)) - { - setSubVelocityContext(velocityContext, genTable); - } - return velocityContext; + VelocityContext velocityContext = new VelocityContext(); + velocityContext.put("tplCategory", genTable.getTplCategory()); + velocityContext.put("tableName", genTable.getTableName()); + velocityContext.put( + "functionName", StringUtils.isNotEmpty(functionName) ? functionName : "銆愯濉啓鍔熻兘鍚嶇О銆"); + velocityContext.put("ClassName", genTable.getClassName()); + velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); + velocityContext.put("moduleName", genTable.getModuleName()); + velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); + velocityContext.put("businessName", genTable.getBusinessName()); + velocityContext.put("basePackage", getPackagePrefix(packageName)); + velocityContext.put("packageName", packageName); + velocityContext.put("author", genTable.getFunctionAuthor()); + velocityContext.put("datetime", DateUtils.getDate()); + velocityContext.put("pkColumn", genTable.getPkColumn()); + velocityContext.put("importList", getImportList(genTable)); + velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); + velocityContext.put("columns", genTable.getColumns()); + velocityContext.put("table", genTable); + velocityContext.put("dicts", getDicts(genTable)); + setMenuVelocityContext(velocityContext, genTable); + if (GenConstants.TPL_TREE.equals(tplCategory)) { + setTreeVelocityContext(velocityContext, genTable); } - - public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String parentMenuId = getParentMenuId(paramsObj); - context.put("parentMenuId", parentMenuId); + if (GenConstants.TPL_SUB.equals(tplCategory)) { + setSubVelocityContext(velocityContext, genTable); } + return velocityContext; + } - public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String treeCode = getTreecode(paramsObj); - String treeParentCode = getTreeParentCode(paramsObj); - String treeName = getTreeName(paramsObj); + public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSON.parseObject(options); + String parentMenuId = getParentMenuId(paramsObj); + context.put("parentMenuId", parentMenuId); + } - context.put("treeCode", treeCode); - context.put("treeParentCode", treeParentCode); - context.put("treeName", treeName); - context.put("expandColumn", getExpandColumn(genTable)); - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { - context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); - } - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { - context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); - } + public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSON.parseObject(options); + String treeCode = getTreecode(paramsObj); + String treeParentCode = getTreeParentCode(paramsObj); + String treeName = getTreeName(paramsObj); + + context.put("treeCode", treeCode); + context.put("treeParentCode", treeParentCode); + context.put("treeName", treeName); + context.put("expandColumn", getExpandColumn(genTable)); + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + } + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { + context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); } + } - public static void setSubVelocityContext(VelocityContext context, GenTable genTable) - { - GenTable subTable = genTable.getSubTable(); - String subTableName = genTable.getSubTableName(); - String subTableFkName = genTable.getSubTableFkName(); - String subClassName = genTable.getSubTable().getClassName(); - String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); + public static void setSubVelocityContext(VelocityContext context, GenTable genTable) { + GenTable subTable = genTable.getSubTable(); + String subTableName = genTable.getSubTableName(); + String subTableFkName = genTable.getSubTableFkName(); + String subClassName = genTable.getSubTable().getClassName(); + String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); - context.put("subTable", subTable); - context.put("subTableName", subTableName); - context.put("subTableFkName", subTableFkName); - context.put("subTableFkClassName", subTableFkClassName); - context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); - context.put("subClassName", subClassName); - context.put("subclassName", StringUtils.uncapitalize(subClassName)); - context.put("subImportList", getImportList(genTable.getSubTable())); - } + context.put("subTable", subTable); + context.put("subTableName", subTableName); + context.put("subTableFkName", subTableFkName); + context.put("subTableFkClassName", subTableFkClassName); + context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); + context.put("subClassName", subClassName); + context.put("subclassName", StringUtils.uncapitalize(subClassName)); + context.put("subImportList", getImportList(genTable.getSubTable())); + } - /** - * 鑾峰彇妯℃澘淇℃伅 - * @param tplCategory 鐢熸垚鐨勬ā鏉 - * @param tplWebType 鍓嶇绫诲瀷 - * @return 妯℃澘鍒楄〃 - */ - public static List getTemplateList(String tplCategory, String tplWebType) - { - String useWebType = "vm/vue"; - if ("element-plus".equals(tplWebType)) - { - useWebType = "vm/vue/v3"; - } - List templates = new ArrayList(); - templates.add("vm/java/domain.java.vm"); - templates.add("vm/java/mapper.java.vm"); - templates.add("vm/java/service.java.vm"); - templates.add("vm/java/serviceImpl.java.vm"); - templates.add("vm/java/controller.java.vm"); - templates.add("vm/xml/mapper.xml.vm"); - templates.add("vm/sql/sql.vm"); - templates.add("vm/js/api.js.vm"); - if (GenConstants.TPL_CRUD.equals(tplCategory)) - { - templates.add(useWebType + "/index.vue.vm"); - } - else if (GenConstants.TPL_TREE.equals(tplCategory)) - { - templates.add(useWebType + "/index-tree.vue.vm"); - } - else if (GenConstants.TPL_SUB.equals(tplCategory)) - { - templates.add(useWebType + "/index.vue.vm"); - templates.add("vm/java/sub-domain.java.vm"); - } - return templates; + /** + * 鑾峰彇妯℃澘淇℃伅 + * + * @param tplCategory 鐢熸垚鐨勬ā鏉 + * @param tplWebType 鍓嶇绫诲瀷 + * @return 妯℃澘鍒楄〃 + */ + public static List getTemplateList(String tplCategory, String tplWebType) { + String useWebType = "vm/vue"; + if ("element-plus".equals(tplWebType)) { + useWebType = "vm/vue/v3"; + } + List templates = new ArrayList(); + templates.add("vm/java/domain.java.vm"); + templates.add("vm/java/mapper.java.vm"); + templates.add("vm/java/service.java.vm"); + templates.add("vm/java/serviceImpl.java.vm"); + templates.add("vm/java/controller.java.vm"); + templates.add("vm/xml/mapper.xml.vm"); + templates.add("vm/sql/sql.vm"); + templates.add("vm/js/api.js.vm"); + if (GenConstants.TPL_CRUD.equals(tplCategory)) { + templates.add(useWebType + "/index.vue.vm"); + } else if (GenConstants.TPL_TREE.equals(tplCategory)) { + templates.add(useWebType + "/index-tree.vue.vm"); + } else if (GenConstants.TPL_SUB.equals(tplCategory)) { + templates.add(useWebType + "/index.vue.vm"); + templates.add("vm/java/sub-domain.java.vm"); } + return templates; + } - /** - * 鑾峰彇鏂囦欢鍚 - */ - public static String getFileName(String template, GenTable genTable) - { - // 鏂囦欢鍚嶇О - String fileName = ""; - // 鍖呰矾寰 - String packageName = genTable.getPackageName(); - // 妯″潡鍚 - String moduleName = genTable.getModuleName(); - // 澶у啓绫诲悕 - String className = genTable.getClassName(); - // 涓氬姟鍚嶇О - String businessName = genTable.getBusinessName(); + /** 鑾峰彇鏂囦欢鍚 */ + public static String getFileName(String template, GenTable genTable) { + // 鏂囦欢鍚嶇О + String fileName = ""; + // 鍖呰矾寰 + String packageName = genTable.getPackageName(); + // 妯″潡鍚 + String moduleName = genTable.getModuleName(); + // 澶у啓绫诲悕 + String className = genTable.getClassName(); + // 涓氬姟鍚嶇О + String businessName = genTable.getBusinessName(); - String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); - String mybatisPath = MYBATIS_PATH + "/" + moduleName; - String vuePath = "vue"; + String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); + String mybatisPath = MYBATIS_PATH + "/" + moduleName; + String vuePath = "vue"; - if (template.contains("domain.java.vm")) - { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); - } - if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) - { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); - } - else if (template.contains("mapper.java.vm")) - { - fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); - } - else if (template.contains("service.java.vm")) - { - fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); - } - else if (template.contains("serviceImpl.java.vm")) - { - fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); - } - else if (template.contains("controller.java.vm")) - { - fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); - } - else if (template.contains("mapper.xml.vm")) - { - fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); - } - else if (template.contains("sql.vm")) - { - fileName = businessName + "Menu.sql"; - } - else if (template.contains("api.js.vm")) - { - fileName = StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); - } - else if (template.contains("index.vue.vm")) - { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); - } - else if (template.contains("index-tree.vue.vm")) - { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); - } - return fileName; + if (template.contains("domain.java.vm")) { + fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); } - - /** - * 鑾峰彇鍖呭墠缂 - * - * @param packageName 鍖呭悕绉 - * @return 鍖呭墠缂鍚嶇О - */ - public static String getPackagePrefix(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - return StringUtils.substring(packageName, 0, lastIndex); + if (template.contains("sub-domain.java.vm") + && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) { + fileName = + StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); + } else if (template.contains("mapper.java.vm")) { + fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); + } else if (template.contains("service.java.vm")) { + fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); + } else if (template.contains("serviceImpl.java.vm")) { + fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); + } else if (template.contains("controller.java.vm")) { + fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); + } else if (template.contains("mapper.xml.vm")) { + fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); + } else if (template.contains("sql.vm")) { + fileName = businessName + "Menu.sql"; + } else if (template.contains("api.js.vm")) { + fileName = StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); + } else if (template.contains("index.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + } else if (template.contains("index-tree.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); } + return fileName; + } - /** - * 鏍规嵁鍒楃被鍨嬭幏鍙栧鍏ュ寘 - * - * @param genTable 涓氬姟琛ㄥ璞 - * @return 杩斿洖闇瑕佸鍏ョ殑鍖呭垪琛 - */ - public static HashSet getImportList(GenTable genTable) - { - List columns = genTable.getColumns(); - GenTable subGenTable = genTable.getSubTable(); - HashSet importList = new HashSet(); - if (StringUtils.isNotNull(subGenTable)) - { - importList.add("java.util.List"); - } - for (GenTableColumn column : columns) - { - if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) - { - importList.add("java.util.Date"); - importList.add("com.fasterxml.jackson.annotation.JsonFormat"); - } - else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) - { - importList.add("java.math.BigDecimal"); - } - } - return importList; - } + /** + * 鑾峰彇鍖呭墠缂 + * + * @param packageName 鍖呭悕绉 + * @return 鍖呭墠缂鍚嶇О + */ + public static String getPackagePrefix(String packageName) { + int lastIndex = packageName.lastIndexOf("."); + return StringUtils.substring(packageName, 0, lastIndex); + } - /** - * 鏍规嵁鍒楃被鍨嬭幏鍙栧瓧鍏哥粍 - * - * @param genTable 涓氬姟琛ㄥ璞 - * @return 杩斿洖瀛楀吀缁 - */ - public static String getDicts(GenTable genTable) - { - List columns = genTable.getColumns(); - Set dicts = new HashSet(); - addDicts(dicts, columns); - if (StringUtils.isNotNull(genTable.getSubTable())) - { - List subColumns = genTable.getSubTable().getColumns(); - addDicts(dicts, subColumns); - } - return StringUtils.join(dicts, ", "); + /** + * 鏍规嵁鍒楃被鍨嬭幏鍙栧鍏ュ寘 + * + * @param genTable 涓氬姟琛ㄥ璞 + * @return 杩斿洖闇瑕佸鍏ョ殑鍖呭垪琛 + */ + public static HashSet getImportList(GenTable genTable) { + List columns = genTable.getColumns(); + GenTable subGenTable = genTable.getSubTable(); + HashSet importList = new HashSet(); + if (StringUtils.isNotNull(subGenTable)) { + importList.add("java.util.List"); + } + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) { + importList.add("java.util.Date"); + importList.add("com.fasterxml.jackson.annotation.JsonFormat"); + } else if (!column.isSuperColumn() + && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) { + importList.add("java.math.BigDecimal"); + } } + return importList; + } - /** - * 娣诲姞瀛楀吀鍒楄〃 - * - * @param dicts 瀛楀吀鍒楄〃 - * @param columns 鍒楅泦鍚 - */ - public static void addDicts(Set dicts, List columns) - { - for (GenTableColumn column : columns) - { - if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( - column.getHtmlType(), - new String[] { GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX })) - { - dicts.add("'" + column.getDictType() + "'"); - } - } + /** + * 鏍规嵁鍒楃被鍨嬭幏鍙栧瓧鍏哥粍 + * + * @param genTable 涓氬姟琛ㄥ璞 + * @return 杩斿洖瀛楀吀缁 + */ + public static String getDicts(GenTable genTable) { + List columns = genTable.getColumns(); + Set dicts = new HashSet(); + addDicts(dicts, columns); + if (StringUtils.isNotNull(genTable.getSubTable())) { + List subColumns = genTable.getSubTable().getColumns(); + addDicts(dicts, subColumns); } + return StringUtils.join(dicts, ", "); + } - /** - * 鑾峰彇鏉冮檺鍓嶇紑 - * - * @param moduleName 妯″潡鍚嶇О - * @param businessName 涓氬姟鍚嶇О - * @return 杩斿洖鏉冮檺鍓嶇紑 - */ - public static String getPermissionPrefix(String moduleName, String businessName) - { - return StringUtils.format("{}:{}", moduleName, businessName); + /** + * 娣诲姞瀛楀吀鍒楄〃 + * + * @param dicts 瀛楀吀鍒楄〃 + * @param columns 鍒楅泦鍚 + */ + public static void addDicts(Set dicts, List columns) { + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() + && StringUtils.isNotEmpty(column.getDictType()) + && StringUtils.equalsAny( + column.getHtmlType(), + new String[] { + GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX + })) { + dicts.add("'" + column.getDictType() + "'"); + } } + } - /** - * 鑾峰彇涓婄骇鑿滃崟ID瀛楁 - * - * @param paramsObj 鐢熸垚鍏朵粬閫夐」 - * @return 涓婄骇鑿滃崟ID瀛楁 - */ - public static String getParentMenuId(JSONObject paramsObj) - { - if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) - && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) - { - return paramsObj.getString(GenConstants.PARENT_MENU_ID); - } - return DEFAULT_PARENT_MENU_ID; + /** + * 鑾峰彇鏉冮檺鍓嶇紑 + * + * @param moduleName 妯″潡鍚嶇О + * @param businessName 涓氬姟鍚嶇О + * @return 杩斿洖鏉冮檺鍓嶇紑 + */ + public static String getPermissionPrefix(String moduleName, String businessName) { + return StringUtils.format("{}:{}", moduleName, businessName); + } + + /** + * 鑾峰彇涓婄骇鑿滃崟ID瀛楁 + * + * @param paramsObj 鐢熸垚鍏朵粬閫夐」 + * @return 涓婄骇鑿滃崟ID瀛楁 + */ + public static String getParentMenuId(JSONObject paramsObj) { + if (StringUtils.isNotEmpty(paramsObj) + && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) + && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) { + return paramsObj.getString(GenConstants.PARENT_MENU_ID); } + return DEFAULT_PARENT_MENU_ID; + } - /** - * 鑾峰彇鏍戠紪鐮 - * - * @param paramsObj 鐢熸垚鍏朵粬閫夐」 - * @return 鏍戠紪鐮 - */ - public static String getTreecode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); - } - return StringUtils.EMPTY; + /** + * 鑾峰彇鏍戠紪鐮 + * + * @param paramsObj 鐢熸垚鍏朵粬閫夐」 + * @return 鏍戠紪鐮 + */ + public static String getTreecode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_CODE)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); } + return StringUtils.EMPTY; + } - /** - * 鑾峰彇鏍戠埗缂栫爜 - * - * @param paramsObj 鐢熸垚鍏朵粬閫夐」 - * @return 鏍戠埗缂栫爜 - */ - public static String getTreeParentCode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); - } - return StringUtils.EMPTY; + /** + * 鑾峰彇鏍戠埗缂栫爜 + * + * @param paramsObj 鐢熸垚鍏朵粬閫夐」 + * @return 鏍戠埗缂栫爜 + */ + public static String getTreeParentCode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); } + return StringUtils.EMPTY; + } - /** - * 鑾峰彇鏍戝悕绉 - * - * @param paramsObj 鐢熸垚鍏朵粬閫夐」 - * @return 鏍戝悕绉 - */ - public static String getTreeName(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); - } - return StringUtils.EMPTY; + /** + * 鑾峰彇鏍戝悕绉 + * + * @param paramsObj 鐢熸垚鍏朵粬閫夐」 + * @return 鏍戝悕绉 + */ + public static String getTreeName(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); } + return StringUtils.EMPTY; + } - /** - * 鑾峰彇闇瑕佸湪鍝竴鍒椾笂闈㈡樉绀哄睍寮鎸夐挳 - * - * @param genTable 涓氬姟琛ㄥ璞 - * @return 灞曞紑鎸夐挳鍒楀簭鍙 - */ - public static int getExpandColumn(GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); - int num = 0; - for (GenTableColumn column : genTable.getColumns()) - { - if (column.isList()) - { - num++; - String columnName = column.getColumnName(); - if (columnName.equals(treeName)) - { - break; - } - } + /** + * 鑾峰彇闇瑕佸湪鍝竴鍒椾笂闈㈡樉绀哄睍寮鎸夐挳 + * + * @param genTable 涓氬姟琛ㄥ璞 + * @return 灞曞紑鎸夐挳鍒楀簭鍙 + */ + public static int getExpandColumn(GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSON.parseObject(options); + String treeName = paramsObj.getString(GenConstants.TREE_NAME); + int num = 0; + for (GenTableColumn column : genTable.getColumns()) { + if (column.isList()) { + num++; + String columnName = column.getColumnName(); + if (columnName.equals(treeName)) { + break; } - return num; + } } + return num; + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/RuoYiJobApplication.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/RuoYiJobApplication.java index a5869e623..c80dfed8e 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/RuoYiJobApplication.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/RuoYiJobApplication.java @@ -1,32 +1,31 @@ package com.ruoyi.job; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 瀹氭椂浠诲姟 - * + * * @author ruoyi */ @EnableCustomConfig -@EnableRyFeignClients +@EnableRyFeignClients @SpringBootApplication -public class RuoYiJobApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiJobApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 瀹氭椂浠诲姟妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +public class RuoYiJobApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiJobApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 瀹氭椂浠诲姟妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/config/ScheduleConfig.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/config/ScheduleConfig.java index ce86f2cce..1b9d6080d 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/config/ScheduleConfig.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/config/ScheduleConfig.java @@ -1,19 +1,19 @@ -//package com.ruoyi.job.config; +// package com.ruoyi.job.config; // -//import java.util.Properties; -//import javax.sql.DataSource; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.scheduling.quartz.SchedulerFactoryBean; +// import java.util.Properties; +// import javax.sql.DataSource; +// import org.springframework.context.annotation.Bean; +// import org.springframework.context.annotation.Configuration; +// import org.springframework.scheduling.quartz.SchedulerFactoryBean; // -///** +/// ** // * 瀹氭椂浠诲姟閰嶇疆锛堝崟鏈洪儴缃插缓璁垹闄ゆ绫诲拰qrtz鏁版嵁搴撹〃锛岄粯璁よ蛋鍐呭瓨浼氭渶楂樻晥锛 -// * +// * // * @author ruoyi // */ -//@Configuration -//public class ScheduleConfig -//{ +// @Configuration +// public class ScheduleConfig +// { // @Bean // public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) // { @@ -29,7 +29,8 @@ // prop.put("org.quartz.threadPool.threadCount", "20"); // prop.put("org.quartz.threadPool.threadPriority", "5"); // // JobStore閰嶇疆 -// prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.quartz.LocalDataSourceJobStore"); +// prop.put("org.quartz.jobStore.class", +// "org.springframework.scheduling.quartz.LocalDataSourceJobStore"); // // 闆嗙兢閰嶇疆 // prop.put("org.quartz.jobStore.isClustered", "true"); // prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); @@ -37,7 +38,8 @@ // prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); // // // sqlserver 鍚敤 -// // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); +// // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE +// LOCK_NAME = ?"); // prop.put("org.quartz.jobStore.misfireThreshold", "12000"); // prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); // factory.setQuartzProperties(prop); @@ -54,4 +56,4 @@ // // return factory; // } -//} +// } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java index 87f277577..9879599e7 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java @@ -1,17 +1,5 @@ package com.ruoyi.job.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.exception.job.TaskException; import com.ruoyi.common.core.utils.StringUtils; @@ -27,160 +15,128 @@ import com.ruoyi.job.domain.SysJob; import com.ruoyi.job.service.ISysJobService; import com.ruoyi.job.util.CronUtils; import com.ruoyi.job.util.ScheduleUtils; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 璋冨害浠诲姟淇℃伅鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/job") -public class SysJobController extends BaseController -{ - @Autowired - private ISysJobService jobService; +public class SysJobController extends BaseController { + @Autowired private ISysJobService jobService; - /** - * 鏌ヨ瀹氭椂浠诲姟鍒楄〃 - */ - @RequiresPermissions("monitor:job:list") - @GetMapping("/list") - public TableDataInfo list(SysJob sysJob) - { - startPage(); - List list = jobService.selectJobList(sysJob); - return getDataTable(list); - } + /** 鏌ヨ瀹氭椂浠诲姟鍒楄〃 */ + @RequiresPermissions("monitor:job:list") + @GetMapping("/list") + public TableDataInfo list(SysJob sysJob) { + startPage(); + List list = jobService.selectJobList(sysJob); + return getDataTable(list); + } - /** - * 瀵煎嚭瀹氭椂浠诲姟鍒楄〃 - */ - @RequiresPermissions("monitor:job:export") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysJob sysJob) - { - List list = jobService.selectJobList(sysJob); - ExcelUtil util = new ExcelUtil(SysJob.class); - util.exportExcel(response, list, "瀹氭椂浠诲姟"); - } + /** 瀵煎嚭瀹氭椂浠诲姟鍒楄〃 */ + @RequiresPermissions("monitor:job:export") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SysJob sysJob) { + List list = jobService.selectJobList(sysJob); + ExcelUtil util = new ExcelUtil(SysJob.class); + util.exportExcel(response, list, "瀹氭椂浠诲姟"); + } - /** - * 鑾峰彇瀹氭椂浠诲姟璇︾粏淇℃伅 - */ - @RequiresPermissions("monitor:job:query") - @GetMapping(value = "/{jobId}") - public AjaxResult getInfo(@PathVariable("jobId") Long jobId) - { - return success(jobService.selectJobById(jobId)); - } + /** 鑾峰彇瀹氭椂浠诲姟璇︾粏淇℃伅 */ + @RequiresPermissions("monitor:job:query") + @GetMapping(value = "/{jobId}") + public AjaxResult getInfo(@PathVariable("jobId") Long jobId) { + return success(jobService.selectJobById(jobId)); + } - /** - * 鏂板瀹氭椂浠诲姟 - */ - @RequiresPermissions("monitor:job:add") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException - { - if (!CronUtils.isValid(job.getCronExpression())) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛孋ron琛ㄨ揪寮忎笉姝g‘"); - } - else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'rmi'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS })) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'ldap(s)'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'http(s)'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆瀛樺湪杩濊"); - } - else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) - { - return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅湪鐧藉悕鍗曞唴"); - } - job.setCreateBy(SecurityUtils.getUsername()); - return toAjax(jobService.insertJob(job)); + /** 鏂板瀹氭椂浠诲姟 */ + @RequiresPermissions("monitor:job:add") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException { + if (!CronUtils.isValid(job.getCronExpression())) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛孋ron琛ㄨ揪寮忎笉姝g‘"); + } else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'rmi'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase( + job.getInvokeTarget(), new String[] {Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS})) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'ldap(s)'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase( + job.getInvokeTarget(), new String[] {Constants.HTTP, Constants.HTTPS})) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'http(s)'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆瀛樺湪杩濊"); + } else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) { + return error("鏂板浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅湪鐧藉悕鍗曞唴"); } + job.setCreateBy(SecurityUtils.getUsername()); + return toAjax(jobService.insertJob(job)); + } - /** - * 淇敼瀹氭椂浠诲姟 - */ - @RequiresPermissions("monitor:job:edit") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException - { - if (!CronUtils.isValid(job.getCronExpression())) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛孋ron琛ㄨ揪寮忎笉姝g‘"); - } - else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'rmi'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS })) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'ldap(s)'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'http(s)'璋冪敤"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆瀛樺湪杩濊"); - } - else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) - { - return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅湪鐧藉悕鍗曞唴"); - } - job.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(jobService.updateJob(job)); + /** 淇敼瀹氭椂浠诲姟 */ + @RequiresPermissions("monitor:job:edit") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException { + if (!CronUtils.isValid(job.getCronExpression())) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛孋ron琛ㄨ揪寮忎笉姝g‘"); + } else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'rmi'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase( + job.getInvokeTarget(), new String[] {Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS})) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'ldap(s)'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase( + job.getInvokeTarget(), new String[] {Constants.HTTP, Constants.HTTPS})) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅厑璁'http(s)'璋冪敤"); + } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆瀛樺湪杩濊"); + } else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) { + return error("淇敼浠诲姟'" + job.getJobName() + "'澶辫触锛岀洰鏍囧瓧绗︿覆涓嶅湪鐧藉悕鍗曞唴"); } + job.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(jobService.updateJob(job)); + } - /** - * 瀹氭椂浠诲姟鐘舵佷慨鏀 - */ - @RequiresPermissions("monitor:job:changeStatus") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException - { - SysJob newJob = jobService.selectJobById(job.getJobId()); - newJob.setStatus(job.getStatus()); - return toAjax(jobService.changeStatus(newJob)); - } + /** 瀹氭椂浠诲姟鐘舵佷慨鏀 */ + @RequiresPermissions("monitor:job:changeStatus") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException { + SysJob newJob = jobService.selectJobById(job.getJobId()); + newJob.setStatus(job.getStatus()); + return toAjax(jobService.changeStatus(newJob)); + } - /** - * 瀹氭椂浠诲姟绔嬪嵆鎵ц涓娆 - */ - @RequiresPermissions("monitor:job:changeStatus") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) - @PutMapping("/run") - public AjaxResult run(@RequestBody SysJob job) throws SchedulerException - { - boolean result = jobService.run(job); - return result ? success() : error("浠诲姟涓嶅瓨鍦ㄦ垨宸茶繃鏈燂紒"); - } + /** 瀹氭椂浠诲姟绔嬪嵆鎵ц涓娆 */ + @RequiresPermissions("monitor:job:changeStatus") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE) + @PutMapping("/run") + public AjaxResult run(@RequestBody SysJob job) throws SchedulerException { + boolean result = jobService.run(job); + return result ? success() : error("浠诲姟涓嶅瓨鍦ㄦ垨宸茶繃鏈燂紒"); + } - /** - * 鍒犻櫎瀹氭椂浠诲姟 - */ - @RequiresPermissions("monitor:job:remove") - @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.DELETE) - @DeleteMapping("/{jobIds}") - public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException - { - jobService.deleteJobByIds(jobIds); - return success(); - } + /** 鍒犻櫎瀹氭椂浠诲姟 */ + @RequiresPermissions("monitor:job:remove") + @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.DELETE) + @DeleteMapping("/{jobIds}") + public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException { + jobService.deleteJobByIds(jobIds); + return success(); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java index 735ee2cbd..fd497e7e1 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java @@ -1,14 +1,5 @@ package com.ruoyi.job.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -18,74 +9,66 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.job.domain.SysJobLog; import com.ruoyi.job.service.ISysJobLogService; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 璋冨害鏃ュ織鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/job/log") -public class SysJobLogController extends BaseController -{ - @Autowired - private ISysJobLogService jobLogService; +public class SysJobLogController extends BaseController { + @Autowired private ISysJobLogService jobLogService; - /** - * 鏌ヨ瀹氭椂浠诲姟璋冨害鏃ュ織鍒楄〃 - */ - @RequiresPermissions("monitor:job:list") - @GetMapping("/list") - public TableDataInfo list(SysJobLog sysJobLog) - { - startPage(); - List list = jobLogService.selectJobLogList(sysJobLog); - return getDataTable(list); - } + /** 鏌ヨ瀹氭椂浠诲姟璋冨害鏃ュ織鍒楄〃 */ + @RequiresPermissions("monitor:job:list") + @GetMapping("/list") + public TableDataInfo list(SysJobLog sysJobLog) { + startPage(); + List list = jobLogService.selectJobLogList(sysJobLog); + return getDataTable(list); + } - /** - * 瀵煎嚭瀹氭椂浠诲姟璋冨害鏃ュ織鍒楄〃 - */ - @RequiresPermissions("monitor:job:export") - @Log(title = "浠诲姟璋冨害鏃ュ織", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysJobLog sysJobLog) - { - List list = jobLogService.selectJobLogList(sysJobLog); - ExcelUtil util = new ExcelUtil(SysJobLog.class); - util.exportExcel(response, list, "璋冨害鏃ュ織"); - } + /** 瀵煎嚭瀹氭椂浠诲姟璋冨害鏃ュ織鍒楄〃 */ + @RequiresPermissions("monitor:job:export") + @Log(title = "浠诲姟璋冨害鏃ュ織", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SysJobLog sysJobLog) { + List list = jobLogService.selectJobLogList(sysJobLog); + ExcelUtil util = new ExcelUtil(SysJobLog.class); + util.exportExcel(response, list, "璋冨害鏃ュ織"); + } - /** - * 鏍规嵁璋冨害缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("monitor:job:query") - @GetMapping(value = "/{jobLogId}") - public AjaxResult getInfo(@PathVariable Long jobLogId) - { - return success(jobLogService.selectJobLogById(jobLogId)); - } + /** 鏍规嵁璋冨害缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("monitor:job:query") + @GetMapping(value = "/{jobLogId}") + public AjaxResult getInfo(@PathVariable Long jobLogId) { + return success(jobLogService.selectJobLogById(jobLogId)); + } - /** - * 鍒犻櫎瀹氭椂浠诲姟璋冨害鏃ュ織 - */ - @RequiresPermissions("monitor:job:remove") - @Log(title = "瀹氭椂浠诲姟璋冨害鏃ュ織", businessType = BusinessType.DELETE) - @DeleteMapping("/{jobLogIds}") - public AjaxResult remove(@PathVariable Long[] jobLogIds) - { - return toAjax(jobLogService.deleteJobLogByIds(jobLogIds)); - } + /** 鍒犻櫎瀹氭椂浠诲姟璋冨害鏃ュ織 */ + @RequiresPermissions("monitor:job:remove") + @Log(title = "瀹氭椂浠诲姟璋冨害鏃ュ織", businessType = BusinessType.DELETE) + @DeleteMapping("/{jobLogIds}") + public AjaxResult remove(@PathVariable Long[] jobLogIds) { + return toAjax(jobLogService.deleteJobLogByIds(jobLogIds)); + } - /** - * 娓呯┖瀹氭椂浠诲姟璋冨害鏃ュ織 - */ - @RequiresPermissions("monitor:job:remove") - @Log(title = "璋冨害鏃ュ織", businessType = BusinessType.CLEAN) - @DeleteMapping("/clean") - public AjaxResult clean() - { - jobLogService.cleanJobLog(); - return success(); - } + /** 娓呯┖瀹氭椂浠诲姟璋冨害鏃ュ織 */ + @RequiresPermissions("monitor:job:remove") + @Log(title = "璋冨害鏃ュ織", businessType = BusinessType.CLEAN) + @DeleteMapping("/clean") + public AjaxResult clean() { + jobLogService.cleanJobLog(); + return success(); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java index 7877b6870..0863e356e 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java @@ -1,10 +1,5 @@ package com.ruoyi.job.domain; -import java.util.Date; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; @@ -12,160 +7,146 @@ import com.ruoyi.common.core.constant.ScheduleConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.job.util.CronUtils; +import java.util.Date; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; /** * 瀹氭椂浠诲姟璋冨害琛 sys_job - * + * * @author ruoyi */ -public class SysJob extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 浠诲姟ID */ - @Excel(name = "浠诲姟搴忓彿", cellType = ColumnType.NUMERIC) - private Long jobId; - - /** 浠诲姟鍚嶇О */ - @Excel(name = "浠诲姟鍚嶇О") - private String jobName; - - /** 浠诲姟缁勫悕 */ - @Excel(name = "浠诲姟缁勫悕") - private String jobGroup; - - /** 璋冪敤鐩爣瀛楃涓 */ - @Excel(name = "璋冪敤鐩爣瀛楃涓") - private String invokeTarget; - - /** cron鎵ц琛ㄨ揪寮 */ - @Excel(name = "鎵ц琛ㄨ揪寮 ") - private String cronExpression; - - /** cron璁″垝绛栫暐 */ - @Excel(name = "璁″垝绛栫暐 ", readConverterExp = "0=榛樿,1=绔嬪嵆瑙﹀彂鎵ц,2=瑙﹀彂涓娆℃墽琛,3=涓嶈Е鍙戠珛鍗虫墽琛") - private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT; - - /** 鏄惁骞跺彂鎵ц锛0鍏佽 1绂佹锛 */ - @Excel(name = "骞跺彂鎵ц", readConverterExp = "0=鍏佽,1=绂佹") - private String concurrent; - - /** 浠诲姟鐘舵侊紙0姝e父 1鏆傚仠锛 */ - @Excel(name = "浠诲姟鐘舵", readConverterExp = "0=姝e父,1=鏆傚仠") - private String status; - - public Long getJobId() - { - return jobId; - } - - public void setJobId(Long jobId) - { - this.jobId = jobId; - } - - @NotBlank(message = "浠诲姟鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 64, message = "浠诲姟鍚嶇О涓嶈兘瓒呰繃64涓瓧绗") - public String getJobName() - { - return jobName; - } - - public void setJobName(String jobName) - { - this.jobName = jobName; - } - - public String getJobGroup() - { - return jobGroup; - } - - public void setJobGroup(String jobGroup) - { - this.jobGroup = jobGroup; - } - - @NotBlank(message = "璋冪敤鐩爣瀛楃涓蹭笉鑳戒负绌") - @Size(min = 0, max = 500, message = "璋冪敤鐩爣瀛楃涓查暱搴︿笉鑳借秴杩500涓瓧绗") - public String getInvokeTarget() - { - return invokeTarget; - } - - public void setInvokeTarget(String invokeTarget) - { - this.invokeTarget = invokeTarget; - } - - @NotBlank(message = "Cron鎵ц琛ㄨ揪寮忎笉鑳戒负绌") - @Size(min = 0, max = 255, message = "Cron鎵ц琛ㄨ揪寮忎笉鑳借秴杩255涓瓧绗") - public String getCronExpression() - { - return cronExpression; - } - - public void setCronExpression(String cronExpression) - { - this.cronExpression = cronExpression; - } - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - public Date getNextValidTime() - { - if (StringUtils.isNotEmpty(cronExpression)) - { - return CronUtils.getNextExecution(cronExpression); - } - return null; - } - - public String getMisfirePolicy() - { - return misfirePolicy; - } - - public void setMisfirePolicy(String misfirePolicy) - { - this.misfirePolicy = misfirePolicy; - } - - public String getConcurrent() - { - return concurrent; - } - - public void setConcurrent(String concurrent) - { - this.concurrent = concurrent; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("jobId", getJobId()) - .append("jobName", getJobName()) - .append("jobGroup", getJobGroup()) - .append("cronExpression", getCronExpression()) - .append("nextValidTime", getNextValidTime()) - .append("misfirePolicy", getMisfirePolicy()) - .append("concurrent", getConcurrent()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} \ No newline at end of file +public class SysJob extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 浠诲姟ID */ + @Excel(name = "浠诲姟搴忓彿", cellType = ColumnType.NUMERIC) + private Long jobId; + + /** 浠诲姟鍚嶇О */ + @Excel(name = "浠诲姟鍚嶇О") + private String jobName; + + /** 浠诲姟缁勫悕 */ + @Excel(name = "浠诲姟缁勫悕") + private String jobGroup; + + /** 璋冪敤鐩爣瀛楃涓 */ + @Excel(name = "璋冪敤鐩爣瀛楃涓") + private String invokeTarget; + + /** cron鎵ц琛ㄨ揪寮 */ + @Excel(name = "鎵ц琛ㄨ揪寮 ") + private String cronExpression; + + /** cron璁″垝绛栫暐 */ + @Excel(name = "璁″垝绛栫暐 ", readConverterExp = "0=榛樿,1=绔嬪嵆瑙﹀彂鎵ц,2=瑙﹀彂涓娆℃墽琛,3=涓嶈Е鍙戠珛鍗虫墽琛") + private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT; + + /** 鏄惁骞跺彂鎵ц锛0鍏佽 1绂佹锛 */ + @Excel(name = "骞跺彂鎵ц", readConverterExp = "0=鍏佽,1=绂佹") + private String concurrent; + + /** 浠诲姟鐘舵侊紙0姝e父 1鏆傚仠锛 */ + @Excel(name = "浠诲姟鐘舵", readConverterExp = "0=姝e父,1=鏆傚仠") + private String status; + + public Long getJobId() { + return jobId; + } + + public void setJobId(Long jobId) { + this.jobId = jobId; + } + + @NotBlank(message = "浠诲姟鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 64, message = "浠诲姟鍚嶇О涓嶈兘瓒呰繃64涓瓧绗") + public String getJobName() { + return jobName; + } + + public void setJobName(String jobName) { + this.jobName = jobName; + } + + public String getJobGroup() { + return jobGroup; + } + + public void setJobGroup(String jobGroup) { + this.jobGroup = jobGroup; + } + + @NotBlank(message = "璋冪敤鐩爣瀛楃涓蹭笉鑳戒负绌") + @Size(min = 0, max = 500, message = "璋冪敤鐩爣瀛楃涓查暱搴︿笉鑳借秴杩500涓瓧绗") + public String getInvokeTarget() { + return invokeTarget; + } + + public void setInvokeTarget(String invokeTarget) { + this.invokeTarget = invokeTarget; + } + + @NotBlank(message = "Cron鎵ц琛ㄨ揪寮忎笉鑳戒负绌") + @Size(min = 0, max = 255, message = "Cron鎵ц琛ㄨ揪寮忎笉鑳借秴杩255涓瓧绗") + public String getCronExpression() { + return cronExpression; + } + + public void setCronExpression(String cronExpression) { + this.cronExpression = cronExpression; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date getNextValidTime() { + if (StringUtils.isNotEmpty(cronExpression)) { + return CronUtils.getNextExecution(cronExpression); + } + return null; + } + + public String getMisfirePolicy() { + return misfirePolicy; + } + + public void setMisfirePolicy(String misfirePolicy) { + this.misfirePolicy = misfirePolicy; + } + + public String getConcurrent() { + return concurrent; + } + + public void setConcurrent(String concurrent) { + this.concurrent = concurrent; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("jobId", getJobId()) + .append("jobName", getJobName()) + .append("jobGroup", getJobGroup()) + .append("cronExpression", getCronExpression()) + .append("nextValidTime", getNextValidTime()) + .append("misfirePolicy", getMisfirePolicy()) + .append("concurrent", getConcurrent()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJobLog.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJobLog.java index ec863c9ae..3b95e128a 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJobLog.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJobLog.java @@ -1,155 +1,136 @@ package com.ruoyi.job.domain; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.Date; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 瀹氭椂浠诲姟璋冨害鏃ュ織琛 sys_job_log - * + * * @author ruoyi */ -public class SysJobLog extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** ID */ - @Excel(name = "鏃ュ織搴忓彿") - private Long jobLogId; - - /** 浠诲姟鍚嶇О */ - @Excel(name = "浠诲姟鍚嶇О") - private String jobName; - - /** 浠诲姟缁勫悕 */ - @Excel(name = "浠诲姟缁勫悕") - private String jobGroup; - - /** 璋冪敤鐩爣瀛楃涓 */ - @Excel(name = "璋冪敤鐩爣瀛楃涓") - private String invokeTarget; - - /** 鏃ュ織淇℃伅 */ - @Excel(name = "鏃ュ織淇℃伅") - private String jobMessage; - - /** 鎵ц鐘舵侊紙0姝e父 1澶辫触锛 */ - @Excel(name = "鎵ц鐘舵", readConverterExp = "0=姝e父,1=澶辫触") - private String status; - - /** 寮傚父淇℃伅 */ - @Excel(name = "寮傚父淇℃伅") - private String exceptionInfo; - - /** 寮濮嬫椂闂 */ - private Date startTime; - - /** 鍋滄鏃堕棿 */ - private Date stopTime; - - public Long getJobLogId() - { - return jobLogId; - } - - public void setJobLogId(Long jobLogId) - { - this.jobLogId = jobLogId; - } - - public String getJobName() - { - return jobName; - } - - public void setJobName(String jobName) - { - this.jobName = jobName; - } - - public String getJobGroup() - { - return jobGroup; - } - - public void setJobGroup(String jobGroup) - { - this.jobGroup = jobGroup; - } - - public String getInvokeTarget() - { - return invokeTarget; - } - - public void setInvokeTarget(String invokeTarget) - { - this.invokeTarget = invokeTarget; - } - - public String getJobMessage() - { - return jobMessage; - } - - public void setJobMessage(String jobMessage) - { - this.jobMessage = jobMessage; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getExceptionInfo() - { - return exceptionInfo; - } - - public void setExceptionInfo(String exceptionInfo) - { - this.exceptionInfo = exceptionInfo; - } - - public Date getStartTime() - { - return startTime; - } - - public void setStartTime(Date startTime) - { - this.startTime = startTime; - } - - public Date getStopTime() - { - return stopTime; - } - - public void setStopTime(Date stopTime) - { - this.stopTime = stopTime; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("jobLogId", getJobLogId()) - .append("jobName", getJobName()) - .append("jobGroup", getJobGroup()) - .append("jobMessage", getJobMessage()) - .append("status", getStatus()) - .append("exceptionInfo", getExceptionInfo()) - .append("startTime", getStartTime()) - .append("stopTime", getStopTime()) - .toString(); - } +public class SysJobLog extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "鏃ュ織搴忓彿") + private Long jobLogId; + + /** 浠诲姟鍚嶇О */ + @Excel(name = "浠诲姟鍚嶇О") + private String jobName; + + /** 浠诲姟缁勫悕 */ + @Excel(name = "浠诲姟缁勫悕") + private String jobGroup; + + /** 璋冪敤鐩爣瀛楃涓 */ + @Excel(name = "璋冪敤鐩爣瀛楃涓") + private String invokeTarget; + + /** 鏃ュ織淇℃伅 */ + @Excel(name = "鏃ュ織淇℃伅") + private String jobMessage; + + /** 鎵ц鐘舵侊紙0姝e父 1澶辫触锛 */ + @Excel(name = "鎵ц鐘舵", readConverterExp = "0=姝e父,1=澶辫触") + private String status; + + /** 寮傚父淇℃伅 */ + @Excel(name = "寮傚父淇℃伅") + private String exceptionInfo; + + /** 寮濮嬫椂闂 */ + private Date startTime; + + /** 鍋滄鏃堕棿 */ + private Date stopTime; + + public Long getJobLogId() { + return jobLogId; + } + + public void setJobLogId(Long jobLogId) { + this.jobLogId = jobLogId; + } + + public String getJobName() { + return jobName; + } + + public void setJobName(String jobName) { + this.jobName = jobName; + } + + public String getJobGroup() { + return jobGroup; + } + + public void setJobGroup(String jobGroup) { + this.jobGroup = jobGroup; + } + + public String getInvokeTarget() { + return invokeTarget; + } + + public void setInvokeTarget(String invokeTarget) { + this.invokeTarget = invokeTarget; + } + + public String getJobMessage() { + return jobMessage; + } + + public void setJobMessage(String jobMessage) { + this.jobMessage = jobMessage; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getExceptionInfo() { + return exceptionInfo; + } + + public void setExceptionInfo(String exceptionInfo) { + this.exceptionInfo = exceptionInfo; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getStopTime() { + return stopTime; + } + + public void setStopTime(Date stopTime) { + this.stopTime = stopTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("jobLogId", getJobLogId()) + .append("jobName", getJobName()) + .append("jobGroup", getJobGroup()) + .append("jobMessage", getJobMessage()) + .append("status", getStatus()) + .append("exceptionInfo", getExceptionInfo()) + .append("startTime", getStartTime()) + .append("stopTime", getStopTime()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java index 742eba54a..dce96614b 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java @@ -1,64 +1,61 @@ package com.ruoyi.job.mapper; -import java.util.List; import com.ruoyi.job.domain.SysJobLog; +import java.util.List; /** * 璋冨害浠诲姟鏃ュ織淇℃伅 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysJobLogMapper -{ - /** - * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 - */ - public List selectJobLogList(SysJobLog jobLog); - - /** - * 鏌ヨ鎵鏈夎皟搴︿换鍔℃棩蹇 - * - * @return 璋冨害浠诲姟鏃ュ織鍒楄〃 - */ - public List selectJobLogAll(); - - /** - * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 - * - * @param jobLogId 璋冨害浠诲姟鏃ュ織ID - * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 - */ - public SysJobLog selectJobLogById(Long jobLogId); - - /** - * 鏂板浠诲姟鏃ュ織 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - * @return 缁撴灉 - */ - public int insertJobLog(SysJobLog jobLog); - - /** - * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 - * - * @param logIds 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteJobLogByIds(Long[] logIds); - - /** - * 鍒犻櫎浠诲姟鏃ュ織 - * - * @param jobId 璋冨害鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteJobLogById(Long jobId); - - /** - * 娓呯┖浠诲姟鏃ュ織 - */ - public void cleanJobLog(); +public interface SysJobLogMapper { + /** + * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 + */ + public List selectJobLogList(SysJobLog jobLog); + + /** + * 鏌ヨ鎵鏈夎皟搴︿换鍔℃棩蹇 + * + * @return 璋冨害浠诲姟鏃ュ織鍒楄〃 + */ + public List selectJobLogAll(); + + /** + * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 + * + * @param jobLogId 璋冨害浠诲姟鏃ュ織ID + * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 + */ + public SysJobLog selectJobLogById(Long jobLogId); + + /** + * 鏂板浠诲姟鏃ュ織 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + * @return 缁撴灉 + */ + public int insertJobLog(SysJobLog jobLog); + + /** + * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 + * + * @param logIds 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteJobLogByIds(Long[] logIds); + + /** + * 鍒犻櫎浠诲姟鏃ュ織 + * + * @param jobId 璋冨害鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteJobLogById(Long jobId); + + /** 娓呯┖浠诲姟鏃ュ織 */ + public void cleanJobLog(); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java index 352fa8749..120819eb8 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java @@ -1,67 +1,66 @@ package com.ruoyi.job.mapper; -import java.util.List; import com.ruoyi.job.domain.SysJob; +import java.util.List; /** * 璋冨害浠诲姟淇℃伅 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysJobMapper -{ - /** - * 鏌ヨ璋冨害浠诲姟鏃ュ織闆嗗悎 - * - * @param job 璋冨害淇℃伅 - * @return 鎿嶄綔鏃ュ織闆嗗悎 - */ - public List selectJobList(SysJob job); +public interface SysJobMapper { + /** + * 鏌ヨ璋冨害浠诲姟鏃ュ織闆嗗悎 + * + * @param job 璋冨害淇℃伅 + * @return 鎿嶄綔鏃ュ織闆嗗悎 + */ + public List selectJobList(SysJob job); - /** - * 鏌ヨ鎵鏈夎皟搴︿换鍔 - * - * @return 璋冨害浠诲姟鍒楄〃 - */ - public List selectJobAll(); + /** + * 鏌ヨ鎵鏈夎皟搴︿换鍔 + * + * @return 璋冨害浠诲姟鍒楄〃 + */ + public List selectJobAll(); - /** - * 閫氳繃璋冨害ID鏌ヨ璋冨害浠诲姟淇℃伅 - * - * @param jobId 璋冨害ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysJob selectJobById(Long jobId); + /** + * 閫氳繃璋冨害ID鏌ヨ璋冨害浠诲姟淇℃伅 + * + * @param jobId 璋冨害ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysJob selectJobById(Long jobId); - /** - * 閫氳繃璋冨害ID鍒犻櫎璋冨害浠诲姟淇℃伅 - * - * @param jobId 璋冨害ID - * @return 缁撴灉 - */ - public int deleteJobById(Long jobId); + /** + * 閫氳繃璋冨害ID鍒犻櫎璋冨害浠诲姟淇℃伅 + * + * @param jobId 璋冨害ID + * @return 缁撴灉 + */ + public int deleteJobById(Long jobId); - /** - * 鎵归噺鍒犻櫎璋冨害浠诲姟淇℃伅 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteJobByIds(Long[] ids); + /** + * 鎵归噺鍒犻櫎璋冨害浠诲姟淇℃伅 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteJobByIds(Long[] ids); - /** - * 淇敼璋冨害浠诲姟淇℃伅 - * - * @param job 璋冨害浠诲姟淇℃伅 - * @return 缁撴灉 - */ - public int updateJob(SysJob job); + /** + * 淇敼璋冨害浠诲姟淇℃伅 + * + * @param job 璋冨害浠诲姟淇℃伅 + * @return 缁撴灉 + */ + public int updateJob(SysJob job); - /** - * 鏂板璋冨害浠诲姟淇℃伅 - * - * @param job 璋冨害浠诲姟淇℃伅 - * @return 缁撴灉 - */ - public int insertJob(SysJob job); + /** + * 鏂板璋冨害浠诲姟淇℃伅 + * + * @param job 璋冨害浠诲姟淇℃伅 + * @return 缁撴灉 + */ + public int insertJob(SysJob job); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java index 0e804e203..debb22552 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java @@ -1,56 +1,53 @@ package com.ruoyi.job.service; -import java.util.List; import com.ruoyi.job.domain.SysJobLog; +import java.util.List; /** * 瀹氭椂浠诲姟璋冨害鏃ュ織淇℃伅淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysJobLogService -{ - /** - * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 - */ - public List selectJobLogList(SysJobLog jobLog); +public interface ISysJobLogService { + /** + * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 + */ + public List selectJobLogList(SysJobLog jobLog); - /** - * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 - * - * @param jobLogId 璋冨害浠诲姟鏃ュ織ID - * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 - */ - public SysJobLog selectJobLogById(Long jobLogId); + /** + * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 + * + * @param jobLogId 璋冨害浠诲姟鏃ュ織ID + * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 + */ + public SysJobLog selectJobLogById(Long jobLogId); - /** - * 鏂板浠诲姟鏃ュ織 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - */ - public void addJobLog(SysJobLog jobLog); + /** + * 鏂板浠诲姟鏃ュ織 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + */ + public void addJobLog(SysJobLog jobLog); - /** - * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 - * - * @param logIds 闇瑕佸垹闄ょ殑鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteJobLogByIds(Long[] logIds); + /** + * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 + * + * @param logIds 闇瑕佸垹闄ょ殑鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteJobLogByIds(Long[] logIds); - /** - * 鍒犻櫎浠诲姟鏃ュ織 - * - * @param jobId 璋冨害鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteJobLogById(Long jobId); + /** + * 鍒犻櫎浠诲姟鏃ュ織 + * + * @param jobId 璋冨害鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteJobLogById(Long jobId); - /** - * 娓呯┖浠诲姟鏃ュ織 - */ - public void cleanJobLog(); + /** 娓呯┖浠诲姟鏃ュ織 */ + public void cleanJobLog(); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java index ac43c718c..d405bd6ed 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java @@ -1,102 +1,101 @@ package com.ruoyi.job.service; -import java.util.List; -import org.quartz.SchedulerException; import com.ruoyi.common.core.exception.job.TaskException; import com.ruoyi.job.domain.SysJob; +import java.util.List; +import org.quartz.SchedulerException; /** * 瀹氭椂浠诲姟璋冨害淇℃伅淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysJobService -{ - /** - * 鑾峰彇quartz璋冨害鍣ㄧ殑璁″垝浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 璋冨害浠诲姟闆嗗悎 - */ - public List selectJobList(SysJob job); +public interface ISysJobService { + /** + * 鑾峰彇quartz璋冨害鍣ㄧ殑璁″垝浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 璋冨害浠诲姟闆嗗悎 + */ + public List selectJobList(SysJob job); - /** - * 閫氳繃璋冨害浠诲姟ID鏌ヨ璋冨害淇℃伅 - * - * @param jobId 璋冨害浠诲姟ID - * @return 璋冨害浠诲姟瀵硅薄淇℃伅 - */ - public SysJob selectJobById(Long jobId); + /** + * 閫氳繃璋冨害浠诲姟ID鏌ヨ璋冨害淇℃伅 + * + * @param jobId 璋冨害浠诲姟ID + * @return 璋冨害浠诲姟瀵硅薄淇℃伅 + */ + public SysJob selectJobById(Long jobId); - /** - * 鏆傚仠浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int pauseJob(SysJob job) throws SchedulerException; + /** + * 鏆傚仠浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int pauseJob(SysJob job) throws SchedulerException; - /** - * 鎭㈠浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int resumeJob(SysJob job) throws SchedulerException; + /** + * 鎭㈠浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int resumeJob(SysJob job) throws SchedulerException; - /** - * 鍒犻櫎浠诲姟鍚庯紝鎵瀵瑰簲鐨則rigger涔熷皢琚垹闄 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int deleteJob(SysJob job) throws SchedulerException; + /** + * 鍒犻櫎浠诲姟鍚庯紝鎵瀵瑰簲鐨則rigger涔熷皢琚垹闄 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int deleteJob(SysJob job) throws SchedulerException; - /** - * 鎵归噺鍒犻櫎璋冨害淇℃伅 - * - * @param jobIds 闇瑕佸垹闄ょ殑浠诲姟ID - * @return 缁撴灉 - */ - public void deleteJobByIds(Long[] jobIds) throws SchedulerException; + /** + * 鎵归噺鍒犻櫎璋冨害淇℃伅 + * + * @param jobIds 闇瑕佸垹闄ょ殑浠诲姟ID + * @return 缁撴灉 + */ + public void deleteJobByIds(Long[] jobIds) throws SchedulerException; - /** - * 浠诲姟璋冨害鐘舵佷慨鏀 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int changeStatus(SysJob job) throws SchedulerException; + /** + * 浠诲姟璋冨害鐘舵佷慨鏀 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int changeStatus(SysJob job) throws SchedulerException; - /** - * 绔嬪嵆杩愯浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public boolean run(SysJob job) throws SchedulerException; + /** + * 绔嬪嵆杩愯浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public boolean run(SysJob job) throws SchedulerException; - /** - * 鏂板浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int insertJob(SysJob job) throws SchedulerException, TaskException; + /** + * 鏂板浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int insertJob(SysJob job) throws SchedulerException, TaskException; - /** - * 鏇存柊浠诲姟 - * - * @param job 璋冨害淇℃伅 - * @return 缁撴灉 - */ - public int updateJob(SysJob job) throws SchedulerException, TaskException; + /** + * 鏇存柊浠诲姟 + * + * @param job 璋冨害淇℃伅 + * @return 缁撴灉 + */ + public int updateJob(SysJob job) throws SchedulerException, TaskException; - /** - * 鏍¢獙cron琛ㄨ揪寮忔槸鍚︽湁鏁 - * - * @param cronExpression 琛ㄨ揪寮 - * @return 缁撴灉 - */ - public boolean checkCronExpressionIsValid(String cronExpression); -} \ No newline at end of file + /** + * 鏍¢獙cron琛ㄨ揪寮忔槸鍚︽湁鏁 + * + * @param cronExpression 琛ㄨ揪寮 + * @return 缁撴灉 + */ + public boolean checkCronExpressionIsValid(String cronExpression); +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java index 0886f3104..576614d7d 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java @@ -1,86 +1,76 @@ package com.ruoyi.job.service; +import com.ruoyi.job.domain.SysJobLog; +import com.ruoyi.job.mapper.SysJobLogMapper; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.job.domain.SysJobLog; -import com.ruoyi.job.mapper.SysJobLogMapper; /** * 瀹氭椂浠诲姟璋冨害鏃ュ織淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ @Service -public class SysJobLogServiceImpl implements ISysJobLogService -{ - @Autowired - private SysJobLogMapper jobLogMapper; +public class SysJobLogServiceImpl implements ISysJobLogService { + @Autowired private SysJobLogMapper jobLogMapper; - /** - * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 - */ - @Override - public List selectJobLogList(SysJobLog jobLog) - { - return jobLogMapper.selectJobLogList(jobLog); - } + /** + * 鑾峰彇quartz璋冨害鍣ㄦ棩蹇楃殑璁″垝浠诲姟 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + * @return 璋冨害浠诲姟鏃ュ織闆嗗悎 + */ + @Override + public List selectJobLogList(SysJobLog jobLog) { + return jobLogMapper.selectJobLogList(jobLog); + } - /** - * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 - * - * @param jobLogId 璋冨害浠诲姟鏃ュ織ID - * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 - */ - @Override - public SysJobLog selectJobLogById(Long jobLogId) - { - return jobLogMapper.selectJobLogById(jobLogId); - } + /** + * 閫氳繃璋冨害浠诲姟鏃ュ織ID鏌ヨ璋冨害淇℃伅 + * + * @param jobLogId 璋冨害浠诲姟鏃ュ織ID + * @return 璋冨害浠诲姟鏃ュ織瀵硅薄淇℃伅 + */ + @Override + public SysJobLog selectJobLogById(Long jobLogId) { + return jobLogMapper.selectJobLogById(jobLogId); + } - /** - * 鏂板浠诲姟鏃ュ織 - * - * @param jobLog 璋冨害鏃ュ織淇℃伅 - */ - @Override - public void addJobLog(SysJobLog jobLog) - { - jobLogMapper.insertJobLog(jobLog); - } + /** + * 鏂板浠诲姟鏃ュ織 + * + * @param jobLog 璋冨害鏃ュ織淇℃伅 + */ + @Override + public void addJobLog(SysJobLog jobLog) { + jobLogMapper.insertJobLog(jobLog); + } - /** - * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 - * - * @param logIds 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int deleteJobLogByIds(Long[] logIds) - { - return jobLogMapper.deleteJobLogByIds(logIds); - } + /** + * 鎵归噺鍒犻櫎璋冨害鏃ュ織淇℃伅 + * + * @param logIds 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteJobLogByIds(Long[] logIds) { + return jobLogMapper.deleteJobLogByIds(logIds); + } - /** - * 鍒犻櫎浠诲姟鏃ュ織 - * - * @param jobId 璋冨害鏃ュ織ID - */ - @Override - public int deleteJobLogById(Long jobId) - { - return jobLogMapper.deleteJobLogById(jobId); - } + /** + * 鍒犻櫎浠诲姟鏃ュ織 + * + * @param jobId 璋冨害鏃ュ織ID + */ + @Override + public int deleteJobLogById(Long jobId) { + return jobLogMapper.deleteJobLogById(jobId); + } - /** - * 娓呯┖浠诲姟鏃ュ織 - */ - @Override - public void cleanJobLog() - { - jobLogMapper.cleanJobLog(); - } + /** 娓呯┖浠诲姟鏃ュ織 */ + @Override + public void cleanJobLog() { + jobLogMapper.cleanJobLog(); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java index 61bb2b2f1..12b224287 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java @@ -1,5 +1,11 @@ package com.ruoyi.job.service; +import com.ruoyi.common.core.constant.ScheduleConstants; +import com.ruoyi.common.core.exception.job.TaskException; +import com.ruoyi.job.domain.SysJob; +import com.ruoyi.job.mapper.SysJobMapper; +import com.ruoyi.job.util.CronUtils; +import com.ruoyi.job.util.ScheduleUtils; import java.util.List; import javax.annotation.PostConstruct; import org.quartz.JobDataMap; @@ -9,252 +15,217 @@ import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.ruoyi.common.core.constant.ScheduleConstants; -import com.ruoyi.common.core.exception.job.TaskException; -import com.ruoyi.job.domain.SysJob; -import com.ruoyi.job.mapper.SysJobMapper; -import com.ruoyi.job.util.CronUtils; -import com.ruoyi.job.util.ScheduleUtils; /** * 瀹氭椂浠诲姟璋冨害淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ @Service -public class SysJobServiceImpl implements ISysJobService -{ - @Autowired - private Scheduler scheduler; - - @Autowired - private SysJobMapper jobMapper; - - /** - * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧畾鏃跺櫒 涓昏鏄槻姝㈡墜鍔ㄤ慨鏀规暟鎹簱瀵艰嚧鏈悓姝ュ埌瀹氭椂浠诲姟澶勭悊锛堟敞锛氫笉鑳芥墜鍔ㄤ慨鏀规暟鎹簱ID鍜屼换鍔$粍鍚嶏紝鍚﹀垯浼氬鑷磋剰鏁版嵁锛 - */ - @PostConstruct - public void init() throws SchedulerException, TaskException - { - scheduler.clear(); - List jobList = jobMapper.selectJobAll(); - for (SysJob job : jobList) - { - ScheduleUtils.createScheduleJob(scheduler, job); - } +public class SysJobServiceImpl implements ISysJobService { + @Autowired private Scheduler scheduler; + + @Autowired private SysJobMapper jobMapper; + + /** 椤圭洰鍚姩鏃讹紝鍒濆鍖栧畾鏃跺櫒 涓昏鏄槻姝㈡墜鍔ㄤ慨鏀规暟鎹簱瀵艰嚧鏈悓姝ュ埌瀹氭椂浠诲姟澶勭悊锛堟敞锛氫笉鑳芥墜鍔ㄤ慨鏀规暟鎹簱ID鍜屼换鍔$粍鍚嶏紝鍚﹀垯浼氬鑷磋剰鏁版嵁锛 */ + @PostConstruct + public void init() throws SchedulerException, TaskException { + scheduler.clear(); + List jobList = jobMapper.selectJobAll(); + for (SysJob job : jobList) { + ScheduleUtils.createScheduleJob(scheduler, job); } - - /** - * 鑾峰彇quartz璋冨害鍣ㄧ殑璁″垝浠诲姟鍒楄〃 - * - * @param job 璋冨害淇℃伅 - * @return - */ - @Override - public List selectJobList(SysJob job) - { - return jobMapper.selectJobList(job); + } + + /** + * 鑾峰彇quartz璋冨害鍣ㄧ殑璁″垝浠诲姟鍒楄〃 + * + * @param job 璋冨害淇℃伅 + * @return + */ + @Override + public List selectJobList(SysJob job) { + return jobMapper.selectJobList(job); + } + + /** + * 閫氳繃璋冨害浠诲姟ID鏌ヨ璋冨害淇℃伅 + * + * @param jobId 璋冨害浠诲姟ID + * @return 璋冨害浠诲姟瀵硅薄淇℃伅 + */ + @Override + public SysJob selectJobById(Long jobId) { + return jobMapper.selectJobById(jobId); + } + + /** + * 鏆傚仠浠诲姟 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int pauseJob(SysJob job) throws SchedulerException { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + int rows = jobMapper.updateJob(job); + if (rows > 0) { + scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); } - - /** - * 閫氳繃璋冨害浠诲姟ID鏌ヨ璋冨害淇℃伅 - * - * @param jobId 璋冨害浠诲姟ID - * @return 璋冨害浠诲姟瀵硅薄淇℃伅 - */ - @Override - public SysJob selectJobById(Long jobId) - { - return jobMapper.selectJobById(jobId); - } - - /** - * 鏆傚仠浠诲姟 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int pauseJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; - } - - /** - * 鎭㈠浠诲姟 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int resumeJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; - } - - /** - * 鍒犻櫎浠诲姟鍚庯紝鎵瀵瑰簲鐨則rigger涔熷皢琚垹闄 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - int rows = jobMapper.deleteJobById(jobId); - if (rows > 0) - { - scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; + return rows; + } + + /** + * 鎭㈠浠诲姟 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int resumeJob(SysJob job) throws SchedulerException { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); + int rows = jobMapper.updateJob(job); + if (rows > 0) { + scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup)); } - - /** - * 鎵归噺鍒犻櫎璋冨害淇℃伅 - * - * @param jobIds 闇瑕佸垹闄ょ殑浠诲姟ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteJobByIds(Long[] jobIds) throws SchedulerException - { - for (Long jobId : jobIds) - { - SysJob job = jobMapper.selectJobById(jobId); - deleteJob(job); - } + return rows; + } + + /** + * 鍒犻櫎浠诲姟鍚庯紝鎵瀵瑰簲鐨則rigger涔熷皢琚垹闄 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteJob(SysJob job) throws SchedulerException { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + int rows = jobMapper.deleteJobById(jobId); + if (rows > 0) { + scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup)); } - - /** - * 浠诲姟璋冨害鐘舵佷慨鏀 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int changeStatus(SysJob job) throws SchedulerException - { - int rows = 0; - String status = job.getStatus(); - if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) - { - rows = resumeJob(job); - } - else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) - { - rows = pauseJob(job); - } - return rows; + return rows; + } + + /** + * 鎵归噺鍒犻櫎璋冨害淇℃伅 + * + * @param jobIds 闇瑕佸垹闄ょ殑浠诲姟ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteJobByIds(Long[] jobIds) throws SchedulerException { + for (Long jobId : jobIds) { + SysJob job = jobMapper.selectJobById(jobId); + deleteJob(job); } - - /** - * 绔嬪嵆杩愯浠诲姟 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean run(SysJob job) throws SchedulerException - { - boolean result = false; - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - SysJob properties = selectJobById(job.getJobId()); - // 鍙傛暟 - JobDataMap dataMap = new JobDataMap(); - dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties); - JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); - if (scheduler.checkExists(jobKey)) - { - result = true; - scheduler.triggerJob(jobKey, dataMap); - } - return result; + } + + /** + * 浠诲姟璋冨害鐘舵佷慨鏀 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int changeStatus(SysJob job) throws SchedulerException { + int rows = 0; + String status = job.getStatus(); + if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) { + rows = resumeJob(job); + } else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) { + rows = pauseJob(job); } - - /** - * 鏂板浠诲姟 - * - * @param job 璋冨害淇℃伅 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int insertJob(SysJob job) throws SchedulerException, TaskException - { - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); - int rows = jobMapper.insertJob(job); - if (rows > 0) - { - ScheduleUtils.createScheduleJob(scheduler, job); - } - return rows; + return rows; + } + + /** + * 绔嬪嵆杩愯浠诲姟 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean run(SysJob job) throws SchedulerException { + boolean result = false; + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + SysJob properties = selectJobById(job.getJobId()); + // 鍙傛暟 + JobDataMap dataMap = new JobDataMap(); + dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties); + JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); + if (scheduler.checkExists(jobKey)) { + result = true; + scheduler.triggerJob(jobKey, dataMap); } - - /** - * 鏇存柊浠诲姟鐨勬椂闂磋〃杈惧紡 - * - * @param job 璋冨害淇℃伅 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int updateJob(SysJob job) throws SchedulerException, TaskException - { - SysJob properties = selectJobById(job.getJobId()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - updateSchedulerJob(job, properties.getJobGroup()); - } - return rows; + return result; + } + + /** + * 鏂板浠诲姟 + * + * @param job 璋冨害淇℃伅 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertJob(SysJob job) throws SchedulerException, TaskException { + job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + int rows = jobMapper.insertJob(job); + if (rows > 0) { + ScheduleUtils.createScheduleJob(scheduler, job); } - - /** - * 鏇存柊浠诲姟 - * - * @param job 浠诲姟瀵硅薄 - * @param jobGroup 浠诲姟缁勫悕 - */ - public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException - { - Long jobId = job.getJobId(); - // 鍒ゆ柇鏄惁瀛樺湪 - JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); - if (scheduler.checkExists(jobKey)) - { - // 闃叉鍒涘缓鏃跺瓨鍦ㄦ暟鎹棶棰 鍏堢Щ闄わ紝鐒跺悗鍦ㄦ墽琛屽垱寤烘搷浣 - scheduler.deleteJob(jobKey); - } - ScheduleUtils.createScheduleJob(scheduler, job); + return rows; + } + + /** + * 鏇存柊浠诲姟鐨勬椂闂磋〃杈惧紡 + * + * @param job 璋冨害淇℃伅 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateJob(SysJob job) throws SchedulerException, TaskException { + SysJob properties = selectJobById(job.getJobId()); + int rows = jobMapper.updateJob(job); + if (rows > 0) { + updateSchedulerJob(job, properties.getJobGroup()); } - - /** - * 鏍¢獙cron琛ㄨ揪寮忔槸鍚︽湁鏁 - * - * @param cronExpression 琛ㄨ揪寮 - * @return 缁撴灉 - */ - @Override - public boolean checkCronExpressionIsValid(String cronExpression) - { - return CronUtils.isValid(cronExpression); + return rows; + } + + /** + * 鏇存柊浠诲姟 + * + * @param job 浠诲姟瀵硅薄 + * @param jobGroup 浠诲姟缁勫悕 + */ + public void updateSchedulerJob(SysJob job, String jobGroup) + throws SchedulerException, TaskException { + Long jobId = job.getJobId(); + // 鍒ゆ柇鏄惁瀛樺湪 + JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); + if (scheduler.checkExists(jobKey)) { + // 闃叉鍒涘缓鏃跺瓨鍦ㄦ暟鎹棶棰 鍏堢Щ闄わ紝鐒跺悗鍦ㄦ墽琛屽垱寤烘搷浣 + scheduler.deleteJob(jobKey); } -} \ No newline at end of file + ScheduleUtils.createScheduleJob(scheduler, job); + } + + /** + * 鏍¢獙cron琛ㄨ揪寮忔槸鍚︽湁鏁 + * + * @param cronExpression 琛ㄨ揪寮 + * @return 缁撴灉 + */ + @Override + public boolean checkCronExpressionIsValid(String cronExpression) { + return CronUtils.isValid(cronExpression); + } +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java index 01bd14a8b..e2aeef587 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java @@ -1,28 +1,25 @@ package com.ruoyi.job.task; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.utils.StringUtils; +import org.springframework.stereotype.Component; /** * 瀹氭椂浠诲姟璋冨害娴嬭瘯 - * + * * @author ruoyi */ @Component("ryTask") -public class RyTask -{ - public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) - { - System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i)); - } +public class RyTask { + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { + System.out.println( + StringUtils.format("鎵ц澶氬弬鏂规硶锛 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i)); + } - public void ryParams(String params) - { - System.out.println("鎵ц鏈夊弬鏂规硶锛" + params); - } + public void ryParams(String params) { + System.out.println("鎵ц鏈夊弬鏂规硶锛" + params); + } - public void ryNoParams() - { - System.out.println("鎵ц鏃犲弬鏂规硶"); - } + public void ryNoParams() { + System.out.println("鎵ц鏃犲弬鏂规硶"); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java index 7ac500152..35483bbc5 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java @@ -1,10 +1,5 @@ package com.ruoyi.job.util; -import java.util.Date; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.ruoyi.common.core.constant.ScheduleConstants; import com.ruoyi.common.core.utils.ExceptionUtil; import com.ruoyi.common.core.utils.SpringUtils; @@ -13,93 +8,86 @@ import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.job.domain.SysJob; import com.ruoyi.job.domain.SysJobLog; import com.ruoyi.job.service.ISysJobLogService; +import java.util.Date; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 鎶借薄quartz璋冪敤 * * @author ruoyi */ -public abstract class AbstractQuartzJob implements Job -{ - private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); +public abstract class AbstractQuartzJob implements Job { + private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); - /** - * 绾跨▼鏈湴鍙橀噺 - */ - private static ThreadLocal threadLocal = new ThreadLocal<>(); + /** 绾跨▼鏈湴鍙橀噺 */ + private static ThreadLocal threadLocal = new ThreadLocal<>(); - @Override - public void execute(JobExecutionContext context) - { - SysJob sysJob = new SysJob(); - BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); - try - { - before(context, sysJob); - if (sysJob != null) - { - doExecute(context, sysJob); - } - after(context, sysJob, null); - } - catch (Exception e) - { - log.error("浠诲姟鎵ц寮傚父 - 锛", e); - after(context, sysJob, e); - } + @Override + public void execute(JobExecutionContext context) { + SysJob sysJob = new SysJob(); + BeanUtils.copyBeanProp( + sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); + try { + before(context, sysJob); + if (sysJob != null) { + doExecute(context, sysJob); + } + after(context, sysJob, null); + } catch (Exception e) { + log.error("浠诲姟鎵ц寮傚父 - 锛", e); + after(context, sysJob, e); } + } - /** - * 鎵ц鍓 - * - * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 - * @param sysJob 绯荤粺璁″垝浠诲姟 - */ - protected void before(JobExecutionContext context, SysJob sysJob) - { - threadLocal.set(new Date()); - } - - /** - * 鎵ц鍚 - * - * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 - * @param sysJob 绯荤粺璁″垝浠诲姟 - */ - protected void after(JobExecutionContext context, SysJob sysJob, Exception e) - { - Date startTime = threadLocal.get(); - threadLocal.remove(); + /** + * 鎵ц鍓 + * + * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 + * @param sysJob 绯荤粺璁″垝浠诲姟 + */ + protected void before(JobExecutionContext context, SysJob sysJob) { + threadLocal.set(new Date()); + } - final SysJobLog sysJobLog = new SysJobLog(); - sysJobLog.setJobName(sysJob.getJobName()); - sysJobLog.setJobGroup(sysJob.getJobGroup()); - sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); - sysJobLog.setStartTime(startTime); - sysJobLog.setStopTime(new Date()); - long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); - sysJobLog.setJobMessage(sysJobLog.getJobName() + " 鎬诲叡鑰楁椂锛" + runMs + "姣"); - if (e != null) - { - sysJobLog.setStatus("1"); - String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); - sysJobLog.setExceptionInfo(errorMsg); - } - else - { - sysJobLog.setStatus("0"); - } + /** + * 鎵ц鍚 + * + * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 + * @param sysJob 绯荤粺璁″垝浠诲姟 + */ + protected void after(JobExecutionContext context, SysJob sysJob, Exception e) { + Date startTime = threadLocal.get(); + threadLocal.remove(); - // 鍐欏叆鏁版嵁搴撳綋涓 - SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); + final SysJobLog sysJobLog = new SysJobLog(); + sysJobLog.setJobName(sysJob.getJobName()); + sysJobLog.setJobGroup(sysJob.getJobGroup()); + sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); + sysJobLog.setStartTime(startTime); + sysJobLog.setStopTime(new Date()); + long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); + sysJobLog.setJobMessage(sysJobLog.getJobName() + " 鎬诲叡鑰楁椂锛" + runMs + "姣"); + if (e != null) { + sysJobLog.setStatus("1"); + String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); + sysJobLog.setExceptionInfo(errorMsg); + } else { + sysJobLog.setStatus("0"); } - /** - * 鎵ц鏂规硶锛岀敱瀛愮被閲嶈浇 - * - * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 - * @param sysJob 绯荤粺璁″垝浠诲姟 - * @throws Exception 鎵ц杩囩▼涓殑寮傚父 - */ - protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; + // 鍐欏叆鏁版嵁搴撳綋涓 + SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); + } + + /** + * 鎵ц鏂规硶锛岀敱瀛愮被閲嶈浇 + * + * @param context 宸ヤ綔鎵ц涓婁笅鏂囧璞 + * @param sysJob 绯荤粺璁″垝浠诲姟 + * @throws Exception 鎵ц杩囩▼涓殑寮傚父 + */ + protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java index 98a4147d9..e638894b6 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java @@ -6,58 +6,47 @@ import org.quartz.CronExpression; /** * cron琛ㄨ揪寮忓伐鍏风被 - * - * @author ruoyi * + * @author ruoyi */ -public class CronUtils -{ - /** - * 杩斿洖涓涓竷灏斿间唬琛ㄤ竴涓粰瀹氱殑Cron琛ㄨ揪寮忕殑鏈夋晥鎬 - * - * @param cronExpression Cron琛ㄨ揪寮 - * @return boolean 琛ㄨ揪寮忔槸鍚︽湁鏁 - */ - public static boolean isValid(String cronExpression) - { - return CronExpression.isValidExpression(cronExpression); - } +public class CronUtils { + /** + * 杩斿洖涓涓竷灏斿间唬琛ㄤ竴涓粰瀹氱殑Cron琛ㄨ揪寮忕殑鏈夋晥鎬 + * + * @param cronExpression Cron琛ㄨ揪寮 + * @return boolean 琛ㄨ揪寮忔槸鍚︽湁鏁 + */ + public static boolean isValid(String cronExpression) { + return CronExpression.isValidExpression(cronExpression); + } - /** - * 杩斿洖涓涓瓧绗︿覆鍊,琛ㄧず璇ユ秷鎭棤鏁圕ron琛ㄨ揪寮忕粰鍑烘湁鏁堟 - * - * @param cronExpression Cron琛ㄨ揪寮 - * @return String 鏃犳晥鏃惰繑鍥炶〃杈惧紡閿欒鎻忚堪,濡傛灉鏈夋晥杩斿洖null - */ - public static String getInvalidMessage(String cronExpression) - { - try - { - new CronExpression(cronExpression); - return null; - } - catch (ParseException pe) - { - return pe.getMessage(); - } + /** + * 杩斿洖涓涓瓧绗︿覆鍊,琛ㄧず璇ユ秷鎭棤鏁圕ron琛ㄨ揪寮忕粰鍑烘湁鏁堟 + * + * @param cronExpression Cron琛ㄨ揪寮 + * @return String 鏃犳晥鏃惰繑鍥炶〃杈惧紡閿欒鎻忚堪,濡傛灉鏈夋晥杩斿洖null + */ + public static String getInvalidMessage(String cronExpression) { + try { + new CronExpression(cronExpression); + return null; + } catch (ParseException pe) { + return pe.getMessage(); } + } - /** - * 杩斿洖涓嬩竴涓墽琛屾椂闂存牴鎹粰瀹氱殑Cron琛ㄨ揪寮 - * - * @param cronExpression Cron琛ㄨ揪寮 - * @return Date 涓嬫Cron琛ㄨ揪寮忔墽琛屾椂闂 - */ - public static Date getNextExecution(String cronExpression) - { - try - { - CronExpression cron = new CronExpression(cronExpression); - return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); - } - catch (ParseException e) - { - throw new IllegalArgumentException(e.getMessage()); - } + /** + * 杩斿洖涓嬩竴涓墽琛屾椂闂存牴鎹粰瀹氱殑Cron琛ㄨ揪寮 + * + * @param cronExpression Cron琛ㄨ揪寮 + * @return Date 涓嬫Cron琛ㄨ揪寮忔墽琛屾椂闂 + */ + public static Date getNextExecution(String cronExpression) { + try { + CronExpression cron = new CronExpression(cronExpression); + return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); + } catch (ParseException e) { + throw new IllegalArgumentException(e.getMessage()); } + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java index f1fda6e19..b6473c57b 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java @@ -1,182 +1,167 @@ package com.ruoyi.job.util; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.job.domain.SysJob; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; -import com.ruoyi.common.core.utils.SpringUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.job.domain.SysJob; /** * 浠诲姟鎵ц宸ュ叿 * * @author ruoyi */ -public class JobInvokeUtil -{ - /** - * 鎵ц鏂规硶 - * - * @param sysJob 绯荤粺浠诲姟 - */ - public static void invokeMethod(SysJob sysJob) throws Exception - { - String invokeTarget = sysJob.getInvokeTarget(); - String beanName = getBeanName(invokeTarget); - String methodName = getMethodName(invokeTarget); - List methodParams = getMethodParams(invokeTarget); +public class JobInvokeUtil { + /** + * 鎵ц鏂规硶 + * + * @param sysJob 绯荤粺浠诲姟 + */ + public static void invokeMethod(SysJob sysJob) throws Exception { + String invokeTarget = sysJob.getInvokeTarget(); + String beanName = getBeanName(invokeTarget); + String methodName = getMethodName(invokeTarget); + List methodParams = getMethodParams(invokeTarget); - if (!isValidClassName(beanName)) - { - Object bean = SpringUtils.getBean(beanName); - invokeMethod(bean, methodName, methodParams); - } - else - { - Object bean = Class.forName(beanName).getDeclaredConstructor().newInstance(); - invokeMethod(bean, methodName, methodParams); - } + if (!isValidClassName(beanName)) { + Object bean = SpringUtils.getBean(beanName); + invokeMethod(bean, methodName, methodParams); + } else { + Object bean = Class.forName(beanName).getDeclaredConstructor().newInstance(); + invokeMethod(bean, methodName, methodParams); } + } - /** - * 璋冪敤浠诲姟鏂规硶 - * - * @param bean 鐩爣瀵硅薄 - * @param methodName 鏂规硶鍚嶇О - * @param methodParams 鏂规硶鍙傛暟 - */ - private static void invokeMethod(Object bean, String methodName, List methodParams) - throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, - InvocationTargetException - { - if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) - { - Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams)); - method.invoke(bean, getMethodParamsValue(methodParams)); - } - else - { - Method method = bean.getClass().getMethod(methodName); - method.invoke(bean); - } + /** + * 璋冪敤浠诲姟鏂规硶 + * + * @param bean 鐩爣瀵硅薄 + * @param methodName 鏂规硶鍚嶇О + * @param methodParams 鏂规硶鍙傛暟 + */ + private static void invokeMethod(Object bean, String methodName, List methodParams) + throws NoSuchMethodException, + SecurityException, + IllegalAccessException, + IllegalArgumentException, + InvocationTargetException { + if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) { + Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams)); + method.invoke(bean, getMethodParamsValue(methodParams)); + } else { + Method method = bean.getClass().getMethod(methodName); + method.invoke(bean); } + } - /** - * 鏍¢獙鏄惁涓轰负class鍖呭悕 - * - * @param invokeTarget 鍚嶇О - * @return true鏄 false鍚 - */ - public static boolean isValidClassName(String invokeTarget) - { - return StringUtils.countMatches(invokeTarget, ".") > 1; - } + /** + * 鏍¢獙鏄惁涓轰负class鍖呭悕 + * + * @param invokeTarget 鍚嶇О + * @return true鏄 false鍚 + */ + public static boolean isValidClassName(String invokeTarget) { + return StringUtils.countMatches(invokeTarget, ".") > 1; + } - /** - * 鑾峰彇bean鍚嶇О - * - * @param invokeTarget 鐩爣瀛楃涓 - * @return bean鍚嶇О - */ - public static String getBeanName(String invokeTarget) - { - String beanName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringBeforeLast(beanName, "."); - } + /** + * 鑾峰彇bean鍚嶇О + * + * @param invokeTarget 鐩爣瀛楃涓 + * @return bean鍚嶇О + */ + public static String getBeanName(String invokeTarget) { + String beanName = StringUtils.substringBefore(invokeTarget, "("); + return StringUtils.substringBeforeLast(beanName, "."); + } - /** - * 鑾峰彇bean鏂规硶 - * - * @param invokeTarget 鐩爣瀛楃涓 - * @return method鏂规硶 - */ - public static String getMethodName(String invokeTarget) - { - String methodName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringAfterLast(methodName, "."); - } + /** + * 鑾峰彇bean鏂规硶 + * + * @param invokeTarget 鐩爣瀛楃涓 + * @return method鏂规硶 + */ + public static String getMethodName(String invokeTarget) { + String methodName = StringUtils.substringBefore(invokeTarget, "("); + return StringUtils.substringAfterLast(methodName, "."); + } - /** - * 鑾峰彇method鏂规硶鍙傛暟鐩稿叧鍒楄〃 - * - * @param invokeTarget 鐩爣瀛楃涓 - * @return method鏂规硶鐩稿叧鍙傛暟鍒楄〃 - */ - public static List getMethodParams(String invokeTarget) - { - String methodStr = StringUtils.substringBetweenLast(invokeTarget, "(", ")"); - if (StringUtils.isEmpty(methodStr)) - { - return null; - } - String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)"); - List classs = new LinkedList<>(); - for (int i = 0; i < methodParams.length; i++) - { - String str = StringUtils.trimToEmpty(methodParams[i]); - // String瀛楃涓茬被鍨嬶紝浠'鎴"寮澶 - if (StringUtils.startsWithAny(str, "'", "\"")) - { - classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class }); - } - // boolean甯冨皵绫诲瀷锛岀瓑浜巘rue鎴栬協alse - else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) - { - classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); - } - // long闀挎暣褰紝浠缁撳熬 - else if (StringUtils.endsWith(str, "L")) - { - classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class }); - } - // double娴偣绫诲瀷锛屼互D缁撳熬 - else if (StringUtils.endsWith(str, "D")) - { - classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class }); - } - // 鍏朵粬绫诲瀷褰掔被涓烘暣褰 - else - { - classs.add(new Object[] { Integer.valueOf(str), Integer.class }); - } - } - return classs; + /** + * 鑾峰彇method鏂规硶鍙傛暟鐩稿叧鍒楄〃 + * + * @param invokeTarget 鐩爣瀛楃涓 + * @return method鏂规硶鐩稿叧鍙傛暟鍒楄〃 + */ + public static List getMethodParams(String invokeTarget) { + String methodStr = StringUtils.substringBetweenLast(invokeTarget, "(", ")"); + if (StringUtils.isEmpty(methodStr)) { + return null; + } + String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)"); + List classs = new LinkedList<>(); + for (int i = 0; i < methodParams.length; i++) { + String str = StringUtils.trimToEmpty(methodParams[i]); + // String瀛楃涓茬被鍨嬶紝浠'鎴"寮澶 + if (StringUtils.startsWithAny(str, "'", "\"")) { + classs.add(new Object[] {StringUtils.substring(str, 1, str.length() - 1), String.class}); + } + // boolean甯冨皵绫诲瀷锛岀瓑浜巘rue鎴栬協alse + else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) { + classs.add(new Object[] {Boolean.valueOf(str), Boolean.class}); + } + // long闀挎暣褰紝浠缁撳熬 + else if (StringUtils.endsWith(str, "L")) { + classs.add( + new Object[] { + Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class + }); + } + // double娴偣绫诲瀷锛屼互D缁撳熬 + else if (StringUtils.endsWith(str, "D")) { + classs.add( + new Object[] { + Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class + }); + } + // 鍏朵粬绫诲瀷褰掔被涓烘暣褰 + else { + classs.add(new Object[] {Integer.valueOf(str), Integer.class}); + } } + return classs; + } - /** - * 鑾峰彇鍙傛暟绫诲瀷 - * - * @param methodParams 鍙傛暟鐩稿叧鍒楄〃 - * @return 鍙傛暟绫诲瀷鍒楄〃 - */ - public static Class[] getMethodParamsType(List methodParams) - { - Class[] classs = new Class[methodParams.size()]; - int index = 0; - for (Object[] os : methodParams) - { - classs[index] = (Class) os[1]; - index++; - } - return classs; + /** + * 鑾峰彇鍙傛暟绫诲瀷 + * + * @param methodParams 鍙傛暟鐩稿叧鍒楄〃 + * @return 鍙傛暟绫诲瀷鍒楄〃 + */ + public static Class[] getMethodParamsType(List methodParams) { + Class[] classs = new Class[methodParams.size()]; + int index = 0; + for (Object[] os : methodParams) { + classs[index] = (Class) os[1]; + index++; } + return classs; + } - /** - * 鑾峰彇鍙傛暟鍊 - * - * @param methodParams 鍙傛暟鐩稿叧鍒楄〃 - * @return 鍙傛暟鍊煎垪琛 - */ - public static Object[] getMethodParamsValue(List methodParams) - { - Object[] classs = new Object[methodParams.size()]; - int index = 0; - for (Object[] os : methodParams) - { - classs[index] = (Object) os[0]; - index++; - } - return classs; + /** + * 鑾峰彇鍙傛暟鍊 + * + * @param methodParams 鍙傛暟鐩稿叧鍒楄〃 + * @return 鍙傛暟鍊煎垪琛 + */ + public static Object[] getMethodParamsValue(List methodParams) { + Object[] classs = new Object[methodParams.size()]; + int index = 0; + for (Object[] os : methodParams) { + classs[index] = (Object) os[0]; + index++; } + return classs; + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java index 88e27d348..bd2073a61 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java @@ -1,22 +1,18 @@ package com.ruoyi.job.util; +import com.ruoyi.job.domain.SysJob; import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; -import com.ruoyi.job.domain.SysJob; - /** * 瀹氭椂浠诲姟澶勭悊锛堢姝㈠苟鍙戞墽琛岋級 - * - * @author ruoyi * + * @author ruoyi */ @DisallowConcurrentExecution -public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob -{ - @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { - JobInvokeUtil.invokeMethod(sysJob); - } +public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob { + @Override + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception { + JobInvokeUtil.invokeMethod(sysJob); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java index 246b693a0..467f4dc52 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java @@ -1,20 +1,16 @@ package com.ruoyi.job.util; -import org.quartz.JobExecutionContext; - import com.ruoyi.job.domain.SysJob; +import org.quartz.JobExecutionContext; /** * 瀹氭椂浠诲姟澶勭悊锛堝厑璁稿苟鍙戞墽琛岋級 - * - * @author ruoyi * + * @author ruoyi */ -public class QuartzJobExecution extends AbstractQuartzJob -{ - @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { - JobInvokeUtil.invokeMethod(sysJob); - } +public class QuartzJobExecution extends AbstractQuartzJob { + @Override + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception { + JobInvokeUtil.invokeMethod(sysJob); + } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java index 175ad7bef..03cf88a95 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java @@ -1,5 +1,12 @@ package com.ruoyi.job.util; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.ScheduleConstants; +import com.ruoyi.common.core.exception.job.TaskException; +import com.ruoyi.common.core.exception.job.TaskException.Code; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.job.domain.SysJob; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.Job; @@ -10,132 +17,113 @@ import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.TriggerBuilder; import org.quartz.TriggerKey; -import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.constant.ScheduleConstants; -import com.ruoyi.common.core.exception.job.TaskException; -import com.ruoyi.common.core.exception.job.TaskException.Code; -import com.ruoyi.common.core.utils.SpringUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.job.domain.SysJob; /** * 瀹氭椂浠诲姟宸ュ叿绫 - * - * @author ruoyi * + * @author ruoyi */ -public class ScheduleUtils -{ - /** - * 寰楀埌quartz浠诲姟绫 - * - * @param sysJob 鎵ц璁″垝 - * @return 鍏蜂綋鎵ц浠诲姟绫 - */ - private static Class getQuartzJobClass(SysJob sysJob) - { - boolean isConcurrent = "0".equals(sysJob.getConcurrent()); - return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; - } +public class ScheduleUtils { + /** + * 寰楀埌quartz浠诲姟绫 + * + * @param sysJob 鎵ц璁″垝 + * @return 鍏蜂綋鎵ц浠诲姟绫 + */ + private static Class getQuartzJobClass(SysJob sysJob) { + boolean isConcurrent = "0".equals(sysJob.getConcurrent()); + return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; + } - /** - * 鏋勫缓浠诲姟瑙﹀彂瀵硅薄 - */ - public static TriggerKey getTriggerKey(Long jobId, String jobGroup) - { - return TriggerKey.triggerKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); - } + /** 鏋勫缓浠诲姟瑙﹀彂瀵硅薄 */ + public static TriggerKey getTriggerKey(Long jobId, String jobGroup) { + return TriggerKey.triggerKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); + } - /** - * 鏋勫缓浠诲姟閿璞 - */ - public static JobKey getJobKey(Long jobId, String jobGroup) - { - return JobKey.jobKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); - } + /** 鏋勫缓浠诲姟閿璞 */ + public static JobKey getJobKey(Long jobId, String jobGroup) { + return JobKey.jobKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); + } - /** - * 鍒涘缓瀹氭椂浠诲姟 - */ - public static void createScheduleJob(Scheduler scheduler, SysJob job) throws SchedulerException, TaskException - { - Class jobClass = getQuartzJobClass(job); - // 鏋勫缓job淇℃伅 - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(getJobKey(jobId, jobGroup)).build(); + /** 鍒涘缓瀹氭椂浠诲姟 */ + public static void createScheduleJob(Scheduler scheduler, SysJob job) + throws SchedulerException, TaskException { + Class jobClass = getQuartzJobClass(job); + // 鏋勫缓job淇℃伅 + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + JobDetail jobDetail = + JobBuilder.newJob(jobClass).withIdentity(getJobKey(jobId, jobGroup)).build(); - // 琛ㄨ揪寮忚皟搴︽瀯寤哄櫒 - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); - cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); + // 琛ㄨ揪寮忚皟搴︽瀯寤哄櫒 + CronScheduleBuilder cronScheduleBuilder = + CronScheduleBuilder.cronSchedule(job.getCronExpression()); + cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); - // 鎸夋柊鐨刢ronExpression琛ㄨ揪寮忔瀯寤轰竴涓柊鐨則rigger - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(jobId, jobGroup)) - .withSchedule(cronScheduleBuilder).build(); + // 鎸夋柊鐨刢ronExpression琛ㄨ揪寮忔瀯寤轰竴涓柊鐨則rigger + CronTrigger trigger = + TriggerBuilder.newTrigger() + .withIdentity(getTriggerKey(jobId, jobGroup)) + .withSchedule(cronScheduleBuilder) + .build(); - // 鏀惧叆鍙傛暟锛岃繍琛屾椂鐨勬柟娉曞彲浠ヨ幏鍙 - jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); + // 鏀惧叆鍙傛暟锛岃繍琛屾椂鐨勬柟娉曞彲浠ヨ幏鍙 + jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); - // 鍒ゆ柇鏄惁瀛樺湪 - if (scheduler.checkExists(getJobKey(jobId, jobGroup))) - { - // 闃叉鍒涘缓鏃跺瓨鍦ㄦ暟鎹棶棰 鍏堢Щ闄わ紝鐒跺悗鍦ㄦ墽琛屽垱寤烘搷浣 - scheduler.deleteJob(getJobKey(jobId, jobGroup)); - } + // 鍒ゆ柇鏄惁瀛樺湪 + if (scheduler.checkExists(getJobKey(jobId, jobGroup))) { + // 闃叉鍒涘缓鏃跺瓨鍦ㄦ暟鎹棶棰 鍏堢Щ闄わ紝鐒跺悗鍦ㄦ墽琛屽垱寤烘搷浣 + scheduler.deleteJob(getJobKey(jobId, jobGroup)); + } - // 鍒ゆ柇浠诲姟鏄惁杩囨湡 - if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression()))) - { - // 鎵ц璋冨害浠诲姟 - scheduler.scheduleJob(jobDetail, trigger); - } + // 鍒ゆ柇浠诲姟鏄惁杩囨湡 + if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression()))) { + // 鎵ц璋冨害浠诲姟 + scheduler.scheduleJob(jobDetail, trigger); + } - // 鏆傚仠浠诲姟 - if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) - { - scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } + // 鏆傚仠浠诲姟 + if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) { + scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); } + } - /** - * 璁剧疆瀹氭椂浠诲姟绛栫暐 - */ - public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) - throws TaskException - { - switch (job.getMisfirePolicy()) - { - case ScheduleConstants.MISFIRE_DEFAULT: - return cb; - case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: - return cb.withMisfireHandlingInstructionIgnoreMisfires(); - case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: - return cb.withMisfireHandlingInstructionFireAndProceed(); - case ScheduleConstants.MISFIRE_DO_NOTHING: - return cb.withMisfireHandlingInstructionDoNothing(); - default: - throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() - + "' cannot be used in cron schedule tasks", Code.CONFIG_ERROR); - } + /** 璁剧疆瀹氭椂浠诲姟绛栫暐 */ + public static CronScheduleBuilder handleCronScheduleMisfirePolicy( + SysJob job, CronScheduleBuilder cb) throws TaskException { + switch (job.getMisfirePolicy()) { + case ScheduleConstants.MISFIRE_DEFAULT: + return cb; + case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: + return cb.withMisfireHandlingInstructionIgnoreMisfires(); + case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: + return cb.withMisfireHandlingInstructionFireAndProceed(); + case ScheduleConstants.MISFIRE_DO_NOTHING: + return cb.withMisfireHandlingInstructionDoNothing(); + default: + throw new TaskException( + "The task misfire policy '" + + job.getMisfirePolicy() + + "' cannot be used in cron schedule tasks", + Code.CONFIG_ERROR); } + } - /** - * 妫鏌ュ寘鍚嶆槸鍚︿负鐧藉悕鍗曢厤缃 - * - * @param invokeTarget 鐩爣瀛楃涓 - * @return 缁撴灉 - */ - public static boolean whiteList(String invokeTarget) - { - String packageName = StringUtils.substringBefore(invokeTarget, "("); - int count = StringUtils.countMatches(packageName, "."); - if (count > 1) - { - return StringUtils.startsWithAny(invokeTarget, Constants.JOB_WHITELIST_STR); - } - Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]); - String beanPackageName = obj.getClass().getPackage().getName(); - return StringUtils.startsWithAny(beanPackageName, Constants.JOB_WHITELIST_STR) - && !StringUtils.startsWithAny(beanPackageName, Constants.JOB_ERROR_STR); + /** + * 妫鏌ュ寘鍚嶆槸鍚︿负鐧藉悕鍗曢厤缃 + * + * @param invokeTarget 鐩爣瀛楃涓 + * @return 缁撴灉 + */ + public static boolean whiteList(String invokeTarget) { + String packageName = StringUtils.substringBefore(invokeTarget, "("); + int count = StringUtils.countMatches(packageName, "."); + if (count > 1) { + return StringUtils.startsWithAny(invokeTarget, Constants.JOB_WHITELIST_STR); } -} \ No newline at end of file + Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]); + String beanPackageName = obj.getClass().getPackage().getName(); + return StringUtils.startsWithAny(beanPackageName, Constants.JOB_WHITELIST_STR) + && !StringUtils.startsWithAny(beanPackageName, Constants.JOB_ERROR_STR); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java index 3f33217c4..0f0096ebe 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java @@ -1,32 +1,31 @@ package com.ruoyi.system; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 绯荤粺妯″潡 - * + * * @author ruoyi */ @EnableCustomConfig @EnableRyFeignClients @SpringBootApplication -public class RuoYiSystemApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiSystemApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 绯荤粺妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +public class RuoYiSystemApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiSystemApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 绯荤粺妯″潡鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java index 9b7380ee6..febe1fe07 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java @@ -1,5 +1,15 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.service.ISysConfigService; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -12,122 +22,86 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.domain.SysConfig; -import com.ruoyi.system.service.ISysConfigService; /** * 鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/config") -public class SysConfigController extends BaseController -{ - @Autowired - private ISysConfigService configService; +public class SysConfigController extends BaseController { + @Autowired private ISysConfigService configService; - /** - * 鑾峰彇鍙傛暟閰嶇疆鍒楄〃 - */ - @RequiresPermissions("system:config:list") - @GetMapping("/list") - public TableDataInfo list(SysConfig config) - { - startPage(); - List list = configService.selectConfigList(config); - return getDataTable(list); - } + /** 鑾峰彇鍙傛暟閰嶇疆鍒楄〃 */ + @RequiresPermissions("system:config:list") + @GetMapping("/list") + public TableDataInfo list(SysConfig config) { + startPage(); + List list = configService.selectConfigList(config); + return getDataTable(list); + } - @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:config:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysConfig config) - { - List list = configService.selectConfigList(config); - ExcelUtil util = new ExcelUtil(SysConfig.class); - util.exportExcel(response, list, "鍙傛暟鏁版嵁"); - } + @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:config:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysConfig config) { + List list = configService.selectConfigList(config); + ExcelUtil util = new ExcelUtil(SysConfig.class); + util.exportExcel(response, list, "鍙傛暟鏁版嵁"); + } - /** - * 鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @GetMapping(value = "/{configId}") - public AjaxResult getInfo(@PathVariable Long configId) - { - return success(configService.selectConfigById(configId)); - } + /** 鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @GetMapping(value = "/{configId}") + public AjaxResult getInfo(@PathVariable Long configId) { + return success(configService.selectConfigById(configId)); + } - /** - * 鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊 - */ - @GetMapping(value = "/configKey/{configKey}") - public AjaxResult getConfigKey(@PathVariable String configKey) - { - return success(configService.selectConfigByKey(configKey)); - } + /** 鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊 */ + @GetMapping(value = "/configKey/{configKey}") + public AjaxResult getConfigKey(@PathVariable String configKey) { + return success(configService.selectConfigByKey(configKey)); + } - /** - * 鏂板鍙傛暟閰嶇疆 - */ - @RequiresPermissions("system:config:add") - @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("鏂板鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪"); - } - config.setCreateBy(SecurityUtils.getUsername()); - return toAjax(configService.insertConfig(config)); + /** 鏂板鍙傛暟閰嶇疆 */ + @RequiresPermissions("system:config:add") + @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysConfig config) { + if (!configService.checkConfigKeyUnique(config)) { + return error("鏂板鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪"); } + config.setCreateBy(SecurityUtils.getUsername()); + return toAjax(configService.insertConfig(config)); + } - /** - * 淇敼鍙傛暟閰嶇疆 - */ - @RequiresPermissions("system:config:edit") - @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("淇敼鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪"); - } - config.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(configService.updateConfig(config)); + /** 淇敼鍙傛暟閰嶇疆 */ + @RequiresPermissions("system:config:edit") + @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysConfig config) { + if (!configService.checkConfigKeyUnique(config)) { + return error("淇敼鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪"); } + config.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(configService.updateConfig(config)); + } - /** - * 鍒犻櫎鍙傛暟閰嶇疆 - */ - @RequiresPermissions("system:config:remove") - @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{configIds}") - public AjaxResult remove(@PathVariable Long[] configIds) - { - configService.deleteConfigByIds(configIds); - return success(); - } + /** 鍒犻櫎鍙傛暟閰嶇疆 */ + @RequiresPermissions("system:config:remove") + @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public AjaxResult remove(@PathVariable Long[] configIds) { + configService.deleteConfigByIds(configIds); + return success(); + } - /** - * 鍒锋柊鍙傛暟缂撳瓨 - */ - @RequiresPermissions("system:config:remove") - @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - configService.resetConfigCache(); - return success(); - } + /** 鍒锋柊鍙傛暟缂撳瓨 */ + @RequiresPermissions("system:config:remove") + @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() { + configService.resetConfigCache(); + return success(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java index 54deb3fa3..a213e9dc6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java @@ -1,5 +1,15 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysDept; +import com.ruoyi.system.service.ISysDeptService; import java.util.List; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -12,122 +22,88 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.domain.SysDept; -import com.ruoyi.system.service.ISysDeptService; /** * 閮ㄩ棬淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/dept") -public class SysDeptController extends BaseController -{ - @Autowired - private ISysDeptService deptService; +public class SysDeptController extends BaseController { + @Autowired private ISysDeptService deptService; - /** - * 鑾峰彇閮ㄩ棬鍒楄〃 - */ - @RequiresPermissions("system:dept:list") - @GetMapping("/list") - public AjaxResult list(SysDept dept) - { - List depts = deptService.selectDeptList(dept); - return success(depts); - } + /** 鑾峰彇閮ㄩ棬鍒楄〃 */ + @RequiresPermissions("system:dept:list") + @GetMapping("/list") + public AjaxResult list(SysDept dept) { + List depts = deptService.selectDeptList(dept); + return success(depts); + } - /** - * 鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級 - */ - @RequiresPermissions("system:dept:list") - @GetMapping("/list/exclude/{deptId}") - public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) - { - List depts = deptService.selectDeptList(new SysDept()); - depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); - return success(depts); - } + /** 鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級 */ + @RequiresPermissions("system:dept:list") + @GetMapping("/list/exclude/{deptId}") + public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { + List depts = deptService.selectDeptList(new SysDept()); + depts.removeIf( + d -> + d.getDeptId().intValue() == deptId + || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); + return success(depts); + } - /** - * 鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:dept:query") - @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@PathVariable Long deptId) - { - deptService.checkDeptDataScope(deptId); - return success(deptService.selectDeptById(deptId)); - } + /** 鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:dept:query") + @GetMapping(value = "/{deptId}") + public AjaxResult getInfo(@PathVariable Long deptId) { + deptService.checkDeptDataScope(deptId); + return success(deptService.selectDeptById(deptId)); + } - /** - * 鏂板閮ㄩ棬 - */ - @RequiresPermissions("system:dept:add") - @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDept dept) - { - if (!deptService.checkDeptNameUnique(dept)) - { - return error("鏂板閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛岄儴闂ㄥ悕绉板凡瀛樺湪"); - } - dept.setCreateBy(SecurityUtils.getUsername()); - return toAjax(deptService.insertDept(dept)); + /** 鏂板閮ㄩ棬 */ + @RequiresPermissions("system:dept:add") + @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDept dept) { + if (!deptService.checkDeptNameUnique(dept)) { + return error("鏂板閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛岄儴闂ㄥ悕绉板凡瀛樺湪"); } + dept.setCreateBy(SecurityUtils.getUsername()); + return toAjax(deptService.insertDept(dept)); + } - /** - * 淇敼閮ㄩ棬 - */ - @RequiresPermissions("system:dept:edit") - @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDept dept) - { - Long deptId = dept.getDeptId(); - deptService.checkDeptDataScope(deptId); - if (!deptService.checkDeptNameUnique(dept)) - { - return error("淇敼閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛岄儴闂ㄥ悕绉板凡瀛樺湪"); - } - else if (dept.getParentId().equals(deptId)) - { - return error("淇敼閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛屼笂绾ч儴闂ㄤ笉鑳芥槸鑷繁"); - } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) - { - return error("璇ラ儴闂ㄥ寘鍚湭鍋滅敤鐨勫瓙閮ㄩ棬锛"); - } - dept.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(deptService.updateDept(dept)); + /** 淇敼閮ㄩ棬 */ + @RequiresPermissions("system:dept:edit") + @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDept dept) { + Long deptId = dept.getDeptId(); + deptService.checkDeptDataScope(deptId); + if (!deptService.checkDeptNameUnique(dept)) { + return error("淇敼閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛岄儴闂ㄥ悕绉板凡瀛樺湪"); + } else if (dept.getParentId().equals(deptId)) { + return error("淇敼閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛屼笂绾ч儴闂ㄤ笉鑳芥槸鑷繁"); + } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) + && deptService.selectNormalChildrenDeptById(deptId) > 0) { + return error("璇ラ儴闂ㄥ寘鍚湭鍋滅敤鐨勫瓙閮ㄩ棬锛"); } + dept.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(deptService.updateDept(dept)); + } - /** - * 鍒犻櫎閮ㄩ棬 - */ - @RequiresPermissions("system:dept:remove") - @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{deptId}") - public AjaxResult remove(@PathVariable Long deptId) - { - if (deptService.hasChildByDeptId(deptId)) - { - return warn("瀛樺湪涓嬬骇閮ㄩ棬,涓嶅厑璁稿垹闄"); - } - if (deptService.checkDeptExistUser(deptId)) - { - return warn("閮ㄩ棬瀛樺湪鐢ㄦ埛,涓嶅厑璁稿垹闄"); - } - deptService.checkDeptDataScope(deptId); - return toAjax(deptService.deleteDeptById(deptId)); + /** 鍒犻櫎閮ㄩ棬 */ + @RequiresPermissions("system:dept:remove") + @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{deptId}") + public AjaxResult remove(@PathVariable Long deptId) { + if (deptService.hasChildByDeptId(deptId)) { + return warn("瀛樺湪涓嬬骇閮ㄩ棬,涓嶅厑璁稿垹闄"); + } + if (deptService.checkDeptExistUser(deptId)) { + return warn("閮ㄩ棬瀛樺湪鐢ㄦ埛,涓嶅厑璁稿垹闄"); } + deptService.checkDeptDataScope(deptId); + return toAjax(deptService.deleteDeptById(deptId)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java index 2319763a5..06bb898d9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java @@ -1,5 +1,17 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysDictData; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.system.service.ISysDictTypeService; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -13,110 +25,77 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.domain.SysDictData; -import com.ruoyi.system.service.ISysDictDataService; -import com.ruoyi.system.service.ISysDictTypeService; /** * 鏁版嵁瀛楀吀淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/dict/data") -public class SysDictDataController extends BaseController -{ - @Autowired - private ISysDictDataService dictDataService; - - @Autowired - private ISysDictTypeService dictTypeService; +public class SysDictDataController extends BaseController { + @Autowired private ISysDictDataService dictDataService; - @RequiresPermissions("system:dict:list") - @GetMapping("/list") - public TableDataInfo list(SysDictData dictData) - { - startPage(); - List list = dictDataService.selectDictDataList(dictData); - return getDataTable(list); - } + @Autowired private ISysDictTypeService dictTypeService; - @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:dict:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictData dictData) - { - List list = dictDataService.selectDictDataList(dictData); - ExcelUtil util = new ExcelUtil(SysDictData.class); - util.exportExcel(response, list, "瀛楀吀鏁版嵁"); - } + @RequiresPermissions("system:dict:list") + @GetMapping("/list") + public TableDataInfo list(SysDictData dictData) { + startPage(); + List list = dictDataService.selectDictDataList(dictData); + return getDataTable(list); + } - /** - * 鏌ヨ瀛楀吀鏁版嵁璇︾粏 - */ - @RequiresPermissions("system:dict:query") - @GetMapping(value = "/{dictCode}") - public AjaxResult getInfo(@PathVariable Long dictCode) - { - return success(dictDataService.selectDictDataById(dictCode)); - } + @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:dict:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictData dictData) { + List list = dictDataService.selectDictDataList(dictData); + ExcelUtil util = new ExcelUtil(SysDictData.class); + util.exportExcel(response, list, "瀛楀吀鏁版嵁"); + } - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅 - */ - @GetMapping(value = "/type/{dictType}") - public AjaxResult dictType(@PathVariable String dictType) - { - List data = dictTypeService.selectDictDataByType(dictType); - if (StringUtils.isNull(data)) - { - data = new ArrayList(); - } - return success(data); - } + /** 鏌ヨ瀛楀吀鏁版嵁璇︾粏 */ + @RequiresPermissions("system:dict:query") + @GetMapping(value = "/{dictCode}") + public AjaxResult getInfo(@PathVariable Long dictCode) { + return success(dictDataService.selectDictDataById(dictCode)); + } - /** - * 鏂板瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:add") - @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictData dict) - { - dict.setCreateBy(SecurityUtils.getUsername()); - return toAjax(dictDataService.insertDictData(dict)); + /** 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅 */ + @GetMapping(value = "/type/{dictType}") + public AjaxResult dictType(@PathVariable String dictType) { + List data = dictTypeService.selectDictDataByType(dictType); + if (StringUtils.isNull(data)) { + data = new ArrayList(); } + return success(data); + } - /** - * 淇敼淇濆瓨瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:edit") - @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictData dict) - { - dict.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(dictDataService.updateDictData(dict)); - } + /** 鏂板瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:add") + @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictData dict) { + dict.setCreateBy(SecurityUtils.getUsername()); + return toAjax(dictDataService.insertDictData(dict)); + } - /** - * 鍒犻櫎瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:remove") - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictCodes}") - public AjaxResult remove(@PathVariable Long[] dictCodes) - { - dictDataService.deleteDictDataByIds(dictCodes); - return success(); - } + /** 淇敼淇濆瓨瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:edit") + @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictData dict) { + dict.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(dictDataService.updateDictData(dict)); + } + + /** 鍒犻櫎瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:remove") + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public AjaxResult remove(@PathVariable Long[] dictCodes) { + dictDataService.deleteDictDataByIds(dictCodes); + return success(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java index 8c37d8678..2410959e6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java @@ -1,5 +1,15 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysDictType; +import com.ruoyi.system.service.ISysDictTypeService; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -12,121 +22,87 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.domain.SysDictType; -import com.ruoyi.system.service.ISysDictTypeService; /** * 鏁版嵁瀛楀吀淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/dict/type") -public class SysDictTypeController extends BaseController -{ - @Autowired - private ISysDictTypeService dictTypeService; +public class SysDictTypeController extends BaseController { + @Autowired private ISysDictTypeService dictTypeService; - @RequiresPermissions("system:dict:list") - @GetMapping("/list") - public TableDataInfo list(SysDictType dictType) - { - startPage(); - List list = dictTypeService.selectDictTypeList(dictType); - return getDataTable(list); - } + @RequiresPermissions("system:dict:list") + @GetMapping("/list") + public TableDataInfo list(SysDictType dictType) { + startPage(); + List list = dictTypeService.selectDictTypeList(dictType); + return getDataTable(list); + } - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:dict:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictType dictType) - { - List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil util = new ExcelUtil(SysDictType.class); - util.exportExcel(response, list, "瀛楀吀绫诲瀷"); - } + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:dict:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictType dictType) { + List list = dictTypeService.selectDictTypeList(dictType); + ExcelUtil util = new ExcelUtil(SysDictType.class); + util.exportExcel(response, list, "瀛楀吀绫诲瀷"); + } - /** - * 鏌ヨ瀛楀吀绫诲瀷璇︾粏 - */ - @RequiresPermissions("system:dict:query") - @GetMapping(value = "/{dictId}") - public AjaxResult getInfo(@PathVariable Long dictId) - { - return success(dictTypeService.selectDictTypeById(dictId)); - } + /** 鏌ヨ瀛楀吀绫诲瀷璇︾粏 */ + @RequiresPermissions("system:dict:query") + @GetMapping(value = "/{dictId}") + public AjaxResult getInfo(@PathVariable Long dictId) { + return success(dictTypeService.selectDictTypeById(dictId)); + } - /** - * 鏂板瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:add") - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("鏂板瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪"); - } - dict.setCreateBy(SecurityUtils.getUsername()); - return toAjax(dictTypeService.insertDictType(dict)); + /** 鏂板瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:add") + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictType dict) { + if (!dictTypeService.checkDictTypeUnique(dict)) { + return error("鏂板瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪"); } + dict.setCreateBy(SecurityUtils.getUsername()); + return toAjax(dictTypeService.insertDictType(dict)); + } - /** - * 淇敼瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:edit") - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("淇敼瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪"); - } - dict.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(dictTypeService.updateDictType(dict)); + /** 淇敼瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:edit") + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictType dict) { + if (!dictTypeService.checkDictTypeUnique(dict)) { + return error("淇敼瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪"); } + dict.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(dictTypeService.updateDictType(dict)); + } - /** - * 鍒犻櫎瀛楀吀绫诲瀷 - */ - @RequiresPermissions("system:dict:remove") - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictIds}") - public AjaxResult remove(@PathVariable Long[] dictIds) - { - dictTypeService.deleteDictTypeByIds(dictIds); - return success(); - } + /** 鍒犻櫎瀛楀吀绫诲瀷 */ + @RequiresPermissions("system:dict:remove") + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictIds}") + public AjaxResult remove(@PathVariable Long[] dictIds) { + dictTypeService.deleteDictTypeByIds(dictIds); + return success(); + } - /** - * 鍒锋柊瀛楀吀缂撳瓨 - */ - @RequiresPermissions("system:dict:remove") - @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - dictTypeService.resetDictCache(); - return success(); - } + /** 鍒锋柊瀛楀吀缂撳瓨 */ + @RequiresPermissions("system:dict:remove") + @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() { + dictTypeService.resetDictCache(); + return success(); + } - /** - * 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List dictTypes = dictTypeService.selectDictTypeAll(); - return success(dictTypes); - } + /** 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛 */ + @GetMapping("/optionselect") + public AjaxResult optionselect() { + List dictTypes = dictTypeService.selectDictTypeAll(); + return success(dictTypes); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java index 19d166b40..caef1ac8e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java @@ -1,15 +1,5 @@ package com.ruoyi.system.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; @@ -22,71 +12,72 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 绯荤粺璁块棶璁板綍 - * + * * @author ruoyi */ @RestController @RequestMapping("/logininfor") -public class SysLogininforController extends BaseController -{ - @Autowired - private ISysLogininforService logininforService; +public class SysLogininforController extends BaseController { + @Autowired private ISysLogininforService logininforService; - @Autowired - private RedisService redisService; + @Autowired private RedisService redisService; - @RequiresPermissions("system:logininfor:list") - @GetMapping("/list") - public TableDataInfo list(SysLogininfor logininfor) - { - startPage(); - List list = logininforService.selectLogininforList(logininfor); - return getDataTable(list); - } + @RequiresPermissions("system:logininfor:list") + @GetMapping("/list") + public TableDataInfo list(SysLogininfor logininfor) { + startPage(); + List list = logininforService.selectLogininforList(logininfor); + return getDataTable(list); + } - @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:logininfor:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysLogininfor logininfor) - { - List list = logininforService.selectLogininforList(logininfor); - ExcelUtil util = new ExcelUtil(SysLogininfor.class); - util.exportExcel(response, list, "鐧诲綍鏃ュ織"); - } + @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:logininfor:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysLogininfor logininfor) { + List list = logininforService.selectLogininforList(logininfor); + ExcelUtil util = new ExcelUtil(SysLogininfor.class); + util.exportExcel(response, list, "鐧诲綍鏃ュ織"); + } - @RequiresPermissions("system:logininfor:remove") - @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.DELETE) - @DeleteMapping("/{infoIds}") - public AjaxResult remove(@PathVariable Long[] infoIds) - { - return toAjax(logininforService.deleteLogininforByIds(infoIds)); - } + @RequiresPermissions("system:logininfor:remove") + @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.DELETE) + @DeleteMapping("/{infoIds}") + public AjaxResult remove(@PathVariable Long[] infoIds) { + return toAjax(logininforService.deleteLogininforByIds(infoIds)); + } - @RequiresPermissions("system:logininfor:remove") - @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.DELETE) - @DeleteMapping("/clean") - public AjaxResult clean() - { - logininforService.cleanLogininfor(); - return success(); - } + @RequiresPermissions("system:logininfor:remove") + @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.DELETE) + @DeleteMapping("/clean") + public AjaxResult clean() { + logininforService.cleanLogininfor(); + return success(); + } - @RequiresPermissions("system:logininfor:unlock") - @Log(title = "璐︽埛瑙i攣", businessType = BusinessType.OTHER) - @GetMapping("/unlock/{userName}") - public AjaxResult unlock(@PathVariable("userName") String userName) - { - redisService.deleteObject(CacheConstants.PWD_ERR_CNT_KEY + userName); - return success(); - } + @RequiresPermissions("system:logininfor:unlock") + @Log(title = "璐︽埛瑙i攣", businessType = BusinessType.OTHER) + @GetMapping("/unlock/{userName}") + public AjaxResult unlock(@PathVariable("userName") String userName) { + redisService.deleteObject(CacheConstants.PWD_ERR_CNT_KEY + userName); + return success(); + } - @InnerAuth - @PostMapping - public AjaxResult add(@RequestBody SysLogininfor logininfor) - { - return toAjax(logininforService.insertLogininfor(logininfor)); - } + @InnerAuth + @PostMapping + public AjaxResult add(@RequestBody SysLogininfor logininfor) { + return toAjax(logininforService.insertLogininfor(logininfor)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java index 61e3bcb20..2836bab7d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java @@ -1,5 +1,15 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.service.ISysMenuService; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -11,149 +21,107 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.domain.SysMenu; -import com.ruoyi.system.service.ISysMenuService; /** * 鑿滃崟淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/menu") -public class SysMenuController extends BaseController -{ - @Autowired - private ISysMenuService menuService; +public class SysMenuController extends BaseController { + @Autowired private ISysMenuService menuService; - /** - * 鑾峰彇鑿滃崟鍒楄〃 - */ - @RequiresPermissions("system:menu:list") - @GetMapping("/list") - public AjaxResult list(SysMenu menu) - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(menu, userId); - return success(menus); - } + /** 鑾峰彇鑿滃崟鍒楄〃 */ + @RequiresPermissions("system:menu:list") + @GetMapping("/list") + public AjaxResult list(SysMenu menu) { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuList(menu, userId); + return success(menus); + } - /** - * 鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:menu:query") - @GetMapping(value = "/{menuId}") - public AjaxResult getInfo(@PathVariable Long menuId) - { - return success(menuService.selectMenuById(menuId)); - } + /** 鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:menu:query") + @GetMapping(value = "/{menuId}") + public AjaxResult getInfo(@PathVariable Long menuId) { + return success(menuService.selectMenuById(menuId)); + } - /** - * 鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛 - */ - @GetMapping("/treeselect") - public AjaxResult treeselect(SysMenu menu) - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(menu, userId); - return success(menuService.buildMenuTreeSelect(menus)); - } + /** 鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛 */ + @GetMapping("/treeselect") + public AjaxResult treeselect(SysMenu menu) { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuList(menu, userId); + return success(menuService.buildMenuTreeSelect(menus)); + } - /** - * 鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍 - */ - @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(userId); - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); - ajax.put("menus", menuService.buildMenuTreeSelect(menus)); - return ajax; - } + /** 鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍 */ + @GetMapping(value = "/roleMenuTreeselect/{roleId}") + public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuList(userId); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); + ajax.put("menus", menuService.buildMenuTreeSelect(menus)); + return ajax; + } - /** - * 鏂板鑿滃崟 - */ - @RequiresPermissions("system:menu:add") - @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧蹇呴』浠ttp(s)://寮澶"); - } - menu.setCreateBy(SecurityUtils.getUsername()); - return toAjax(menuService.insertMenu(menu)); + /** 鏂板鑿滃崟 */ + @RequiresPermissions("system:menu:add") + @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysMenu menu) { + if (!menuService.checkMenuNameUnique(menu)) { + return error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); + } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) + && !StringUtils.ishttp(menu.getPath())) { + return error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧蹇呴』浠ttp(s)://寮澶"); } + menu.setCreateBy(SecurityUtils.getUsername()); + return toAjax(menuService.insertMenu(menu)); + } - /** - * 淇敼鑿滃崟 - */ - @RequiresPermissions("system:menu:edit") - @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧蹇呴』浠ttp(s)://寮澶"); - } - else if (menu.getMenuId().equals(menu.getParentId())) - { - return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屼笂绾ц彍鍗曚笉鑳介夋嫨鑷繁"); - } - menu.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(menuService.updateMenu(menu)); + /** 淇敼鑿滃崟 */ + @RequiresPermissions("system:menu:edit") + @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysMenu menu) { + if (!menuService.checkMenuNameUnique(menu)) { + return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); + } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) + && !StringUtils.ishttp(menu.getPath())) { + return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧蹇呴』浠ttp(s)://寮澶"); + } else if (menu.getMenuId().equals(menu.getParentId())) { + return error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屼笂绾ц彍鍗曚笉鑳介夋嫨鑷繁"); } + menu.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(menuService.updateMenu(menu)); + } - /** - * 鍒犻櫎鑿滃崟 - */ - @RequiresPermissions("system:menu:remove") - @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{menuId}") - public AjaxResult remove(@PathVariable("menuId") Long menuId) - { - if (menuService.hasChildByMenuId(menuId)) - { - return warn("瀛樺湪瀛愯彍鍗,涓嶅厑璁稿垹闄"); - } - if (menuService.checkMenuExistRole(menuId)) - { - return warn("鑿滃崟宸插垎閰,涓嶅厑璁稿垹闄"); - } - return toAjax(menuService.deleteMenuById(menuId)); + /** 鍒犻櫎鑿滃崟 */ + @RequiresPermissions("system:menu:remove") + @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{menuId}") + public AjaxResult remove(@PathVariable("menuId") Long menuId) { + if (menuService.hasChildByMenuId(menuId)) { + return warn("瀛樺湪瀛愯彍鍗,涓嶅厑璁稿垹闄"); } - - /** - * 鑾峰彇璺敱淇℃伅 - * - * @return 璺敱淇℃伅 - */ - @GetMapping("getRouters") - public AjaxResult getRouters() - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuTreeByUserId(userId); - return success(menuService.buildMenus(menus)); + if (menuService.checkMenuExistRole(menuId)) { + return warn("鑿滃崟宸插垎閰,涓嶅厑璁稿垹闄"); } -} \ No newline at end of file + return toAjax(menuService.deleteMenuById(menuId)); + } + + /** + * 鑾峰彇璺敱淇℃伅 + * + * @return 璺敱淇℃伅 + */ + @GetMapping("getRouters") + public AjaxResult getRouters() { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuTreeByUserId(userId); + return success(menuService.buildMenus(menus)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java index eb9061129..305980f80 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java @@ -1,5 +1,14 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.service.ISysNoticeService; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -11,82 +20,56 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.domain.SysNotice; -import com.ruoyi.system.service.ISysNoticeService; /** * 鍏憡 淇℃伅鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/notice") -public class SysNoticeController extends BaseController -{ - @Autowired - private ISysNoticeService noticeService; +public class SysNoticeController extends BaseController { + @Autowired private ISysNoticeService noticeService; - /** - * 鑾峰彇閫氱煡鍏憡鍒楄〃 - */ - @RequiresPermissions("system:notice:list") - @GetMapping("/list") - public TableDataInfo list(SysNotice notice) - { - startPage(); - List list = noticeService.selectNoticeList(notice); - return getDataTable(list); - } + /** 鑾峰彇閫氱煡鍏憡鍒楄〃 */ + @RequiresPermissions("system:notice:list") + @GetMapping("/list") + public TableDataInfo list(SysNotice notice) { + startPage(); + List list = noticeService.selectNoticeList(notice); + return getDataTable(list); + } - /** - * 鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:notice:query") - @GetMapping(value = "/{noticeId}") - public AjaxResult getInfo(@PathVariable Long noticeId) - { - return success(noticeService.selectNoticeById(noticeId)); - } + /** 鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:notice:query") + @GetMapping(value = "/{noticeId}") + public AjaxResult getInfo(@PathVariable Long noticeId) { + return success(noticeService.selectNoticeById(noticeId)); + } - /** - * 鏂板閫氱煡鍏憡 - */ - @RequiresPermissions("system:notice:add") - @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysNotice notice) - { - notice.setCreateBy(SecurityUtils.getUsername()); - return toAjax(noticeService.insertNotice(notice)); - } + /** 鏂板閫氱煡鍏憡 */ + @RequiresPermissions("system:notice:add") + @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysNotice notice) { + notice.setCreateBy(SecurityUtils.getUsername()); + return toAjax(noticeService.insertNotice(notice)); + } - /** - * 淇敼閫氱煡鍏憡 - */ - @RequiresPermissions("system:notice:edit") - @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysNotice notice) - { - notice.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(noticeService.updateNotice(notice)); - } + /** 淇敼閫氱煡鍏憡 */ + @RequiresPermissions("system:notice:edit") + @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysNotice notice) { + notice.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(noticeService.updateNotice(notice)); + } - /** - * 鍒犻櫎閫氱煡鍏憡 - */ - @RequiresPermissions("system:notice:remove") - @Log(title = "閫氱煡鍏憡", businessType = BusinessType.DELETE) - @DeleteMapping("/{noticeIds}") - public AjaxResult remove(@PathVariable Long[] noticeIds) - { - return toAjax(noticeService.deleteNoticeByIds(noticeIds)); - } + /** 鍒犻櫎閫氱煡鍏憡 */ + @RequiresPermissions("system:notice:remove") + @Log(title = "閫氱煡鍏憡", businessType = BusinessType.DELETE) + @DeleteMapping("/{noticeIds}") + public AjaxResult remove(@PathVariable Long[] noticeIds) { + return toAjax(noticeService.deleteNoticeByIds(noticeIds)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java index b3df48737..200bba33e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java @@ -1,15 +1,5 @@ package com.ruoyi.system.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -20,59 +10,62 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 鎿嶄綔鏃ュ織璁板綍 - * + * * @author ruoyi */ @RestController @RequestMapping("/operlog") -public class SysOperlogController extends BaseController -{ - @Autowired - private ISysOperLogService operLogService; +public class SysOperlogController extends BaseController { + @Autowired private ISysOperLogService operLogService; - @RequiresPermissions("system:operlog:list") - @GetMapping("/list") - public TableDataInfo list(SysOperLog operLog) - { - startPage(); - List list = operLogService.selectOperLogList(operLog); - return getDataTable(list); - } + @RequiresPermissions("system:operlog:list") + @GetMapping("/list") + public TableDataInfo list(SysOperLog operLog) { + startPage(); + List list = operLogService.selectOperLogList(operLog); + return getDataTable(list); + } - @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:operlog:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysOperLog operLog) - { - List list = operLogService.selectOperLogList(operLog); - ExcelUtil util = new ExcelUtil(SysOperLog.class); - util.exportExcel(response, list, "鎿嶄綔鏃ュ織"); - } + @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:operlog:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysOperLog operLog) { + List list = operLogService.selectOperLogList(operLog); + ExcelUtil util = new ExcelUtil(SysOperLog.class); + util.exportExcel(response, list, "鎿嶄綔鏃ュ織"); + } - @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.DELETE) - @RequiresPermissions("system:operlog:remove") - @DeleteMapping("/{operIds}") - public AjaxResult remove(@PathVariable Long[] operIds) - { - return toAjax(operLogService.deleteOperLogByIds(operIds)); - } + @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.DELETE) + @RequiresPermissions("system:operlog:remove") + @DeleteMapping("/{operIds}") + public AjaxResult remove(@PathVariable Long[] operIds) { + return toAjax(operLogService.deleteOperLogByIds(operIds)); + } - @RequiresPermissions("system:operlog:remove") - @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.CLEAN) - @DeleteMapping("/clean") - public AjaxResult clean() - { - operLogService.cleanOperLog(); - return success(); - } + @RequiresPermissions("system:operlog:remove") + @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.CLEAN) + @DeleteMapping("/clean") + public AjaxResult clean() { + operLogService.cleanOperLog(); + return success(); + } - @InnerAuth - @PostMapping - public AjaxResult add(@RequestBody SysOperLog operLog) - { - return toAjax(operLogService.insertOperlog(operLog)); - } + @InnerAuth + @PostMapping + public AjaxResult add(@RequestBody SysOperLog operLog) { + return toAjax(operLogService.insertOperlog(operLog)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java index d1dbff193..01cd4153d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java @@ -1,5 +1,15 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.service.ISysPostService; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -12,119 +22,82 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.domain.SysPost; -import com.ruoyi.system.service.ISysPostService; /** * 宀椾綅淇℃伅鎿嶄綔澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/post") -public class SysPostController extends BaseController -{ - @Autowired - private ISysPostService postService; +public class SysPostController extends BaseController { + @Autowired private ISysPostService postService; - /** - * 鑾峰彇宀椾綅鍒楄〃 - */ - @RequiresPermissions("system:post:list") - @GetMapping("/list") - public TableDataInfo list(SysPost post) - { - startPage(); - List list = postService.selectPostList(post); - return getDataTable(list); - } + /** 鑾峰彇宀椾綅鍒楄〃 */ + @RequiresPermissions("system:post:list") + @GetMapping("/list") + public TableDataInfo list(SysPost post) { + startPage(); + List list = postService.selectPostList(post); + return getDataTable(list); + } - @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:post:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysPost post) - { - List list = postService.selectPostList(post); - ExcelUtil util = new ExcelUtil(SysPost.class); - util.exportExcel(response, list, "宀椾綅鏁版嵁"); - } + @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:post:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysPost post) { + List list = postService.selectPostList(post); + ExcelUtil util = new ExcelUtil(SysPost.class); + util.exportExcel(response, list, "宀椾綅鏁版嵁"); + } - /** - * 鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:post:query") - @GetMapping(value = "/{postId}") - public AjaxResult getInfo(@PathVariable Long postId) - { - return success(postService.selectPostById(postId)); - } + /** 鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:post:query") + @GetMapping(value = "/{postId}") + public AjaxResult getInfo(@PathVariable Long postId) { + return success(postService.selectPostById(postId)); + } - /** - * 鏂板宀椾綅 - */ - @RequiresPermissions("system:post:add") - @Log(title = "宀椾綅绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("鏂板宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("鏂板宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶇紪鐮佸凡瀛樺湪"); - } - post.setCreateBy(SecurityUtils.getUsername()); - return toAjax(postService.insertPost(post)); + /** 鏂板宀椾綅 */ + @RequiresPermissions("system:post:add") + @Log(title = "宀椾綅绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysPost post) { + if (!postService.checkPostNameUnique(post)) { + return error("鏂板宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪"); + } else if (!postService.checkPostCodeUnique(post)) { + return error("鏂板宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶇紪鐮佸凡瀛樺湪"); } + post.setCreateBy(SecurityUtils.getUsername()); + return toAjax(postService.insertPost(post)); + } - /** - * 淇敼宀椾綅 - */ - @RequiresPermissions("system:post:edit") - @Log(title = "宀椾綅绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("淇敼宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("淇敼宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶇紪鐮佸凡瀛樺湪"); - } - post.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(postService.updatePost(post)); + /** 淇敼宀椾綅 */ + @RequiresPermissions("system:post:edit") + @Log(title = "宀椾綅绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysPost post) { + if (!postService.checkPostNameUnique(post)) { + return error("淇敼宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪"); + } else if (!postService.checkPostCodeUnique(post)) { + return error("淇敼宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶇紪鐮佸凡瀛樺湪"); } + post.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(postService.updatePost(post)); + } - /** - * 鍒犻櫎宀椾綅 - */ - @RequiresPermissions("system:post:remove") - @Log(title = "宀椾綅绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{postIds}") - public AjaxResult remove(@PathVariable Long[] postIds) - { - return toAjax(postService.deletePostByIds(postIds)); - } + /** 鍒犻櫎宀椾綅 */ + @RequiresPermissions("system:post:remove") + @Log(title = "宀椾綅绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{postIds}") + public AjaxResult remove(@PathVariable Long[] postIds) { + return toAjax(postService.deletePostByIds(postIds)); + } - /** - * 鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List posts = postService.selectPostAll(); - return success(posts); - } + /** 鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 */ + @GetMapping("/optionselect") + public AjaxResult optionselect() { + List posts = postService.selectPostAll(); + return success(posts); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java index 83aab06ab..9206144a8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java @@ -1,16 +1,5 @@ package com.ruoyi.system.controller; -import java.util.Arrays; -import java.util.Map; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -27,137 +16,122 @@ import com.ruoyi.system.api.domain.SysFile; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.service.ISysUserService; +import java.util.Arrays; +import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; /** * 涓汉淇℃伅 涓氬姟澶勭悊 - * + * * @author ruoyi */ @RestController @RequestMapping("/user/profile") -public class SysProfileController extends BaseController -{ - @Autowired - private ISysUserService userService; - - @Autowired - private TokenService tokenService; - - @Autowired - private RemoteFileService remoteFileService; +public class SysProfileController extends BaseController { + @Autowired private ISysUserService userService; - /** - * 涓汉淇℃伅 - */ - @GetMapping - public AjaxResult profile() - { - String username = SecurityUtils.getUsername(); - SysUser user = userService.selectUserByUserName(username); - AjaxResult ajax = AjaxResult.success(user); - ajax.put("roleGroup", userService.selectUserRoleGroup(username)); - ajax.put("postGroup", userService.selectUserPostGroup(username)); - return ajax; - } + @Autowired private TokenService tokenService; - /** - * 淇敼鐢ㄦ埛 - */ - @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult updateProfile(@RequestBody SysUser user) - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser currentUser = loginUser.getSysUser(); - currentUser.setNickName(user.getNickName()); - currentUser.setEmail(user.getEmail()); - currentUser.setPhonenumber(user.getPhonenumber()); - currentUser.setSex(user.getSex()); - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) - { - return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); - } - if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) - { - return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); - } - if (userService.updateUserProfile(currentUser)) - { - // 鏇存柊缂撳瓨鐢ㄦ埛淇℃伅 - tokenService.setLoginUser(loginUser); - return success(); - } - return error("淇敼涓汉淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛"); + @Autowired private RemoteFileService remoteFileService; + + /** 涓汉淇℃伅 */ + @GetMapping + public AjaxResult profile() { + String username = SecurityUtils.getUsername(); + SysUser user = userService.selectUserByUserName(username); + AjaxResult ajax = AjaxResult.success(user); + ajax.put("roleGroup", userService.selectUserRoleGroup(username)); + ajax.put("postGroup", userService.selectUserPostGroup(username)); + return ajax; + } + + /** 淇敼鐢ㄦ埛 */ + @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult updateProfile(@RequestBody SysUser user) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser currentUser = loginUser.getSysUser(); + currentUser.setNickName(user.getNickName()); + currentUser.setEmail(user.getEmail()); + currentUser.setPhonenumber(user.getPhonenumber()); + currentUser.setSex(user.getSex()); + if (StringUtils.isNotEmpty(user.getPhonenumber()) + && !userService.checkPhoneUnique(currentUser)) { + return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); } + if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) { + return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); + } + if (userService.updateUserProfile(currentUser)) { + // 鏇存柊缂撳瓨鐢ㄦ埛淇℃伅 + tokenService.setLoginUser(loginUser); + return success(); + } + return error("淇敼涓汉淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛"); + } - /** - * 閲嶇疆瀵嗙爜 - */ - @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) - @PutMapping("/updatePwd") - public AjaxResult updatePwd(@RequestBody Map params) - { - String oldPassword = params.get("oldPassword"); - String newPassword = params.get("newPassword"); - LoginUser loginUser = SecurityUtils.getLoginUser(); - Long userId = loginUser.getUserid(); - String password = loginUser.getSysUser().getPassword(); - if (!SecurityUtils.matchesPassword(oldPassword, password)) - { - return error("淇敼瀵嗙爜澶辫触锛屾棫瀵嗙爜閿欒"); - } - if (SecurityUtils.matchesPassword(newPassword, password)) - { - return error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚"); - } - newPassword = SecurityUtils.encryptPassword(newPassword); - if (userService.resetUserPwd(userId, newPassword) > 0) - { - // 鏇存柊缂撳瓨鐢ㄦ埛瀵嗙爜&瀵嗙爜鏈鍚庢洿鏂版椂闂 - loginUser.getSysUser().setPwdUpdateDate(DateUtils.getNowDate()); - loginUser.getSysUser().setPassword(newPassword); - tokenService.setLoginUser(loginUser); - return success(); - } - return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛"); + /** 閲嶇疆瀵嗙爜 */ + @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) + @PutMapping("/updatePwd") + public AjaxResult updatePwd(@RequestBody Map params) { + String oldPassword = params.get("oldPassword"); + String newPassword = params.get("newPassword"); + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserid(); + String password = loginUser.getSysUser().getPassword(); + if (!SecurityUtils.matchesPassword(oldPassword, password)) { + return error("淇敼瀵嗙爜澶辫触锛屾棫瀵嗙爜閿欒"); } - - /** - * 澶村儚涓婁紶 - */ - @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE) - @PostMapping("/avatar") - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) - { - if (!file.isEmpty()) - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - String extension = FileTypeUtils.getExtension(file); - if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) - { - return error("鏂囦欢鏍煎紡涓嶆纭紝璇蜂笂浼" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "鏍煎紡"); - } - R fileResult = remoteFileService.upload(file); - if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) - { - return error("鏂囦欢鏈嶅姟寮傚父锛岃鑱旂郴绠$悊鍛"); - } - String url = fileResult.getData().getUrl(); - if (userService.updateUserAvatar(loginUser.getUserid(), url)) - { - String oldAvatarUrl = loginUser.getSysUser().getAvatar(); - if (StringUtils.isNotEmpty(oldAvatarUrl)) - { - remoteFileService.delete(oldAvatarUrl); - } - AjaxResult ajax = AjaxResult.success(); - ajax.put("imgUrl", url); - // 鏇存柊缂撳瓨鐢ㄦ埛澶村儚 - loginUser.getSysUser().setAvatar(url); - tokenService.setLoginUser(loginUser); - return ajax; - } + if (SecurityUtils.matchesPassword(newPassword, password)) { + return error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚"); + } + newPassword = SecurityUtils.encryptPassword(newPassword); + if (userService.resetUserPwd(userId, newPassword) > 0) { + // 鏇存柊缂撳瓨鐢ㄦ埛瀵嗙爜&瀵嗙爜鏈鍚庢洿鏂版椂闂 + loginUser.getSysUser().setPwdUpdateDate(DateUtils.getNowDate()); + loginUser.getSysUser().setPassword(newPassword); + tokenService.setLoginUser(loginUser); + return success(); + } + return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛"); + } + + /** 澶村儚涓婁紶 */ + @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE) + @PostMapping("/avatar") + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) { + if (!file.isEmpty()) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + String extension = FileTypeUtils.getExtension(file); + if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { + return error("鏂囦欢鏍煎紡涓嶆纭紝璇蜂笂浼" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "鏍煎紡"); + } + R fileResult = remoteFileService.upload(file); + if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) { + return error("鏂囦欢鏈嶅姟寮傚父锛岃鑱旂郴绠$悊鍛"); + } + String url = fileResult.getData().getUrl(); + if (userService.updateUserAvatar(loginUser.getUserid(), url)) { + String oldAvatarUrl = loginUser.getSysUser().getAvatar(); + if (StringUtils.isNotEmpty(oldAvatarUrl)) { + remoteFileService.delete(oldAvatarUrl); } - return error("涓婁紶鍥剧墖寮傚父锛岃鑱旂郴绠$悊鍛"); + AjaxResult ajax = AjaxResult.success(); + ajax.put("imgUrl", url); + // 鏇存柊缂撳瓨鐢ㄦ埛澶村儚 + loginUser.getSysUser().setAvatar(url); + tokenService.setLoginUser(loginUser); + return ajax; + } } + return error("涓婁紶鍥剧墖寮傚父锛岃鑱旂郴绠$悊鍛"); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 440f5a162..b677f3261 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -1,17 +1,5 @@ package com.ruoyi.system.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -27,213 +15,174 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 瑙掕壊淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/role") -public class SysRoleController extends BaseController -{ - @Autowired - private ISysRoleService roleService; - - @Autowired - private ISysUserService userService; - - @Autowired - private ISysDeptService deptService; - - @RequiresPermissions("system:role:list") - @GetMapping("/list") - public TableDataInfo list(SysRole role) - { - startPage(); - List list = roleService.selectRoleList(role); - return getDataTable(list); - } - - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:role:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysRole role) - { - List list = roleService.selectRoleList(role); - ExcelUtil util = new ExcelUtil(SysRole.class); - util.exportExcel(response, list, "瑙掕壊鏁版嵁"); +public class SysRoleController extends BaseController { + @Autowired private ISysRoleService roleService; + + @Autowired private ISysUserService userService; + + @Autowired private ISysDeptService deptService; + + @RequiresPermissions("system:role:list") + @GetMapping("/list") + public TableDataInfo list(SysRole role) { + startPage(); + List list = roleService.selectRoleList(role); + return getDataTable(list); + } + + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:role:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysRole role) { + List list = roleService.selectRoleList(role); + ExcelUtil util = new ExcelUtil(SysRole.class); + util.exportExcel(response, list, "瑙掕壊鏁版嵁"); + } + + /** 鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:role:query") + @GetMapping(value = "/{roleId}") + public AjaxResult getInfo(@PathVariable Long roleId) { + roleService.checkRoleDataScope(roleId); + return success(roleService.selectRoleById(roleId)); + } + + /** 鏂板瑙掕壊 */ + @RequiresPermissions("system:role:add") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysRole role) { + if (!roleService.checkRoleNameUnique(role)) { + return error("鏂板瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪"); + } else if (!roleService.checkRoleKeyUnique(role)) { + return error("鏂板瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹叉潈闄愬凡瀛樺湪"); } - - /** - * 鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:role:query") - @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@PathVariable Long roleId) - { - roleService.checkRoleDataScope(roleId); - return success(roleService.selectRoleById(roleId)); - } - - /** - * 鏂板瑙掕壊 - */ - @RequiresPermissions("system:role:add") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysRole role) - { - if (!roleService.checkRoleNameUnique(role)) - { - return error("鏂板瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("鏂板瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹叉潈闄愬凡瀛樺湪"); - } - role.setCreateBy(SecurityUtils.getUsername()); - return toAjax(roleService.insertRole(role)); - - } - - /** - * 淇敼淇濆瓨瑙掕壊 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - if (!roleService.checkRoleNameUnique(role)) - { - return error("淇敼瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("淇敼瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹叉潈闄愬凡瀛樺湪"); - } - role.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(roleService.updateRole(role)); - } - - /** - * 淇敼淇濆瓨鏁版嵁鏉冮檺 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) - @PutMapping("/dataScope") - public AjaxResult dataScope(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.authDataScope(role)); - } - - /** - * 鐘舵佷慨鏀 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - role.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(roleService.updateRoleStatus(role)); - } - - /** - * 鍒犻櫎瑙掕壊 - */ - @RequiresPermissions("system:role:remove") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{roleIds}") - public AjaxResult remove(@PathVariable Long[] roleIds) - { - return toAjax(roleService.deleteRoleByIds(roleIds)); - } - - /** - * 鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 - */ - @RequiresPermissions("system:role:query") - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - return success(roleService.selectRoleAll()); - } - /** - * 鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 - */ - @RequiresPermissions("system:role:list") - @GetMapping("/authUser/allocatedList") - public TableDataInfo allocatedList(SysUser user) - { - startPage(); - List list = userService.selectAllocatedList(user); - return getDataTable(list); - } - - /** - * 鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 - */ - @RequiresPermissions("system:role:list") - @GetMapping("/authUser/unallocatedList") - public TableDataInfo unallocatedList(SysUser user) - { - startPage(); - List list = userService.selectUnallocatedList(user); - return getDataTable(list); - } - - /** - * 鍙栨秷鎺堟潈鐢ㄦ埛 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancel") - public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) - { - return toAjax(roleService.deleteAuthUser(userRole)); - } - - /** - * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancelAll") - public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) - { - return toAjax(roleService.deleteAuthUsers(roleId, userIds)); - } - - /** - * 鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) - @PutMapping("/authUser/selectAll") - public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) - { - roleService.checkRoleDataScope(roleId); - return toAjax(roleService.insertAuthUsers(roleId, userIds)); - } - - /** - * 鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛 - */ - @RequiresPermissions("system:role:query") - @GetMapping(value = "/deptTree/{roleId}") - public AjaxResult deptTree(@PathVariable("roleId") Long roleId) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); - return ajax; + role.setCreateBy(SecurityUtils.getUsername()); + return toAjax(roleService.insertRole(role)); + } + + /** 淇敼淇濆瓨瑙掕壊 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysRole role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + if (!roleService.checkRoleNameUnique(role)) { + return error("淇敼瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪"); + } else if (!roleService.checkRoleKeyUnique(role)) { + return error("淇敼瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹叉潈闄愬凡瀛樺湪"); } + role.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(roleService.updateRole(role)); + } + + /** 淇敼淇濆瓨鏁版嵁鏉冮檺 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) + @PutMapping("/dataScope") + public AjaxResult dataScope(@RequestBody SysRole role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + return toAjax(roleService.authDataScope(role)); + } + + /** 鐘舵佷慨鏀 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysRole role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + role.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(roleService.updateRoleStatus(role)); + } + + /** 鍒犻櫎瑙掕壊 */ + @RequiresPermissions("system:role:remove") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + public AjaxResult remove(@PathVariable Long[] roleIds) { + return toAjax(roleService.deleteRoleByIds(roleIds)); + } + + /** 鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 */ + @RequiresPermissions("system:role:query") + @GetMapping("/optionselect") + public AjaxResult optionselect() { + return success(roleService.selectRoleAll()); + } + + /** 鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 */ + @RequiresPermissions("system:role:list") + @GetMapping("/authUser/allocatedList") + public TableDataInfo allocatedList(SysUser user) { + startPage(); + List list = userService.selectAllocatedList(user); + return getDataTable(list); + } + + /** 鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 */ + @RequiresPermissions("system:role:list") + @GetMapping("/authUser/unallocatedList") + public TableDataInfo unallocatedList(SysUser user) { + startPage(); + List list = userService.selectUnallocatedList(user); + return getDataTable(list); + } + + /** 鍙栨秷鎺堟潈鐢ㄦ埛 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancel") + public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) { + return toAjax(roleService.deleteAuthUser(userRole)); + } + + /** 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancelAll") + public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) { + return toAjax(roleService.deleteAuthUsers(roleId, userIds)); + } + + /** 鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈 */ + @RequiresPermissions("system:role:edit") + @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.GRANT) + @PutMapping("/authUser/selectAll") + public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { + roleService.checkRoleDataScope(roleId); + return toAjax(roleService.insertAuthUsers(roleId, userIds)); + } + + /** 鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛 */ + @RequiresPermissions("system:role:query") + @GetMapping(value = "/deptTree/{roleId}") + public AjaxResult deptTree(@PathVariable("roleId") Long roleId) { + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return ajax; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index cc54ddf5e..5da3af1c9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -1,23 +1,5 @@ package com.ruoyi.system.controller; -import java.io.IOException; -import java.util.Date; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.DateUtils; @@ -42,339 +24,300 @@ import com.ruoyi.system.service.ISysPermissionService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; /** * 鐢ㄦ埛淇℃伅 - * + * * @author ruoyi */ @RestController @RequestMapping("/user") -public class SysUserController extends BaseController -{ - @Autowired - private ISysUserService userService; +public class SysUserController extends BaseController { + @Autowired private ISysUserService userService; - @Autowired - private ISysRoleService roleService; + @Autowired private ISysRoleService roleService; - @Autowired - private ISysDeptService deptService; + @Autowired private ISysDeptService deptService; - @Autowired - private ISysPostService postService; + @Autowired private ISysPostService postService; - @Autowired - private ISysPermissionService permissionService; + @Autowired private ISysPermissionService permissionService; - @Autowired - private ISysConfigService configService; + @Autowired private ISysConfigService configService; - @Autowired - private TokenService tokenService; + @Autowired private TokenService tokenService; - /** - * 鑾峰彇鐢ㄦ埛鍒楄〃 - */ - @RequiresPermissions("system:user:list") - @GetMapping("/list") - public TableDataInfo list(SysUser user) - { - startPage(); - List list = userService.selectUserList(user); - return getDataTable(list); - } + /** 鑾峰彇鐢ㄦ埛鍒楄〃 */ + @RequiresPermissions("system:user:list") + @GetMapping("/list") + public TableDataInfo list(SysUser user) { + startPage(); + List list = userService.selectUserList(user); + return getDataTable(list); + } - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:user:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) - { - List list = userService.selectUserList(user); - ExcelUtil util = new ExcelUtil(SysUser.class); - util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁"); - } + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:user:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysUser user) { + List list = userService.selectUserList(user); + ExcelUtil util = new ExcelUtil(SysUser.class); + util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁"); + } - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT) - @RequiresPermissions("system:user:import") - @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { - ExcelUtil util = new ExcelUtil(SysUser.class); - List userList = util.importExcel(file.getInputStream()); - String operName = SecurityUtils.getUsername(); - String message = userService.importUser(userList, updateSupport, operName); - return success(message); - } + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT) + @RequiresPermissions("system:user:import") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + ExcelUtil util = new ExcelUtil(SysUser.class); + List userList = util.importExcel(file.getInputStream()); + String operName = SecurityUtils.getUsername(); + String message = userService.importUser(userList, updateSupport, operName); + return success(message); + } - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) throws IOException - { - ExcelUtil util = new ExcelUtil(SysUser.class); - util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁"); - } + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) throws IOException { + ExcelUtil util = new ExcelUtil(SysUser.class); + util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁"); + } - /** - * 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 - */ - @InnerAuth - @GetMapping("/info/{username}") - public R info(@PathVariable("username") String username) - { - SysUser sysUser = userService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) - { - return R.fail("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); - } - // 瑙掕壊闆嗗悎 - Set roles = permissionService.getRolePermission(sysUser); - // 鏉冮檺闆嗗悎 - Set permissions = permissionService.getMenuPermission(sysUser); - LoginUser sysUserVo = new LoginUser(); - sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - return R.ok(sysUserVo); + /** 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 */ + @InnerAuth + @GetMapping("/info/{username}") + public R info(@PathVariable("username") String username) { + SysUser sysUser = userService.selectUserByUserName(username); + if (StringUtils.isNull(sysUser)) { + return R.fail("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); } + // 瑙掕壊闆嗗悎 + Set roles = permissionService.getRolePermission(sysUser); + // 鏉冮檺闆嗗悎 + Set permissions = permissionService.getMenuPermission(sysUser); + LoginUser sysUserVo = new LoginUser(); + sysUserVo.setSysUser(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setPermissions(permissions); + return R.ok(sysUserVo); + } - /** - * 娉ㄥ唽鐢ㄦ埛淇℃伅 - */ - @InnerAuth - @PostMapping("/register") - public R register(@RequestBody SysUser sysUser) - { - String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) - { - return R.fail("褰撳墠绯荤粺娌℃湁寮鍚敞鍐屽姛鑳斤紒"); - } - if (!userService.checkUserNameUnique(sysUser)) - { - return R.fail("淇濆瓨鐢ㄦ埛'" + username + "'澶辫触锛屾敞鍐岃处鍙峰凡瀛樺湪"); - } - return R.ok(userService.registerUser(sysUser)); + /** 娉ㄥ唽鐢ㄦ埛淇℃伅 */ + @InnerAuth + @PostMapping("/register") + public R register(@RequestBody SysUser sysUser) { + String username = sysUser.getUserName(); + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { + return R.fail("褰撳墠绯荤粺娌℃湁寮鍚敞鍐屽姛鑳斤紒"); } - - /** - *璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂 - */ - @InnerAuth - @PutMapping("/recordlogin") - public R recordlogin(@RequestBody SysUser sysUser) - { - return R.ok(userService.updateLoginInfo(sysUser)); + if (!userService.checkUserNameUnique(sysUser)) { + return R.fail("淇濆瓨鐢ㄦ埛'" + username + "'澶辫触锛屾敞鍐岃处鍙峰凡瀛樺湪"); } + return R.ok(userService.registerUser(sysUser)); + } - /** - * 鑾峰彇鐢ㄦ埛淇℃伅 - * - * @return 鐢ㄦ埛淇℃伅 - */ - @GetMapping("getInfo") - public AjaxResult getInfo() - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser user = loginUser.getSysUser(); - // 瑙掕壊闆嗗悎 - Set roles = permissionService.getRolePermission(user); - // 鏉冮檺闆嗗悎 - Set permissions = permissionService.getMenuPermission(user); - if (!loginUser.getPermissions().equals(permissions)) - { - loginUser.setPermissions(permissions); - tokenService.refreshToken(loginUser); - } - AjaxResult ajax = AjaxResult.success(); - ajax.put("user", user); - ajax.put("roles", roles); - ajax.put("permissions", permissions); - ajax.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); - ajax.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate())); - return ajax; - } + /** 璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂 */ + @InnerAuth + @PutMapping("/recordlogin") + public R recordlogin(@RequestBody SysUser sysUser) { + return R.ok(userService.updateLoginInfo(sysUser)); + } - // 妫鏌ュ垵濮嬪瘑鐮佹槸鍚︽彁閱掍慨鏀 - public boolean initPasswordIsModify(Date pwdUpdateDate) - { - Integer initPasswordModify = Convert.toInt(configService.selectConfigByKey("sys.account.initPasswordModify")); - return initPasswordModify != null && initPasswordModify == 1 && pwdUpdateDate == null; + /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + * + * @return 鐢ㄦ埛淇℃伅 + */ + @GetMapping("getInfo") + public AjaxResult getInfo() { + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser user = loginUser.getSysUser(); + // 瑙掕壊闆嗗悎 + Set roles = permissionService.getRolePermission(user); + // 鏉冮檺闆嗗悎 + Set permissions = permissionService.getMenuPermission(user); + if (!loginUser.getPermissions().equals(permissions)) { + loginUser.setPermissions(permissions); + tokenService.refreshToken(loginUser); } + AjaxResult ajax = AjaxResult.success(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + ajax.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); + ajax.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate())); + return ajax; + } - // 妫鏌ュ瘑鐮佹槸鍚﹁繃鏈 - public boolean passwordIsExpiration(Date pwdUpdateDate) - { - Integer passwordValidateDays = Convert.toInt(configService.selectConfigByKey("sys.account.passwordValidateDays")); - if (passwordValidateDays != null && passwordValidateDays > 0) - { - if (StringUtils.isNull(pwdUpdateDate)) - { - // 濡傛灉浠庢湭淇敼杩囧垵濮嬪瘑鐮侊紝鐩存帴鎻愰啋杩囨湡 - return true; - } - Date nowDate = DateUtils.getNowDate(); - return DateUtils.differentDaysByMillisecond(nowDate, pwdUpdateDate) > passwordValidateDays; - } - return false; - } + // 妫鏌ュ垵濮嬪瘑鐮佹槸鍚︽彁閱掍慨鏀 + public boolean initPasswordIsModify(Date pwdUpdateDate) { + Integer initPasswordModify = + Convert.toInt(configService.selectConfigByKey("sys.account.initPasswordModify")); + return initPasswordModify != null && initPasswordModify == 1 && pwdUpdateDate == null; + } - /** - * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅 - */ - @RequiresPermissions("system:user:query") - @GetMapping(value = { "/", "/{userId}" }) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) - { - AjaxResult ajax = AjaxResult.success(); - if (StringUtils.isNotNull(userId)) - { - userService.checkUserDataScope(userId); - SysUser sysUser = userService.selectUserById(userId); - ajax.put(AjaxResult.DATA_TAG, sysUser); - ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); - } - List roles = roleService.selectRoleAll(); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - ajax.put("posts", postService.selectPostAll()); - return ajax; + // 妫鏌ュ瘑鐮佹槸鍚﹁繃鏈 + public boolean passwordIsExpiration(Date pwdUpdateDate) { + Integer passwordValidateDays = + Convert.toInt(configService.selectConfigByKey("sys.account.passwordValidateDays")); + if (passwordValidateDays != null && passwordValidateDays > 0) { + if (StringUtils.isNull(pwdUpdateDate)) { + // 濡傛灉浠庢湭淇敼杩囧垵濮嬪瘑鐮侊紝鐩存帴鎻愰啋杩囨湡 + return true; + } + Date nowDate = DateUtils.getNowDate(); + return DateUtils.differentDaysByMillisecond(nowDate, pwdUpdateDate) > passwordValidateDays; } + return false; + } - /** - * 鏂板鐢ㄦ埛 - */ - @RequiresPermissions("system:user:add") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) - { - deptService.checkDeptDataScope(user.getDeptId()); - roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { - return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); - } - user.setCreateBy(SecurityUtils.getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - return toAjax(userService.insertUser(user)); + /** 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅 */ + @RequiresPermissions("system:user:query") + @GetMapping(value = {"/", "/{userId}"}) + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { + AjaxResult ajax = AjaxResult.success(); + if (StringUtils.isNotNull(userId)) { + userService.checkUserDataScope(userId); + SysUser sysUser = userService.selectUserById(userId); + ajax.put(AjaxResult.DATA_TAG, sysUser); + ajax.put("postIds", postService.selectPostListByUserId(userId)); + ajax.put( + "roleIds", + sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); } + List roles = roleService.selectRoleAll(); + ajax.put( + "roles", + SysUser.isAdmin(userId) + ? roles + : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("posts", postService.selectPostAll()); + return ajax; + } - /** - * 淇敼鐢ㄦ埛 - */ - @RequiresPermissions("system:user:edit") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - deptService.checkDeptDataScope(user.getDeptId()); - roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { - return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); - } - user.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(userService.updateUser(user)); + /** 鏂板鐢ㄦ埛 */ + @RequiresPermissions("system:user:add") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysUser user) { + deptService.checkDeptDataScope(user.getDeptId()); + roleService.checkRoleDataScope(user.getRoleIds()); + if (!userService.checkUserNameUnique(user)) { + return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) + && !userService.checkPhoneUnique(user)) { + return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); } + user.setCreateBy(SecurityUtils.getUsername()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + return toAjax(userService.insertUser(user)); + } - /** - * 鍒犻櫎鐢ㄦ埛 - */ - @RequiresPermissions("system:user:remove") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.DELETE) - @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { - if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) - { - return error("褰撳墠鐢ㄦ埛涓嶈兘鍒犻櫎"); - } - return toAjax(userService.deleteUserByIds(userIds)); + /** 淇敼鐢ㄦ埛 */ + @RequiresPermissions("system:user:edit") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysUser user) { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + deptService.checkDeptDataScope(user.getDeptId()); + roleService.checkRoleDataScope(user.getRoleIds()); + if (!userService.checkUserNameUnique(user)) { + return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) + && !userService.checkPhoneUnique(user)) { + return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); } + user.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(userService.updateUser(user)); + } - /** - * 閲嶇疆瀵嗙爜 - */ - @RequiresPermissions("system:user:edit") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) - @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(userService.resetPwd(user)); + /** 鍒犻櫎鐢ㄦ埛 */ + @RequiresPermissions("system:user:remove") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{userIds}") + public AjaxResult remove(@PathVariable Long[] userIds) { + if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { + return error("褰撳墠鐢ㄦ埛涓嶈兘鍒犻櫎"); } + return toAjax(userService.deleteUserByIds(userIds)); + } - /** - * 鐘舵佷慨鏀 - */ - @RequiresPermissions("system:user:edit") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(userService.updateUserStatus(user)); - } + /** 閲嶇疆瀵嗙爜 */ + @RequiresPermissions("system:user:edit") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + public AjaxResult resetPwd(@RequestBody SysUser user) { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(userService.resetPwd(user)); + } - /** - * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊 - */ - @RequiresPermissions("system:user:query") - @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable("userId") Long userId) - { - AjaxResult ajax = AjaxResult.success(); - SysUser user = userService.selectUserById(userId); - List roles = roleService.selectRolesByUserId(userId); - ajax.put("user", user); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - return ajax; - } + /** 鐘舵佷慨鏀 */ + @RequiresPermissions("system:user:edit") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysUser user) { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + user.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(userService.updateUserStatus(user)); + } - /** - * 鐢ㄦ埛鎺堟潈瑙掕壊 - */ - @RequiresPermissions("system:user:edit") - @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.GRANT) - @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) - { - userService.checkUserDataScope(userId); - roleService.checkRoleDataScope(roleIds); - userService.insertUserAuth(userId, roleIds); - return success(); - } + /** 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊 */ + @RequiresPermissions("system:user:query") + @GetMapping("/authRole/{userId}") + public AjaxResult authRole(@PathVariable("userId") Long userId) { + AjaxResult ajax = AjaxResult.success(); + SysUser user = userService.selectUserById(userId); + List roles = roleService.selectRolesByUserId(userId); + ajax.put("user", user); + ajax.put( + "roles", + SysUser.isAdmin(userId) + ? roles + : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + return ajax; + } - /** - * 鑾峰彇閮ㄩ棬鏍戝垪琛 - */ - @RequiresPermissions("system:user:list") - @GetMapping("/deptTree") - public AjaxResult deptTree(SysDept dept) - { - return success(deptService.selectDeptTreeList(dept)); - } + /** 鐢ㄦ埛鎺堟潈瑙掕壊 */ + @RequiresPermissions("system:user:edit") + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.GRANT) + @PutMapping("/authRole") + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { + userService.checkUserDataScope(userId); + roleService.checkRoleDataScope(roleIds); + userService.insertUserAuth(userId, roleIds); + return success(); + } + + /** 鑾峰彇閮ㄩ棬鏍戝垪琛 */ + @RequiresPermissions("system:user:list") + @GetMapping("/deptTree") + public AjaxResult deptTree(SysDept dept) { + return success(deptService.selectDeptTreeList(dept)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java index d15b0ae09..e44950aca 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java @@ -1,15 +1,5 @@ package com.ruoyi.system.controller; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; @@ -22,62 +12,57 @@ import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.domain.SysUserOnline; import com.ruoyi.system.service.ISysUserOnlineService; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 鍦ㄧ嚎鐢ㄦ埛鐩戞帶 - * + * * @author ruoyi */ @RestController @RequestMapping("/online") -public class SysUserOnlineController extends BaseController -{ - @Autowired - private ISysUserOnlineService userOnlineService; +public class SysUserOnlineController extends BaseController { + @Autowired private ISysUserOnlineService userOnlineService; - @Autowired - private RedisService redisService; + @Autowired private RedisService redisService; - @RequiresPermissions("monitor:online:list") - @GetMapping("/list") - public TableDataInfo list(String ipaddr, String userName) - { - Collection keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); - List userOnlineList = new ArrayList(); - for (String key : keys) - { - LoginUser user = redisService.getCacheObject(key); - if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) - { - userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); - } - else if (StringUtils.isNotEmpty(ipaddr)) - { - userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); - } - else if (StringUtils.isNotEmpty(userName)) - { - userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); - } - else - { - userOnlineList.add(userOnlineService.loginUserToUserOnline(user)); - } - } - Collections.reverse(userOnlineList); - userOnlineList.removeAll(Collections.singleton(null)); - return getDataTable(userOnlineList); + @RequiresPermissions("monitor:online:list") + @GetMapping("/list") + public TableDataInfo list(String ipaddr, String userName) { + Collection keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); + List userOnlineList = new ArrayList(); + for (String key : keys) { + LoginUser user = redisService.getCacheObject(key); + if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { + userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); + } else if (StringUtils.isNotEmpty(ipaddr)) { + userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); + } else if (StringUtils.isNotEmpty(userName)) { + userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); + } else { + userOnlineList.add(userOnlineService.loginUserToUserOnline(user)); + } } + Collections.reverse(userOnlineList); + userOnlineList.removeAll(Collections.singleton(null)); + return getDataTable(userOnlineList); + } - /** - * 寮洪鐢ㄦ埛 - */ - @RequiresPermissions("monitor:online:forceLogout") - @Log(title = "鍦ㄧ嚎鐢ㄦ埛", businessType = BusinessType.FORCE) - @DeleteMapping("/{tokenId}") - public AjaxResult forceLogout(@PathVariable String tokenId) - { - redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); - return success(); - } + /** 寮洪鐢ㄦ埛 */ + @RequiresPermissions("monitor:online:forceLogout") + @Log(title = "鍦ㄧ嚎鐢ㄦ埛", businessType = BusinessType.FORCE) + @DeleteMapping("/{tokenId}") + public AjaxResult forceLogout(@PathVariable String tokenId) { + redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); + return success(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index 5b3c54085..a2f7b4848 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -1,111 +1,100 @@ package com.ruoyi.system.domain; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.web.domain.BaseEntity; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 鍙傛暟閰嶇疆琛 sys_config - * + * * @author ruoyi */ -public class SysConfig extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 鍙傛暟涓婚敭 */ - @Excel(name = "鍙傛暟涓婚敭", cellType = ColumnType.NUMERIC) - private Long configId; - - /** 鍙傛暟鍚嶇О */ - @Excel(name = "鍙傛暟鍚嶇О") - private String configName; - - /** 鍙傛暟閿悕 */ - @Excel(name = "鍙傛暟閿悕") - private String configKey; - - /** 鍙傛暟閿 */ - @Excel(name = "鍙傛暟閿") - private String configValue; - - /** 绯荤粺鍐呯疆锛圷鏄 N鍚︼級 */ - @Excel(name = "绯荤粺鍐呯疆", readConverterExp = "Y=鏄,N=鍚") - private String configType; - - public Long getConfigId() - { - return configId; - } - - public void setConfigId(Long configId) - { - this.configId = configId; - } - - @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃100涓瓧绗") - public String getConfigName() - { - return configName; - } - - public void setConfigName(String configName) - { - this.configName = configName; - } - - @NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖") - @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getConfigKey() - { - return configKey; - } - - public void setConfigKey(String configKey) - { - this.configKey = configKey; - } - - @NotBlank(message = "鍙傛暟閿间笉鑳戒负绌") - @Size(min = 0, max = 500, message = "鍙傛暟閿奸暱搴︿笉鑳借秴杩500涓瓧绗") - public String getConfigValue() - { - return configValue; - } - - public void setConfigValue(String configValue) - { - this.configValue = configValue; - } - - public String getConfigType() - { - return configType; - } - - public void setConfigType(String configType) - { - this.configType = configType; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("configId", getConfigId()) - .append("configName", getConfigName()) - .append("configKey", getConfigKey()) - .append("configValue", getConfigValue()) - .append("configType", getConfigType()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } +public class SysConfig extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鍙傛暟涓婚敭 */ + @Excel(name = "鍙傛暟涓婚敭", cellType = ColumnType.NUMERIC) + private Long configId; + + /** 鍙傛暟鍚嶇О */ + @Excel(name = "鍙傛暟鍚嶇О") + private String configName; + + /** 鍙傛暟閿悕 */ + @Excel(name = "鍙傛暟閿悕") + private String configKey; + + /** 鍙傛暟閿 */ + @Excel(name = "鍙傛暟閿") + private String configValue; + + /** 绯荤粺鍐呯疆锛圷鏄 N鍚︼級 */ + @Excel(name = "绯荤粺鍐呯疆", readConverterExp = "Y=鏄,N=鍚") + private String configType; + + public Long getConfigId() { + return configId; + } + + public void setConfigId(Long configId) { + this.configId = configId; + } + + @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃100涓瓧绗") + public String getConfigName() { + return configName; + } + + public void setConfigName(String configName) { + this.configName = configName; + } + + @NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖") + @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getConfigKey() { + return configKey; + } + + public void setConfigKey(String configKey) { + this.configKey = configKey; + } + + @NotBlank(message = "鍙傛暟閿间笉鑳戒负绌") + @Size(min = 0, max = 500, message = "鍙傛暟閿奸暱搴︿笉鑳借秴杩500涓瓧绗") + public String getConfigValue() { + return configValue; + } + + public void setConfigValue(String configValue) { + this.configValue = configValue; + } + + public String getConfigType() { + return configType; + } + + public void setConfigType(String configType) { + this.configType = configType; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("configId", getConfigId()) + .append("configName", getConfigName()) + .append("configKey", getConfigKey()) + .append("configValue", getConfigValue()) + .append("configType", getConfigType()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java index 2cea339d0..84278b996 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java @@ -1,5 +1,6 @@ package com.ruoyi.system.domain; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotBlank; @@ -7,268 +8,232 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 鑿滃崟鏉冮檺琛 sys_menu - * + * * @author ruoyi */ -public class SysMenu extends BaseEntity -{ - private static final long serialVersionUID = 1L; +public class SysMenu extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鑿滃崟ID */ + private Long menuId; + + /** 鑿滃崟鍚嶇О */ + private String menuName; + + /** 鐖惰彍鍗曞悕绉 */ + private String parentName; + + /** 鐖惰彍鍗旾D */ + private Long parentId; + + /** 鏄剧ず椤哄簭 */ + private Integer orderNum; + + /** 璺敱鍦板潃 */ + private String path; + + /** 缁勪欢璺緞 */ + private String component; + + /** 璺敱鍙傛暟 */ + private String query; + + /** 璺敱鍚嶇О锛岄粯璁ゅ拰璺敱鍦板潃鐩稿悓鐨勯┘宄版牸寮忥紙娉ㄦ剰锛氬洜涓簐ue3鐗堟湰鐨剅outer浼氬垹闄ゅ悕绉扮浉鍚岃矾鐢憋紝涓洪伩鍏嶅悕瀛楃殑鍐茬獊锛岀壒娈婃儏鍐靛彲浠ヨ嚜瀹氫箟锛 */ + private String routeName; + + /** 鏄惁涓哄閾撅紙0鏄 1鍚︼級 */ + private String isFrame; + + /** 鏄惁缂撳瓨锛0缂撳瓨 1涓嶇紦瀛橈級 */ + private String isCache; + + /** 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛 */ + private String menuType; + + /** 鏄剧ず鐘舵侊紙0鏄剧ず 1闅愯棌锛 */ + private String visible; + + /** 鑿滃崟鐘舵侊紙0姝e父 1鍋滅敤锛 */ + private String status; + + /** 鏉冮檺瀛楃涓 */ + private String perms; + + /** 鑿滃崟鍥炬爣 */ + private String icon; + + /** 瀛愯彍鍗 */ + private List children = new ArrayList(); + + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗") + public String getMenuName() { + return menuName; + } + + public void setMenuName(String menuName) { + this.menuName = menuName; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") + public Integer getOrderNum() { + return orderNum; + } - /** 鑿滃崟ID */ - private Long menuId; + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } - /** 鑿滃崟鍚嶇О */ - private String menuName; + @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃200涓瓧绗") + public String getPath() { + return path; + } - /** 鐖惰彍鍗曞悕绉 */ - private String parentName; - - /** 鐖惰彍鍗旾D */ - private Long parentId; - - /** 鏄剧ず椤哄簭 */ - private Integer orderNum; + public void setPath(String path) { + this.path = path; + } - /** 璺敱鍦板潃 */ - private String path; - - /** 缁勪欢璺緞 */ - private String component; - - /** 璺敱鍙傛暟 */ - private String query; - - /** 璺敱鍚嶇О锛岄粯璁ゅ拰璺敱鍦板潃鐩稿悓鐨勯┘宄版牸寮忥紙娉ㄦ剰锛氬洜涓簐ue3鐗堟湰鐨剅outer浼氬垹闄ゅ悕绉扮浉鍚岃矾鐢憋紝涓洪伩鍏嶅悕瀛楃殑鍐茬獊锛岀壒娈婃儏鍐靛彲浠ヨ嚜瀹氫箟锛 */ - private String routeName; - - /** 鏄惁涓哄閾撅紙0鏄 1鍚︼級 */ - private String isFrame; - - /** 鏄惁缂撳瓨锛0缂撳瓨 1涓嶇紦瀛橈級 */ - private String isCache; - - /** 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛 */ - private String menuType; - - /** 鏄剧ず鐘舵侊紙0鏄剧ず 1闅愯棌锛 */ - private String visible; - - /** 鑿滃崟鐘舵侊紙0姝e父 1鍋滅敤锛 */ - private String status; - - /** 鏉冮檺瀛楃涓 */ - private String perms; - - /** 鑿滃崟鍥炬爣 */ - private String icon; - - /** 瀛愯彍鍗 */ - private List children = new ArrayList(); - - public Long getMenuId() - { - return menuId; - } - - public void setMenuId(Long menuId) - { - this.menuId = menuId; - } - - @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗") - public String getMenuName() - { - return menuName; - } - - public void setMenuName(String menuName) - { - this.menuName = menuName; - } - - public String getParentName() - { - return parentName; - } - - public void setParentName(String parentName) - { - this.parentName = parentName; - } - - public Long getParentId() - { - return parentId; - } - - public void setParentId(Long parentId) - { - this.parentId = parentId; - } - - @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") - public Integer getOrderNum() - { - return orderNum; - } - - public void setOrderNum(Integer orderNum) - { - this.orderNum = orderNum; - } - - @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃200涓瓧绗") - public String getPath() - { - return path; - } - - public void setPath(String path) - { - this.path = path; - } - - @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃255涓瓧绗") - public String getComponent() - { - return component; - } - - public void setComponent(String component) - { - this.component = component; - } - - public String getQuery() - { - return query; - } - - public void setQuery(String query) - { - this.query = query; - } - - public String getRouteName() - { - return routeName; - } - - public void setRouteName(String routeName) - { - this.routeName = routeName; - } - - public String getIsFrame() - { - return isFrame; - } - - public void setIsFrame(String isFrame) - { - this.isFrame = isFrame; - } - - public String getIsCache() - { - return isCache; - } - - public void setIsCache(String isCache) - { - this.isCache = isCache; - } - - @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖") - public String getMenuType() - { - return menuType; - } - - public void setMenuType(String menuType) - { - this.menuType = menuType; - } - - public String getVisible() - { - return visible; - } - - public void setVisible(String visible) - { - this.visible = visible; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃100涓瓧绗") - public String getPerms() - { - return perms; - } - - public void setPerms(String perms) - { - this.perms = perms; - } - - public String getIcon() - { - return icon; - } - - public void setIcon(String icon) - { - this.icon = icon; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("menuId", getMenuId()) - .append("menuName", getMenuName()) - .append("parentId", getParentId()) - .append("orderNum", getOrderNum()) - .append("path", getPath()) - .append("component", getComponent()) - .append("query", getQuery()) - .append("routeName", getRouteName()) - .append("isFrame", getIsFrame()) - .append("IsCache", getIsCache()) - .append("menuType", getMenuType()) - .append("visible", getVisible()) - .append("status ", getStatus()) - .append("perms", getPerms()) - .append("icon", getIcon()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } + @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃255涓瓧绗") + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getRouteName() { + return routeName; + } + + public void setRouteName(String routeName) { + this.routeName = routeName; + } + + public String getIsFrame() { + return isFrame; + } + + public void setIsFrame(String isFrame) { + this.isFrame = isFrame; + } + + public String getIsCache() { + return isCache; + } + + public void setIsCache(String isCache) { + this.isCache = isCache; + } + + @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖") + public String getMenuType() { + return menuType; + } + + public void setMenuType(String menuType) { + this.menuType = menuType; + } + + public String getVisible() { + return visible; + } + + public void setVisible(String visible) { + this.visible = visible; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃100涓瓧绗") + public String getPerms() { + return perms; + } + + public void setPerms(String perms) { + this.perms = perms; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("menuId", getMenuId()) + .append("menuName", getMenuName()) + .append("parentId", getParentId()) + .append("orderNum", getOrderNum()) + .append("path", getPath()) + .append("component", getComponent()) + .append("query", getQuery()) + .append("routeName", getRouteName()) + .append("isFrame", getIsFrame()) + .append("IsCache", getIsCache()) + .append("menuType", getMenuType()) + .append("visible", getVisible()) + .append("status ", getStatus()) + .append("perms", getPerms()) + .append("icon", getIcon()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index 6e157638a..23e4a8186 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -1,102 +1,91 @@ package com.ruoyi.system.domain; +import com.ruoyi.common.core.web.domain.BaseEntity; +import com.ruoyi.common.core.xss.Xss; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.web.domain.BaseEntity; -import com.ruoyi.common.core.xss.Xss; /** * 閫氱煡鍏憡琛 sys_notice - * + * * @author ruoyi */ -public class SysNotice extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 鍏憡ID */ - private Long noticeId; - - /** 鍏憡鏍囬 */ - private String noticeTitle; - - /** 鍏憡绫诲瀷锛1閫氱煡 2鍏憡锛 */ - private String noticeType; - - /** 鍏憡鍐呭 */ - private String noticeContent; - - /** 鍏憡鐘舵侊紙0姝e父 1鍏抽棴锛 */ - private String status; - - public Long getNoticeId() - { - return noticeId; - } - - public void setNoticeId(Long noticeId) - { - this.noticeId = noticeId; - } - - public void setNoticeTitle(String noticeTitle) - { - this.noticeTitle = noticeTitle; - } - - @Xss(message = "鍏憡鏍囬涓嶈兘鍖呭惈鑴氭湰瀛楃") - @NotBlank(message = "鍏憡鏍囬涓嶈兘涓虹┖") - @Size(min = 0, max = 50, message = "鍏憡鏍囬涓嶈兘瓒呰繃50涓瓧绗") - public String getNoticeTitle() - { - return noticeTitle; - } - - public void setNoticeType(String noticeType) - { - this.noticeType = noticeType; - } - - public String getNoticeType() - { - return noticeType; - } - - public void setNoticeContent(String noticeContent) - { - this.noticeContent = noticeContent; - } - - public String getNoticeContent() - { - return noticeContent; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getStatus() - { - return status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("noticeId", getNoticeId()) - .append("noticeTitle", getNoticeTitle()) - .append("noticeType", getNoticeType()) - .append("noticeContent", getNoticeContent()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } +public class SysNotice extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 鍏憡ID */ + private Long noticeId; + + /** 鍏憡鏍囬 */ + private String noticeTitle; + + /** 鍏憡绫诲瀷锛1閫氱煡 2鍏憡锛 */ + private String noticeType; + + /** 鍏憡鍐呭 */ + private String noticeContent; + + /** 鍏憡鐘舵侊紙0姝e父 1鍏抽棴锛 */ + private String status; + + public Long getNoticeId() { + return noticeId; + } + + public void setNoticeId(Long noticeId) { + this.noticeId = noticeId; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + @Xss(message = "鍏憡鏍囬涓嶈兘鍖呭惈鑴氭湰瀛楃") + @NotBlank(message = "鍏憡鏍囬涓嶈兘涓虹┖") + @Size(min = 0, max = 50, message = "鍏憡鏍囬涓嶈兘瓒呰繃50涓瓧绗") + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeType(String noticeType) { + this.noticeType = noticeType; + } + + public String getNoticeType() { + return noticeType; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("noticeId", getNoticeId()) + .append("noticeTitle", getNoticeTitle()) + .append("noticeType", getNoticeType()) + .append("noticeContent", getNoticeContent()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index 7c03fbdeb..5d82929cf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -1,124 +1,111 @@ package com.ruoyi.system.domain; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.web.domain.BaseEntity; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 宀椾綅琛 sys_post - * + * * @author ruoyi */ -public class SysPost extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 宀椾綅搴忓彿 */ - @Excel(name = "宀椾綅搴忓彿", cellType = ColumnType.NUMERIC) - private Long postId; - - /** 宀椾綅缂栫爜 */ - @Excel(name = "宀椾綅缂栫爜") - private String postCode; - - /** 宀椾綅鍚嶇О */ - @Excel(name = "宀椾綅鍚嶇О") - private String postName; - - /** 宀椾綅鎺掑簭 */ - @Excel(name = "宀椾綅鎺掑簭") - private Integer postSort; - - /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ - @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") - private String status; - - /** 鐢ㄦ埛鏄惁瀛樺湪姝ゅ矖浣嶆爣璇 榛樿涓嶅瓨鍦 */ - private boolean flag = false; - - public Long getPostId() - { - return postId; - } - - public void setPostId(Long postId) - { - this.postId = postId; - } - - @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖") - @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃64涓瓧绗") - public String getPostCode() - { - return postCode; - } - - public void setPostCode(String postCode) - { - this.postCode = postCode; - } - - @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖") - @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗") - public String getPostName() - { - return postName; - } - - public void setPostName(String postName) - { - this.postName = postName; - } - - @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") - public Integer getPostSort() - { - return postSort; - } - - public void setPostSort(Integer postSort) - { - this.postSort = postSort; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public boolean isFlag() - { - return flag; - } - - public void setFlag(boolean flag) - { - this.flag = flag; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("postId", getPostId()) - .append("postCode", getPostCode()) - .append("postName", getPostName()) - .append("postSort", getPostSort()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } +public class SysPost extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 宀椾綅搴忓彿 */ + @Excel(name = "宀椾綅搴忓彿", cellType = ColumnType.NUMERIC) + private Long postId; + + /** 宀椾綅缂栫爜 */ + @Excel(name = "宀椾綅缂栫爜") + private String postCode; + + /** 宀椾綅鍚嶇О */ + @Excel(name = "宀椾綅鍚嶇О") + private String postName; + + /** 宀椾綅鎺掑簭 */ + @Excel(name = "宀椾綅鎺掑簭") + private Integer postSort; + + /** 鐘舵侊紙0姝e父 1鍋滅敤锛 */ + @Excel(name = "鐘舵", readConverterExp = "0=姝e父,1=鍋滅敤") + private String status; + + /** 鐢ㄦ埛鏄惁瀛樺湪姝ゅ矖浣嶆爣璇 榛樿涓嶅瓨鍦 */ + private boolean flag = false; + + public Long getPostId() { + return postId; + } + + public void setPostId(Long postId) { + this.postId = postId; + } + + @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖") + @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃64涓瓧绗") + public String getPostCode() { + return postCode; + } + + public void setPostCode(String postCode) { + this.postCode = postCode; + } + + @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖") + @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗") + public String getPostName() { + return postName; + } + + public void setPostName(String postName) { + this.postName = postName; + } + + @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖") + public Integer getPostSort() { + return postSort; + } + + public void setPostSort(Integer postSort) { + this.postSort = postSort; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public boolean isFlag() { + return flag; + } + + public void setFlag(boolean flag) { + this.flag = flag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("postId", getPostId()) + .append("postCode", getPostCode()) + .append("postName", getPostName()) + .append("postSort", getPostSort()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java index 8ed8e473e..d5a3be3da 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java @@ -5,42 +5,37 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** * 瑙掕壊鍜岄儴闂ㄥ叧鑱 sys_role_dept - * + * * @author ruoyi */ -public class SysRoleDept -{ - /** 瑙掕壊ID */ - private Long roleId; - - /** 閮ㄩ棬ID */ - private Long deptId; - - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - public Long getDeptId() - { - return deptId; - } - - public void setDeptId(Long deptId) - { - this.deptId = deptId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("deptId", getDeptId()) - .toString(); - } +public class SysRoleDept { + /** 瑙掕壊ID */ + private Long roleId; + + /** 閮ㄩ棬ID */ + private Long deptId; + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("deptId", getDeptId()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java index 59d286999..2f288cd08 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java @@ -5,42 +5,37 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** * 瑙掕壊鍜岃彍鍗曞叧鑱 sys_role_menu - * + * * @author ruoyi */ -public class SysRoleMenu -{ - /** 瑙掕壊ID */ - private Long roleId; - - /** 鑿滃崟ID */ - private Long menuId; - - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - public Long getMenuId() - { - return menuId; - } - - public void setMenuId(Long menuId) - { - this.menuId = menuId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("menuId", getMenuId()) - .toString(); - } +public class SysRoleMenu { + /** 瑙掕壊ID */ + private Long roleId; + + /** 鑿滃崟ID */ + private Long menuId; + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("menuId", getMenuId()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java index d9c8df01c..9c150e401 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -2,99 +2,84 @@ package com.ruoyi.system.domain; /** * 褰撳墠鍦ㄧ嚎浼氳瘽 - * + * * @author ruoyi */ -public class SysUserOnline -{ - /** 浼氳瘽缂栧彿 */ - private String tokenId; - - /** 鐢ㄦ埛鍚嶇О */ - private String userName; - - /** 鐧诲綍IP鍦板潃 */ - private String ipaddr; - - /** 鐧诲綍鍦板潃 */ - private String loginLocation; - - /** 娴忚鍣ㄧ被鍨 */ - private String browser; - - /** 鎿嶄綔绯荤粺 */ - private String os; - - /** 鐧诲綍鏃堕棿 */ - private Long loginTime; - - public String getTokenId() - { - return tokenId; - } - - public void setTokenId(String tokenId) - { - this.tokenId = tokenId; - } - - public String getUserName() - { - return userName; - } - - public void setUserName(String userName) - { - this.userName = userName; - } - - public String getIpaddr() - { - return ipaddr; - } - - public void setIpaddr(String ipaddr) - { - this.ipaddr = ipaddr; - } - - public String getLoginLocation() - { - return loginLocation; - } - - public void setLoginLocation(String loginLocation) - { - this.loginLocation = loginLocation; - } - - public String getBrowser() - { - return browser; - } - - public void setBrowser(String browser) - { - this.browser = browser; - } - - public String getOs() - { - return os; - } - - public void setOs(String os) - { - this.os = os; - } - - public Long getLoginTime() - { - return loginTime; - } - - public void setLoginTime(Long loginTime) - { - this.loginTime = loginTime; - } +public class SysUserOnline { + /** 浼氳瘽缂栧彿 */ + private String tokenId; + + /** 鐢ㄦ埛鍚嶇О */ + private String userName; + + /** 鐧诲綍IP鍦板潃 */ + private String ipaddr; + + /** 鐧诲綍鍦板潃 */ + private String loginLocation; + + /** 娴忚鍣ㄧ被鍨 */ + private String browser; + + /** 鎿嶄綔绯荤粺 */ + private String os; + + /** 鐧诲綍鏃堕棿 */ + private Long loginTime; + + public String getTokenId() { + return tokenId; + } + + public void setTokenId(String tokenId) { + this.tokenId = tokenId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getIpaddr() { + return ipaddr; + } + + public void setIpaddr(String ipaddr) { + this.ipaddr = ipaddr; + } + + public String getLoginLocation() { + return loginLocation; + } + + public void setLoginLocation(String loginLocation) { + this.loginLocation = loginLocation; + } + + public String getBrowser() { + return browser; + } + + public void setBrowser(String browser) { + this.browser = browser; + } + + public String getOs() { + return os; + } + + public void setOs(String os) { + this.os = os; + } + + public Long getLoginTime() { + return loginTime; + } + + public void setLoginTime(Long loginTime) { + this.loginTime = loginTime; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java index 07ceb85cc..ff721378f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java @@ -5,42 +5,37 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** * 鐢ㄦ埛鍜屽矖浣嶅叧鑱 sys_user_post - * + * * @author ruoyi */ -public class SysUserPost -{ - /** 鐢ㄦ埛ID */ - private Long userId; - - /** 宀椾綅ID */ - private Long postId; - - public Long getUserId() - { - return userId; - } - - public void setUserId(Long userId) - { - this.userId = userId; - } - - public Long getPostId() - { - return postId; - } - - public void setPostId(Long postId) - { - this.postId = postId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("postId", getPostId()) - .toString(); - } +public class SysUserPost { + /** 鐢ㄦ埛ID */ + private Long userId; + + /** 宀椾綅ID */ + private Long postId; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getPostId() { + return postId; + } + + public void setPostId(Long postId) { + this.postId = postId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("postId", getPostId()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java index ce2af2bda..3741f0b35 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java @@ -5,42 +5,37 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** * 鐢ㄦ埛鍜岃鑹插叧鑱 sys_user_role - * + * * @author ruoyi */ -public class SysUserRole -{ - /** 鐢ㄦ埛ID */ - private Long userId; - - /** 瑙掕壊ID */ - private Long roleId; - - public Long getUserId() - { - return userId; - } - - public void setUserId(Long userId) - { - this.userId = userId; - } - - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("roleId", getRoleId()) - .toString(); - } +public class SysUserRole { + /** 鐢ㄦ埛ID */ + private Long userId; + + /** 瑙掕壊ID */ + private Long roleId; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("roleId", getRoleId()) + .toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java index 1df3e8900..21ba45325 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java @@ -4,103 +4,79 @@ import com.ruoyi.common.core.utils.StringUtils; /** * 璺敱鏄剧ず淇℃伅 - * + * * @author ruoyi */ -public class MetaVo -{ - /** - * 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛 - */ - private String title; - - /** - * 璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg - */ - private String icon; - - /** - * 璁剧疆涓簍rue锛屽垯涓嶄細琚 缂撳瓨 - */ - private boolean noCache; - - /** - * 鍐呴摼鍦板潃锛坔ttp(s)://寮澶达級 - */ - private String link; - - public MetaVo() - { +public class MetaVo { + /** 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛 */ + private String title; + + /** 璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg */ + private String icon; + + /** 璁剧疆涓簍rue锛屽垯涓嶄細琚 缂撳瓨 */ + private boolean noCache; + + /** 鍐呴摼鍦板潃锛坔ttp(s)://寮澶达級 */ + private String link; + + public MetaVo() {} + + public MetaVo(String title, String icon) { + this.title = title; + this.icon = icon; + } + + public MetaVo(String title, String icon, boolean noCache) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + } + + public MetaVo(String title, String icon, String link) { + this.title = title; + this.icon = icon; + this.link = link; + } + + public MetaVo(String title, String icon, boolean noCache, String link) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + if (StringUtils.ishttp(link)) { + this.link = link; } + } - public MetaVo(String title, String icon) - { - this.title = title; - this.icon = icon; - } - - public MetaVo(String title, String icon, boolean noCache) - { - this.title = title; - this.icon = icon; - this.noCache = noCache; - } - - public MetaVo(String title, String icon, String link) - { - this.title = title; - this.icon = icon; - this.link = link; - } - - public MetaVo(String title, String icon, boolean noCache, String link) - { - this.title = title; - this.icon = icon; - this.noCache = noCache; - if (StringUtils.ishttp(link)) - { - this.link = link; - } - } - - public boolean isNoCache() - { - return noCache; - } + public boolean isNoCache() { + return noCache; + } - public void setNoCache(boolean noCache) - { - this.noCache = noCache; - } + public void setNoCache(boolean noCache) { + this.noCache = noCache; + } - public String getTitle() - { - return title; - } + public String getTitle() { + return title; + } - public void setTitle(String title) - { - this.title = title; - } + public void setTitle(String title) { + this.title = title; + } - public String getIcon() - { - return icon; - } + public String getIcon() { + return icon; + } - public void setIcon(String icon) - { - this.icon = icon; - } + public void setIcon(String icon) { + this.icon = icon; + } - public String getLink() - { - return link; - } + public String getLink() { + return link; + } - public void setLink(String link) - { - this.link = link; - } + public void setLink(String link) { + this.link = link; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java index 2d4a2b800..d1f4363fa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java @@ -5,144 +5,107 @@ import java.util.List; /** * 璺敱閰嶇疆淇℃伅 - * + * * @author ruoyi */ @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class RouterVo -{ - /** - * 璺敱鍚嶅瓧 - */ - private String name; - - /** - * 璺敱鍦板潃 - */ - private String path; - - /** - * 鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇 - */ - private boolean hidden; - - /** - * 閲嶅畾鍚戝湴鍧锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮 - */ - private String redirect; - - /** - * 缁勪欢鍦板潃 - */ - private String component; - - /** - * 璺敱鍙傛暟锛氬 {"id": 1, "name": "ry"} - */ - private String query; - - /** - * 褰撲綘涓涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮--濡傜粍浠堕〉闈 - */ - private Boolean alwaysShow; - - /** - * 鍏朵粬鍏冪礌 - */ - private MetaVo meta; - - /** - * 瀛愯矾鐢 - */ - private List children; - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } - - public String getPath() - { - return path; - } - - public void setPath(String path) - { - this.path = path; - } - - public boolean getHidden() - { - return hidden; - } - - public void setHidden(boolean hidden) - { - this.hidden = hidden; - } - - public String getRedirect() - { - return redirect; - } - - public void setRedirect(String redirect) - { - this.redirect = redirect; - } - - public String getComponent() - { - return component; - } - - public void setComponent(String component) - { - this.component = component; - } - - public String getQuery() - { - return query; - } - - public void setQuery(String query) - { - this.query = query; - } - - public Boolean getAlwaysShow() - { - return alwaysShow; - } - - public void setAlwaysShow(Boolean alwaysShow) - { - this.alwaysShow = alwaysShow; - } - - public MetaVo getMeta() - { - return meta; - } - - public void setMeta(MetaVo meta) - { - this.meta = meta; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } +public class RouterVo { + /** 璺敱鍚嶅瓧 */ + private String name; + + /** 璺敱鍦板潃 */ + private String path; + + /** 鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇 */ + private boolean hidden; + + /** 閲嶅畾鍚戝湴鍧锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮 */ + private String redirect; + + /** 缁勪欢鍦板潃 */ + private String component; + + /** 璺敱鍙傛暟锛氬 {"id": 1, "name": "ry"} */ + private String query; + + /** 褰撲綘涓涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜1涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮--濡傜粍浠堕〉闈 */ + private Boolean alwaysShow; + + /** 鍏朵粬鍏冪礌 */ + private MetaVo meta; + + /** 瀛愯矾鐢 */ + private List children; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public boolean getHidden() { + return hidden; + } + + public void setHidden(boolean hidden) { + this.hidden = hidden; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(String redirect) { + this.redirect = redirect; + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public Boolean getAlwaysShow() { + return alwaysShow; + } + + public void setAlwaysShow(Boolean alwaysShow) { + this.alwaysShow = alwaysShow; + } + + public MetaVo getMeta() { + return meta; + } + + public void setMeta(MetaVo meta) { + this.meta = meta; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TreeSelect.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TreeSelect.java index e3986d0d2..a4c55e7c8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TreeSelect.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TreeSelect.java @@ -1,93 +1,79 @@ package com.ruoyi.system.domain.vo; -import java.io.Serializable; -import java.util.List; -import java.util.stream.Collectors; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.domain.SysMenu; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; /** * Treeselect鏍戠粨鏋勫疄浣撶被 - * + * * @author ruoyi */ -public class TreeSelect implements Serializable -{ - private static final long serialVersionUID = 1L; - - /** 鑺傜偣ID */ - private Long id; - - /** 鑺傜偣鍚嶇О */ - private String label; - - /** 鑺傜偣绂佺敤 */ - private boolean disabled = false; - - /** 瀛愯妭鐐 */ - @JsonInclude(JsonInclude.Include.NON_EMPTY) - private List children; - - public TreeSelect() - { - - } - - public TreeSelect(SysDept dept) - { - this.id = dept.getDeptId(); - this.label = dept.getDeptName(); - this.disabled = StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()); - this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); - } - - public TreeSelect(SysMenu menu) - { - this.id = menu.getMenuId(); - this.label = menu.getMenuName(); - this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); - } - - public Long getId() - { - return id; - } - - public void setId(Long id) - { - this.id = id; - } - - public String getLabel() - { - return label; - } - - public void setLabel(String label) - { - this.label = label; - } - - public boolean isDisabled() - { - return disabled; - } - - public void setDisabled(boolean disabled) - { - this.disabled = disabled; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } +public class TreeSelect implements Serializable { + private static final long serialVersionUID = 1L; + + /** 鑺傜偣ID */ + private Long id; + + /** 鑺傜偣鍚嶇О */ + private String label; + + /** 鑺傜偣绂佺敤 */ + private boolean disabled = false; + + /** 瀛愯妭鐐 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + public TreeSelect() {} + + public TreeSelect(SysDept dept) { + this.id = dept.getDeptId(); + this.label = dept.getDeptName(); + this.disabled = StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()); + this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(SysMenu menu) { + this.id = menu.getMenuId(); + this.label = menu.getMenuName(); + this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java index 446eed644..22f76f1bc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java @@ -1,76 +1,75 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysConfig; +import java.util.List; /** * 鍙傛暟閰嶇疆 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysConfigMapper -{ - /** - * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 鍙傛暟閰嶇疆淇℃伅 - */ - public SysConfig selectConfig(SysConfig config); +public interface SysConfigMapper { + /** + * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 鍙傛暟閰嶇疆淇℃伅 + */ + public SysConfig selectConfig(SysConfig config); - /** - * 閫氳繃ID鏌ヨ閰嶇疆 - * - * @param configId 鍙傛暟ID - * @return 鍙傛暟閰嶇疆淇℃伅 - */ - public SysConfig selectConfigById(Long configId); + /** + * 閫氳繃ID鏌ヨ閰嶇疆 + * + * @param configId 鍙傛暟ID + * @return 鍙傛暟閰嶇疆淇℃伅 + */ + public SysConfig selectConfigById(Long configId); - /** - * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 鍙傛暟閰嶇疆闆嗗悎 - */ - public List selectConfigList(SysConfig config); + /** + * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 鍙傛暟閰嶇疆闆嗗悎 + */ + public List selectConfigList(SysConfig config); - /** - * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configKey 鍙傛暟閿悕 - * @return 鍙傛暟閰嶇疆淇℃伅 - */ - public SysConfig checkConfigKeyUnique(String configKey); + /** + * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param configKey 鍙傛暟閿悕 + * @return 鍙傛暟閰嶇疆淇℃伅 + */ + public SysConfig checkConfigKeyUnique(String configKey); - /** - * 鏂板鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - public int insertConfig(SysConfig config); + /** + * 鏂板鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + public int insertConfig(SysConfig config); - /** - * 淇敼鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - public int updateConfig(SysConfig config); + /** + * 淇敼鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + public int updateConfig(SysConfig config); - /** - * 鍒犻櫎鍙傛暟閰嶇疆 - * - * @param configId 鍙傛暟ID - * @return 缁撴灉 - */ - public int deleteConfigById(Long configId); + /** + * 鍒犻櫎鍙傛暟閰嶇疆 + * + * @param configId 鍙傛暟ID + * @return 缁撴灉 + */ + public int deleteConfigById(Long configId); - /** - * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 - * - * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID - * @return 缁撴灉 - */ - public int deleteConfigByIds(Long[] configIds); -} \ No newline at end of file + /** + * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 + * + * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID + * @return 缁撴灉 + */ + public int deleteConfigByIds(Long[] configIds); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 803b879f5..90a921f61 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -1,118 +1,119 @@ package com.ruoyi.system.mapper; +import com.ruoyi.system.api.domain.SysDept; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.api.domain.SysDept; /** * 閮ㄩ棬绠$悊 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysDeptMapper -{ - /** - * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 閮ㄩ棬淇℃伅闆嗗悎 - */ - public List selectDeptList(SysDept dept); +public interface SysDeptMapper { + /** + * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬淇℃伅闆嗗悎 + */ + public List selectDeptList(SysDept dept); - /** - * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @param deptCheckStrictly 閮ㄩ棬鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀 - * @return 閫変腑閮ㄩ棬鍒楄〃 - */ - public List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); + /** + * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @param deptCheckStrictly 閮ㄩ棬鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀 + * @return 閫変腑閮ㄩ棬鍒楄〃 + */ + public List selectDeptListByRoleId( + @Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); - /** - * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 閮ㄩ棬淇℃伅 - */ - public SysDept selectDeptById(Long deptId); + /** + * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬淇℃伅 + */ + public SysDept selectDeptById(Long deptId); - /** - * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬 - * - * @param deptId 閮ㄩ棬ID - * @return 閮ㄩ棬鍒楄〃 - */ - public List selectChildrenDeptById(Long deptId); + /** + * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬 + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬鍒楄〃 + */ + public List selectChildrenDeptById(Long deptId); - /** - * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * - * @param deptId 閮ㄩ棬ID - * @return 瀛愰儴闂ㄦ暟 - */ - public int selectNormalChildrenDeptById(Long deptId); + /** + * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 + * + * @param deptId 閮ㄩ棬ID + * @return 瀛愰儴闂ㄦ暟 + */ + public int selectNormalChildrenDeptById(Long deptId); - /** - * 鏄惁瀛樺湪瀛愯妭鐐 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public int hasChildByDeptId(Long deptId); + /** + * 鏄惁瀛樺湪瀛愯妭鐐 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public int hasChildByDeptId(Long deptId); - /** - * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public int checkDeptExistUser(Long deptId); + /** + * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public int checkDeptExistUser(Long deptId); - /** - * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * - * @param deptName 閮ㄩ棬鍚嶇О - * @param parentId 鐖堕儴闂↖D - * @return 缁撴灉 - */ - public SysDept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") Long parentId); + /** + * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 + * + * @param deptName 閮ㄩ棬鍚嶇О + * @param parentId 鐖堕儴闂↖D + * @return 缁撴灉 + */ + public SysDept checkDeptNameUnique( + @Param("deptName") String deptName, @Param("parentId") Long parentId); - /** - * 鏂板閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - public int insertDept(SysDept dept); + /** + * 鏂板閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + public int insertDept(SysDept dept); - /** - * 淇敼閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - public int updateDept(SysDept dept); + /** + * 淇敼閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + public int updateDept(SysDept dept); - /** - * 淇敼鎵鍦ㄩ儴闂ㄦ甯哥姸鎬 - * - * @param deptIds 閮ㄩ棬ID缁 - */ - public void updateDeptStatusNormal(Long[] deptIds); + /** + * 淇敼鎵鍦ㄩ儴闂ㄦ甯哥姸鎬 + * + * @param deptIds 閮ㄩ棬ID缁 + */ + public void updateDeptStatusNormal(Long[] deptIds); - /** - * 淇敼瀛愬厓绱犲叧绯 - * - * @param depts 瀛愬厓绱 - * @return 缁撴灉 - */ - public int updateDeptChildren(@Param("depts") List depts); + /** + * 淇敼瀛愬厓绱犲叧绯 + * + * @param depts 瀛愬厓绱 + * @return 缁撴灉 + */ + public int updateDeptChildren(@Param("depts") List depts); - /** - * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public int deleteDeptById(Long deptId); + /** + * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public int deleteDeptById(Long deptId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java index 6e416f7f6..3c16356cf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java @@ -1,95 +1,96 @@ package com.ruoyi.system.mapper; +import com.ruoyi.system.api.domain.SysDictData; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.api.domain.SysDictData; /** * 瀛楀吀琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysDictDataMapper -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - public List selectDictDataList(SysDictData dictData); +public interface SysDictDataMapper { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + public List selectDictDataList(SysDictData dictData); - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - public List selectDictDataByType(String dictType); + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + public List selectDictDataByType(String dictType); - /** - * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 - * - * @param dictType 瀛楀吀绫诲瀷 - * @param dictValue 瀛楀吀閿 - * @return 瀛楀吀鏍囩 - */ - public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue); + /** + * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 + * + * @param dictType 瀛楀吀绫诲瀷 + * @param dictValue 瀛楀吀閿 + * @return 瀛楀吀鏍囩 + */ + public String selectDictLabel( + @Param("dictType") String dictType, @Param("dictValue") String dictValue); - /** - * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 - * - * @param dictCode 瀛楀吀鏁版嵁ID - * @return 瀛楀吀鏁版嵁 - */ - public SysDictData selectDictDataById(Long dictCode); + /** + * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 + * + * @param dictCode 瀛楀吀鏁版嵁ID + * @return 瀛楀吀鏁版嵁 + */ + public SysDictData selectDictDataById(Long dictCode); - /** - * 鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀鏁版嵁 - */ - public int countDictDataByType(String dictType); + /** + * 鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀鏁版嵁 + */ + public int countDictDataByType(String dictType); - /** - * 閫氳繃瀛楀吀ID鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * - * @param dictCode 瀛楀吀鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteDictDataById(Long dictCode); + /** + * 閫氳繃瀛楀吀ID鍒犻櫎瀛楀吀鏁版嵁淇℃伅 + * + * @param dictCode 瀛楀吀鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteDictDataById(Long dictCode); - /** - * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * - * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteDictDataByIds(Long[] dictCodes); + /** + * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 + * + * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteDictDataByIds(Long[] dictCodes); - /** - * 鏂板瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - public int insertDictData(SysDictData dictData); + /** + * 鏂板瀛楀吀鏁版嵁淇℃伅 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + public int insertDictData(SysDictData dictData); - /** - * 淇敼瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - public int updateDictData(SysDictData dictData); + /** + * 淇敼瀛楀吀鏁版嵁淇℃伅 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + public int updateDictData(SysDictData dictData); - /** - * 鍚屾淇敼瀛楀吀绫诲瀷 - * - * @param oldDictType 鏃у瓧鍏哥被鍨 - * @param newDictType 鏂版棫瀛楀吀绫诲瀷 - * @return 缁撴灉 - */ - public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + /** + * 鍚屾淇敼瀛楀吀绫诲瀷 + * + * @param oldDictType 鏃у瓧鍏哥被鍨 + * @param newDictType 鏂版棫瀛楀吀绫诲瀷 + * @return 缁撴灉 + */ + public int updateDictDataType( + @Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java index 3a172a522..4c93bbfed 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java @@ -1,83 +1,82 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.api.domain.SysDictType; +import java.util.List; /** * 瀛楀吀琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysDictTypeMapper -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - public List selectDictTypeList(SysDictType dictType); +public interface SysDictTypeMapper { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + public List selectDictTypeList(SysDictType dictType); - /** - * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 - * - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - public List selectDictTypeAll(); + /** + * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 + * + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + public List selectDictTypeAll(); - /** - * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 - * - * @param dictId 瀛楀吀绫诲瀷ID - * @return 瀛楀吀绫诲瀷 - */ - public SysDictType selectDictTypeById(Long dictId); + /** + * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 + * + * @param dictId 瀛楀吀绫诲瀷ID + * @return 瀛楀吀绫诲瀷 + */ + public SysDictType selectDictTypeById(Long dictId); - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀绫诲瀷 - */ - public SysDictType selectDictTypeByType(String dictType); + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀绫诲瀷 + */ + public SysDictType selectDictTypeByType(String dictType); - /** - * 閫氳繃瀛楀吀ID鍒犻櫎瀛楀吀淇℃伅 - * - * @param dictId 瀛楀吀ID - * @return 缁撴灉 - */ - public int deleteDictTypeById(Long dictId); + /** + * 閫氳繃瀛楀吀ID鍒犻櫎瀛楀吀淇℃伅 + * + * @param dictId 瀛楀吀ID + * @return 缁撴灉 + */ + public int deleteDictTypeById(Long dictId); - /** - * 鎵归噺鍒犻櫎瀛楀吀绫诲瀷淇℃伅 - * - * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID - * @return 缁撴灉 - */ - public int deleteDictTypeByIds(Long[] dictIds); + /** + * 鎵归噺鍒犻櫎瀛楀吀绫诲瀷淇℃伅 + * + * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID + * @return 缁撴灉 + */ + public int deleteDictTypeByIds(Long[] dictIds); - /** - * 鏂板瀛楀吀绫诲瀷淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - public int insertDictType(SysDictType dictType); + /** + * 鏂板瀛楀吀绫诲瀷淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + public int insertDictType(SysDictType dictType); - /** - * 淇敼瀛楀吀绫诲瀷淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - public int updateDictType(SysDictType dictType); + /** + * 淇敼瀛楀吀绫诲瀷淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + public int updateDictType(SysDictType dictType); - /** - * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 缁撴灉 - */ - public SysDictType checkDictTypeUnique(String dictType); + /** + * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 缁撴灉 + */ + public SysDictType checkDictTypeUnique(String dictType); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java index 395edf1b3..a6d98a9c3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java @@ -1,42 +1,41 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.api.domain.SysLogininfor; +import java.util.List; /** * 绯荤粺璁块棶鏃ュ織鎯呭喌淇℃伅 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysLogininforMapper -{ - /** - * 鏂板绯荤粺鐧诲綍鏃ュ織 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - */ - public int insertLogininfor(SysLogininfor logininfor); +public interface SysLogininforMapper { + /** + * 鏂板绯荤粺鐧诲綍鏃ュ織 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + */ + public int insertLogininfor(SysLogininfor logininfor); - /** - * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - * @return 鐧诲綍璁板綍闆嗗悎 - */ - public List selectLogininforList(SysLogininfor logininfor); + /** + * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + * @return 鐧诲綍璁板綍闆嗗悎 + */ + public List selectLogininforList(SysLogininfor logininfor); - /** - * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 - * - * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteLogininforByIds(Long[] infoIds); + /** + * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 + * + * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteLogininforByIds(Long[] infoIds); - /** - * 娓呯┖绯荤粺鐧诲綍鏃ュ織 - * - * @return 缁撴灉 - */ - public int cleanLogininfor(); + /** + * 娓呯┖绯荤粺鐧诲綍鏃ュ織 + * + * @return 缁撴灉 + */ + public int cleanLogininfor(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index 532aaa8d9..cef29e0e4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -1,125 +1,126 @@ package com.ruoyi.system.mapper; +import com.ruoyi.system.domain.SysMenu; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.domain.SysMenu; /** * 鑿滃崟琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysMenuMapper -{ - /** - * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param menu 鑿滃崟淇℃伅 - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuList(SysMenu menu); +public interface SysMenuMapper { + /** + * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param menu 鑿滃崟淇℃伅 + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuList(SysMenu menu); - /** - * 鏍规嵁鐢ㄦ埛鎵鏈夋潈闄 - * - * @return 鏉冮檺鍒楄〃 - */ - public List selectMenuPerms(); + /** + * 鏍规嵁鐢ㄦ埛鎵鏈夋潈闄 + * + * @return 鏉冮檺鍒楄〃 + */ + public List selectMenuPerms(); - /** - * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param menu 鑿滃崟淇℃伅 - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuListByUserId(SysMenu menu); + /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param menu 鑿滃崟淇℃伅 + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuListByUserId(SysMenu menu); - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * - * @param roleId 瑙掕壊ID - * @return 鏉冮檺鍒楄〃 - */ - public List selectMenuPermsByRoleId(Long roleId); + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + public List selectMenuPermsByRoleId(Long roleId); - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - public List selectMenuPermsByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + public List selectMenuPermsByUserId(Long userId); - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuTreeAll(); + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 + * + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuTreeAll(); - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * - * @param userId 鐢ㄦ埛ID - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuTreeByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 + * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuTreeByUserId(Long userId); - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @param menuCheckStrictly 鑿滃崟鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀 - * @return 閫変腑鑿滃崟鍒楄〃 - */ - public List selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @param menuCheckStrictly 鑿滃崟鏍戦夋嫨椤规槸鍚﹀叧鑱旀樉绀 + * @return 閫変腑鑿滃崟鍒楄〃 + */ + public List selectMenuListByRoleId( + @Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); - /** - * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 鑿滃崟淇℃伅 - */ - public SysMenu selectMenuById(Long menuId); + /** + * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 鑿滃崟淇℃伅 + */ + public SysMenu selectMenuById(Long menuId); - /** - * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - public int hasChildByMenuId(Long menuId); + /** + * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + public int hasChildByMenuId(Long menuId); - /** - * 鏂板鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public int insertMenu(SysMenu menu); + /** + * 鏂板鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public int insertMenu(SysMenu menu); - /** - * 淇敼鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public int updateMenu(SysMenu menu); + /** + * 淇敼鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public int updateMenu(SysMenu menu); - /** - * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - public int deleteMenuById(Long menuId); + /** + * 鍒犻櫎鑿滃崟绠$悊淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + public int deleteMenuById(Long menuId); - /** - * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * - * @param menuName 鑿滃崟鍚嶇О - * @param parentId 鐖惰彍鍗旾D - * @return 缁撴灉 - */ - public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); + /** + * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 + * + * @param menuName 鑿滃崟鍚嶇О + * @param parentId 鐖惰彍鍗旾D + * @return 缁撴灉 + */ + public SysMenu checkMenuNameUnique( + @Param("menuName") String menuName, @Param("parentId") Long parentId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java index ec8700d68..6de792328 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java @@ -1,60 +1,59 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysNotice; +import java.util.List; /** * 閫氱煡鍏憡琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysNoticeMapper -{ - /** - * 鏌ヨ鍏憡淇℃伅 - * - * @param noticeId 鍏憡ID - * @return 鍏憡淇℃伅 - */ - public SysNotice selectNoticeById(Long noticeId); +public interface SysNoticeMapper { + /** + * 鏌ヨ鍏憡淇℃伅 + * + * @param noticeId 鍏憡ID + * @return 鍏憡淇℃伅 + */ + public SysNotice selectNoticeById(Long noticeId); - /** - * 鏌ヨ鍏憡鍒楄〃 - * - * @param notice 鍏憡淇℃伅 - * @return 鍏憡闆嗗悎 - */ - public List selectNoticeList(SysNotice notice); + /** + * 鏌ヨ鍏憡鍒楄〃 + * + * @param notice 鍏憡淇℃伅 + * @return 鍏憡闆嗗悎 + */ + public List selectNoticeList(SysNotice notice); - /** - * 鏂板鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - public int insertNotice(SysNotice notice); + /** + * 鏂板鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + public int insertNotice(SysNotice notice); - /** - * 淇敼鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - public int updateNotice(SysNotice notice); + /** + * 淇敼鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + public int updateNotice(SysNotice notice); - /** - * 鎵归噺鍒犻櫎鍏憡 - * - * @param noticeId 鍏憡ID - * @return 缁撴灉 - */ - public int deleteNoticeById(Long noticeId); + /** + * 鎵归噺鍒犻櫎鍏憡 + * + * @param noticeId 鍏憡ID + * @return 缁撴灉 + */ + public int deleteNoticeById(Long noticeId); - /** - * 鎵归噺鍒犻櫎鍏憡淇℃伅 - * - * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID - * @return 缁撴灉 - */ - public int deleteNoticeByIds(Long[] noticeIds); -} \ No newline at end of file + /** + * 鎵归噺鍒犻櫎鍏憡淇℃伅 + * + * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID + * @return 缁撴灉 + */ + public int deleteNoticeByIds(Long[] noticeIds); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java index 4e9b8cb61..bbb213b73 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java @@ -1,48 +1,45 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.api.domain.SysOperLog; +import java.util.List; /** * 鎿嶄綔鏃ュ織 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysOperLogMapper -{ - /** - * 鏂板鎿嶄綔鏃ュ織 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - */ - public int insertOperlog(SysOperLog operLog); +public interface SysOperLogMapper { + /** + * 鏂板鎿嶄綔鏃ュ織 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + */ + public int insertOperlog(SysOperLog operLog); - /** - * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - * @return 鎿嶄綔鏃ュ織闆嗗悎 - */ - public List selectOperLogList(SysOperLog operLog); + /** + * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + * @return 鎿嶄綔鏃ュ織闆嗗悎 + */ + public List selectOperLogList(SysOperLog operLog); - /** - * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 - * - * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteOperLogByIds(Long[] operIds); + /** + * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 + * + * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteOperLogByIds(Long[] operIds); - /** - * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 - * - * @param operId 鎿嶄綔ID - * @return 鎿嶄綔鏃ュ織瀵硅薄 - */ - public SysOperLog selectOperLogById(Long operId); + /** + * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 + * + * @param operId 鎿嶄綔ID + * @return 鎿嶄綔鏃ュ織瀵硅薄 + */ + public SysOperLog selectOperLogById(Long operId); - /** - * 娓呯┖鎿嶄綔鏃ュ織 - */ - public void cleanOperLog(); + /** 娓呯┖鎿嶄綔鏃ュ織 */ + public void cleanOperLog(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java index 8603d9aea..6f1f3843b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java @@ -1,99 +1,98 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysPost; +import java.util.List; /** * 宀椾綅淇℃伅 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysPostMapper -{ - /** - * 鏌ヨ宀椾綅鏁版嵁闆嗗悎 - * - * @param post 宀椾綅淇℃伅 - * @return 宀椾綅鏁版嵁闆嗗悎 - */ - public List selectPostList(SysPost post); +public interface SysPostMapper { + /** + * 鏌ヨ宀椾綅鏁版嵁闆嗗悎 + * + * @param post 宀椾綅淇℃伅 + * @return 宀椾綅鏁版嵁闆嗗悎 + */ + public List selectPostList(SysPost post); - /** - * 鏌ヨ鎵鏈夊矖浣 - * - * @return 宀椾綅鍒楄〃 - */ - public List selectPostAll(); + /** + * 鏌ヨ鎵鏈夊矖浣 + * + * @return 宀椾綅鍒楄〃 + */ + public List selectPostAll(); - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysPost selectPostById(Long postId); + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysPost selectPostById(Long postId); - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑宀椾綅ID鍒楄〃 - */ - public List selectPostListByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑宀椾綅ID鍒楄〃 + */ + public List selectPostListByUserId(Long userId); - /** - * 鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 - * - * @param userName 鐢ㄦ埛鍚 - * @return 缁撴灉 - */ - public List selectPostsByUserName(String userName); + /** + * 鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 + * + * @param userName 鐢ㄦ埛鍚 + * @return 缁撴灉 + */ + public List selectPostsByUserName(String userName); - /** - * 鍒犻櫎宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - public int deletePostById(Long postId); + /** + * 鍒犻櫎宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + public int deletePostById(Long postId); - /** - * 鎵归噺鍒犻櫎宀椾綅淇℃伅 - * - * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID - * @return 缁撴灉 - */ - public int deletePostByIds(Long[] postIds); + /** + * 鎵归噺鍒犻櫎宀椾綅淇℃伅 + * + * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID + * @return 缁撴灉 + */ + public int deletePostByIds(Long[] postIds); - /** - * 淇敼宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public int updatePost(SysPost post); + /** + * 淇敼宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public int updatePost(SysPost post); - /** - * 鏂板宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public int insertPost(SysPost post); + /** + * 鏂板宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public int insertPost(SysPost post); - /** - * 鏍¢獙宀椾綅鍚嶇О - * - * @param postName 宀椾綅鍚嶇О - * @return 缁撴灉 - */ - public SysPost checkPostNameUnique(String postName); + /** + * 鏍¢獙宀椾綅鍚嶇О + * + * @param postName 宀椾綅鍚嶇О + * @return 缁撴灉 + */ + public SysPost checkPostNameUnique(String postName); - /** - * 鏍¢獙宀椾綅缂栫爜 - * - * @param postCode 宀椾綅缂栫爜 - * @return 缁撴灉 - */ - public SysPost checkPostCodeUnique(String postCode); + /** + * 鏍¢獙宀椾綅缂栫爜 + * + * @param postCode 宀椾綅缂栫爜 + * @return 缁撴灉 + */ + public SysPost checkPostCodeUnique(String postCode); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java index a4ad4de24..3c154ab8e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java @@ -1,44 +1,43 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysRoleDept; +import java.util.List; /** * 瑙掕壊涓庨儴闂ㄥ叧鑱旇〃 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysRoleDeptMapper -{ - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊鍜岄儴闂ㄥ叧鑱 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleDeptByRoleId(Long roleId); +public interface SysRoleDeptMapper { + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊鍜岄儴闂ㄥ叧鑱 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleDeptByRoleId(Long roleId); - /** - * 鎵归噺鍒犻櫎瑙掕壊閮ㄩ棬鍏宠仈淇℃伅 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteRoleDept(Long[] ids); + /** + * 鎵归噺鍒犻櫎瑙掕壊閮ㄩ棬鍏宠仈淇℃伅 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteRoleDept(Long[] ids); - /** - * 鏌ヨ閮ㄩ棬浣跨敤鏁伴噺 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public int selectCountRoleDeptByDeptId(Long deptId); + /** + * 鏌ヨ閮ㄩ棬浣跨敤鏁伴噺 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public int selectCountRoleDeptByDeptId(Long deptId); - /** - * 鎵归噺鏂板瑙掕壊閮ㄩ棬淇℃伅 - * - * @param roleDeptList 瑙掕壊閮ㄩ棬鍒楄〃 - * @return 缁撴灉 - */ - public int batchRoleDept(List roleDeptList); + /** + * 鎵归噺鏂板瑙掕壊閮ㄩ棬淇℃伅 + * + * @param roleDeptList 瑙掕壊閮ㄩ棬鍒楄〃 + * @return 缁撴灉 + */ + public int batchRoleDept(List roleDeptList); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index b49511ca1..b530b8726 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -1,107 +1,106 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.api.domain.SysRole; +import java.util.List; /** * 瑙掕壊琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysRoleMapper -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 - * - * @param role 瑙掕壊淇℃伅 - * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 - */ - public List selectRoleList(SysRole role); +public interface SysRoleMapper { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 + * + * @param role 瑙掕壊淇℃伅 + * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 + */ + public List selectRoleList(SysRole role); - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 - * - * @param userId 鐢ㄦ埛ID - * @return 瑙掕壊鍒楄〃 - */ - public List selectRolePermissionByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 + * + * @param userId 鐢ㄦ埛ID + * @return 瑙掕壊鍒楄〃 + */ + public List selectRolePermissionByUserId(Long userId); - /** - * 鏌ヨ鎵鏈夎鑹 - * - * @return 瑙掕壊鍒楄〃 - */ - public List selectRoleAll(); + /** + * 鏌ヨ鎵鏈夎鑹 + * + * @return 瑙掕壊鍒楄〃 + */ + public List selectRoleAll(); - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑瑙掕壊ID鍒楄〃 - */ - public List selectRoleListByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑瑙掕壊ID鍒楄〃 + */ + public List selectRoleListByUserId(Long userId); - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysRole selectRoleById(Long roleId); + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysRole selectRoleById(Long roleId); - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 - * - * @param userName 鐢ㄦ埛鍚 - * @return 瑙掕壊鍒楄〃 - */ - public List selectRolesByUserName(String userName); + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 + * + * @param userName 鐢ㄦ埛鍚 + * @return 瑙掕壊鍒楄〃 + */ + public List selectRolesByUserName(String userName); - /** - * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 - * - * @param roleName 瑙掕壊鍚嶇О - * @return 瑙掕壊淇℃伅 - */ - public SysRole checkRoleNameUnique(String roleName); + /** + * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 + * + * @param roleName 瑙掕壊鍚嶇О + * @return 瑙掕壊淇℃伅 + */ + public SysRole checkRoleNameUnique(String roleName); - /** - * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 - * - * @param roleKey 瑙掕壊鏉冮檺 - * @return 瑙掕壊淇℃伅 - */ - public SysRole checkRoleKeyUnique(String roleKey); + /** + * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 + * + * @param roleKey 瑙掕壊鏉冮檺 + * @return 瑙掕壊淇℃伅 + */ + public SysRole checkRoleKeyUnique(String roleKey); - /** - * 淇敼瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int updateRole(SysRole role); + /** + * 淇敼瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int updateRole(SysRole role); - /** - * 鏂板瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int insertRole(SysRole role); + /** + * 鏂板瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int insertRole(SysRole role); - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleById(Long roleId); + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleById(Long roleId); - /** - * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 - * - * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleByIds(Long[] roleIds); + /** + * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 + * + * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleByIds(Long[] roleIds); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java index 23391557d..d04fb5cd2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java @@ -1,44 +1,43 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysRoleMenu; +import java.util.List; /** * 瑙掕壊涓庤彍鍗曞叧鑱旇〃 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysRoleMenuMapper -{ - /** - * 鏌ヨ鑿滃崟浣跨敤鏁伴噺 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - public int checkMenuExistRole(Long menuId); +public interface SysRoleMenuMapper { + /** + * 鏌ヨ鑿滃崟浣跨敤鏁伴噺 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + public int checkMenuExistRole(Long menuId); - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊鍜岃彍鍗曞叧鑱 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleMenuByRoleId(Long roleId); + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊鍜岃彍鍗曞叧鑱 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleMenuByRoleId(Long roleId); - /** - * 鎵归噺鍒犻櫎瑙掕壊鑿滃崟鍏宠仈淇℃伅 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteRoleMenu(Long[] ids); + /** + * 鎵归噺鍒犻櫎瑙掕壊鑿滃崟鍏宠仈淇℃伅 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteRoleMenu(Long[] ids); - /** - * 鎵归噺鏂板瑙掕壊鑿滃崟淇℃伅 - * - * @param roleMenuList 瑙掕壊鑿滃崟鍒楄〃 - * @return 缁撴灉 - */ - public int batchRoleMenu(List roleMenuList); + /** + * 鎵归噺鏂板瑙掕壊鑿滃崟淇℃伅 + * + * @param roleMenuList 瑙掕壊鑿滃崟鍒楄〃 + * @return 缁撴灉 + */ + public int batchRoleMenu(List roleMenuList); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index c486d804e..5f3ca8ce3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -1,144 +1,143 @@ package com.ruoyi.system.mapper; +import com.ruoyi.system.api.domain.SysUser; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.api.domain.SysUser; /** * 鐢ㄦ埛琛 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysUserMapper -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * - * @param sysUser 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectUserList(SysUser sysUser); - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸查厤鐢ㄦ埛瑙掕壊鍒楄〃 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectAllocatedList(SysUser user); - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectUnallocatedList(SysUser user); - - /** - * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 - * - * @param userName 鐢ㄦ埛鍚 - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - public SysUser selectUserByUserName(String userName); - - /** - * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - public SysUser selectUserById(Long userId); - - /** - * 鏂板鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int insertUser(SysUser user); - - /** - * 淇敼鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int updateUser(SysUser user); - - /** - * 淇敼鐢ㄦ埛澶村儚 - * - * @param userId 鐢ㄦ埛ID - * @param avatar 澶村儚鍦板潃 - * @return 缁撴灉 - */ - public int updateUserAvatar(@Param("userId") Long userId, @Param("avatar") String avatar); - - /** - * 淇敼鐢ㄦ埛鐘舵 - * - * @param userId 鐢ㄦ埛ID - * @param status 鐘舵 - * @return 缁撴灉 - */ - public int updateUserStatus(@Param("userId") Long userId, @Param("status") String status); - - /** - * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int updateLoginInfo(SysUser user); - - /** - * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * - * @param userId 鐢ㄦ埛ID - * @param password 瀵嗙爜 - * @return 缁撴灉 - */ - public int resetUserPwd(@Param("userId") Long userId, @Param("password") String password); - - /** - * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserById(Long userId); - - /** - * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * - * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserByIds(Long[] userIds); - - /** - * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * - * @param userName 鐢ㄦ埛鍚嶇О - * @return 缁撴灉 - */ - public SysUser checkUserNameUnique(String userName); - - /** - * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 - * - * @param phonenumber 鎵嬫満鍙风爜 - * @return 缁撴灉 - */ - public SysUser checkPhoneUnique(String phonenumber); - - /** - * 鏍¢獙email鏄惁鍞竴 - * - * @param email 鐢ㄦ埛閭 - * @return 缁撴灉 - */ - public SysUser checkEmailUnique(String email); +public interface SysUserMapper { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 + * + * @param sysUser 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectUserList(SysUser sysUser); + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸查厤鐢ㄦ埛瑙掕壊鍒楄〃 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectAllocatedList(SysUser user); + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectUnallocatedList(SysUser user); + + /** + * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 + * + * @param userName 鐢ㄦ埛鍚 + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + public SysUser selectUserByUserName(String userName); + + /** + * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + public SysUser selectUserById(Long userId); + + /** + * 鏂板鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int insertUser(SysUser user); + + /** + * 淇敼鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int updateUser(SysUser user); + + /** + * 淇敼鐢ㄦ埛澶村儚 + * + * @param userId 鐢ㄦ埛ID + * @param avatar 澶村儚鍦板潃 + * @return 缁撴灉 + */ + public int updateUserAvatar(@Param("userId") Long userId, @Param("avatar") String avatar); + + /** + * 淇敼鐢ㄦ埛鐘舵 + * + * @param userId 鐢ㄦ埛ID + * @param status 鐘舵 + * @return 缁撴灉 + */ + public int updateUserStatus(@Param("userId") Long userId, @Param("status") String status); + + /** + * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int updateLoginInfo(SysUser user); + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + * + * @param userId 鐢ㄦ埛ID + * @param password 瀵嗙爜 + * @return 缁撴灉 + */ + public int resetUserPwd(@Param("userId") Long userId, @Param("password") String password); + + /** + * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserById(Long userId); + + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 + * + * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserByIds(Long[] userIds); + + /** + * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 + * + * @param userName 鐢ㄦ埛鍚嶇О + * @return 缁撴灉 + */ + public SysUser checkUserNameUnique(String userName); + + /** + * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 + * + * @param phonenumber 鎵嬫満鍙风爜 + * @return 缁撴灉 + */ + public SysUser checkPhoneUnique(String phonenumber); + + /** + * 鏍¢獙email鏄惁鍞竴 + * + * @param email 鐢ㄦ埛閭 + * @return 缁撴灉 + */ + public SysUser checkEmailUnique(String email); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java index 81d6e719c..7e7357d0a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java @@ -1,44 +1,43 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.domain.SysUserPost; +import java.util.List; /** * 鐢ㄦ埛涓庡矖浣嶅叧鑱旇〃 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysUserPostMapper -{ - /** - * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛鍜屽矖浣嶅叧鑱 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserPostByUserId(Long userId); +public interface SysUserPostMapper { + /** + * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛鍜屽矖浣嶅叧鑱 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserPostByUserId(Long userId); - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - public int countUserPostById(Long postId); + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + public int countUserPostById(Long postId); - /** - * 鎵归噺鍒犻櫎鐢ㄦ埛鍜屽矖浣嶅叧鑱 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteUserPost(Long[] ids); + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛鍜屽矖浣嶅叧鑱 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteUserPost(Long[] ids); - /** - * 鎵归噺鏂板鐢ㄦ埛宀椾綅淇℃伅 - * - * @param userPostList 鐢ㄦ埛宀椾綅鍒楄〃 - * @return 缁撴灉 - */ - public int batchUserPost(List userPostList); + /** + * 鎵归噺鏂板鐢ㄦ埛宀椾綅淇℃伅 + * + * @param userPostList 鐢ㄦ埛宀椾綅鍒楄〃 + * @return 缁撴灉 + */ + public int batchUserPost(List userPostList); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java index ad3fe62c1..a4aa7de01 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java @@ -1,62 +1,61 @@ package com.ruoyi.system.mapper; +import com.ruoyi.system.domain.SysUserRole; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.domain.SysUserRole; /** * 鐢ㄦ埛涓庤鑹插叧鑱旇〃 鏁版嵁灞 - * + * * @author ruoyi */ -public interface SysUserRoleMapper -{ - /** - * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserRoleByUserId(Long userId); +public interface SysUserRoleMapper { + /** + * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserRoleByUserId(Long userId); - /** - * 鎵归噺鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱 - * - * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteUserRole(Long[] ids); + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱 + * + * @param ids 闇瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteUserRole(Long[] ids); - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int countUserRoleByRoleId(Long roleId); + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int countUserRoleByRoleId(Long roleId); - /** - * 鎵归噺鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param userRoleList 鐢ㄦ埛瑙掕壊鍒楄〃 - * @return 缁撴灉 - */ - public int batchUserRole(List userRoleList); + /** + * 鎵归噺鏂板鐢ㄦ埛瑙掕壊淇℃伅 + * + * @param userRoleList 鐢ㄦ埛瑙掕壊鍒楄〃 + * @return 缁撴灉 + */ + public int batchUserRole(List userRoleList); - /** - * 鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 - * - * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 - * @return 缁撴灉 - */ - public int deleteUserRoleInfo(SysUserRole userRole); + /** + * 鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 + * + * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 + * @return 缁撴灉 + */ + public int deleteUserRoleInfo(SysUserRole userRole); - /** - * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + /** + * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index 8ec8573d2..aac1bd12b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -1,82 +1,75 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.domain.SysConfig; +import java.util.List; /** * 鍙傛暟閰嶇疆 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysConfigService -{ - /** - * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configId 鍙傛暟閰嶇疆ID - * @return 鍙傛暟閰嶇疆淇℃伅 - */ - public SysConfig selectConfigById(Long configId); +public interface ISysConfigService { + /** + * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param configId 鍙傛暟閰嶇疆ID + * @return 鍙傛暟閰嶇疆淇℃伅 + */ + public SysConfig selectConfigById(Long configId); - /** - * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configKey 鍙傛暟閿悕 - * @return 鍙傛暟閿 - */ - public String selectConfigByKey(String configKey); + /** + * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param configKey 鍙傛暟閿悕 + * @return 鍙傛暟閿 + */ + public String selectConfigByKey(String configKey); - /** - * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 鍙傛暟閰嶇疆闆嗗悎 - */ - public List selectConfigList(SysConfig config); + /** + * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 鍙傛暟閰嶇疆闆嗗悎 + */ + public List selectConfigList(SysConfig config); - /** - * 鏂板鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - public int insertConfig(SysConfig config); + /** + * 鏂板鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + public int insertConfig(SysConfig config); - /** - * 淇敼鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - public int updateConfig(SysConfig config); + /** + * 淇敼鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + public int updateConfig(SysConfig config); - /** - * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 - * - * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID - */ - public void deleteConfigByIds(Long[] configIds); + /** + * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 + * + * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID + */ + public void deleteConfigByIds(Long[] configIds); - /** - * 鍔犺浇鍙傛暟缂撳瓨鏁版嵁 - */ - public void loadingConfigCache(); + /** 鍔犺浇鍙傛暟缂撳瓨鏁版嵁 */ + public void loadingConfigCache(); - /** - * 娓呯┖鍙傛暟缂撳瓨鏁版嵁 - */ - public void clearConfigCache(); + /** 娓呯┖鍙傛暟缂撳瓨鏁版嵁 */ + public void clearConfigCache(); - /** - * 閲嶇疆鍙傛暟缂撳瓨鏁版嵁 - */ - public void resetConfigCache(); + /** 閲嶇疆鍙傛暟缂撳瓨鏁版嵁 */ + public void resetConfigCache(); - /** - * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 - * - * @param config 鍙傛暟淇℃伅 - * @return 缁撴灉 - */ - public boolean checkConfigKeyUnique(SysConfig config); + /** + * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 + * + * @param config 鍙傛暟淇℃伅 + * @return 缁撴灉 + */ + public boolean checkConfigKeyUnique(SysConfig config); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 2d45ac399..69d756fa1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -1,124 +1,123 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.domain.vo.TreeSelect; +import java.util.List; /** * 閮ㄩ棬绠$悊 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysDeptService -{ - /** - * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 閮ㄩ棬淇℃伅闆嗗悎 - */ - public List selectDeptList(SysDept dept); +public interface ISysDeptService { + /** + * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬淇℃伅闆嗗悎 + */ + public List selectDeptList(SysDept dept); - /** - * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 閮ㄩ棬鏍戜俊鎭泦鍚 - */ - public List selectDeptTreeList(SysDept dept); + /** + * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬鏍戜俊鎭泦鍚 + */ + public List selectDeptTreeList(SysDept dept); - /** - * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 - * - * @param depts 閮ㄩ棬鍒楄〃 - * @return 鏍戠粨鏋勫垪琛 - */ - public List buildDeptTree(List depts); + /** + * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 + * + * @param depts 閮ㄩ棬鍒楄〃 + * @return 鏍戠粨鏋勫垪琛 + */ + public List buildDeptTree(List depts); - /** - * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 - * - * @param depts 閮ㄩ棬鍒楄〃 - * @return 涓嬫媺鏍戠粨鏋勫垪琛 - */ - public List buildDeptTreeSelect(List depts); + /** + * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 + * + * @param depts 閮ㄩ棬鍒楄〃 + * @return 涓嬫媺鏍戠粨鏋勫垪琛 + */ + public List buildDeptTreeSelect(List depts); - /** - * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @return 閫変腑閮ㄩ棬鍒楄〃 - */ - public List selectDeptListByRoleId(Long roleId); + /** + * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @return 閫変腑閮ㄩ棬鍒楄〃 + */ + public List selectDeptListByRoleId(Long roleId); - /** - * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 閮ㄩ棬淇℃伅 - */ - public SysDept selectDeptById(Long deptId); + /** + * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬淇℃伅 + */ + public SysDept selectDeptById(Long deptId); - /** - * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * - * @param deptId 閮ㄩ棬ID - * @return 瀛愰儴闂ㄦ暟 - */ - public int selectNormalChildrenDeptById(Long deptId); + /** + * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 + * + * @param deptId 閮ㄩ棬ID + * @return 瀛愰儴闂ㄦ暟 + */ + public int selectNormalChildrenDeptById(Long deptId); - /** - * 鏄惁瀛樺湪閮ㄩ棬瀛愯妭鐐 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public boolean hasChildByDeptId(Long deptId); + /** + * 鏄惁瀛樺湪閮ㄩ棬瀛愯妭鐐 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public boolean hasChildByDeptId(Long deptId); - /** - * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 - */ - public boolean checkDeptExistUser(Long deptId); + /** + * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 + */ + public boolean checkDeptExistUser(Long deptId); - /** - * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - public boolean checkDeptNameUnique(SysDept dept); + /** + * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + public boolean checkDeptNameUnique(SysDept dept); - /** - * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄 - * - * @param deptId 閮ㄩ棬id - */ - public void checkDeptDataScope(Long deptId); + /** + * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄 + * + * @param deptId 閮ㄩ棬id + */ + public void checkDeptDataScope(Long deptId); - /** - * 鏂板淇濆瓨閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - public int insertDept(SysDept dept); + /** + * 鏂板淇濆瓨閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + public int insertDept(SysDept dept); - /** - * 淇敼淇濆瓨閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - public int updateDept(SysDept dept); + /** + * 淇敼淇濆瓨閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + public int updateDept(SysDept dept); - /** - * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - public int deleteDeptById(Long deptId); + /** + * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + public int deleteDeptById(Long deptId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java index 6e06bfde1..462e6b0a5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java @@ -1,60 +1,59 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysDictData; +import java.util.List; /** * 瀛楀吀 涓氬姟灞 - * + * * @author ruoyi */ -public interface ISysDictDataService -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - public List selectDictDataList(SysDictData dictData); +public interface ISysDictDataService { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + public List selectDictDataList(SysDictData dictData); - /** - * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 - * - * @param dictType 瀛楀吀绫诲瀷 - * @param dictValue 瀛楀吀閿 - * @return 瀛楀吀鏍囩 - */ - public String selectDictLabel(String dictType, String dictValue); + /** + * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 + * + * @param dictType 瀛楀吀绫诲瀷 + * @param dictValue 瀛楀吀閿 + * @return 瀛楀吀鏍囩 + */ + public String selectDictLabel(String dictType, String dictValue); - /** - * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 - * - * @param dictCode 瀛楀吀鏁版嵁ID - * @return 瀛楀吀鏁版嵁 - */ - public SysDictData selectDictDataById(Long dictCode); + /** + * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 + * + * @param dictCode 瀛楀吀鏁版嵁ID + * @return 瀛楀吀鏁版嵁 + */ + public SysDictData selectDictDataById(Long dictCode); - /** - * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * - * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID - */ - public void deleteDictDataByIds(Long[] dictCodes); + /** + * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 + * + * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID + */ + public void deleteDictDataByIds(Long[] dictCodes); - /** - * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - public int insertDictData(SysDictData dictData); + /** + * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + public int insertDictData(SysDictData dictData); - /** - * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - public int updateDictData(SysDictData dictData); + /** + * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + public int updateDictData(SysDictData dictData); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java index e8534c503..1cf7d29ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java @@ -1,98 +1,91 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysDictData; import com.ruoyi.system.api.domain.SysDictType; +import java.util.List; /** * 瀛楀吀 涓氬姟灞 - * + * * @author ruoyi */ -public interface ISysDictTypeService -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - public List selectDictTypeList(SysDictType dictType); +public interface ISysDictTypeService { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + public List selectDictTypeList(SysDictType dictType); - /** - * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 - * - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - public List selectDictTypeAll(); + /** + * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 + * + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + public List selectDictTypeAll(); - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - public List selectDictDataByType(String dictType); + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + public List selectDictDataByType(String dictType); - /** - * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 - * - * @param dictId 瀛楀吀绫诲瀷ID - * @return 瀛楀吀绫诲瀷 - */ - public SysDictType selectDictTypeById(Long dictId); + /** + * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 + * + * @param dictId 瀛楀吀绫诲瀷ID + * @return 瀛楀吀绫诲瀷 + */ + public SysDictType selectDictTypeById(Long dictId); - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀绫诲瀷 - */ - public SysDictType selectDictTypeByType(String dictType); + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀绫诲瀷 + */ + public SysDictType selectDictTypeByType(String dictType); - /** - * 鎵归噺鍒犻櫎瀛楀吀淇℃伅 - * - * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID - */ - public void deleteDictTypeByIds(Long[] dictIds); + /** + * 鎵归噺鍒犻櫎瀛楀吀淇℃伅 + * + * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID + */ + public void deleteDictTypeByIds(Long[] dictIds); - /** - * 鍔犺浇瀛楀吀缂撳瓨鏁版嵁 - */ - public void loadingDictCache(); + /** 鍔犺浇瀛楀吀缂撳瓨鏁版嵁 */ + public void loadingDictCache(); - /** - * 娓呯┖瀛楀吀缂撳瓨鏁版嵁 - */ - public void clearDictCache(); + /** 娓呯┖瀛楀吀缂撳瓨鏁版嵁 */ + public void clearDictCache(); - /** - * 閲嶇疆瀛楀吀缂撳瓨鏁版嵁 - */ - public void resetDictCache(); + /** 閲嶇疆瀛楀吀缂撳瓨鏁版嵁 */ + public void resetDictCache(); - /** - * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - public int insertDictType(SysDictType dictType); + /** + * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + public int insertDictType(SysDictType dictType); - /** - * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - public int updateDictType(SysDictType dictType); + /** + * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + public int updateDictType(SysDictType dictType); - /** - * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 缁撴灉 - */ - public boolean checkDictTypeUnique(SysDictType dictType); + /** + * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 缁撴灉 + */ + public boolean checkDictTypeUnique(SysDictType dictType); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java index 724a6a9cd..af0222432 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java @@ -1,40 +1,37 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysLogininfor; +import java.util.List; /** * 绯荤粺璁块棶鏃ュ織鎯呭喌淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysLogininforService -{ - /** - * 鏂板绯荤粺鐧诲綍鏃ュ織 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - */ - public int insertLogininfor(SysLogininfor logininfor); +public interface ISysLogininforService { + /** + * 鏂板绯荤粺鐧诲綍鏃ュ織 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + */ + public int insertLogininfor(SysLogininfor logininfor); - /** - * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - * @return 鐧诲綍璁板綍闆嗗悎 - */ - public List selectLogininforList(SysLogininfor logininfor); + /** + * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + * @return 鐧诲綍璁板綍闆嗗悎 + */ + public List selectLogininforList(SysLogininfor logininfor); - /** - * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 - * - * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteLogininforByIds(Long[] infoIds); + /** + * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 + * + * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteLogininforByIds(Long[] infoIds); - /** - * 娓呯┖绯荤粺鐧诲綍鏃ュ織 - */ - public void cleanLogininfor(); + /** 娓呯┖绯荤粺鐧诲綍鏃ュ織 */ + public void cleanLogininfor(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 1061849c0..fd7a62dab 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -1,144 +1,143 @@ package com.ruoyi.system.service; -import java.util.List; -import java.util.Set; import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.TreeSelect; +import java.util.List; +import java.util.Set; /** * 鑿滃崟 涓氬姟灞 - * + * * @author ruoyi */ -public interface ISysMenuService -{ - /** - * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param userId 鐢ㄦ埛ID - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuList(Long userId); - - /** - * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param menu 鑿滃崟淇℃伅 - * @param userId 鐢ㄦ埛ID - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuList(SysMenu menu, Long userId); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - public Set selectMenuPermsByUserId(Long userId); - - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * - * @param roleId 瑙掕壊ID - * @return 鏉冮檺鍒楄〃 - */ - public Set selectMenuPermsByRoleId(Long roleId); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟鏍戜俊鎭 - * - * @param userId 鐢ㄦ埛ID - * @return 鑿滃崟鍒楄〃 - */ - public List selectMenuTreeByUserId(Long userId); - - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @return 閫変腑鑿滃崟鍒楄〃 - */ - public List selectMenuListByRoleId(Long roleId); - - /** - * 鏋勫缓鍓嶇璺敱鎵闇瑕佺殑鑿滃崟 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 璺敱鍒楄〃 - */ - public List buildMenus(List menus); - - /** - * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 鏍戠粨鏋勫垪琛 - */ - public List buildMenuTree(List menus); - - /** - * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 涓嬫媺鏍戠粨鏋勫垪琛 - */ - public List buildMenuTreeSelect(List menus); - - /** - * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 鑿滃崟淇℃伅 - */ - public SysMenu selectMenuById(Long menuId); - - /** - * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 - */ - public boolean hasChildByMenuId(Long menuId); - - /** - * 鏌ヨ鑿滃崟鏄惁瀛樺湪瑙掕壊 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 - */ - public boolean checkMenuExistRole(Long menuId); - - /** - * 鏂板淇濆瓨鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public int insertMenu(SysMenu menu); - - /** - * 淇敼淇濆瓨鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public int updateMenu(SysMenu menu); - - /** - * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - public int deleteMenuById(Long menuId); - - /** - * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean checkMenuNameUnique(SysMenu menu); +public interface ISysMenuService { + /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuList(Long userId); + + /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param menu 鑿滃崟淇℃伅 + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuList(SysMenu menu, Long userId); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + public Set selectMenuPermsByUserId(Long userId); + + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + public Set selectMenuPermsByRoleId(Long roleId); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟鏍戜俊鎭 + * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + public List selectMenuTreeByUserId(Long userId); + + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @return 閫変腑鑿滃崟鍒楄〃 + */ + public List selectMenuListByRoleId(Long roleId); + + /** + * 鏋勫缓鍓嶇璺敱鎵闇瑕佺殑鑿滃崟 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 璺敱鍒楄〃 + */ + public List buildMenus(List menus); + + /** + * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 鏍戠粨鏋勫垪琛 + */ + public List buildMenuTree(List menus); + + /** + * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 涓嬫媺鏍戠粨鏋勫垪琛 + */ + public List buildMenuTreeSelect(List menus); + + /** + * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 鑿滃崟淇℃伅 + */ + public SysMenu selectMenuById(Long menuId); + + /** + * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 + */ + public boolean hasChildByMenuId(Long menuId); + + /** + * 鏌ヨ鑿滃崟鏄惁瀛樺湪瑙掕壊 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 + */ + public boolean checkMenuExistRole(Long menuId); + + /** + * 鏂板淇濆瓨鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public int insertMenu(SysMenu menu); + + /** + * 淇敼淇濆瓨鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public int updateMenu(SysMenu menu); + + /** + * 鍒犻櫎鑿滃崟绠$悊淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + public int deleteMenuById(Long menuId); + + /** + * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public boolean checkMenuNameUnique(SysMenu menu); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java index fb1e420fd..b21b6e90e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java @@ -1,60 +1,59 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.domain.SysNotice; +import java.util.List; /** * 鍏憡 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysNoticeService -{ - /** - * 鏌ヨ鍏憡淇℃伅 - * - * @param noticeId 鍏憡ID - * @return 鍏憡淇℃伅 - */ - public SysNotice selectNoticeById(Long noticeId); +public interface ISysNoticeService { + /** + * 鏌ヨ鍏憡淇℃伅 + * + * @param noticeId 鍏憡ID + * @return 鍏憡淇℃伅 + */ + public SysNotice selectNoticeById(Long noticeId); + + /** + * 鏌ヨ鍏憡鍒楄〃 + * + * @param notice 鍏憡淇℃伅 + * @return 鍏憡闆嗗悎 + */ + public List selectNoticeList(SysNotice notice); - /** - * 鏌ヨ鍏憡鍒楄〃 - * - * @param notice 鍏憡淇℃伅 - * @return 鍏憡闆嗗悎 - */ - public List selectNoticeList(SysNotice notice); + /** + * 鏂板鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + public int insertNotice(SysNotice notice); - /** - * 鏂板鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - public int insertNotice(SysNotice notice); + /** + * 淇敼鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + public int updateNotice(SysNotice notice); - /** - * 淇敼鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - public int updateNotice(SysNotice notice); + /** + * 鍒犻櫎鍏憡淇℃伅 + * + * @param noticeId 鍏憡ID + * @return 缁撴灉 + */ + public int deleteNoticeById(Long noticeId); - /** - * 鍒犻櫎鍏憡淇℃伅 - * - * @param noticeId 鍏憡ID - * @return 缁撴灉 - */ - public int deleteNoticeById(Long noticeId); - - /** - * 鎵归噺鍒犻櫎鍏憡淇℃伅 - * - * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID - * @return 缁撴灉 - */ - public int deleteNoticeByIds(Long[] noticeIds); + /** + * 鎵归噺鍒犻櫎鍏憡淇℃伅 + * + * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID + * @return 缁撴灉 + */ + public int deleteNoticeByIds(Long[] noticeIds); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java index 42c94f185..b9f1384d4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java @@ -1,49 +1,46 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysOperLog; +import java.util.List; /** * 鎿嶄綔鏃ュ織 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysOperLogService -{ - /** - * 鏂板鎿嶄綔鏃ュ織 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - * @return 缁撴灉 - */ - public int insertOperlog(SysOperLog operLog); +public interface ISysOperLogService { + /** + * 鏂板鎿嶄綔鏃ュ織 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + * @return 缁撴灉 + */ + public int insertOperlog(SysOperLog operLog); - /** - * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - * @return 鎿嶄綔鏃ュ織闆嗗悎 - */ - public List selectOperLogList(SysOperLog operLog); + /** + * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + * @return 鎿嶄綔鏃ュ織闆嗗悎 + */ + public List selectOperLogList(SysOperLog operLog); - /** - * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 - * - * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID - * @return 缁撴灉 - */ - public int deleteOperLogByIds(Long[] operIds); + /** + * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 + * + * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteOperLogByIds(Long[] operIds); - /** - * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 - * - * @param operId 鎿嶄綔ID - * @return 鎿嶄綔鏃ュ織瀵硅薄 - */ - public SysOperLog selectOperLogById(Long operId); + /** + * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 + * + * @param operId 鎿嶄綔ID + * @return 鎿嶄綔鏃ュ織瀵硅薄 + */ + public SysOperLog selectOperLogById(Long operId); - /** - * 娓呯┖鎿嶄綔鏃ュ織 - */ - public void cleanOperLog(); + /** 娓呯┖鎿嶄綔鏃ュ織 */ + public void cleanOperLog(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java index bc3bf322d..9de63e813 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java @@ -1,29 +1,27 @@ package com.ruoyi.system.service; -import java.util.Set; - import com.ruoyi.system.api.domain.SysUser; +import java.util.Set; /** * 鏉冮檺淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysPermissionService -{ - /** - * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 - * - * @param userId 鐢ㄦ埛Id - * @return 瑙掕壊鏉冮檺淇℃伅 - */ - public Set getRolePermission(SysUser user); +public interface ISysPermissionService { + /** + * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 + * + * @param userId 鐢ㄦ埛Id + * @return 瑙掕壊鏉冮檺淇℃伅 + */ + public Set getRolePermission(SysUser user); - /** - * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 - * - * @param userId 鐢ㄦ埛Id - * @return 鑿滃崟鏉冮檺淇℃伅 - */ - public Set getMenuPermission(SysUser user); + /** + * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 + * + * @param userId 鐢ㄦ埛Id + * @return 鑿滃崟鏉冮檺淇℃伅 + */ + public Set getMenuPermission(SysUser user); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java index 590634b9e..73b552560 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java @@ -1,99 +1,98 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.domain.SysPost; +import java.util.List; /** * 宀椾綅淇℃伅 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysPostService -{ - /** - * 鏌ヨ宀椾綅淇℃伅闆嗗悎 - * - * @param post 宀椾綅淇℃伅 - * @return 宀椾綅鍒楄〃 - */ - public List selectPostList(SysPost post); +public interface ISysPostService { + /** + * 鏌ヨ宀椾綅淇℃伅闆嗗悎 + * + * @param post 宀椾綅淇℃伅 + * @return 宀椾綅鍒楄〃 + */ + public List selectPostList(SysPost post); - /** - * 鏌ヨ鎵鏈夊矖浣 - * - * @return 宀椾綅鍒楄〃 - */ - public List selectPostAll(); + /** + * 鏌ヨ鎵鏈夊矖浣 + * + * @return 宀椾綅鍒楄〃 + */ + public List selectPostAll(); - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysPost selectPostById(Long postId); + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysPost selectPostById(Long postId); - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑宀椾綅ID鍒楄〃 - */ - public List selectPostListByUserId(Long userId); + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑宀椾綅ID鍒楄〃 + */ + public List selectPostListByUserId(Long userId); - /** - * 鏍¢獙宀椾綅鍚嶇О - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public boolean checkPostNameUnique(SysPost post); + /** + * 鏍¢獙宀椾綅鍚嶇О + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public boolean checkPostNameUnique(SysPost post); - /** - * 鏍¢獙宀椾綅缂栫爜 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public boolean checkPostCodeUnique(SysPost post); + /** + * 鏍¢獙宀椾綅缂栫爜 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public boolean checkPostCodeUnique(SysPost post); - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - public int countUserPostById(Long postId); + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + public int countUserPostById(Long postId); - /** - * 鍒犻櫎宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - public int deletePostById(Long postId); + /** + * 鍒犻櫎宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + public int deletePostById(Long postId); - /** - * 鎵归噺鍒犻櫎宀椾綅淇℃伅 - * - * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID - * @return 缁撴灉 - */ - public int deletePostByIds(Long[] postIds); + /** + * 鎵归噺鍒犻櫎宀椾綅淇℃伅 + * + * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID + * @return 缁撴灉 + */ + public int deletePostByIds(Long[] postIds); - /** - * 鏂板淇濆瓨宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public int insertPost(SysPost post); + /** + * 鏂板淇濆瓨宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public int insertPost(SysPost post); - /** - * 淇敼淇濆瓨宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - public int updatePost(SysPost post); + /** + * 淇敼淇濆瓨宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + public int updatePost(SysPost post); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index 7f572fdcb..0b5053add 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -1,173 +1,172 @@ package com.ruoyi.system.service; -import java.util.List; -import java.util.Set; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.domain.SysUserRole; +import java.util.List; +import java.util.Set; /** * 瑙掕壊涓氬姟灞 - * + * * @author ruoyi */ -public interface ISysRoleService -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 - * - * @param role 瑙掕壊淇℃伅 - * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 - */ - public List selectRoleList(SysRole role); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鍒楄〃 - * - * @param userId 鐢ㄦ埛ID - * @return 瑙掕壊鍒楄〃 - */ - public List selectRolesByUserId(Long userId); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - public Set selectRolePermissionByUserId(Long userId); - - /** - * 鏌ヨ鎵鏈夎鑹 - * - * @return 瑙掕壊鍒楄〃 - */ - public List selectRoleAll(); - - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑瑙掕壊ID鍒楄〃 - */ - public List selectRoleListByUserId(Long userId); - - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysRole selectRoleById(Long roleId); - - /** - * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public boolean checkRoleNameUnique(SysRole role); - - /** - * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public boolean checkRoleKeyUnique(SysRole role); - - /** - * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 - * - * @param role 瑙掕壊淇℃伅 - */ - public void checkRoleAllowed(SysRole role); - - /** - * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄 - * - * @param roleIds 瑙掕壊id - */ - public void checkRoleDataScope(Long... roleIds); - - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int countUserRoleByRoleId(Long roleId); - - /** - * 鏂板淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int insertRole(SysRole role); - - /** - * 淇敼淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int updateRole(SysRole role); - - /** - * 淇敼瑙掕壊鐘舵 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int updateRoleStatus(SysRole role); - - /** - * 淇敼鏁版嵁鏉冮檺淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int authDataScope(SysRole role); - - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleById(Long roleId); - - /** - * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 - * - * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleByIds(Long[] roleIds); - - /** - * 鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 - * @return 缁撴灉 - */ - public int deleteAuthUser(SysUserRole userRole); - - /** - * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @param userIds 闇瑕佸彇娑堟巿鏉冪殑鐢ㄦ埛鏁版嵁ID - * @return 缁撴灉 - */ - public int deleteAuthUsers(Long roleId, Long[] userIds); - - /** - * 鎵归噺閫夋嫨鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛鏁版嵁ID - * @return 缁撴灉 - */ - public int insertAuthUsers(Long roleId, Long[] userIds); +public interface ISysRoleService { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 + * + * @param role 瑙掕壊淇℃伅 + * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 + */ + public List selectRoleList(SysRole role); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鍒楄〃 + * + * @param userId 鐢ㄦ埛ID + * @return 瑙掕壊鍒楄〃 + */ + public List selectRolesByUserId(Long userId); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + public Set selectRolePermissionByUserId(Long userId); + + /** + * 鏌ヨ鎵鏈夎鑹 + * + * @return 瑙掕壊鍒楄〃 + */ + public List selectRoleAll(); + + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑瑙掕壊ID鍒楄〃 + */ + public List selectRoleListByUserId(Long userId); + + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysRole selectRoleById(Long roleId); + + /** + * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public boolean checkRoleNameUnique(SysRole role); + + /** + * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public boolean checkRoleKeyUnique(SysRole role); + + /** + * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 + * + * @param role 瑙掕壊淇℃伅 + */ + public void checkRoleAllowed(SysRole role); + + /** + * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄 + * + * @param roleIds 瑙掕壊id + */ + public void checkRoleDataScope(Long... roleIds); + + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int countUserRoleByRoleId(Long roleId); + + /** + * 鏂板淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int insertRole(SysRole role); + + /** + * 淇敼淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int updateRole(SysRole role); + + /** + * 淇敼瑙掕壊鐘舵 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int updateRoleStatus(SysRole role); + + /** + * 淇敼鏁版嵁鏉冮檺淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int authDataScope(SysRole role); + + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleById(Long roleId); + + /** + * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 + * + * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleByIds(Long[] roleIds); + + /** + * 鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 + * @return 缁撴灉 + */ + public int deleteAuthUser(SysUserRole userRole); + + /** + * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @param userIds 闇瑕佸彇娑堟巿鏉冪殑鐢ㄦ埛鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteAuthUsers(Long roleId, Long[] userIds); + + /** + * 鎵归噺閫夋嫨鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛鏁版嵁ID + * @return 缁撴灉 + */ + public int insertAuthUsers(Long roleId, Long[] userIds); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java index dd602b25e..77aadf7aa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java @@ -5,44 +5,43 @@ import com.ruoyi.system.domain.SysUserOnline; /** * 鍦ㄧ嚎鐢ㄦ埛 鏈嶅姟灞 - * + * * @author ruoyi */ -public interface ISysUserOnlineService -{ - /** - * 閫氳繃鐧诲綍鍦板潃鏌ヨ淇℃伅 - * - * @param ipaddr 鐧诲綍鍦板潃 - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user); +public interface ISysUserOnlineService { + /** + * 閫氳繃鐧诲綍鍦板潃鏌ヨ淇℃伅 + * + * @param ipaddr 鐧诲綍鍦板潃 + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user); - /** - * 閫氳繃鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 - * - * @param userName 鐢ㄦ埛鍚嶇О - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - public SysUserOnline selectOnlineByUserName(String userName, LoginUser user); + /** + * 閫氳繃鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 + * + * @param userName 鐢ㄦ埛鍚嶇О + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + public SysUserOnline selectOnlineByUserName(String userName, LoginUser user); - /** - * 閫氳繃鐧诲綍鍦板潃/鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 - * - * @param ipaddr 鐧诲綍鍦板潃 - * @param userName 鐢ㄦ埛鍚嶇О - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user); + /** + * 閫氳繃鐧诲綍鍦板潃/鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 + * + * @param ipaddr 鐧诲綍鍦板潃 + * @param userName 鐢ㄦ埛鍚嶇О + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user); - /** - * 璁剧疆鍦ㄧ嚎鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛 - */ - public SysUserOnline loginUserToUserOnline(LoginUser user); + /** + * 璁剧疆鍦ㄧ嚎鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛 + */ + public SysUserOnline loginUserToUserOnline(LoginUser user); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 107fe9ef2..d94d20bb1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,214 +1,213 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysUser; +import java.util.List; /** * 鐢ㄦ埛 涓氬姟灞 - * + * * @author ruoyi */ -public interface ISysUserService -{ - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectUserList(SysUser user); - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectAllocatedList(SysUser user); - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - public List selectUnallocatedList(SysUser user); - - /** - * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 - * - * @param userName 鐢ㄦ埛鍚 - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - public SysUser selectUserByUserName(String userName); - - /** - * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - public SysUser selectUserById(Long userId); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵灞炶鑹茬粍 - * - * @param userName 鐢ㄦ埛鍚 - * @return 缁撴灉 - */ - public String selectUserRoleGroup(String userName); - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 - * - * @param userName 鐢ㄦ埛鍚 - * @return 缁撴灉 - */ - public String selectUserPostGroup(String userName); - - /** - * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean checkUserNameUnique(SysUser user); - - /** - * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean checkPhoneUnique(SysUser user); - - /** - * 鏍¢獙email鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean checkEmailUnique(SysUser user); - - /** - * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 - * - * @param user 鐢ㄦ埛淇℃伅 - */ - public void checkUserAllowed(SysUser user); - - /** - * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄 - * - * @param userId 鐢ㄦ埛id - */ - public void checkUserDataScope(Long userId); - - /** - * 鏂板鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int insertUser(SysUser user); - - /** - * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean registerUser(SysUser user); - - /** - * 淇敼鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int updateUser(SysUser user); - - /** - * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID - * @param roleIds 瑙掕壊缁 - */ - public void insertUserAuth(Long userId, Long[] roleIds); - - /** - * 淇敼鐢ㄦ埛鐘舵 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int updateUserStatus(SysUser user); - - /** - * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean updateUserProfile(SysUser user); - - /** - * 淇敼鐢ㄦ埛澶村儚 - * - * @param userId 鐢ㄦ埛ID - * @param avatar 澶村儚鍦板潃 - * @return 缁撴灉 - */ - public boolean updateUserAvatar(Long userId, String avatar); - - /** - * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean updateLoginInfo(SysUser user); - - /** - * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public int resetPwd(SysUser user); - - /** - * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * - * @param userId 鐢ㄦ埛ID - * @param password 瀵嗙爜 - * @return 缁撴灉 - */ - public int resetUserPwd(Long userId, String password); - - /** - * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserById(Long userId); - - /** - * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * - * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID - * @return 缁撴灉 - */ - public int deleteUserByIds(Long[] userIds); - - /** - * 瀵煎叆鐢ㄦ埛鏁版嵁 - * - * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 - * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 - * @param operName 鎿嶄綔鐢ㄦ埛 - * @return 缁撴灉 - */ - public String importUser(List userList, Boolean isUpdateSupport, String operName); +public interface ISysUserService { + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectUserList(SysUser user); + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectAllocatedList(SysUser user); + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + public List selectUnallocatedList(SysUser user); + + /** + * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 + * + * @param userName 鐢ㄦ埛鍚 + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + public SysUser selectUserByUserName(String userName); + + /** + * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + public SysUser selectUserById(Long userId); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵灞炶鑹茬粍 + * + * @param userName 鐢ㄦ埛鍚 + * @return 缁撴灉 + */ + public String selectUserRoleGroup(String userName); + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 + * + * @param userName 鐢ㄦ埛鍚 + * @return 缁撴灉 + */ + public String selectUserPostGroup(String userName); + + /** + * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean checkUserNameUnique(SysUser user); + + /** + * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean checkPhoneUnique(SysUser user); + + /** + * 鏍¢獙email鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean checkEmailUnique(SysUser user); + + /** + * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 + * + * @param user 鐢ㄦ埛淇℃伅 + */ + public void checkUserAllowed(SysUser user); + + /** + * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄 + * + * @param userId 鐢ㄦ埛id + */ + public void checkUserDataScope(Long userId); + + /** + * 鏂板鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int insertUser(SysUser user); + + /** + * 娉ㄥ唽鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean registerUser(SysUser user); + + /** + * 淇敼鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int updateUser(SysUser user); + + /** + * 鐢ㄦ埛鎺堟潈瑙掕壊 + * + * @param userId 鐢ㄦ埛ID + * @param roleIds 瑙掕壊缁 + */ + public void insertUserAuth(Long userId, Long[] roleIds); + + /** + * 淇敼鐢ㄦ埛鐘舵 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int updateUserStatus(SysUser user); + + /** + * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean updateUserProfile(SysUser user); + + /** + * 淇敼鐢ㄦ埛澶村儚 + * + * @param userId 鐢ㄦ埛ID + * @param avatar 澶村儚鍦板潃 + * @return 缁撴灉 + */ + public boolean updateUserAvatar(Long userId, String avatar); + + /** + * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean updateLoginInfo(SysUser user); + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public int resetPwd(SysUser user); + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + * + * @param userId 鐢ㄦ埛ID + * @param password 瀵嗙爜 + * @return 缁撴灉 + */ + public int resetUserPwd(Long userId, String password); + + /** + * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserById(Long userId); + + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 + * + * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID + * @return 缁撴灉 + */ + public int deleteUserByIds(Long[] userIds); + + /** + * 瀵煎叆鐢ㄦ埛鏁版嵁 + * + * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 + * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 + * @param operName 鎿嶄綔鐢ㄦ埛 + * @return 缁撴灉 + */ + public String importUser(List userList, Boolean isUpdateSupport, String operName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index cdaaa2ddb..06425dd4f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -1,10 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.Collection; -import java.util.List; -import javax.annotation.PostConstruct; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; @@ -14,200 +9,173 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; +import java.util.Collection; +import java.util.List; +import javax.annotation.PostConstruct; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 鍙傛暟閰嶇疆 鏈嶅姟灞傚疄鐜 - * + * * @author ruoyi */ @Service -public class SysConfigServiceImpl implements ISysConfigService -{ - @Autowired - private SysConfigMapper configMapper; - - @Autowired - private RedisService redisService; - - /** - * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧弬鏁板埌缂撳瓨 - */ - @PostConstruct - public void init() - { - loadingConfigCache(); - } - - /** - * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configId 鍙傛暟閰嶇疆ID - * @return 鍙傛暟閰嶇疆淇℃伅 - */ - @Override - public SysConfig selectConfigById(Long configId) - { - SysConfig config = new SysConfig(); - config.setConfigId(configId); - return configMapper.selectConfig(config); +public class SysConfigServiceImpl implements ISysConfigService { + @Autowired private SysConfigMapper configMapper; + + @Autowired private RedisService redisService; + + /** 椤圭洰鍚姩鏃讹紝鍒濆鍖栧弬鏁板埌缂撳瓨 */ + @PostConstruct + public void init() { + loadingConfigCache(); + } + + /** + * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param configId 鍙傛暟閰嶇疆ID + * @return 鍙傛暟閰嶇疆淇℃伅 + */ + @Override + public SysConfig selectConfigById(Long configId) { + SysConfig config = new SysConfig(); + config.setConfigId(configId); + return configMapper.selectConfig(config); + } + + /** + * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 + * + * @param configKey 鍙傛暟key + * @return 鍙傛暟閿 + */ + @Override + public String selectConfigByKey(String configKey) { + String configValue = Convert.toStr(redisService.getCacheObject(getCacheKey(configKey))); + if (StringUtils.isNotEmpty(configValue)) { + return configValue; } - - /** - * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configKey 鍙傛暟key - * @return 鍙傛暟閿 - */ - @Override - public String selectConfigByKey(String configKey) - { - String configValue = Convert.toStr(redisService.getCacheObject(getCacheKey(configKey))); - if (StringUtils.isNotEmpty(configValue)) - { - return configValue; - } - SysConfig config = new SysConfig(); - config.setConfigKey(configKey); - SysConfig retConfig = configMapper.selectConfig(config); - if (StringUtils.isNotNull(retConfig)) - { - redisService.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); - return retConfig.getConfigValue(); - } - return StringUtils.EMPTY; - } - - /** - * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 鍙傛暟閰嶇疆闆嗗悎 - */ - @Override - public List selectConfigList(SysConfig config) - { - return configMapper.selectConfigList(config); - } - - /** - * 鏂板鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertConfig(SysConfig config) - { - int row = configMapper.insertConfig(config); - if (row > 0) - { - redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); - } - return row; - } - - /** - * 淇敼鍙傛暟閰嶇疆 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateConfig(SysConfig config) - { - SysConfig temp = configMapper.selectConfigById(config.getConfigId()); - if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) - { - redisService.deleteObject(getCacheKey(temp.getConfigKey())); - } - - int row = configMapper.updateConfig(config); - if (row > 0) - { - redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); - } - return row; + SysConfig config = new SysConfig(); + config.setConfigKey(configKey); + SysConfig retConfig = configMapper.selectConfig(config); + if (StringUtils.isNotNull(retConfig)) { + redisService.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); + return retConfig.getConfigValue(); } - - /** - * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 - * - * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID - */ - @Override - public void deleteConfigByIds(Long[] configIds) - { - for (Long configId : configIds) - { - SysConfig config = selectConfigById(configId); - if (StringUtils.equals(UserConstants.YES, config.getConfigType())) - { - throw new ServiceException(String.format("鍐呯疆鍙傛暟銆%1$s銆戜笉鑳藉垹闄 ", config.getConfigKey())); - } - configMapper.deleteConfigById(configId); - redisService.deleteObject(getCacheKey(config.getConfigKey())); - } + return StringUtils.EMPTY; + } + + /** + * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 鍙傛暟閰嶇疆闆嗗悎 + */ + @Override + public List selectConfigList(SysConfig config) { + return configMapper.selectConfigList(config); + } + + /** + * 鏂板鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertConfig(SysConfig config) { + int row = configMapper.insertConfig(config); + if (row > 0) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } - - /** - * 鍔犺浇鍙傛暟缂撳瓨鏁版嵁 - */ - @Override - public void loadingConfigCache() - { - List configsList = configMapper.selectConfigList(new SysConfig()); - for (SysConfig config : configsList) - { - redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); - } + return row; + } + + /** + * 淇敼鍙傛暟閰嶇疆 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateConfig(SysConfig config) { + SysConfig temp = configMapper.selectConfigById(config.getConfigId()); + if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) { + redisService.deleteObject(getCacheKey(temp.getConfigKey())); } - /** - * 娓呯┖鍙傛暟缂撳瓨鏁版嵁 - */ - @Override - public void clearConfigCache() - { - Collection keys = redisService.keys(CacheConstants.SYS_CONFIG_KEY + "*"); - redisService.deleteObject(keys); + int row = configMapper.updateConfig(config); + if (row > 0) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } - - /** - * 閲嶇疆鍙傛暟缂撳瓨鏁版嵁 - */ - @Override - public void resetConfigCache() - { - clearConfigCache(); - loadingConfigCache(); + return row; + } + + /** + * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 + * + * @param configIds 闇瑕佸垹闄ょ殑鍙傛暟ID + */ + @Override + public void deleteConfigByIds(Long[] configIds) { + for (Long configId : configIds) { + SysConfig config = selectConfigById(configId); + if (StringUtils.equals(UserConstants.YES, config.getConfigType())) { + throw new ServiceException(String.format("鍐呯疆鍙傛暟銆%1$s銆戜笉鑳藉垹闄 ", config.getConfigKey())); + } + configMapper.deleteConfigById(configId); + redisService.deleteObject(getCacheKey(config.getConfigKey())); } - - /** - * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 - * - * @param config 鍙傛暟閰嶇疆淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkConfigKeyUnique(SysConfig config) - { - Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); - SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); - if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + } + + /** 鍔犺浇鍙傛暟缂撳瓨鏁版嵁 */ + @Override + public void loadingConfigCache() { + List configsList = configMapper.selectConfigList(new SysConfig()); + for (SysConfig config : configsList) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } - - /** - * 璁剧疆cache key - * - * @param configKey 鍙傛暟閿 - * @return 缂撳瓨閿甼ey - */ - private String getCacheKey(String configKey) - { - return CacheConstants.SYS_CONFIG_KEY + configKey; + } + + /** 娓呯┖鍙傛暟缂撳瓨鏁版嵁 */ + @Override + public void clearConfigCache() { + Collection keys = redisService.keys(CacheConstants.SYS_CONFIG_KEY + "*"); + redisService.deleteObject(keys); + } + + /** 閲嶇疆鍙傛暟缂撳瓨鏁版嵁 */ + @Override + public void resetConfigCache() { + clearConfigCache(); + loadingConfigCache(); + } + + /** + * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 + * + * @param config 鍙傛暟閰嶇疆淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkConfigKeyUnique(SysConfig config) { + Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); + SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); + if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } + + /** + * 璁剧疆cache key + * + * @param configKey 鍙傛暟閿 + * @return 缂撳瓨閿甼ey + */ + private String getCacheKey(String configKey) { + return CacheConstants.SYS_CONFIG_KEY + configKey; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index a57ee3401..b4b556fd9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,11 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.text.Convert; @@ -20,319 +14,284 @@ import com.ruoyi.system.domain.vo.TreeSelect; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.service.ISysDeptService; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇 - * + * * @author ruoyi */ @Service -public class SysDeptServiceImpl implements ISysDeptService -{ - @Autowired - private SysDeptMapper deptMapper; +public class SysDeptServiceImpl implements ISysDeptService { + @Autowired private SysDeptMapper deptMapper; - @Autowired - private SysRoleMapper roleMapper; + @Autowired private SysRoleMapper roleMapper; - /** - * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 閮ㄩ棬淇℃伅闆嗗悎 - */ - @Override - @DataScope(deptAlias = "d") - public List selectDeptList(SysDept dept) - { - return deptMapper.selectDeptList(dept); - } + /** + * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬淇℃伅闆嗗悎 + */ + @Override + @DataScope(deptAlias = "d") + public List selectDeptList(SysDept dept) { + return deptMapper.selectDeptList(dept); + } - /** - * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 閮ㄩ棬鏍戜俊鎭泦鍚 - */ - @Override - public List selectDeptTreeList(SysDept dept) - { - List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); - return buildDeptTreeSelect(depts); - } + /** + * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬鏍戜俊鎭泦鍚 + */ + @Override + public List selectDeptTreeList(SysDept dept) { + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + return buildDeptTreeSelect(depts); + } - /** - * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 - * - * @param depts 閮ㄩ棬鍒楄〃 - * @return 鏍戠粨鏋勫垪琛 - */ - @Override - public List buildDeptTree(List depts) - { - List returnList = new ArrayList(); - List tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); - for (SysDept dept : depts) - { - // 濡傛灉鏄《绾ц妭鐐, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 - if (!tempList.contains(dept.getParentId())) - { - recursionFn(depts, dept); - returnList.add(dept); - } - } - if (returnList.isEmpty()) - { - returnList = depts; - } - return returnList; + /** + * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 + * + * @param depts 閮ㄩ棬鍒楄〃 + * @return 鏍戠粨鏋勫垪琛 + */ + @Override + public List buildDeptTree(List depts) { + List returnList = new ArrayList(); + List tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + for (SysDept dept : depts) { + // 濡傛灉鏄《绾ц妭鐐, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 + if (!tempList.contains(dept.getParentId())) { + recursionFn(depts, dept); + returnList.add(dept); + } } - - /** - * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 - * - * @param depts 閮ㄩ棬鍒楄〃 - * @return 涓嬫媺鏍戠粨鏋勫垪琛 - */ - @Override - public List buildDeptTreeSelect(List depts) - { - List deptTrees = buildDeptTree(depts); - return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + if (returnList.isEmpty()) { + returnList = depts; } + return returnList; + } - /** - * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @return 閫変腑閮ㄩ棬鍒楄〃 - */ - @Override - public List selectDeptListByRoleId(Long roleId) - { - SysRole role = roleMapper.selectRoleById(roleId); - return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); - } + /** + * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 + * + * @param depts 閮ㄩ棬鍒楄〃 + * @return 涓嬫媺鏍戠粨鏋勫垪琛 + */ + @Override + public List buildDeptTreeSelect(List depts) { + List deptTrees = buildDeptTree(depts); + return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } - /** - * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 閮ㄩ棬淇℃伅 - */ - @Override - public SysDept selectDeptById(Long deptId) - { - return deptMapper.selectDeptById(deptId); - } + /** + * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @return 閫変腑閮ㄩ棬鍒楄〃 + */ + @Override + public List selectDeptListByRoleId(Long roleId) { + SysRole role = roleMapper.selectRoleById(roleId); + return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); + } - /** - * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * - * @param deptId 閮ㄩ棬ID - * @return 瀛愰儴闂ㄦ暟 - */ - @Override - public int selectNormalChildrenDeptById(Long deptId) - { - return deptMapper.selectNormalChildrenDeptById(deptId); - } + /** + * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬淇℃伅 + */ + @Override + public SysDept selectDeptById(Long deptId) { + return deptMapper.selectDeptById(deptId); + } - /** - * 鏄惁瀛樺湪瀛愯妭鐐 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - @Override - public boolean hasChildByDeptId(Long deptId) - { - int result = deptMapper.hasChildByDeptId(deptId); - return result > 0; - } + /** + * 鏍规嵁ID鏌ヨ鎵鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 + * + * @param deptId 閮ㄩ棬ID + * @return 瀛愰儴闂ㄦ暟 + */ + @Override + public int selectNormalChildrenDeptById(Long deptId) { + return deptMapper.selectNormalChildrenDeptById(deptId); + } - /** - * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 - */ - @Override - public boolean checkDeptExistUser(Long deptId) - { - int result = deptMapper.checkDeptExistUser(deptId); - return result > 0; - } + /** + * 鏄惁瀛樺湪瀛愯妭鐐 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + @Override + public boolean hasChildByDeptId(Long deptId) { + int result = deptMapper.hasChildByDeptId(deptId); + return result > 0; + } - /** - * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkDeptNameUnique(SysDept dept) - { - Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); - SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); - if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; - } + /** + * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦 + */ + @Override + public boolean checkDeptExistUser(Long deptId) { + int result = deptMapper.checkDeptExistUser(deptId); + return result > 0; + } - /** - * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄 - * - * @param deptId 閮ㄩ棬id - */ - @Override - public void checkDeptDataScope(Long deptId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId()) && StringUtils.isNotNull(deptId)) - { - SysDept dept = new SysDept(); - dept.setDeptId(deptId); - List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); - if (StringUtils.isEmpty(depts)) - { - throw new ServiceException("娌℃湁鏉冮檺璁块棶閮ㄩ棬鏁版嵁锛"); - } - } + /** + * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkDeptNameUnique(SysDept dept) { + Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); + SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); + if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } - /** - * 鏂板淇濆瓨閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertDept(SysDept dept) - { - SysDept info = deptMapper.selectDeptById(dept.getParentId()); - // 濡傛灉鐖惰妭鐐逛笉涓烘甯哥姸鎬,鍒欎笉鍏佽鏂板瀛愯妭鐐 - if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) - { - throw new ServiceException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板"); - } - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - return deptMapper.insertDept(dept); + /** + * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄 + * + * @param deptId 閮ㄩ棬id + */ + @Override + public void checkDeptDataScope(Long deptId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId()) && StringUtils.isNotNull(deptId)) { + SysDept dept = new SysDept(); + dept.setDeptId(deptId); + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + if (StringUtils.isEmpty(depts)) { + throw new ServiceException("娌℃湁鏉冮檺璁块棶閮ㄩ棬鏁版嵁锛"); + } } + } - /** - * 淇敼淇濆瓨閮ㄩ棬淇℃伅 - * - * @param dept 閮ㄩ棬淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateDept(SysDept dept) - { - SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); - SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); - if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) - { - String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); - String oldAncestors = oldDept.getAncestors(); - dept.setAncestors(newAncestors); - updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); - } - int result = deptMapper.updateDept(dept); - if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) - && !StringUtils.equals("0", dept.getAncestors())) - { - // 濡傛灉璇ラ儴闂ㄦ槸鍚敤鐘舵侊紝鍒欏惎鐢ㄨ閮ㄩ棬鐨勬墍鏈変笂绾ч儴闂 - updateParentDeptStatusNormal(dept); - } - return result; + /** + * 鏂板淇濆瓨閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertDept(SysDept dept) { + SysDept info = deptMapper.selectDeptById(dept.getParentId()); + // 濡傛灉鐖惰妭鐐逛笉涓烘甯哥姸鎬,鍒欎笉鍏佽鏂板瀛愯妭鐐 + if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) { + throw new ServiceException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板"); } + dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + return deptMapper.insertDept(dept); + } - /** - * 淇敼璇ラ儴闂ㄧ殑鐖剁骇閮ㄩ棬鐘舵 - * - * @param dept 褰撳墠閮ㄩ棬 - */ - private void updateParentDeptStatusNormal(SysDept dept) - { - String ancestors = dept.getAncestors(); - Long[] deptIds = Convert.toLongArray(ancestors); - deptMapper.updateDeptStatusNormal(deptIds); + /** + * 淇敼淇濆瓨閮ㄩ棬淇℃伅 + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateDept(SysDept dept) { + SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); + SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); + if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) { + String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); + String oldAncestors = oldDept.getAncestors(); + dept.setAncestors(newAncestors); + updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); } - - /** - * 淇敼瀛愬厓绱犲叧绯 - * - * @param deptId 琚慨鏀圭殑閮ㄩ棬ID - * @param newAncestors 鏂扮殑鐖禝D闆嗗悎 - * @param oldAncestors 鏃х殑鐖禝D闆嗗悎 - */ - public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) - { - List children = deptMapper.selectChildrenDeptById(deptId); - for (SysDept child : children) - { - child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); - } - if (children.size() > 0) - { - deptMapper.updateDeptChildren(children); - } + int result = deptMapper.updateDept(dept); + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) + && StringUtils.isNotEmpty(dept.getAncestors()) + && !StringUtils.equals("0", dept.getAncestors())) { + // 濡傛灉璇ラ儴闂ㄦ槸鍚敤鐘舵侊紝鍒欏惎鐢ㄨ閮ㄩ棬鐨勬墍鏈変笂绾ч儴闂 + updateParentDeptStatusNormal(dept); } + return result; + } - /** - * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * - * @param deptId 閮ㄩ棬ID - * @return 缁撴灉 - */ - @Override - public int deleteDeptById(Long deptId) - { - return deptMapper.deleteDeptById(deptId); - } + /** + * 淇敼璇ラ儴闂ㄧ殑鐖剁骇閮ㄩ棬鐘舵 + * + * @param dept 褰撳墠閮ㄩ棬 + */ + private void updateParentDeptStatusNormal(SysDept dept) { + String ancestors = dept.getAncestors(); + Long[] deptIds = Convert.toLongArray(ancestors); + deptMapper.updateDeptStatusNormal(deptIds); + } - /** - * 閫掑綊鍒楄〃 - */ - private void recursionFn(List list, SysDept t) - { - // 寰楀埌瀛愯妭鐐瑰垪琛 - List childList = getChildList(list, t); - t.setChildren(childList); - for (SysDept tChild : childList) - { - if (hasChild(list, tChild)) - { - recursionFn(list, tChild); - } - } + /** + * 淇敼瀛愬厓绱犲叧绯 + * + * @param deptId 琚慨鏀圭殑閮ㄩ棬ID + * @param newAncestors 鏂扮殑鐖禝D闆嗗悎 + * @param oldAncestors 鏃х殑鐖禝D闆嗗悎 + */ + public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) { + List children = deptMapper.selectChildrenDeptById(deptId); + for (SysDept child : children) { + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); } + if (children.size() > 0) { + deptMapper.updateDeptChildren(children); + } + } + + /** + * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 + * + * @param deptId 閮ㄩ棬ID + * @return 缁撴灉 + */ + @Override + public int deleteDeptById(Long deptId) { + return deptMapper.deleteDeptById(deptId); + } - /** - * 寰楀埌瀛愯妭鐐瑰垪琛 - */ - private List getChildList(List list, SysDept t) - { - List tlist = new ArrayList(); - Iterator it = list.iterator(); - while (it.hasNext()) - { - SysDept n = (SysDept) it.next(); - if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) - { - tlist.add(n); - } - } - return tlist; + /** 閫掑綊鍒楄〃 */ + private void recursionFn(List list, SysDept t) { + // 寰楀埌瀛愯妭鐐瑰垪琛 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysDept tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } } + } - /** - * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 - */ - private boolean hasChild(List list, SysDept t) - { - return getChildList(list, t).size() > 0 ? true : false; + /** 寰楀埌瀛愯妭鐐瑰垪琛 */ + private List getChildList(List list, SysDept t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + SysDept n = (SysDept) it.next(); + if (StringUtils.isNotNull(n.getParentId()) + && n.getParentId().longValue() == t.getDeptId().longValue()) { + tlist.add(n); + } } + return tlist; + } + + /** 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 */ + private boolean hasChild(List list, SysDept t) { + return getChildList(list, t).size() > 0 ? true : false; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java index 791db6979..5ce097167 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -1,111 +1,100 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.security.utils.DictUtils; import com.ruoyi.system.api.domain.SysDictData; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.service.ISysDictDataService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 瀛楀吀 涓氬姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysDictDataServiceImpl implements ISysDictDataService -{ - @Autowired - private SysDictDataMapper dictDataMapper; +public class SysDictDataServiceImpl implements ISysDictDataService { + @Autowired private SysDictDataMapper dictDataMapper; - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - @Override - public List selectDictDataList(SysDictData dictData) - { - return dictDataMapper.selectDictDataList(dictData); - } + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + @Override + public List selectDictDataList(SysDictData dictData) { + return dictDataMapper.selectDictDataList(dictData); + } - /** - * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 - * - * @param dictType 瀛楀吀绫诲瀷 - * @param dictValue 瀛楀吀閿 - * @return 瀛楀吀鏍囩 - */ - @Override - public String selectDictLabel(String dictType, String dictValue) - { - return dictDataMapper.selectDictLabel(dictType, dictValue); - } + /** + * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭 + * + * @param dictType 瀛楀吀绫诲瀷 + * @param dictValue 瀛楀吀閿 + * @return 瀛楀吀鏍囩 + */ + @Override + public String selectDictLabel(String dictType, String dictValue) { + return dictDataMapper.selectDictLabel(dictType, dictValue); + } - /** - * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 - * - * @param dictCode 瀛楀吀鏁版嵁ID - * @return 瀛楀吀鏁版嵁 - */ - @Override - public SysDictData selectDictDataById(Long dictCode) - { - return dictDataMapper.selectDictDataById(dictCode); - } + /** + * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 + * + * @param dictCode 瀛楀吀鏁版嵁ID + * @return 瀛楀吀鏁版嵁 + */ + @Override + public SysDictData selectDictDataById(Long dictCode) { + return dictDataMapper.selectDictDataById(dictCode); + } - /** - * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * - * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID - */ - @Override - public void deleteDictDataByIds(Long[] dictCodes) - { - for (Long dictCode : dictCodes) - { - SysDictData data = selectDictDataById(dictCode); - dictDataMapper.deleteDictDataById(dictCode); - List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); - DictUtils.setDictCache(data.getDictType(), dictDatas); - } + /** + * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 + * + * @param dictCodes 闇瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID + */ + @Override + public void deleteDictDataByIds(Long[] dictCodes) { + for (Long dictCode : dictCodes) { + SysDictData data = selectDictDataById(dictCode); + dictDataMapper.deleteDictDataById(dictCode); + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); } + } - /** - * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param data 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertDictData(SysDictData data) - { - int row = dictDataMapper.insertDictData(data); - if (row > 0) - { - List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); - DictUtils.setDictCache(data.getDictType(), dictDatas); - } - return row; + /** + * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param data 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertDictData(SysDictData data) { + int row = dictDataMapper.insertDictData(data); + if (row > 0) { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); } + return row; + } - /** - * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param data 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateDictData(SysDictData data) - { - int row = dictDataMapper.updateDictData(data); - if (row > 0) - { - List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); - DictUtils.setDictCache(data.getDictType(), dictDatas); - } - return row; + /** + * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param data 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateDictData(SysDictData data) { + int row = dictDataMapper.updateDictData(data); + if (row > 0) { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); } + return row; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 21df40710..5625c8885 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -1,13 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import javax.annotation.PostConstruct; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; @@ -17,207 +9,189 @@ import com.ruoyi.system.api.domain.SysDictType; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.mapper.SysDictTypeMapper; import com.ruoyi.system.service.ISysDictTypeService; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import javax.annotation.PostConstruct; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 瀛楀吀 涓氬姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysDictTypeServiceImpl implements ISysDictTypeService -{ - @Autowired - private SysDictTypeMapper dictTypeMapper; - - @Autowired - private SysDictDataMapper dictDataMapper; - - /** - * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧瓧鍏稿埌缂撳瓨 - */ - @PostConstruct - public void init() - { - loadingDictCache(); - } - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - @Override - public List selectDictTypeList(SysDictType dictType) - { - return dictTypeMapper.selectDictTypeList(dictType); +public class SysDictTypeServiceImpl implements ISysDictTypeService { + @Autowired private SysDictTypeMapper dictTypeMapper; + + @Autowired private SysDictDataMapper dictDataMapper; + + /** 椤圭洰鍚姩鏃讹紝鍒濆鍖栧瓧鍏稿埌缂撳瓨 */ + @PostConstruct + public void init() { + loadingDictCache(); + } + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷 + * + * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + @Override + public List selectDictTypeList(SysDictType dictType) { + return dictTypeMapper.selectDictTypeList(dictType); + } + + /** + * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 + * + * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 + */ + @Override + public List selectDictTypeAll() { + return dictTypeMapper.selectDictTypeAll(); + } + + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + @Override + public List selectDictDataByType(String dictType) { + List dictDatas = DictUtils.getDictCache(dictType); + if (StringUtils.isNotEmpty(dictDatas)) { + return dictDatas; } - - /** - * 鏍规嵁鎵鏈夊瓧鍏哥被鍨 - * - * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 - */ - @Override - public List selectDictTypeAll() - { - return dictTypeMapper.selectDictTypeAll(); + dictDatas = dictDataMapper.selectDictDataByType(dictType); + if (StringUtils.isNotEmpty(dictDatas)) { + DictUtils.setDictCache(dictType, dictDatas); + return dictDatas; } - - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - @Override - public List selectDictDataByType(String dictType) - { - List dictDatas = DictUtils.getDictCache(dictType); - if (StringUtils.isNotEmpty(dictDatas)) - { - return dictDatas; - } - dictDatas = dictDataMapper.selectDictDataByType(dictType); - if (StringUtils.isNotEmpty(dictDatas)) - { - DictUtils.setDictCache(dictType, dictDatas); - return dictDatas; - } - return null; + return null; + } + + /** + * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 + * + * @param dictId 瀛楀吀绫诲瀷ID + * @return 瀛楀吀绫诲瀷 + */ + @Override + public SysDictType selectDictTypeById(Long dictId) { + return dictTypeMapper.selectDictTypeById(dictId); + } + + /** + * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 + * + * @param dictType 瀛楀吀绫诲瀷 + * @return 瀛楀吀绫诲瀷 + */ + @Override + public SysDictType selectDictTypeByType(String dictType) { + return dictTypeMapper.selectDictTypeByType(dictType); + } + + /** + * 鎵归噺鍒犻櫎瀛楀吀绫诲瀷淇℃伅 + * + * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID + */ + @Override + public void deleteDictTypeByIds(Long[] dictIds) { + for (Long dictId : dictIds) { + SysDictType dictType = selectDictTypeById(dictId); + if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { + throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", dictType.getDictName())); + } + dictTypeMapper.deleteDictTypeById(dictId); + DictUtils.removeDictCache(dictType.getDictType()); } - - /** - * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅 - * - * @param dictId 瀛楀吀绫诲瀷ID - * @return 瀛楀吀绫诲瀷 - */ - @Override - public SysDictType selectDictTypeById(Long dictId) - { - return dictTypeMapper.selectDictTypeById(dictId); + } + + /** 鍔犺浇瀛楀吀缂撳瓨鏁版嵁 */ + @Override + public void loadingDictCache() { + SysDictData dictData = new SysDictData(); + dictData.setStatus("0"); + Map> dictDataMap = + dictDataMapper.selectDictDataList(dictData).stream() + .collect(Collectors.groupingBy(SysDictData::getDictType)); + for (Map.Entry> entry : dictDataMap.entrySet()) { + DictUtils.setDictCache( + entry.getKey(), + entry.getValue().stream() + .sorted(Comparator.comparing(SysDictData::getDictSort)) + .collect(Collectors.toList())); } - - /** - * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷 - * @return 瀛楀吀绫诲瀷 - */ - @Override - public SysDictType selectDictTypeByType(String dictType) - { - return dictTypeMapper.selectDictTypeByType(dictType); + } + + /** 娓呯┖瀛楀吀缂撳瓨鏁版嵁 */ + @Override + public void clearDictCache() { + DictUtils.clearDictCache(); + } + + /** 閲嶇疆瀛楀吀缂撳瓨鏁版嵁 */ + @Override + public void resetDictCache() { + clearDictCache(); + loadingDictCache(); + } + + /** + * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅 + * + * @param dict 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertDictType(SysDictType dict) { + int row = dictTypeMapper.insertDictType(dict); + if (row > 0) { + DictUtils.setDictCache(dict.getDictType(), null); } - - /** - * 鎵归噺鍒犻櫎瀛楀吀绫诲瀷淇℃伅 - * - * @param dictIds 闇瑕佸垹闄ょ殑瀛楀吀ID - */ - @Override - public void deleteDictTypeByIds(Long[] dictIds) - { - for (Long dictId : dictIds) - { - SysDictType dictType = selectDictTypeById(dictId); - if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) - { - throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", dictType.getDictName())); - } - dictTypeMapper.deleteDictTypeById(dictId); - DictUtils.removeDictCache(dictType.getDictType()); - } - } - - /** - * 鍔犺浇瀛楀吀缂撳瓨鏁版嵁 - */ - @Override - public void loadingDictCache() - { - SysDictData dictData = new SysDictData(); - dictData.setStatus("0"); - Map> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType)); - for (Map.Entry> entry : dictDataMap.entrySet()) - { - DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList())); - } + return row; + } + + /** + * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅 + * + * @param dict 瀛楀吀绫诲瀷淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateDictType(SysDictType dict) { + SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); + dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); + int row = dictTypeMapper.updateDictType(dict); + if (row > 0) { + List dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); + DictUtils.setDictCache(dict.getDictType(), dictDatas); } - - /** - * 娓呯┖瀛楀吀缂撳瓨鏁版嵁 - */ - @Override - public void clearDictCache() - { - DictUtils.clearDictCache(); - } - - /** - * 閲嶇疆瀛楀吀缂撳瓨鏁版嵁 - */ - @Override - public void resetDictCache() - { - clearDictCache(); - loadingDictCache(); - } - - /** - * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅 - * - * @param dict 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertDictType(SysDictType dict) - { - int row = dictTypeMapper.insertDictType(dict); - if (row > 0) - { - DictUtils.setDictCache(dict.getDictType(), null); - } - return row; - } - - /** - * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅 - * - * @param dict 瀛楀吀绫诲瀷淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int updateDictType(SysDictType dict) - { - SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); - dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); - int row = dictTypeMapper.updateDictType(dict); - if (row > 0) - { - List dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); - DictUtils.setDictCache(dict.getDictType(), dictDatas); - } - return row; - } - - /** - * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 - * - * @param dict 瀛楀吀绫诲瀷 - * @return 缁撴灉 - */ - @Override - public boolean checkDictTypeUnique(SysDictType dict) - { - Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); - SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); - if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + return row; + } + + /** + * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓 + * + * @param dict 瀛楀吀绫诲瀷 + * @return 缁撴灉 + */ + @Override + public boolean checkDictTypeUnique(SysDictType dict) { + Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); + SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index ca823ab4e..089e19081 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -1,65 +1,57 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.mapper.SysLogininforMapper; import com.ruoyi.system.service.ISysLogininforService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 绯荤粺璁块棶鏃ュ織鎯呭喌淇℃伅 鏈嶅姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysLogininforServiceImpl implements ISysLogininforService -{ +public class SysLogininforServiceImpl implements ISysLogininforService { - @Autowired - private SysLogininforMapper logininforMapper; + @Autowired private SysLogininforMapper logininforMapper; - /** - * 鏂板绯荤粺鐧诲綍鏃ュ織 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - */ - @Override - public int insertLogininfor(SysLogininfor logininfor) - { - return logininforMapper.insertLogininfor(logininfor); - } + /** + * 鏂板绯荤粺鐧诲綍鏃ュ織 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + */ + @Override + public int insertLogininfor(SysLogininfor logininfor) { + return logininforMapper.insertLogininfor(logininfor); + } - /** - * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 - * - * @param logininfor 璁块棶鏃ュ織瀵硅薄 - * @return 鐧诲綍璁板綍闆嗗悎 - */ - @Override - public List selectLogininforList(SysLogininfor logininfor) - { - return logininforMapper.selectLogininforList(logininfor); - } + /** + * 鏌ヨ绯荤粺鐧诲綍鏃ュ織闆嗗悎 + * + * @param logininfor 璁块棶鏃ュ織瀵硅薄 + * @return 鐧诲綍璁板綍闆嗗悎 + */ + @Override + public List selectLogininforList(SysLogininfor logininfor) { + return logininforMapper.selectLogininforList(logininfor); + } - /** - * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 - * - * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID - * @return 缁撴灉 - */ - @Override - public int deleteLogininforByIds(Long[] infoIds) - { - return logininforMapper.deleteLogininforByIds(infoIds); - } + /** + * 鎵归噺鍒犻櫎绯荤粺鐧诲綍鏃ュ織 + * + * @param infoIds 闇瑕佸垹闄ょ殑鐧诲綍鏃ュ織ID + * @return 缁撴灉 + */ + @Override + public int deleteLogininforByIds(Long[] infoIds) { + return logininforMapper.deleteLogininforByIds(infoIds); + } - /** - * 娓呯┖绯荤粺鐧诲綍鏃ュ織 - */ - @Override - public void cleanLogininfor() - { - logininforMapper.cleanLogininfor(); - } + /** 娓呯┖绯荤粺鐧诲綍鏃ュ織 */ + @Override + public void cleanLogininfor() { + logininforMapper.cleanLogininfor(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 299804f4a..4e4beb90d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -1,15 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.StringUtils; @@ -24,520 +14,475 @@ import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.service.ISysMenuService; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 鑿滃崟 涓氬姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysMenuServiceImpl implements ISysMenuService -{ - public static final String PREMISSION_STRING = "perms[\"{0}\"]"; - - @Autowired - private SysMenuMapper menuMapper; - - @Autowired - private SysRoleMapper roleMapper; - - @Autowired - private SysRoleMenuMapper roleMenuMapper; - - /** - * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param userId 鐢ㄦ埛ID - * @return 鑿滃崟鍒楄〃 - */ - @Override - public List selectMenuList(Long userId) - { - return selectMenuList(new SysMenu(), userId); +public class SysMenuServiceImpl implements ISysMenuService { + public static final String PREMISSION_STRING = "perms[\"{0}\"]"; + + @Autowired private SysMenuMapper menuMapper; + + @Autowired private SysRoleMapper roleMapper; + + @Autowired private SysRoleMenuMapper roleMenuMapper; + + /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + @Override + public List selectMenuList(Long userId) { + return selectMenuList(new SysMenu(), userId); + } + + /** + * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param menu 鑿滃崟淇℃伅 + * @return 鑿滃崟鍒楄〃 + */ + @Override + public List selectMenuList(SysMenu menu, Long userId) { + List menuList = null; + // 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭 + if (SysUser.isAdmin(userId)) { + menuList = menuMapper.selectMenuList(menu); + } else { + menu.getParams().put("userId", userId); + menuList = menuMapper.selectMenuListByUserId(menu); } - - /** - * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param menu 鑿滃崟淇℃伅 - * @return 鑿滃崟鍒楄〃 - */ - @Override - public List selectMenuList(SysMenu menu, Long userId) - { - List menuList = null; - // 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭 - if (SysUser.isAdmin(userId)) - { - menuList = menuMapper.selectMenuList(menu); - } - else - { - menu.getParams().put("userId", userId); - menuList = menuMapper.selectMenuListByUserId(menu); - } - return menuList; + return menuList; + } + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set selectMenuPermsByUserId(Long userId) { + List perms = menuMapper.selectMenuPermsByUserId(userId); + Set permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } } - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - @Override - public Set selectMenuPermsByUserId(Long userId) - { - List perms = menuMapper.selectMenuPermsByUserId(userId); - Set permsSet = new HashSet<>(); - for (String perm : perms) - { - if (StringUtils.isNotEmpty(perm)) - { - permsSet.addAll(Arrays.asList(perm.trim().split(","))); - } - } - return permsSet; + return permsSet; + } + + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set selectMenuPermsByRoleId(Long roleId) { + List perms = menuMapper.selectMenuPermsByRoleId(roleId); + Set permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } } - - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * - * @param roleId 瑙掕壊ID - * @return 鏉冮檺鍒楄〃 - */ - @Override - public Set selectMenuPermsByRoleId(Long roleId) - { - List perms = menuMapper.selectMenuPermsByRoleId(roleId); - Set permsSet = new HashSet<>(); - for (String perm : perms) - { - if (StringUtils.isNotEmpty(perm)) - { - permsSet.addAll(Arrays.asList(perm.trim().split(","))); - } - } - return permsSet; + return permsSet; + } + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 + * + * @param userId 鐢ㄦ埛鍚嶇О + * @return 鑿滃崟鍒楄〃 + */ + @Override + public List selectMenuTreeByUserId(Long userId) { + List menus = null; + if (SecurityUtils.isAdmin(userId)) { + menus = menuMapper.selectMenuTreeAll(); + } else { + menus = menuMapper.selectMenuTreeByUserId(userId); } - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * - * @param userId 鐢ㄦ埛鍚嶇О - * @return 鑿滃崟鍒楄〃 - */ - @Override - public List selectMenuTreeByUserId(Long userId) - { - List menus = null; - if (SecurityUtils.isAdmin(userId)) - { - menus = menuMapper.selectMenuTreeAll(); - } - else - { - menus = menuMapper.selectMenuTreeByUserId(userId); - } - return getChildPerms(menus, 0); + return getChildPerms(menus, 0); + } + + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 + * + * @param roleId 瑙掕壊ID + * @return 閫変腑鑿滃崟鍒楄〃 + */ + @Override + public List selectMenuListByRoleId(Long roleId) { + SysRole role = roleMapper.selectRoleById(roleId); + return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); + } + + /** + * 鏋勫缓鍓嶇璺敱鎵闇瑕佺殑鑿滃崟 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 璺敱鍒楄〃 + */ + @Override + public List buildMenus(List menus) { + List routers = new LinkedList(); + for (SysMenu menu : menus) { + RouterVo router = new RouterVo(); + router.setHidden("1".equals(menu.getVisible())); + router.setName(getRouteName(menu)); + router.setPath(getRouterPath(menu)); + router.setComponent(getComponent(menu)); + router.setQuery(menu.getQuery()); + router.setMeta( + new MetaVo( + menu.getMenuName(), + menu.getIcon(), + StringUtils.equals("1", menu.getIsCache()), + menu.getPath())); + List cMenus = menu.getChildren(); + if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { + router.setAlwaysShow(true); + router.setRedirect("noRedirect"); + router.setChildren(buildMenus(cMenus)); + } else if (isMenuFrame(menu)) { + router.setMeta(null); + List childrenList = new ArrayList(); + RouterVo children = new RouterVo(); + children.setPath(menu.getPath()); + children.setComponent(menu.getComponent()); + children.setName(getRouteName(menu.getRouteName(), menu.getPath())); + children.setMeta( + new MetaVo( + menu.getMenuName(), + menu.getIcon(), + StringUtils.equals("1", menu.getIsCache()), + menu.getPath())); + children.setQuery(menu.getQuery()); + childrenList.add(children); + router.setChildren(childrenList); + } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); + router.setPath("/"); + List childrenList = new ArrayList(); + RouterVo children = new RouterVo(); + String routerPath = innerLinkReplaceEach(menu.getPath()); + children.setPath(routerPath); + children.setComponent(UserConstants.INNER_LINK); + children.setName(getRouteName(menu.getRouteName(), routerPath)); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); + childrenList.add(children); + router.setChildren(childrenList); + } + routers.add(router); } - - /** - * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭 - * - * @param roleId 瑙掕壊ID - * @return 閫変腑鑿滃崟鍒楄〃 - */ - @Override - public List selectMenuListByRoleId(Long roleId) - { - SysRole role = roleMapper.selectRoleById(roleId); - return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); + return routers; + } + + /** + * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 鏍戠粨鏋勫垪琛 + */ + @Override + public List buildMenuTree(List menus) { + List returnList = new ArrayList(); + List tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); + for (Iterator iterator = menus.iterator(); iterator.hasNext(); ) { + SysMenu menu = (SysMenu) iterator.next(); + // 濡傛灉鏄《绾ц妭鐐, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 + if (!tempList.contains(menu.getParentId())) { + recursionFn(menus, menu); + returnList.add(menu); + } } - - /** - * 鏋勫缓鍓嶇璺敱鎵闇瑕佺殑鑿滃崟 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 璺敱鍒楄〃 - */ - @Override - public List buildMenus(List menus) - { - List routers = new LinkedList(); - for (SysMenu menu : menus) - { - RouterVo router = new RouterVo(); - router.setHidden("1".equals(menu.getVisible())); - router.setName(getRouteName(menu)); - router.setPath(getRouterPath(menu)); - router.setComponent(getComponent(menu)); - router.setQuery(menu.getQuery()); - router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); - List cMenus = menu.getChildren(); - if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) - { - router.setAlwaysShow(true); - router.setRedirect("noRedirect"); - router.setChildren(buildMenus(cMenus)); - } - else if (isMenuFrame(menu)) - { - router.setMeta(null); - List childrenList = new ArrayList(); - RouterVo children = new RouterVo(); - children.setPath(menu.getPath()); - children.setComponent(menu.getComponent()); - children.setName(getRouteName(menu.getRouteName(), menu.getPath())); - children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); - children.setQuery(menu.getQuery()); - childrenList.add(children); - router.setChildren(childrenList); - } - else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) - { - router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); - router.setPath("/"); - List childrenList = new ArrayList(); - RouterVo children = new RouterVo(); - String routerPath = innerLinkReplaceEach(menu.getPath()); - children.setPath(routerPath); - children.setComponent(UserConstants.INNER_LINK); - children.setName(getRouteName(menu.getRouteName(), routerPath)); - children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); - childrenList.add(children); - router.setChildren(childrenList); - } - routers.add(router); - } - return routers; + if (returnList.isEmpty()) { + returnList = menus; } - - /** - * 鏋勫缓鍓嶇鎵闇瑕佹爲缁撴瀯 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 鏍戠粨鏋勫垪琛 - */ - @Override - public List buildMenuTree(List menus) - { - List returnList = new ArrayList(); - List tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); - for (Iterator iterator = menus.iterator(); iterator.hasNext();) - { - SysMenu menu = (SysMenu) iterator.next(); - // 濡傛灉鏄《绾ц妭鐐, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 - if (!tempList.contains(menu.getParentId())) - { - recursionFn(menus, menu); - returnList.add(menu); - } - } - if (returnList.isEmpty()) - { - returnList = menus; - } - return returnList; + return returnList; + } + + /** + * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 + * + * @param menus 鑿滃崟鍒楄〃 + * @return 涓嬫媺鏍戠粨鏋勫垪琛 + */ + @Override + public List buildMenuTreeSelect(List menus) { + List menuTrees = buildMenuTree(menus); + return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + /** + * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 鑿滃崟淇℃伅 + */ + @Override + public SysMenu selectMenuById(Long menuId) { + return menuMapper.selectMenuById(menuId); + } + + /** + * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + @Override + public boolean hasChildByMenuId(Long menuId) { + int result = menuMapper.hasChildByMenuId(menuId); + return result > 0; + } + + /** + * 鏌ヨ鑿滃崟浣跨敤鏁伴噺 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + @Override + public boolean checkMenuExistRole(Long menuId) { + int result = roleMenuMapper.checkMenuExistRole(menuId); + return result > 0; + } + + /** + * 鏂板淇濆瓨鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertMenu(SysMenu menu) { + return menuMapper.insertMenu(menu); + } + + /** + * 淇敼淇濆瓨鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateMenu(SysMenu menu) { + return menuMapper.updateMenu(menu); + } + + /** + * 鍒犻櫎鑿滃崟绠$悊淇℃伅 + * + * @param menuId 鑿滃崟ID + * @return 缁撴灉 + */ + @Override + public int deleteMenuById(Long menuId) { + return menuMapper.deleteMenuById(menuId); + } + + /** + * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkMenuNameUnique(SysMenu menu) { + Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); + SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); + if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) { + return UserConstants.NOT_UNIQUE; } - - /** - * 鏋勫缓鍓嶇鎵闇瑕佷笅鎷夋爲缁撴瀯 - * - * @param menus 鑿滃崟鍒楄〃 - * @return 涓嬫媺鏍戠粨鏋勫垪琛 - */ - @Override - public List buildMenuTreeSelect(List menus) - { - List menuTrees = buildMenuTree(menus); - return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + return UserConstants.UNIQUE; + } + + /** + * 鑾峰彇璺敱鍚嶇О + * + * @param menu 鑿滃崟淇℃伅 + * @return 璺敱鍚嶇О + */ + public String getRouteName(SysMenu menu) { + // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 + if (isMenuFrame(menu)) { + return StringUtils.EMPTY; } - - /** - * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 鑿滃崟淇℃伅 - */ - @Override - public SysMenu selectMenuById(Long menuId) - { - return menuMapper.selectMenuById(menuId); + return getRouteName(menu.getRouteName(), menu.getPath()); + } + + /** + * 鑾峰彇璺敱鍚嶇О锛屽娌℃湁閰嶇疆璺敱鍚嶇О鍒欏彇璺敱鍦板潃 + * + * @param name 璺敱鍚嶇О + * @param path 璺敱鍦板潃 + * @return 璺敱鍚嶇О锛堥┘宄版牸寮忥級 + */ + public String getRouteName(String name, String path) { + String routerName = StringUtils.isNotEmpty(name) ? name : path; + return StringUtils.capitalize(routerName); + } + + /** + * 鑾峰彇璺敱鍦板潃 + * + * @param menu 鑿滃崟淇℃伅 + * @return 璺敱鍦板潃 + */ + public String getRouterPath(SysMenu menu) { + String routerPath = menu.getPath(); + // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡 + if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) { + routerPath = innerLinkReplaceEach(routerPath); } - - /** - * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - @Override - public boolean hasChildByMenuId(Long menuId) - { - int result = menuMapper.hasChildByMenuId(menuId); - return result > 0; + // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 + if (0 == menu.getParentId().intValue() + && UserConstants.TYPE_DIR.equals(menu.getMenuType()) + && UserConstants.NO_FRAME.equals(menu.getIsFrame())) { + routerPath = "/" + menu.getPath(); } - - /** - * 鏌ヨ鑿滃崟浣跨敤鏁伴噺 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - @Override - public boolean checkMenuExistRole(Long menuId) - { - int result = roleMenuMapper.checkMenuExistRole(menuId); - return result > 0; - } - - /** - * 鏂板淇濆瓨鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertMenu(SysMenu menu) - { - return menuMapper.insertMenu(menu); - } - - /** - * 淇敼淇濆瓨鑿滃崟淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateMenu(SysMenu menu) - { - return menuMapper.updateMenu(menu); + // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級 + else if (isMenuFrame(menu)) { + routerPath = "/"; } - - /** - * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * - * @param menuId 鑿滃崟ID - * @return 缁撴灉 - */ - @Override - public int deleteMenuById(Long menuId) - { - return menuMapper.deleteMenuById(menuId); + return routerPath; + } + + /** + * 鑾峰彇缁勪欢淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁勪欢淇℃伅 + */ + public String getComponent(SysMenu menu) { + String component = UserConstants.LAYOUT; + if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) { + component = menu.getComponent(); + } else if (StringUtils.isEmpty(menu.getComponent()) + && menu.getParentId().intValue() != 0 + && isInnerLink(menu)) { + component = UserConstants.INNER_LINK; + } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) { + component = UserConstants.PARENT_VIEW; } - - /** - * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkMenuNameUnique(SysMenu menu) - { - Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); - SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); - if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + return component; + } + + /** + * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public boolean isMenuFrame(SysMenu menu) { + return menu.getParentId().intValue() == 0 + && UserConstants.TYPE_MENU.equals(menu.getMenuType()) + && menu.getIsFrame().equals(UserConstants.NO_FRAME); + } + + /** + * 鏄惁涓哄唴閾剧粍浠 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public boolean isInnerLink(SysMenu menu) { + return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); + } + + /** + * 鏄惁涓簆arent_view缁勪欢 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public boolean isParentView(SysMenu menu) { + return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); + } + + /** + * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵鏈夊瓙鑺傜偣 + * + * @param list 鍒嗙被琛 + * @param parentId 浼犲叆鐨勭埗鑺傜偣ID + * @return String + */ + public List getChildPerms(List list, int parentId) { + List returnList = new ArrayList(); + for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { + SysMenu t = (SysMenu) iterator.next(); + // 涓銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 + if (t.getParentId() == parentId) { + recursionFn(list, t); + returnList.add(t); + } } - - /** - * 鑾峰彇璺敱鍚嶇О - * - * @param menu 鑿滃崟淇℃伅 - * @return 璺敱鍚嶇О - */ - public String getRouteName(SysMenu menu) - { - // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 - if (isMenuFrame(menu)) - { - return StringUtils.EMPTY; - } - return getRouteName(menu.getRouteName(), menu.getPath()); + return returnList; + } + + /** + * 閫掑綊鍒楄〃 + * + * @param list 鍒嗙被琛 + * @param t 瀛愯妭鐐 + */ + private void recursionFn(List list, SysMenu t) { + // 寰楀埌瀛愯妭鐐瑰垪琛 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysMenu tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } } - - /** - * 鑾峰彇璺敱鍚嶇О锛屽娌℃湁閰嶇疆璺敱鍚嶇О鍒欏彇璺敱鍦板潃 - * - * @param name 璺敱鍚嶇О - * @param path 璺敱鍦板潃 - * @return 璺敱鍚嶇О锛堥┘宄版牸寮忥級 - */ - public String getRouteName(String name, String path) - { - String routerName = StringUtils.isNotEmpty(name) ? name : path; - return StringUtils.capitalize(routerName); - } - - /** - * 鑾峰彇璺敱鍦板潃 - * - * @param menu 鑿滃崟淇℃伅 - * @return 璺敱鍦板潃 - */ - public String getRouterPath(SysMenu menu) - { - String routerPath = menu.getPath(); - // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡 - if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) - { - routerPath = innerLinkReplaceEach(routerPath); - } - // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 - if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) - && UserConstants.NO_FRAME.equals(menu.getIsFrame())) - { - routerPath = "/" + menu.getPath(); - } - // 闈炲閾惧苟涓旀槸涓绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級 - else if (isMenuFrame(menu)) - { - routerPath = "/"; - } - return routerPath; - } - - /** - * 鑾峰彇缁勪欢淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁勪欢淇℃伅 - */ - public String getComponent(SysMenu menu) - { - String component = UserConstants.LAYOUT; - if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) - { - component = menu.getComponent(); - } - else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) - { - component = UserConstants.INNER_LINK; - } - else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) - { - component = UserConstants.PARENT_VIEW; - } - return component; - } - - /** - * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isMenuFrame(SysMenu menu) - { - return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) - && menu.getIsFrame().equals(UserConstants.NO_FRAME); - } - - /** - * 鏄惁涓哄唴閾剧粍浠 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isInnerLink(SysMenu menu) - { - return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); - } - - /** - * 鏄惁涓簆arent_view缁勪欢 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isParentView(SysMenu menu) - { - return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); - } - - /** - * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵鏈夊瓙鑺傜偣 - * - * @param list 鍒嗙被琛 - * @param parentId 浼犲叆鐨勭埗鑺傜偣ID - * @return String - */ - public List getChildPerms(List list, int parentId) - { - List returnList = new ArrayList(); - for (Iterator iterator = list.iterator(); iterator.hasNext();) - { - SysMenu t = (SysMenu) iterator.next(); - // 涓銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 - if (t.getParentId() == parentId) - { - recursionFn(list, t); - returnList.add(t); - } - } - return returnList; - } - - /** - * 閫掑綊鍒楄〃 - * - * @param list 鍒嗙被琛 - * @param t 瀛愯妭鐐 - */ - private void recursionFn(List list, SysMenu t) - { - // 寰楀埌瀛愯妭鐐瑰垪琛 - List childList = getChildList(list, t); - t.setChildren(childList); - for (SysMenu tChild : childList) - { - if (hasChild(list, tChild)) - { - recursionFn(list, tChild); - } - } - } - - /** - * 寰楀埌瀛愯妭鐐瑰垪琛 - */ - private List getChildList(List list, SysMenu t) - { - List tlist = new ArrayList(); - Iterator it = list.iterator(); - while (it.hasNext()) - { - SysMenu n = (SysMenu) it.next(); - if (n.getParentId().longValue() == t.getMenuId().longValue()) - { - tlist.add(n); - } - } - return tlist; - } - - /** - * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 - */ - private boolean hasChild(List list, SysMenu t) - { - return getChildList(list, t).size() > 0; - } - - /** - * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 - * - * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕 - */ - public String innerLinkReplaceEach(String path) - { - return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, - new String[] { "", "", "", "/", "/" }); + } + + /** 寰楀埌瀛愯妭鐐瑰垪琛 */ + private List getChildList(List list, SysMenu t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + SysMenu n = (SysMenu) it.next(); + if (n.getParentId().longValue() == t.getMenuId().longValue()) { + tlist.add(n); + } } + return tlist; + } + + /** 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 */ + private boolean hasChild(List list, SysMenu t) { + return getChildList(list, t).size() > 0; + } + + /** + * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 + * + * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕 + */ + public String innerLinkReplaceEach(String path) { + return StringUtils.replaceEach( + path, + new String[] {Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":"}, + new String[] {"", "", "", "/", "/"}); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java index 8bebd9c69..b90a68b67 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java @@ -1,92 +1,84 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.mapper.SysNoticeMapper; import com.ruoyi.system.service.ISysNoticeService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 鍏憡 鏈嶅姟灞傚疄鐜 - * + * * @author ruoyi */ @Service -public class SysNoticeServiceImpl implements ISysNoticeService -{ - @Autowired - private SysNoticeMapper noticeMapper; +public class SysNoticeServiceImpl implements ISysNoticeService { + @Autowired private SysNoticeMapper noticeMapper; - /** - * 鏌ヨ鍏憡淇℃伅 - * - * @param noticeId 鍏憡ID - * @return 鍏憡淇℃伅 - */ - @Override - public SysNotice selectNoticeById(Long noticeId) - { - return noticeMapper.selectNoticeById(noticeId); - } + /** + * 鏌ヨ鍏憡淇℃伅 + * + * @param noticeId 鍏憡ID + * @return 鍏憡淇℃伅 + */ + @Override + public SysNotice selectNoticeById(Long noticeId) { + return noticeMapper.selectNoticeById(noticeId); + } - /** - * 鏌ヨ鍏憡鍒楄〃 - * - * @param notice 鍏憡淇℃伅 - * @return 鍏憡闆嗗悎 - */ - @Override - public List selectNoticeList(SysNotice notice) - { - return noticeMapper.selectNoticeList(notice); - } + /** + * 鏌ヨ鍏憡鍒楄〃 + * + * @param notice 鍏憡淇℃伅 + * @return 鍏憡闆嗗悎 + */ + @Override + public List selectNoticeList(SysNotice notice) { + return noticeMapper.selectNoticeList(notice); + } - /** - * 鏂板鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertNotice(SysNotice notice) - { - return noticeMapper.insertNotice(notice); - } + /** + * 鏂板鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertNotice(SysNotice notice) { + return noticeMapper.insertNotice(notice); + } - /** - * 淇敼鍏憡 - * - * @param notice 鍏憡淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateNotice(SysNotice notice) - { - return noticeMapper.updateNotice(notice); - } + /** + * 淇敼鍏憡 + * + * @param notice 鍏憡淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateNotice(SysNotice notice) { + return noticeMapper.updateNotice(notice); + } - /** - * 鍒犻櫎鍏憡瀵硅薄 - * - * @param noticeId 鍏憡ID - * @return 缁撴灉 - */ - @Override - public int deleteNoticeById(Long noticeId) - { - return noticeMapper.deleteNoticeById(noticeId); - } + /** + * 鍒犻櫎鍏憡瀵硅薄 + * + * @param noticeId 鍏憡ID + * @return 缁撴灉 + */ + @Override + public int deleteNoticeById(Long noticeId) { + return noticeMapper.deleteNoticeById(noticeId); + } - /** - * 鎵归噺鍒犻櫎鍏憡淇℃伅 - * - * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID - * @return 缁撴灉 - */ - @Override - public int deleteNoticeByIds(Long[] noticeIds) - { - return noticeMapper.deleteNoticeByIds(noticeIds); - } + /** + * 鎵归噺鍒犻櫎鍏憡淇℃伅 + * + * @param noticeIds 闇瑕佸垹闄ょ殑鍏憡ID + * @return 缁撴灉 + */ + @Override + public int deleteNoticeByIds(Long[] noticeIds) { + return noticeMapper.deleteNoticeByIds(noticeIds); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 57764cf83..a8190a808 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -1,77 +1,68 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.mapper.SysOperLogMapper; import com.ruoyi.system.service.ISysOperLogService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 鎿嶄綔鏃ュ織 鏈嶅姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysOperLogServiceImpl implements ISysOperLogService -{ - @Autowired - private SysOperLogMapper operLogMapper; +public class SysOperLogServiceImpl implements ISysOperLogService { + @Autowired private SysOperLogMapper operLogMapper; - /** - * 鏂板鎿嶄綔鏃ュ織 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - * @return 缁撴灉 - */ - @Override - public int insertOperlog(SysOperLog operLog) - { - return operLogMapper.insertOperlog(operLog); - } + /** + * 鏂板鎿嶄綔鏃ュ織 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + * @return 缁撴灉 + */ + @Override + public int insertOperlog(SysOperLog operLog) { + return operLogMapper.insertOperlog(operLog); + } - /** - * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 - * - * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 - * @return 鎿嶄綔鏃ュ織闆嗗悎 - */ - @Override - public List selectOperLogList(SysOperLog operLog) - { - return operLogMapper.selectOperLogList(operLog); - } + /** + * 鏌ヨ绯荤粺鎿嶄綔鏃ュ織闆嗗悎 + * + * @param operLog 鎿嶄綔鏃ュ織瀵硅薄 + * @return 鎿嶄綔鏃ュ織闆嗗悎 + */ + @Override + public List selectOperLogList(SysOperLog operLog) { + return operLogMapper.selectOperLogList(operLog); + } - /** - * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 - * - * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID - * @return 缁撴灉 - */ - @Override - public int deleteOperLogByIds(Long[] operIds) - { - return operLogMapper.deleteOperLogByIds(operIds); - } + /** + * 鎵归噺鍒犻櫎绯荤粺鎿嶄綔鏃ュ織 + * + * @param operIds 闇瑕佸垹闄ょ殑鎿嶄綔鏃ュ織ID + * @return 缁撴灉 + */ + @Override + public int deleteOperLogByIds(Long[] operIds) { + return operLogMapper.deleteOperLogByIds(operIds); + } - /** - * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 - * - * @param operId 鎿嶄綔ID - * @return 鎿嶄綔鏃ュ織瀵硅薄 - */ - @Override - public SysOperLog selectOperLogById(Long operId) - { - return operLogMapper.selectOperLogById(operId); - } + /** + * 鏌ヨ鎿嶄綔鏃ュ織璇︾粏 + * + * @param operId 鎿嶄綔ID + * @return 鎿嶄綔鏃ュ織瀵硅薄 + */ + @Override + public SysOperLog selectOperLogById(Long operId) { + return operLogMapper.selectOperLogById(operId); + } - /** - * 娓呯┖鎿嶄綔鏃ュ織 - */ - @Override - public void cleanOperLog() - { - operLogMapper.cleanOperLog(); - } + /** 娓呯┖鎿嶄綔鏃ュ織 */ + @Override + public void cleanOperLog() { + operLogMapper.cleanOperLog(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java index 36b6dbf84..191cb551e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java @@ -1,11 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.StringUtils; @@ -14,79 +8,69 @@ import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysPermissionService; import com.ruoyi.system.service.ISysRoleService; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; /** * 鐢ㄦ埛鏉冮檺澶勭悊 - * + * * @author ruoyi */ @Service -public class SysPermissionServiceImpl implements ISysPermissionService -{ - @Autowired - private ISysRoleService roleService; +public class SysPermissionServiceImpl implements ISysPermissionService { + @Autowired private ISysRoleService roleService; - @Autowired - private ISysMenuService menuService; + @Autowired private ISysMenuService menuService; - /** - * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 - * - * @param userId 鐢ㄦ埛Id - * @return 瑙掕壊鏉冮檺淇℃伅 - */ - @Override - public Set getRolePermission(SysUser user) - { - Set roles = new HashSet(); - // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄 - if (user.isAdmin()) - { - roles.add(Constants.SUPER_ADMIN); - } - else - { - roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); - } - return roles; + /** + * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 + * + * @param userId 鐢ㄦ埛Id + * @return 瑙掕壊鏉冮檺淇℃伅 + */ + @Override + public Set getRolePermission(SysUser user) { + Set roles = new HashSet(); + // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄 + if (user.isAdmin()) { + roles.add(Constants.SUPER_ADMIN); + } else { + roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); } + return roles; + } - /** - * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 - * - * @param userId 鐢ㄦ埛Id - * @return 鑿滃崟鏉冮檺淇℃伅 - */ - @Override - public Set getMenuPermission(SysUser user) - { - Set perms = new HashSet(); - // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄 - if (user.isAdmin()) - { - perms.add(Constants.ALL_PERMISSION); - } - else - { - List roles = user.getRoles(); - if (!CollectionUtils.isEmpty(roles)) - { - // 澶氳鑹茶缃畃ermissions灞炴э紝浠ヤ究鏁版嵁鏉冮檺鍖归厤鏉冮檺 - for (SysRole role : roles) - { - if (StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL) && !role.isAdmin()) - { - Set rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); - role.setPermissions(rolePerms); - perms.addAll(rolePerms); - } - } - } - else - { - perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); - } + /** + * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 + * + * @param userId 鐢ㄦ埛Id + * @return 鑿滃崟鏉冮檺淇℃伅 + */ + @Override + public Set getMenuPermission(SysUser user) { + Set perms = new HashSet(); + // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄 + if (user.isAdmin()) { + perms.add(Constants.ALL_PERMISSION); + } else { + List roles = user.getRoles(); + if (!CollectionUtils.isEmpty(roles)) { + // 澶氳鑹茶缃畃ermissions灞炴э紝浠ヤ究鏁版嵁鏉冮檺鍖归厤鏉冮檺 + for (SysRole role : roles) { + if (StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL) && !role.isAdmin()) { + Set rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + role.setPermissions(rolePerms); + perms.addAll(rolePerms); + } } - return perms; + } else { + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + } } + return perms; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java index 8df3b4cec..fb135354f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -1,8 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; @@ -10,169 +7,154 @@ import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.mapper.SysPostMapper; import com.ruoyi.system.mapper.SysUserPostMapper; import com.ruoyi.system.service.ISysPostService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * 宀椾綅淇℃伅 鏈嶅姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysPostServiceImpl implements ISysPostService -{ - @Autowired - private SysPostMapper postMapper; +public class SysPostServiceImpl implements ISysPostService { + @Autowired private SysPostMapper postMapper; - @Autowired - private SysUserPostMapper userPostMapper; + @Autowired private SysUserPostMapper userPostMapper; - /** - * 鏌ヨ宀椾綅淇℃伅闆嗗悎 - * - * @param post 宀椾綅淇℃伅 - * @return 宀椾綅淇℃伅闆嗗悎 - */ - @Override - public List selectPostList(SysPost post) - { - return postMapper.selectPostList(post); - } + /** + * 鏌ヨ宀椾綅淇℃伅闆嗗悎 + * + * @param post 宀椾綅淇℃伅 + * @return 宀椾綅淇℃伅闆嗗悎 + */ + @Override + public List selectPostList(SysPost post) { + return postMapper.selectPostList(post); + } - /** - * 鏌ヨ鎵鏈夊矖浣 - * - * @return 宀椾綅鍒楄〃 - */ - @Override - public List selectPostAll() - { - return postMapper.selectPostAll(); - } + /** + * 鏌ヨ鎵鏈夊矖浣 + * + * @return 宀椾綅鍒楄〃 + */ + @Override + public List selectPostAll() { + return postMapper.selectPostAll(); + } - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - @Override - public SysPost selectPostById(Long postId) - { - return postMapper.selectPostById(postId); - } + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + @Override + public SysPost selectPostById(Long postId) { + return postMapper.selectPostById(postId); + } - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑宀椾綅ID鍒楄〃 - */ - @Override - public List selectPostListByUserId(Long userId) - { - return postMapper.selectPostListByUserId(userId); - } + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑宀椾綅ID鍒楄〃 + */ + @Override + public List selectPostListByUserId(Long userId) { + return postMapper.selectPostListByUserId(userId); + } - /** - * 鏍¢獙宀椾綅鍚嶇О鏄惁鍞竴 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkPostNameUnique(SysPost post) - { - Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - SysPost info = postMapper.checkPostNameUnique(post.getPostName()); - if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + /** + * 鏍¢獙宀椾綅鍚嶇О鏄惁鍞竴 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkPostNameUnique(SysPost post) { + Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + SysPost info = postMapper.checkPostNameUnique(post.getPostName()); + if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } - /** - * 鏍¢獙宀椾綅缂栫爜鏄惁鍞竴 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkPostCodeUnique(SysPost post) - { - Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); - if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + /** + * 鏍¢獙宀椾綅缂栫爜鏄惁鍞竴 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkPostCodeUnique(SysPost post) { + Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); + if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } - /** - * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - @Override - public int countUserPostById(Long postId) - { - return userPostMapper.countUserPostById(postId); - } + /** + * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + @Override + public int countUserPostById(Long postId) { + return userPostMapper.countUserPostById(postId); + } - /** - * 鍒犻櫎宀椾綅淇℃伅 - * - * @param postId 宀椾綅ID - * @return 缁撴灉 - */ - @Override - public int deletePostById(Long postId) - { - return postMapper.deletePostById(postId); - } + /** + * 鍒犻櫎宀椾綅淇℃伅 + * + * @param postId 宀椾綅ID + * @return 缁撴灉 + */ + @Override + public int deletePostById(Long postId) { + return postMapper.deletePostById(postId); + } - /** - * 鎵归噺鍒犻櫎宀椾綅淇℃伅 - * - * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID - * @return 缁撴灉 - */ - @Override - public int deletePostByIds(Long[] postIds) - { - for (Long postId : postIds) - { - SysPost post = selectPostById(postId); - if (countUserPostById(postId) > 0) - { - throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", post.getPostName())); - } - } - return postMapper.deletePostByIds(postIds); + /** + * 鎵归噺鍒犻櫎宀椾綅淇℃伅 + * + * @param postIds 闇瑕佸垹闄ょ殑宀椾綅ID + * @return 缁撴灉 + */ + @Override + public int deletePostByIds(Long[] postIds) { + for (Long postId : postIds) { + SysPost post = selectPostById(postId); + if (countUserPostById(postId) > 0) { + throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", post.getPostName())); + } } + return postMapper.deletePostByIds(postIds); + } - /** - * 鏂板淇濆瓨宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertPost(SysPost post) - { - return postMapper.insertPost(post); - } + /** + * 鏂板淇濆瓨宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertPost(SysPost post) { + return postMapper.insertPost(post); + } - /** - * 淇敼淇濆瓨宀椾綅淇℃伅 - * - * @param post 宀椾綅淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updatePost(SysPost post) - { - return postMapper.updatePost(post); - } + /** + * 淇敼淇濆瓨宀椾綅淇℃伅 + * + * @param post 宀椾綅淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updatePost(SysPost post) { + return postMapper.updatePost(post); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index cff399e08..2eb35b6a1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,13 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.SpringUtils; @@ -24,404 +16,367 @@ import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysRoleService; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 瑙掕壊 涓氬姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysRoleServiceImpl implements ISysRoleService -{ - @Autowired - private SysRoleMapper roleMapper; +public class SysRoleServiceImpl implements ISysRoleService { + @Autowired private SysRoleMapper roleMapper; - @Autowired - private SysRoleMenuMapper roleMenuMapper; + @Autowired private SysRoleMenuMapper roleMenuMapper; - @Autowired - private SysUserRoleMapper userRoleMapper; + @Autowired private SysUserRoleMapper userRoleMapper; - @Autowired - private SysRoleDeptMapper roleDeptMapper; + @Autowired private SysRoleDeptMapper roleDeptMapper; - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 - * - * @param role 瑙掕壊淇℃伅 - * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 - */ - @Override - @DataScope(deptAlias = "d") - public List selectRoleList(SysRole role) - { - return roleMapper.selectRoleList(role); - } + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 + * + * @param role 瑙掕壊淇℃伅 + * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d") + public List selectRoleList(SysRole role) { + return roleMapper.selectRoleList(role); + } - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 - * - * @param userId 鐢ㄦ埛ID - * @return 瑙掕壊鍒楄〃 - */ - @Override - public List selectRolesByUserId(Long userId) - { - List userRoles = roleMapper.selectRolePermissionByUserId(userId); - List roles = selectRoleAll(); - for (SysRole role : roles) - { - for (SysRole userRole : userRoles) - { - if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) - { - role.setFlag(true); - break; - } - } + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊 + * + * @param userId 鐢ㄦ埛ID + * @return 瑙掕壊鍒楄〃 + */ + @Override + public List selectRolesByUserId(Long userId) { + List userRoles = roleMapper.selectRolePermissionByUserId(userId); + List roles = selectRoleAll(); + for (SysRole role : roles) { + for (SysRole userRole : userRoles) { + if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) { + role.setFlag(true); + break; } - return roles; + } } + return roles; + } - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - @Override - public Set selectRolePermissionByUserId(Long userId) - { - List perms = roleMapper.selectRolePermissionByUserId(userId); - Set permsSet = new HashSet<>(); - for (SysRole perm : perms) - { - if (StringUtils.isNotNull(perm)) - { - permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); - } - } - return permsSet; + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set selectRolePermissionByUserId(Long userId) { + List perms = roleMapper.selectRolePermissionByUserId(userId); + Set permsSet = new HashSet<>(); + for (SysRole perm : perms) { + if (StringUtils.isNotNull(perm)) { + permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + } } + return permsSet; + } - /** - * 鏌ヨ鎵鏈夎鑹 - * - * @return 瑙掕壊鍒楄〃 - */ - @Override - public List selectRoleAll() - { - return SpringUtils.getAopProxy(this).selectRoleList(new SysRole()); - } + /** + * 鏌ヨ鎵鏈夎鑹 + * + * @return 瑙掕壊鍒楄〃 + */ + @Override + public List selectRoleAll() { + return SpringUtils.getAopProxy(this).selectRoleList(new SysRole()); + } - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑瑙掕壊ID鍒楄〃 - */ - @Override - public List selectRoleListByUserId(Long userId) - { - return roleMapper.selectRoleListByUserId(userId); - } + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛 + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑瑙掕壊ID鍒楄〃 + */ + @Override + public List selectRoleListByUserId(Long userId) { + return roleMapper.selectRoleListByUserId(userId); + } - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - @Override - public SysRole selectRoleById(Long roleId) - { - return roleMapper.selectRoleById(roleId); - } + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + @Override + public SysRole selectRoleById(Long roleId) { + return roleMapper.selectRoleById(roleId); + } - /** - * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkRoleNameUnique(SysRole role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + /** + * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkRoleNameUnique(SysRole role) { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } - /** - * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkRoleKeyUnique(SysRole role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + /** + * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkRoleKeyUnique(SysRole role) { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { + return UserConstants.NOT_UNIQUE; } + return UserConstants.UNIQUE; + } - /** - * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 - * - * @param role 瑙掕壊淇℃伅 - */ - @Override - public void checkRoleAllowed(SysRole role) - { - if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) - { - throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); - } + /** + * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 + * + * @param role 瑙掕壊淇℃伅 + */ + @Override + public void checkRoleAllowed(SysRole role) { + if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) { + throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); } + } - /** - * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄 - * - * @param roleIds 瑙掕壊id - */ - @Override - public void checkRoleDataScope(Long... roleIds) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { - for (Long roleId : roleIds) - { - SysRole role = new SysRole(); - role.setRoleId(roleId); - List roles = SpringUtils.getAopProxy(this).selectRoleList(role); - if (StringUtils.isEmpty(roles)) - { - throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛"); - } - } + /** + * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄 + * + * @param roleIds 瑙掕壊id + */ + @Override + public void checkRoleDataScope(Long... roleIds) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { + for (Long roleId : roleIds) { + SysRole role = new SysRole(); + role.setRoleId(roleId); + List roles = SpringUtils.getAopProxy(this).selectRoleList(role); + if (StringUtils.isEmpty(roles)) { + throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛"); } + } } + } - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - @Override - public int countUserRoleByRoleId(Long roleId) - { - return userRoleMapper.countUserRoleByRoleId(roleId); - } + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + @Override + public int countUserRoleByRoleId(Long roleId) { + return userRoleMapper.countUserRoleByRoleId(roleId); + } - /** - * 鏂板淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int insertRole(SysRole role) - { - // 鏂板瑙掕壊淇℃伅 - roleMapper.insertRole(role); - return insertRoleMenu(role); - } + /** + * 鏂板淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertRole(SysRole role) { + // 鏂板瑙掕壊淇℃伅 + roleMapper.insertRole(role); + return insertRoleMenu(role); + } - /** - * 淇敼淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int updateRole(SysRole role) - { - // 淇敼瑙掕壊淇℃伅 - roleMapper.updateRole(role); - // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 - roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); - return insertRoleMenu(role); - } + /** + * 淇敼淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateRole(SysRole role) { + // 淇敼瑙掕壊淇℃伅 + roleMapper.updateRole(role); + // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 + roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); + return insertRoleMenu(role); + } - /** - * 淇敼瑙掕壊鐘舵 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateRoleStatus(SysRole role) - { - return roleMapper.updateRole(role); - } + /** + * 淇敼瑙掕壊鐘舵 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateRoleStatus(SysRole role) { + return roleMapper.updateRole(role); + } - /** - * 淇敼鏁版嵁鏉冮檺淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int authDataScope(SysRole role) - { - // 淇敼瑙掕壊淇℃伅 - roleMapper.updateRole(role); - // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 - roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); - // 鏂板瑙掕壊鍜岄儴闂ㄤ俊鎭紙鏁版嵁鏉冮檺锛 - return insertRoleDept(role); - } + /** + * 淇敼鏁版嵁鏉冮檺淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int authDataScope(SysRole role) { + // 淇敼瑙掕壊淇℃伅 + roleMapper.updateRole(role); + // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 + roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); + // 鏂板瑙掕壊鍜岄儴闂ㄤ俊鎭紙鏁版嵁鏉冮檺锛 + return insertRoleDept(role); + } - /** - * 鏂板瑙掕壊鑿滃崟淇℃伅 - * - * @param role 瑙掕壊瀵硅薄 - */ - public int insertRoleMenu(SysRole role) - { - int rows = 1; - // 鏂板鐢ㄦ埛涓庤鑹茬鐞 - List list = new ArrayList(); - for (Long menuId : role.getMenuIds()) - { - SysRoleMenu rm = new SysRoleMenu(); - rm.setRoleId(role.getRoleId()); - rm.setMenuId(menuId); - list.add(rm); - } - if (list.size() > 0) - { - rows = roleMenuMapper.batchRoleMenu(list); - } - return rows; + /** + * 鏂板瑙掕壊鑿滃崟淇℃伅 + * + * @param role 瑙掕壊瀵硅薄 + */ + public int insertRoleMenu(SysRole role) { + int rows = 1; + // 鏂板鐢ㄦ埛涓庤鑹茬鐞 + List list = new ArrayList(); + for (Long menuId : role.getMenuIds()) { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); } - - /** - * 鏂板瑙掕壊閮ㄩ棬淇℃伅(鏁版嵁鏉冮檺) - * - * @param role 瑙掕壊瀵硅薄 - */ - public int insertRoleDept(SysRole role) - { - int rows = 1; - // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞 - List list = new ArrayList(); - for (Long deptId : role.getDeptIds()) - { - SysRoleDept rd = new SysRoleDept(); - rd.setRoleId(role.getRoleId()); - rd.setDeptId(deptId); - list.add(rd); - } - if (list.size() > 0) - { - rows = roleDeptMapper.batchRoleDept(list); - } - return rows; + if (list.size() > 0) { + rows = roleMenuMapper.batchRoleMenu(list); } + return rows; + } - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteRoleById(Long roleId) - { - // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 - roleMenuMapper.deleteRoleMenuByRoleId(roleId); - // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 - roleDeptMapper.deleteRoleDeptByRoleId(roleId); - return roleMapper.deleteRoleById(roleId); + /** + * 鏂板瑙掕壊閮ㄩ棬淇℃伅(鏁版嵁鏉冮檺) + * + * @param role 瑙掕壊瀵硅薄 + */ + public int insertRoleDept(SysRole role) { + int rows = 1; + // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞 + List list = new ArrayList(); + for (Long deptId : role.getDeptIds()) { + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); } - - /** - * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 - * - * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteRoleByIds(Long[] roleIds) - { - for (Long roleId : roleIds) - { - checkRoleAllowed(new SysRole(roleId)); - checkRoleDataScope(roleId); - SysRole role = selectRoleById(roleId); - if (countUserRoleByRoleId(roleId) > 0) - { - throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", role.getRoleName())); - } - } - // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 - roleMenuMapper.deleteRoleMenu(roleIds); - // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 - roleDeptMapper.deleteRoleDept(roleIds); - return roleMapper.deleteRoleByIds(roleIds); + if (list.size() > 0) { + rows = roleDeptMapper.batchRoleDept(list); } + return rows; + } - /** - * 鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 - * @return 缁撴灉 - */ - @Override - public int deleteAuthUser(SysUserRole userRole) - { - return userRoleMapper.deleteUserRoleInfo(userRole); - } + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteRoleById(Long roleId) { + // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 + roleMenuMapper.deleteRoleMenuByRoleId(roleId); + // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 + roleDeptMapper.deleteRoleDeptByRoleId(roleId); + return roleMapper.deleteRoleById(roleId); + } - /** - * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @param userIds 闇瑕佸彇娑堟巿鏉冪殑鐢ㄦ埛鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int deleteAuthUsers(Long roleId, Long[] userIds) - { - return userRoleMapper.deleteUserRoleInfos(roleId, userIds); + /** + * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 + * + * @param roleIds 闇瑕佸垹闄ょ殑瑙掕壊ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteRoleByIds(Long[] roleIds) { + for (Long roleId : roleIds) { + checkRoleAllowed(new SysRole(roleId)); + checkRoleDataScope(roleId); + SysRole role = selectRoleById(roleId); + if (countUserRoleByRoleId(roleId) > 0) { + throw new ServiceException(String.format("%1$s宸插垎閰,涓嶈兘鍒犻櫎", role.getRoleName())); + } } + // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱 + roleMenuMapper.deleteRoleMenu(roleIds); + // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱 + roleDeptMapper.deleteRoleDept(roleIds); + return roleMapper.deleteRoleByIds(roleIds); + } - /** - * 鎵归噺閫夋嫨鎺堟潈鐢ㄦ埛瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @param userIds 闇瑕佹巿鏉冪殑鐢ㄦ埛鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int insertAuthUsers(Long roleId, Long[] userIds) - { - // 鏂板鐢ㄦ埛涓庤鑹茬鐞 - List list = new ArrayList(); - for (Long userId : userIds) - { - SysUserRole ur = new SysUserRole(); - ur.setUserId(userId); - ur.setRoleId(roleId); - list.add(ur); - } - return userRoleMapper.batchUserRole(list); + /** + * 鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭 + * @return 缁撴灉 + */ + @Override + public int deleteAuthUser(SysUserRole userRole) { + return userRoleMapper.deleteUserRoleInfo(userRole); + } + + /** + * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @param userIds 闇瑕佸彇娑堟巿鏉冪殑鐢ㄦ埛鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteAuthUsers(Long roleId, Long[] userIds) { + return userRoleMapper.deleteUserRoleInfos(roleId, userIds); + } + + /** + * 鎵归噺閫夋嫨鎺堟潈鐢ㄦ埛瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @param userIds 闇瑕佹巿鏉冪殑鐢ㄦ埛鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int insertAuthUsers(Long roleId, Long[] userIds) { + // 鏂板鐢ㄦ埛涓庤鑹茬鐞 + List list = new ArrayList(); + for (Long userId : userIds) { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); } + return userRoleMapper.batchUserRole(list); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java index dcb032508..065d82111 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java @@ -1,89 +1,81 @@ package com.ruoyi.system.service.impl; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.domain.SysUserOnline; import com.ruoyi.system.service.ISysUserOnlineService; +import org.springframework.stereotype.Service; /** * 鍦ㄧ嚎鐢ㄦ埛 鏈嶅姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysUserOnlineServiceImpl implements ISysUserOnlineService -{ - /** - * 閫氳繃鐧诲綍鍦板潃鏌ヨ淇℃伅 - * - * @param ipaddr 鐧诲綍鍦板潃 - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - @Override - public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) - { - if (StringUtils.equals(ipaddr, user.getIpaddr())) - { - return loginUserToUserOnline(user); - } - return null; +public class SysUserOnlineServiceImpl implements ISysUserOnlineService { + /** + * 閫氳繃鐧诲綍鍦板潃鏌ヨ淇℃伅 + * + * @param ipaddr 鐧诲綍鍦板潃 + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + @Override + public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) { + if (StringUtils.equals(ipaddr, user.getIpaddr())) { + return loginUserToUserOnline(user); } + return null; + } - /** - * 閫氳繃鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 - * - * @param userName 鐢ㄦ埛鍚嶇О - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - @Override - public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) - { - if (StringUtils.equals(userName, user.getUsername())) - { - return loginUserToUserOnline(user); - } - return null; + /** + * 閫氳繃鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 + * + * @param userName 鐢ㄦ埛鍚嶇О + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + @Override + public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) { + if (StringUtils.equals(userName, user.getUsername())) { + return loginUserToUserOnline(user); } + return null; + } - /** - * 閫氳繃鐧诲綍鍦板潃/鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 - * - * @param ipaddr 鐧诲綍鍦板潃 - * @param userName 鐢ㄦ埛鍚嶇О - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 - */ - @Override - public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) - { - if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) - { - return loginUserToUserOnline(user); - } - return null; + /** + * 閫氳繃鐧诲綍鍦板潃/鐢ㄦ埛鍚嶇О鏌ヨ淇℃伅 + * + * @param ipaddr 鐧诲綍鍦板潃 + * @param userName 鐢ㄦ埛鍚嶇О + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛淇℃伅 + */ + @Override + public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) { + if (StringUtils.equals(ipaddr, user.getIpaddr()) + && StringUtils.equals(userName, user.getUsername())) { + return loginUserToUserOnline(user); } + return null; + } - /** - * 璁剧疆鍦ㄧ嚎鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鍦ㄧ嚎鐢ㄦ埛 - */ - @Override - public SysUserOnline loginUserToUserOnline(LoginUser user) - { - if (StringUtils.isNull(user)) - { - return null; - } - SysUserOnline sysUserOnline = new SysUserOnline(); - sysUserOnline.setTokenId(user.getToken()); - sysUserOnline.setUserName(user.getUsername()); - sysUserOnline.setIpaddr(user.getIpaddr()); - sysUserOnline.setLoginTime(user.getLoginTime()); - return sysUserOnline; + /** + * 璁剧疆鍦ㄧ嚎鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鍦ㄧ嚎鐢ㄦ埛 + */ + @Override + public SysUserOnline loginUserToUserOnline(LoginUser user) { + if (StringUtils.isNull(user)) { + return null; } + SysUserOnline sysUserOnline = new SysUserOnline(); + sysUserOnline.setTokenId(user.getToken()); + sysUserOnline.setUserName(user.getUsername()); + sysUserOnline.setIpaddr(user.getIpaddr()); + sysUserOnline.setLoginTime(user.getLoginTime()); + return sysUserOnline; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 4c646af8c..961222c00 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,15 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import javax.validation.Validator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.SpringUtils; @@ -30,534 +20,480 @@ import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import javax.validation.Validator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; /** * 鐢ㄦ埛 涓氬姟灞傚鐞 - * + * * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService -{ - private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); - - @Autowired - private SysUserMapper userMapper; - - @Autowired - private SysRoleMapper roleMapper; - - @Autowired - private SysPostMapper postMapper; - - @Autowired - private SysUserRoleMapper userRoleMapper; - - @Autowired - private SysUserPostMapper userPostMapper; - - @Autowired - private ISysConfigService configService; - - @Autowired - private ISysDeptService deptService; - - @Autowired - protected Validator validator; - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - @Override - @DataScope(deptAlias = "d", userAlias = "u") - public List selectUserList(SysUser user) - { - return userMapper.selectUserList(user); +public class SysUserServiceImpl implements ISysUserService { + private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); + + @Autowired private SysUserMapper userMapper; + + @Autowired private SysRoleMapper roleMapper; + + @Autowired private SysPostMapper postMapper; + + @Autowired private SysUserRoleMapper userRoleMapper; + + @Autowired private SysUserPostMapper userPostMapper; + + @Autowired private ISysConfigService configService; + + @Autowired private ISysDeptService deptService; + + @Autowired protected Validator validator; + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectUserList(SysUser user) { + return userMapper.selectUserList(user); + } + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectAllocatedList(SysUser user) { + return userMapper.selectAllocatedList(user); + } + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectUnallocatedList(SysUser user) { + return userMapper.selectUnallocatedList(user); + } + + /** + * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 + * + * @param userName 鐢ㄦ埛鍚 + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + @Override + public SysUser selectUserByUserName(String userName) { + return userMapper.selectUserByUserName(userName); + } + + /** + * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 鐢ㄦ埛瀵硅薄淇℃伅 + */ + @Override + public SysUser selectUserById(Long userId) { + return userMapper.selectUserById(userId); + } + + /** + * 鏌ヨ鐢ㄦ埛鎵灞炶鑹茬粍 + * + * @param userName 鐢ㄦ埛鍚 + * @return 缁撴灉 + */ + @Override + public String selectUserRoleGroup(String userName) { + List list = roleMapper.selectRolesByUserName(userName); + if (CollectionUtils.isEmpty(list)) { + return StringUtils.EMPTY; } - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - @Override - @DataScope(deptAlias = "d", userAlias = "u") - public List selectAllocatedList(SysUser user) - { - return userMapper.selectAllocatedList(user); + return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); + } + + /** + * 鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 + * + * @param userName 鐢ㄦ埛鍚 + * @return 缁撴灉 + */ + @Override + public String selectUserPostGroup(String userName) { + List list = postMapper.selectPostsByUserName(userName); + if (CollectionUtils.isEmpty(list)) { + return StringUtils.EMPTY; } - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 - */ - @Override - @DataScope(deptAlias = "d", userAlias = "u") - public List selectUnallocatedList(SysUser user) - { - return userMapper.selectUnallocatedList(user); + return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); + } + + /** + * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean checkUserNameUnique(SysUser user) { + Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + SysUser info = userMapper.checkUserNameUnique(user.getUserName()); + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { + return UserConstants.NOT_UNIQUE; } - - /** - * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴 - * - * @param userName 鐢ㄦ埛鍚 - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - @Override - public SysUser selectUserByUserName(String userName) - { - return userMapper.selectUserByUserName(userName); + return UserConstants.UNIQUE; + } + + /** + * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return + */ + @Override + public boolean checkPhoneUnique(SysUser user) { + Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { + return UserConstants.NOT_UNIQUE; } - - /** - * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 鐢ㄦ埛瀵硅薄淇℃伅 - */ - @Override - public SysUser selectUserById(Long userId) - { - return userMapper.selectUserById(userId); + return UserConstants.UNIQUE; + } + + /** + * 鏍¢獙email鏄惁鍞竴 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return + */ + @Override + public boolean checkEmailUnique(SysUser user) { + Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + SysUser info = userMapper.checkEmailUnique(user.getEmail()); + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { + return UserConstants.NOT_UNIQUE; } - - /** - * 鏌ヨ鐢ㄦ埛鎵灞炶鑹茬粍 - * - * @param userName 鐢ㄦ埛鍚 - * @return 缁撴灉 - */ - @Override - public String selectUserRoleGroup(String userName) - { - List list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { - return StringUtils.EMPTY; - } - return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); + return UserConstants.UNIQUE; + } + + /** + * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 + * + * @param user 鐢ㄦ埛淇℃伅 + */ + @Override + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { + throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); } - - /** - * 鏌ヨ鐢ㄦ埛鎵灞炲矖浣嶇粍 - * - * @param userName 鐢ㄦ埛鍚 - * @return 缁撴灉 - */ - @Override - public String selectUserPostGroup(String userName) - { - List list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { - return StringUtils.EMPTY; - } - return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); + } + + /** + * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄 + * + * @param userId 鐢ㄦ埛id + */ + @Override + public void checkUserDataScope(Long userId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { + SysUser user = new SysUser(); + user.setUserId(userId); + List users = SpringUtils.getAopProxy(this).selectUserList(user); + if (StringUtils.isEmpty(users)) { + throw new ServiceException("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛"); + } } - - /** - * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean checkUserNameUnique(SysUser user) - { - Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + } + + /** + * 鏂板淇濆瓨鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertUser(SysUser user) { + // 鏂板鐢ㄦ埛淇℃伅 + int rows = userMapper.insertUser(user); + // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 + insertUserPost(user); + // 鏂板鐢ㄦ埛涓庤鑹茬鐞 + insertUserRole(user); + return rows; + } + + /** + * 娉ㄥ唽鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean registerUser(SysUser user) { + return userMapper.insertUser(user) > 0; + } + + /** + * 淇敼淇濆瓨鐢ㄦ埛淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateUser(SysUser user) { + Long userId = user.getUserId(); + // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 + userRoleMapper.deleteUserRoleByUserId(userId); + // 鏂板鐢ㄦ埛涓庤鑹茬鐞 + insertUserRole(user); + // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱 + userPostMapper.deleteUserPostByUserId(userId); + // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞 + insertUserPost(user); + return userMapper.updateUser(user); + } + + /** + * 鐢ㄦ埛鎺堟潈瑙掕壊 + * + * @param userId 鐢ㄦ埛ID + * @param roleIds 瑙掕壊缁 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void insertUserAuth(Long userId, Long[] roleIds) { + userRoleMapper.deleteUserRoleByUserId(userId); + insertUserRole(userId, roleIds); + } + + /** + * 淇敼鐢ㄦ埛鐘舵 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateUserStatus(SysUser user) { + return userMapper.updateUserStatus(user.getUserId(), user.getStatus()); + } + + /** + * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + public boolean updateUserProfile(SysUser user) { + return userMapper.updateUser(user) > 0; + } + + /** + * 淇敼鐢ㄦ埛澶村儚 + * + * @param userId 鐢ㄦ埛ID + * @param avatar 澶村儚鍦板潃 + * @return 缁撴灉 + */ + @Override + public boolean updateUserAvatar(Long userId, String avatar) { + return userMapper.updateUserAvatar(userId, avatar) > 0; + } + + /** + * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + public boolean updateLoginInfo(SysUser user) { + return userMapper.updateLoginInfo(user) > 0; + } + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 缁撴灉 + */ + @Override + public int resetPwd(SysUser user) { + return userMapper.resetUserPwd(user.getUserId(), user.getPassword()); + } + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + * + * @param userId 鐢ㄦ埛ID + * @param password 瀵嗙爜 + * @return 缁撴灉 + */ + @Override + public int resetUserPwd(Long userId, String password) { + return userMapper.resetUserPwd(userId, password); + } + + /** + * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 + * + * @param user 鐢ㄦ埛瀵硅薄 + */ + public void insertUserRole(SysUser user) { + this.insertUserRole(user.getUserId(), user.getRoleIds()); + } + + /** + * 鏂板鐢ㄦ埛宀椾綅淇℃伅 + * + * @param user 鐢ㄦ埛瀵硅薄 + */ + public void insertUserPost(SysUser user) { + Long[] posts = user.getPostIds(); + if (StringUtils.isNotEmpty(posts)) { + // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞 + List list = new ArrayList(); + for (Long postId : posts) { + SysUserPost up = new SysUserPost(); + up.setUserId(user.getUserId()); + up.setPostId(postId); + list.add(up); + } + userPostMapper.batchUserPost(list); } - - /** - * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return - */ - @Override - public boolean checkPhoneUnique(SysUser user) - { - Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + } + + /** + * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 + * + * @param userId 鐢ㄦ埛ID + * @param roleIds 瑙掕壊缁 + */ + public void insertUserRole(Long userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { + // 鏂板鐢ㄦ埛涓庤鑹茬鐞 + List list = new ArrayList(); + for (Long roleId : roleIds) { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); + } + userRoleMapper.batchUserRole(list); } - - /** - * 鏍¢獙email鏄惁鍞竴 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return - */ - @Override - public boolean checkEmailUnique(SysUser user) - { - Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + } + + /** + * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 + * + * @param userId 鐢ㄦ埛ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteUserById(Long userId) { + // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 + userRoleMapper.deleteUserRoleByUserId(userId); + // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃 + userPostMapper.deleteUserPostByUserId(userId); + return userMapper.deleteUserById(userId); + } + + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 + * + * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { + checkUserAllowed(new SysUser(userId)); + checkUserDataScope(userId); } - - /** - * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 - * - * @param user 鐢ㄦ埛淇℃伅 - */ - @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { - throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); - } - } - - /** - * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄 - * - * @param userId 鐢ㄦ埛id - */ - @Override - public void checkUserDataScope(Long userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { - SysUser user = new SysUser(); - user.setUserId(userId); - List users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) - { - throw new ServiceException("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛"); - } - } - } - - /** - * 鏂板淇濆瓨鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int insertUser(SysUser user) - { - // 鏂板鐢ㄦ埛淇℃伅 - int rows = userMapper.insertUser(user); - // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 - insertUserPost(user); - // 鏂板鐢ㄦ埛涓庤鑹茬鐞 - insertUserRole(user); - return rows; - } - - /** - * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean registerUser(SysUser user) - { - return userMapper.insertUser(user) > 0; - } - - /** - * 淇敼淇濆瓨鐢ㄦ埛淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int updateUser(SysUser user) - { - Long userId = user.getUserId(); - // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 - userRoleMapper.deleteUserRoleByUserId(userId); - // 鏂板鐢ㄦ埛涓庤鑹茬鐞 - insertUserRole(user); - // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱 - userPostMapper.deleteUserPostByUserId(userId); - // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞 - insertUserPost(user); - return userMapper.updateUser(user); - } - - /** - * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID - * @param roleIds 瑙掕壊缁 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void insertUserAuth(Long userId, Long[] roleIds) - { - userRoleMapper.deleteUserRoleByUserId(userId); - insertUserRole(userId, roleIds); - } - - /** - * 淇敼鐢ㄦ埛鐘舵 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateUserStatus(SysUser user) - { - return userMapper.updateUserStatus(user.getUserId(), user.getStatus()); - } - - /** - * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - public boolean updateUserProfile(SysUser user) - { - return userMapper.updateUser(user) > 0; - } - - /** - * 淇敼鐢ㄦ埛澶村儚 - * - * @param userId 鐢ㄦ埛ID - * @param avatar 澶村儚鍦板潃 - * @return 缁撴灉 - */ - @Override - public boolean updateUserAvatar(Long userId, String avatar) - { - return userMapper.updateUserAvatar(userId, avatar) > 0; - } - - /** - * 鏇存柊鐢ㄦ埛鐧诲綍淇℃伅锛圛P鍜岀櫥褰曟椂闂达級 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - public boolean updateLoginInfo(SysUser user) - { - return userMapper.updateLoginInfo(user) > 0; + // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 + userRoleMapper.deleteUserRole(userIds); + // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱 + userPostMapper.deleteUserPost(userIds); + return userMapper.deleteUserByIds(userIds); + } + + /** + * 瀵煎叆鐢ㄦ埛鏁版嵁 + * + * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 + * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 + * @param operName 鎿嶄綔鐢ㄦ埛 + * @return 缁撴灉 + */ + @Override + public String importUser(List userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { + throw new ServiceException("瀵煎叆鐢ㄦ埛鏁版嵁涓嶈兘涓虹┖锛"); } - - /** - * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * - * @param user 鐢ㄦ埛淇℃伅 - * @return 缁撴灉 - */ - @Override - public int resetPwd(SysUser user) - { - return userMapper.resetUserPwd(user.getUserId(), user.getPassword()); - } - - /** - * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * - * @param userId 鐢ㄦ埛ID - * @param password 瀵嗙爜 - * @return 缁撴灉 - */ - @Override - public int resetUserPwd(Long userId, String password) - { - return userMapper.resetUserPwd(userId, password); - } - - /** - * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param user 鐢ㄦ埛瀵硅薄 - */ - public void insertUserRole(SysUser user) - { - this.insertUserRole(user.getUserId(), user.getRoleIds()); - } - - /** - * 鏂板鐢ㄦ埛宀椾綅淇℃伅 - * - * @param user 鐢ㄦ埛瀵硅薄 - */ - public void insertUserPost(SysUser user) - { - Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) - { - // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞 - List list = new ArrayList(); - for (Long postId : posts) - { - SysUserPost up = new SysUserPost(); - up.setUserId(user.getUserId()); - up.setPostId(postId); - list.add(up); - } - userPostMapper.batchUserPost(list); + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (SysUser user : userList) { + try { + // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 + SysUser u = userMapper.selectUserByUserName(user.getUserName()); + if (StringUtils.isNull(u)) { + BeanValidators.validateWithException(validator, user); + deptService.checkDeptDataScope(user.getDeptId()); + String password = configService.selectConfigByKey("sys.user.initPassword"); + user.setPassword(SecurityUtils.encryptPassword(password)); + user.setCreateBy(operName); + userMapper.insertUser(user); + successNum++; + successMsg.append("
" + successNum + "銆佽处鍙 " + user.getUserName() + " 瀵煎叆鎴愬姛"); + } else if (isUpdateSupport) { + BeanValidators.validateWithException(validator, user); + checkUserAllowed(u); + checkUserDataScope(u.getUserId()); + deptService.checkDeptDataScope(user.getDeptId()); + user.setUserId(u.getUserId()); + user.setDeptId(u.getDeptId()); + user.setUpdateBy(operName); + userMapper.updateUser(user); + successNum++; + successMsg.append("
" + successNum + "銆佽处鍙 " + user.getUserName() + " 鏇存柊鎴愬姛"); + } else { + failureNum++; + failureMsg.append("
" + failureNum + "銆佽处鍙 " + user.getUserName() + " 宸插瓨鍦"); } + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "銆佽处鍙 " + user.getUserName() + " 瀵煎叆澶辫触锛"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } } - - /** - * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param userId 鐢ㄦ埛ID - * @param roleIds 瑙掕壊缁 - */ - public void insertUserRole(Long userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { - // 鏂板鐢ㄦ埛涓庤鑹茬鐞 - List list = new ArrayList(); - for (Long roleId : roleIds) - { - SysUserRole ur = new SysUserRole(); - ur.setUserId(userId); - ur.setRoleId(roleId); - list.add(ur); - } - userRoleMapper.batchUserRole(list); - } - } - - /** - * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * - * @param userId 鐢ㄦ埛ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteUserById(Long userId) - { - // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 - userRoleMapper.deleteUserRoleByUserId(userId); - // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃 - userPostMapper.deleteUserPostByUserId(userId); - return userMapper.deleteUserById(userId); + if (failureNum > 0) { + failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏 " + successNum + " 鏉★紝鏁版嵁濡備笅锛"); } - - /** - * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * - * @param userIds 闇瑕佸垹闄ょ殑鐢ㄦ埛ID - * @return 缁撴灉 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { - checkUserAllowed(new SysUser(userId)); - checkUserDataScope(userId); - } - // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱 - userRoleMapper.deleteUserRole(userIds); - // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱 - userPostMapper.deleteUserPost(userIds); - return userMapper.deleteUserByIds(userIds); - } - - /** - * 瀵煎叆鐢ㄦ埛鏁版嵁 - * - * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 - * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 - * @param operName 鎿嶄綔鐢ㄦ埛 - * @return 缁撴灉 - */ - @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { - throw new ServiceException("瀵煎叆鐢ㄦ埛鏁版嵁涓嶈兘涓虹┖锛"); - } - int successNum = 0; - int failureNum = 0; - StringBuilder successMsg = new StringBuilder(); - StringBuilder failureMsg = new StringBuilder(); - for (SysUser user : userList) - { - try - { - // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 - SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { - BeanValidators.validateWithException(validator, user); - deptService.checkDeptDataScope(user.getDeptId()); - String password = configService.selectConfigByKey("sys.user.initPassword"); - user.setPassword(SecurityUtils.encryptPassword(password)); - user.setCreateBy(operName); - userMapper.insertUser(user); - successNum++; - successMsg.append("
" + successNum + "銆佽处鍙 " + user.getUserName() + " 瀵煎叆鎴愬姛"); - } - else if (isUpdateSupport) - { - BeanValidators.validateWithException(validator, user); - checkUserAllowed(u); - checkUserDataScope(u.getUserId()); - deptService.checkDeptDataScope(user.getDeptId()); - user.setUserId(u.getUserId()); - user.setDeptId(u.getDeptId()); - user.setUpdateBy(operName); - userMapper.updateUser(user); - successNum++; - successMsg.append("
" + successNum + "銆佽处鍙 " + user.getUserName() + " 鏇存柊鎴愬姛"); - } - else - { - failureNum++; - failureMsg.append("
" + failureNum + "銆佽处鍙 " + user.getUserName() + " 宸插瓨鍦"); - } - } - catch (Exception e) - { - failureNum++; - String msg = "
" + failureNum + "銆佽处鍙 " + user.getUserName() + " 瀵煎叆澶辫触锛"; - failureMsg.append(msg + e.getMessage()); - log.error(msg, e); - } - } - if (failureNum > 0) - { - failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細"); - throw new ServiceException(failureMsg.toString()); - } - else - { - successMsg.insert(0, "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏 " + successNum + " 鏉★紝鏁版嵁濡備笅锛"); - } - return successMsg.toString(); - } - + return successMsg.toString(); + } } diff --git a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/RuoYiMonitorApplication.java b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/RuoYiMonitorApplication.java index 73628b3b6..9e88dec96 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/RuoYiMonitorApplication.java +++ b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/RuoYiMonitorApplication.java @@ -1,30 +1,29 @@ package com.ruoyi.modules.monitor; +import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import de.codecentric.boot.admin.server.config.EnableAdminServer; /** * 鐩戞帶涓績 - * + * * @author ruoyi */ @EnableAdminServer @SpringBootApplication -public class RuoYiMonitorApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RuoYiMonitorApplication.class, args); - System.out.println("(鈾モ棤鈥库棤)锞夛緸 鐩戞帶涓績鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + - " .-------. ____ __ \n" + - " | _ _ \\ \\ \\ / / \n" + - " | ( ' ) | \\ _. / ' \n" + - " |(_ o _) / _( )_ .' \n" + - " | (_,_).' __ ___(_ o _)' \n" + - " | |\\ \\ | || |(_,_)' \n" + - " | | \\ `' /| `-' / \n" + - " | | \\ / \\ / \n" + - " ''-' `'-' `-..-' "); - } +public class RuoYiMonitorApplication { + public static void main(String[] args) { + SpringApplication.run(RuoYiMonitorApplication.class, args); + System.out.println( + "(鈾モ棤鈥库棤)锞夛緸 鐩戞帶涓績鍚姩鎴愬姛 醿(麓凇`醿)锞 \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } } diff --git a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java index 71339d2aa..aad705333 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java +++ b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java @@ -9,43 +9,50 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti /** * 鐩戞帶鏉冮檺閰嶇疆 - * + * * @author ruoyi */ @EnableWebSecurity -public class WebSecurityConfigurer -{ - private final String adminContextPath; +public class WebSecurityConfigurer { + private final String adminContextPath; - public WebSecurityConfigurer(AdminServerProperties adminServerProperties) - { - this.adminContextPath = adminServerProperties.getContextPath(); - } + public WebSecurityConfigurer(AdminServerProperties adminServerProperties) { + this.adminContextPath = adminServerProperties.getContextPath(); + } - @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception - { - SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); - successHandler.setTargetUrlParameter("redirectTo"); - successHandler.setDefaultTargetUrl(adminContextPath + "/"); + @Bean + public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + SavedRequestAwareAuthenticationSuccessHandler successHandler = + new SavedRequestAwareAuthenticationSuccessHandler(); + successHandler.setTargetUrlParameter("redirectTo"); + successHandler.setDefaultTargetUrl(adminContextPath + "/"); - return httpSecurity - .headers().frameOptions().disable() - .and().authorizeRequests() - .antMatchers(adminContextPath + "/assets/**" - , adminContextPath + "/login" - , adminContextPath + "/actuator/**" - , adminContextPath + "/instances/**" - ).permitAll() - .anyRequest().authenticated() - .and() - .formLogin().loginPage(adminContextPath + "/login") - .successHandler(successHandler).and() - .logout().logoutUrl(adminContextPath + "/logout") - .and() - .httpBasic().and() - .csrf() - .disable() - .build(); - } + return httpSecurity + .headers() + .frameOptions() + .disable() + .and() + .authorizeRequests() + .antMatchers( + adminContextPath + "/assets/**", + adminContextPath + "/login", + adminContextPath + "/actuator/**", + adminContextPath + "/instances/**") + .permitAll() + .anyRequest() + .authenticated() + .and() + .formLogin() + .loginPage(adminContextPath + "/login") + .successHandler(successHandler) + .and() + .logout() + .logoutUrl(adminContextPath + "/logout") + .and() + .httpBasic() + .and() + .csrf() + .disable() + .build(); + } } From 43c374dec03f89c3e3e6512ab614a71708b3e7fe Mon Sep 17 00:00:00 2001 From: Galudisu Date: Sun, 14 Dec 2025 20:16:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .java-version | 2 +- .mvn/jvm.config | 3 +- .mvn/maven.config | 4 +- {bin => bat}/clean.bat | 0 {bin => bat}/package.bat | 0 {bin => bat}/run-auth.bat | 0 {bin => bat}/run-gateway.bat | 0 {bin => bat}/run-modules-file.bat | 0 {bin => bat}/run-modules-gen.bat | 0 {bin => bat}/run-modules-job.bat | 0 {bin => bat}/run-modules-system.bat | 0 {bin => bat}/run-monitor.bat | 0 bin/clean.sh | 10 + bin/package.sh | 10 + bin/run-auth.sh | 12 + bin/run-gateway.sh | 12 + bin/run-modules-file.sh | 12 + bin/run-modules-gen.sh | 12 + bin/run-modules-job.sh | 12 + bin/run-modules-system.sh | 12 + bin/run-monitor.sh | 12 + docker/copy.sh | 3 +- docker/deploy.sh | 9 +- docker/docker-compose.yml | 22 +- docker/nacos/Dockerfile | 2 +- docker/nacos/conf/application.properties | 5 +- docker/ruoyi/auth/Dockerfile | 4 +- docker/ruoyi/gateway/Dockerfile | 4 +- docker/ruoyi/modules/file/Dockerfile | 4 +- docker/ruoyi/modules/gen/Dockerfile | 4 +- docker/ruoyi/modules/job/Dockerfile | 4 +- docker/ruoyi/modules/system/Dockerfile | 4 +- docker/ruoyi/visual/monitor/Dockerfile | 4 +- pom.xml | 43 ++-- .../com/ruoyi/system/api/domain/SysDept.java | 8 +- .../ruoyi/system/api/domain/SysDictData.java | 4 +- .../ruoyi/system/api/domain/SysDictType.java | 6 +- .../com/ruoyi/system/api/domain/SysRole.java | 6 +- .../com/ruoyi/system/api/domain/SysUser.java | 2 +- .../auth/controller/TokenController.java | 2 +- ruoyi-auth/src/main/resources/bootstrap.yml | 8 +- ruoyi-common/ruoyi-common-core/pom.xml | 211 +++++++++--------- .../ruoyi/common/core/utils/ServletUtils.java | 8 +- .../core/utils/bean/BeanValidators.java | 6 +- .../common/core/utils/file/FileUtils.java | 4 +- .../ruoyi/common/core/utils/ip/IpUtils.java | 2 +- .../common/core/utils/poi/ExcelUtil.java | 2 +- .../java/com/ruoyi/common/core/xss/Xss.java | 4 +- .../ruoyi/common/core/xss/XssValidator.java | 4 +- .../ruoyi/common/log/aspect/LogAspect.java | 4 +- .../feign/FeignRequestInterceptor.java | 2 +- .../handler/GlobalExceptionHandler.java | 2 +- .../interceptor/HeaderInterceptor.java | 4 +- .../common/security/service/TokenService.java | 2 +- .../common/security/utils/SecurityUtils.java | 2 +- ruoyi-common/ruoyi-common-swagger/pom.xml | 6 +- ruoyi-gateway/pom.xml | 6 +- .../ruoyi/gateway/config/SpringDocConfig.java | 4 +- .../service/impl/ValidateCodeServiceImpl.java | 2 +- .../src/main/resources/bootstrap.yml | 8 +- .../com/ruoyi/file/config/FilterConfig.java | 2 +- .../com/ruoyi/file/filter/RefererFilter.java | 16 +- .../src/main/resources/bootstrap.yml | 6 +- .../ruoyi/gen/controller/GenController.java | 2 +- .../java/com/ruoyi/gen/domain/GenTable.java | 4 +- .../com/ruoyi/gen/domain/GenTableColumn.java | 2 +- .../src/main/resources/bootstrap.yml | 6 +- .../main/resources/vm/java/controller.java.vm | 4 +- .../job/controller/SysJobController.java | 2 +- .../job/controller/SysJobLogController.java | 2 +- .../java/com/ruoyi/job/domain/SysJob.java | 4 +- .../ruoyi/job/service/SysJobServiceImpl.java | 2 +- .../src/main/resources/bootstrap.yml | 6 +- .../controller/SysConfigController.java | 2 +- .../controller/SysDictDataController.java | 2 +- .../controller/SysDictTypeController.java | 2 +- .../controller/SysLogininforController.java | 2 +- .../controller/SysOperlogController.java | 2 +- .../system/controller/SysPostController.java | 2 +- .../system/controller/SysRoleController.java | 2 +- .../system/controller/SysUserController.java | 2 +- .../com/ruoyi/system/domain/SysConfig.java | 4 +- .../java/com/ruoyi/system/domain/SysMenu.java | 6 +- .../com/ruoyi/system/domain/SysNotice.java | 4 +- .../java/com/ruoyi/system/domain/SysPost.java | 6 +- .../service/impl/SysConfigServiceImpl.java | 2 +- .../service/impl/SysDictTypeServiceImpl.java | 2 +- .../service/impl/SysUserServiceImpl.java | 2 +- .../src/main/resources/bootstrap.yml | 6 +- .../monitor/config/WebSecurityConfigurer.java | 4 +- .../src/main/resources/bootstrap.yml | 6 +- sql/ry_20250523.sql | 2 +- 92 files changed, 391 insertions(+), 271 deletions(-) rename {bin => bat}/clean.bat (100%) rename {bin => bat}/package.bat (100%) rename {bin => bat}/run-auth.bat (100%) rename {bin => bat}/run-gateway.bat (100%) rename {bin => bat}/run-modules-file.bat (100%) rename {bin => bat}/run-modules-gen.bat (100%) rename {bin => bat}/run-modules-job.bat (100%) rename {bin => bat}/run-modules-system.bat (100%) rename {bin => bat}/run-monitor.bat (100%) create mode 100644 bin/clean.sh create mode 100644 bin/package.sh create mode 100644 bin/run-auth.sh create mode 100644 bin/run-gateway.sh create mode 100644 bin/run-modules-file.sh create mode 100644 bin/run-modules-gen.sh create mode 100644 bin/run-modules-job.sh create mode 100644 bin/run-modules-system.sh create mode 100644 bin/run-monitor.sh mode change 100644 => 100755 docker/copy.sh mode change 100644 => 100755 docker/deploy.sh diff --git a/.java-version b/.java-version index 468437494..7273c0fa8 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -1.8 \ No newline at end of file +25 diff --git a/.mvn/jvm.config b/.mvn/jvm.config index b23750845..615114a0c 100644 --- a/.mvn/jvm.config +++ b/.mvn/jvm.config @@ -9,4 +9,5 @@ -XX:+TieredCompilation -Xshare:on -Djava.net.preferIPv4Stack=true --Djava.security.egd=file:/dev/./urandom \ No newline at end of file +-Djava.security.egd=file:/dev/./urandom +-Dfile.encoding=UTF-8 diff --git a/.mvn/maven.config b/.mvn/maven.config index 06ceb5e0b..d0c847ce4 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1,3 +1,3 @@ --Djava.version=1.8 +-Djava.version=25 -Drevision=1.0.0 --Dchangelist=-SNAPSHOT \ No newline at end of file +-Dchangelist=-SNAPSHOT diff --git a/bin/clean.bat b/bat/clean.bat similarity index 100% rename from bin/clean.bat rename to bat/clean.bat diff --git a/bin/package.bat b/bat/package.bat similarity index 100% rename from bin/package.bat rename to bat/package.bat diff --git a/bin/run-auth.bat b/bat/run-auth.bat similarity index 100% rename from bin/run-auth.bat rename to bat/run-auth.bat diff --git a/bin/run-gateway.bat b/bat/run-gateway.bat similarity index 100% rename from bin/run-gateway.bat rename to bat/run-gateway.bat diff --git a/bin/run-modules-file.bat b/bat/run-modules-file.bat similarity index 100% rename from bin/run-modules-file.bat rename to bat/run-modules-file.bat diff --git a/bin/run-modules-gen.bat b/bat/run-modules-gen.bat similarity index 100% rename from bin/run-modules-gen.bat rename to bat/run-modules-gen.bat diff --git a/bin/run-modules-job.bat b/bat/run-modules-job.bat similarity index 100% rename from bin/run-modules-job.bat rename to bat/run-modules-job.bat diff --git a/bin/run-modules-system.bat b/bat/run-modules-system.bat similarity index 100% rename from bin/run-modules-system.bat rename to bat/run-modules-system.bat diff --git a/bin/run-monitor.bat b/bat/run-monitor.bat similarity index 100% rename from bin/run-monitor.bat rename to bat/run-monitor.bat diff --git a/bin/clean.sh b/bin/clean.sh new file mode 100644 index 000000000..5438aa35d --- /dev/null +++ b/bin/clean.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 娓呯悊宸ョ▼target鐢熸垚璺緞銆" +echo "" + +cd "$(dirname "$0")" || exit +cd .. + +mvn clean diff --git a/bin/package.sh b/bin/package.sh new file mode 100644 index 000000000..409307c1e --- /dev/null +++ b/bin/package.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 鎵撳寘Web宸ョ▼锛岀敓鎴恮ar/jar鍖呮枃浠躲" +echo "" + +cd "$(dirname "$0")" || exit +cd .. + +mvn clean package -Dmaven.test.skip=true diff --git a/bin/run-auth.sh b/bin/run-auth.sh new file mode 100644 index 000000000..39324960c --- /dev/null +++ b/bin/run-auth.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Auth宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-auth/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-auth.jar diff --git a/bin/run-gateway.sh b/bin/run-gateway.sh new file mode 100644 index 000000000..19f76c433 --- /dev/null +++ b/bin/run-gateway.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Gateway宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-gateway/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-gateway.jar diff --git a/bin/run-modules-file.sh b/bin/run-modules-file.sh new file mode 100644 index 000000000..8068390ae --- /dev/null +++ b/bin/run-modules-file.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-File宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-modules/ruoyi-file/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-modules-file.jar diff --git a/bin/run-modules-gen.sh b/bin/run-modules-gen.sh new file mode 100644 index 000000000..edde8b4b4 --- /dev/null +++ b/bin/run-modules-gen.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-Gen宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-modules/ruoyi-gen/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-modules-gen.jar diff --git a/bin/run-modules-job.sh b/bin/run-modules-job.sh new file mode 100644 index 000000000..add1ddcb4 --- /dev/null +++ b/bin/run-modules-job.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-Job宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-modules/ruoyi-job/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-modules-job.jar diff --git a/bin/run-modules-system.sh b/bin/run-modules-system.sh new file mode 100644 index 000000000..5380f7157 --- /dev/null +++ b/bin/run-modules-system.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Modules-System宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-modules/ruoyi-system/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-modules-system.jar diff --git a/bin/run-monitor.sh b/bin/run-monitor.sh new file mode 100644 index 000000000..76acb04d6 --- /dev/null +++ b/bin/run-monitor.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo "" +echo "[淇℃伅] 浣跨敤Jar鍛戒护杩愯Monitor宸ョ▼銆" +echo "" + +cd "$(dirname "$0")" || exit +cd ../ruoyi-visual/ruoyi-monitor/target || exit + +JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" + +java -Dfile.encoding=utf-8 "$JAVA_OPTS" -jar ruoyi-visual-monitor.jar diff --git a/docker/copy.sh b/docker/copy.sh old mode 100644 new mode 100755 index 956a071d8..743946780 --- a/docker/copy.sh +++ b/docker/copy.sh @@ -10,7 +10,8 @@ usage() { # copy sql echo "begin copy sql " cp ../sql/ry_20250523.sql ./mysql/db -cp ../sql/ry_config_20250224.sql ./mysql/db +cp ../sql/ry_config*.sql ./mysql/db +cp ../sql/ry_seata*.sql ./mysql/db # copy html echo "begin copy html " diff --git a/docker/deploy.sh b/docker/deploy.sh old mode 100644 new mode 100755 index 024890920..40efa531e --- a/docker/deploy.sh +++ b/docker/deploy.sh @@ -10,6 +10,7 @@ usage() { port(){ firewall-cmd --add-port=80/tcp --permanent firewall-cmd --add-port=8080/tcp --permanent + firewall-cmd --add-port=8181/tcp --permanent firewall-cmd --add-port=8848/tcp --permanent firewall-cmd --add-port=9848/tcp --permanent firewall-cmd --add-port=9849/tcp --permanent @@ -26,22 +27,22 @@ port(){ # 鍚姩鍩虹鐜锛堝繀椤伙級 base(){ - docker-compose up -d ruoyi-mysql ruoyi-redis ruoyi-nacos + docker compose up -d ruoyi-mysql ruoyi-redis ruoyi-nacos } # 鍚姩绋嬪簭妯″潡锛堝繀椤伙級 modules(){ - docker-compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system + docker compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system } # 鍏抽棴鎵鏈夌幆澧/妯″潡 stop(){ - docker-compose stop + docker compose stop } # 鍒犻櫎鎵鏈夌幆澧/妯″潡 rm(){ - docker-compose rm + docker compose rm } # 鏍规嵁杈撳叆鍙傛暟锛岄夋嫨鎵ц瀵瑰簲鏂规硶锛屼笉杈撳叆鍒欐墽琛屼娇鐢ㄨ鏄 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index b792f15bf..be99e0f06 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,3 @@ -version : '3.8' services: ruoyi-nacos: container_name: ruoyi-nacos @@ -7,10 +6,17 @@ services: context: ./nacos environment: - MODE=standalone + - NACOS_AUTH_ENABLE=true + - NACOS_AUTH_TOKEN=U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 + - NACOS_AUTH_ENABLE=true + - NACOS_AUTH_CACHE_ENABLE=true + - NACOS_AUTH_IDENTITY_KEY=serverIdentity + - NACOS_AUTH_IDENTITY_VALUE=security volumes: - ./nacos/logs/:/home/nacos/logs - ./nacos/conf/application.properties:/home/nacos/conf/application.properties ports: + - "8181:8080" - "8848:8848" - "9848:9848" - "9849:9849" @@ -69,7 +75,7 @@ services: container_name: ruoyi-gateway build: context: ./ruoyi/gateway - dockerfile: ruoyi/gateway/Dockerfile + dockerfile: Dockerfile ports: - "8080:8080" depends_on: @@ -80,7 +86,7 @@ services: container_name: ruoyi-auth build: context: ./ruoyi/auth - dockerfile: ruoyi/auth/Dockerfile + dockerfile: Dockerfile ports: - "9200:9200" depends_on: @@ -91,7 +97,7 @@ services: container_name: ruoyi-modules-system build: context: ./ruoyi/modules/system - dockerfile: ruoyi/modules/system/Dockerfile + dockerfile: Dockerfile ports: - "9201:9201" depends_on: @@ -104,7 +110,7 @@ services: container_name: ruoyi-modules-gen build: context: ./ruoyi/modules/gen - dockerfile: ruoyi/modules/gen/Dockerfile + dockerfile: Dockerfile ports: - "9202:9202" depends_on: @@ -115,7 +121,7 @@ services: container_name: ruoyi-modules-job build: context: ./ruoyi/modules/job - dockerfile: ruoyi/modules/job/Dockerfile + dockerfile: Dockerfile ports: - "9203:9203" depends_on: @@ -126,7 +132,7 @@ services: container_name: ruoyi-modules-file build: context: ./ruoyi/modules/file - dockerfile: ruoyi/modules/file/Dockerfile + dockerfile: Dockerfile ports: - "9300:9300" volumes: @@ -135,6 +141,6 @@ services: container_name: ruoyi-visual-monitor build: context: ./ruoyi/visual/monitor - dockerfile: ruoyi/visual/monitor/Dockerfile + dockerfile: Dockerfile ports: - "9100:9100" diff --git a/docker/nacos/Dockerfile b/docker/nacos/Dockerfile index 44b5672a9..ae5876957 100644 --- a/docker/nacos/Dockerfile +++ b/docker/nacos/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM nacos/nacos-server +FROM nacos/nacos-server:v3.1.1 # author LABEL org.opencontainers.image.authors="ruoyi" diff --git a/docker/nacos/conf/application.properties b/docker/nacos/conf/application.properties index 7f2a61f2e..ff04c0c7c 100644 --- a/docker/nacos/conf/application.properties +++ b/docker/nacos/conf/application.properties @@ -22,11 +22,12 @@ nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/ nacos.core.auth.system.type=nacos nacos.core.auth.enabled=false -nacos.core.auth.default.token.expire.seconds=18000 -nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 +nacos.core.auth.plugin.nacos.token.expire.seconds=18000 +nacos.core.auth.plugin.nacos.token.secret.key=U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 nacos.core.auth.caching.enabled=true nacos.core.auth.enable.userAgentAuthWhite=false nacos.core.auth.server.identity.key=serverIdentity nacos.core.auth.server.identity.value=security nacos.istio.mcp.server.enabled=false + diff --git a/docker/ruoyi/auth/Dockerfile b/docker/ruoyi/auth/Dockerfile index 94bd93b8c..ce6801393 100644 --- a/docker/ruoyi/auth/Dockerfile +++ b/docker/ruoyi/auth/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-auth.jar /home/ruoyi/ruoyi-auth.jar # 鍚姩璁よ瘉鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-auth.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-auth.jar"] diff --git a/docker/ruoyi/gateway/Dockerfile b/docker/ruoyi/gateway/Dockerfile index 1185c4cee..eebdeeec2 100644 --- a/docker/ruoyi/gateway/Dockerfile +++ b/docker/ruoyi/gateway/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar # 鍚姩缃戝叧鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"] diff --git a/docker/ruoyi/modules/file/Dockerfile b/docker/ruoyi/modules/file/Dockerfile index 6c0a3b4d8..eea74f487 100644 --- a/docker/ruoyi/modules/file/Dockerfile +++ b/docker/ruoyi/modules/file/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-modules-file.jar /home/ruoyi/ruoyi-modules-file.jar # 鍚姩鏂囦欢鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"] diff --git a/docker/ruoyi/modules/gen/Dockerfile b/docker/ruoyi/modules/gen/Dockerfile index cab31da9f..814cf8f28 100644 --- a/docker/ruoyi/modules/gen/Dockerfile +++ b/docker/ruoyi/modules/gen/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-modules-gen.jar /home/ruoyi/ruoyi-modules-gen.jar # 鍚姩浠g爜鐢熸垚鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"] diff --git a/docker/ruoyi/modules/job/Dockerfile b/docker/ruoyi/modules/job/Dockerfile index b8e28b4a5..2ae353ec9 100644 --- a/docker/ruoyi/modules/job/Dockerfile +++ b/docker/ruoyi/modules/job/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-modules-job.jar /home/ruoyi/ruoyi-modules-job.jar # 鍚姩瀹氭椂浠诲姟鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"] diff --git a/docker/ruoyi/modules/system/Dockerfile b/docker/ruoyi/modules/system/Dockerfile index 45270c0c9..615ea9baa 100644 --- a/docker/ruoyi/modules/system/Dockerfile +++ b/docker/ruoyi/modules/system/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar # 鍚姩绯荤粺鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"] diff --git a/docker/ruoyi/visual/monitor/Dockerfile b/docker/ruoyi/visual/monitor/Dockerfile index cc7cfbbaf..9184896de 100644 --- a/docker/ruoyi/visual/monitor/Dockerfile +++ b/docker/ruoyi/visual/monitor/Dockerfile @@ -1,5 +1,5 @@ # 鍩虹闀滃儚 -FROM openjdk:8-jre +FROM maven:3.9.11-eclipse-temurin-8-alpine # author LABEL org.opencontainers.image.authors="ruoyi" @@ -12,4 +12,4 @@ WORKDIR /home/ruoyi # 澶嶅埗jar鏂囦欢鍒拌矾寰 COPY ./jar/ruoyi-visual-monitor.jar /home/ruoyi/ruoyi-visual-monitor.jar # 鍚姩绯荤粺鏈嶅姟 -ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"] \ No newline at end of file +ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"] diff --git a/pom.xml b/pom.xml index aaa6b01b8..019931583 100644 --- a/pom.xml +++ b/pom.xml @@ -16,29 +16,32 @@ 3.6.6 UTF-8 UTF-8 - 1.8 - 2.7.18 - 2021.0.9 - 2021.0.6.1 - 2.7.16 + 25 + + 3.5.8 + 2025.0.0 + 2025.0.0.0 + 3.5.6 + 1.27.2 2.3.3 - 2.0.0 - 1.2.23 + 2.1.1 + 1.2.27 4.3.1 2.19.0 2.3 - 2.0.57 + 2.0.60 0.9.1 8.2.2 4.1.2 - 1.6.9 + 3.0.0 2.14.4 9.0.112 - 1.2.13 - 5.3.39 + 1.5.22 + 6.2.15 + 3.14.1 5.4 @@ -124,7 +127,7 @@ org.springdoc - springdoc-openapi-ui + springdoc-openapi-starter-webmvc-ui ${springdoc.version} @@ -278,13 +281,7 @@ - org.apache.maven.plugins maven-compiler-plugin - - ${java.version} - ${java.version} - ${project.build.sourceEncoding} - com.cosium.code @@ -305,6 +302,16 @@ + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + com.cosium.code git-code-format-maven-plugin diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java index 59527814c..1471117e7 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java @@ -1,12 +1,12 @@ package com.ruoyi.system.api.domain; import com.ruoyi.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.ArrayList; import java.util.List; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java index 2972796e5..471e515a4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java @@ -4,8 +4,8 @@ import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.web.domain.BaseEntity; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java index d432fb837..843963902 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictType.java @@ -3,9 +3,9 @@ package com.ruoyi.system.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java index 4e4d4d814..a78714be8 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java @@ -3,10 +3,10 @@ package com.ruoyi.system.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.Set; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java index d8b34da1a..dd94bd4f3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java @@ -7,9 +7,9 @@ import com.ruoyi.common.core.annotation.Excels; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.xss.Xss; +import jakarta.validation.constraints.*; import java.util.Date; import java.util.List; -import javax.validation.constraints.*; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 2a6f66692..09edd8348 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -10,7 +10,7 @@ import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml index f456b03c0..5d3cd5220 100644 --- a/ruoyi-auth/src/main/resources/bootstrap.yml +++ b/ruoyi-auth/src/main/resources/bootstrap.yml @@ -1,9 +1,9 @@ # Tomcat -server: +server: port: 9200 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-auth @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml index cdd603233..5c86613bd 100644 --- a/ruoyi-common/ruoyi-common-core/pom.xml +++ b/ruoyi-common/ruoyi-common-core/pom.xml @@ -2,111 +2,110 @@ - - com.ruoyi - ruoyi-common - 3.6.6 - - 4.0.0 - - ruoyi-common-core - - - ruoyi-common-core鏍稿績妯″潡 - - - - - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - - org.springframework.cloud - spring-cloud-starter-loadbalancer - - - - - org.springframework - spring-context-support - - - - - org.springframework - spring-web - - - - - com.alibaba - transmittable-thread-local - - - - - com.github.pagehelper - pagehelper-spring-boot-starter - - - - - org.springframework.boot - spring-boot-starter-validation - - - - - com.fasterxml.jackson.core - jackson-databind - - - - - com.alibaba.fastjson2 - fastjson2 - - - - - io.jsonwebtoken - jjwt - - - - - javax.xml.bind - jaxb-api - - - - - org.apache.commons - commons-lang3 - - - - - commons-io - commons-io - - - - - org.apache.poi - poi-ooxml - - - - - javax.servlet - javax.servlet-api - - - + + com.ruoyi + ruoyi-common + 3.6.6 + + 4.0.0 + + ruoyi-common-core + + + ruoyi-common-core鏍稿績妯″潡 + + + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + + org.springframework + spring-context-support + + + + + org.springframework + spring-web + + + + org.springframework + spring-aspects + + + + + com.alibaba + transmittable-thread-local + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + com.fasterxml.jackson.core + jackson-databind + + + + + com.alibaba.fastjson2 + fastjson2 + + + + + io.jsonwebtoken + jjwt + + + + + org.apache.commons + commons-lang3 + + + + + commons-io + commons-io + + + + + org.apache.poi + poi-ooxml + + + + + jakarta.servlet + jakarta.servlet-api + + + diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java index 74946b2fc..6e3502ef5 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java @@ -4,6 +4,10 @@ import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.text.Convert; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -12,10 +16,6 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java index f28828f8a..a61eab62e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/bean/BeanValidators.java @@ -1,9 +1,9 @@ package com.ruoyi.common.core.utils.bean; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.Validator; import java.util.Set; -import javax.validation.ConstraintViolation; -import javax.validation.ConstraintViolationException; -import javax.validation.Validator; /** * bean瀵硅薄灞炴ч獙璇 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java index ac459bfe9..f4ee5f798 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java @@ -1,6 +1,8 @@ package com.ruoyi.common.core.utils.file; import com.ruoyi.common.core.utils.StringUtils; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -9,8 +11,6 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; /** diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java index ac113370f..c9d0fae3e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java @@ -2,9 +2,9 @@ package com.ruoyi.common.core.utils.ip; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; +import jakarta.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; -import javax.servlet.http.HttpServletRequest; /** * 鑾峰彇IP鏂规硶 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java index 3c142a101..129ac6d41 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java @@ -11,6 +11,7 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.file.FileTypeUtils; import com.ruoyi.common.core.utils.file.ImageUtils; import com.ruoyi.common.core.utils.reflect.ReflectUtils; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; @@ -30,7 +31,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.RegExUtils; import org.apache.commons.lang3.reflect.FieldUtils; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java index d82a6d9e2..ae5b60d6b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/Xss.java @@ -1,11 +1,11 @@ package com.ruoyi.common.core.xss; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import javax.validation.Constraint; -import javax.validation.Payload; /** * 鑷畾涔墄ss鏍¢獙娉ㄨВ diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java index 277935ead..e5da215ba 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java @@ -1,10 +1,10 @@ package com.ruoyi.common.core.xss; import com.ruoyi.common.core.utils.StringUtils; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; /** * 鑷畾涔墄ss鏍¢獙娉ㄨВ瀹炵幇 diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java index 51913923c..9885e684d 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java @@ -12,10 +12,10 @@ import com.ruoyi.common.log.filter.PropertyPreExcludeFilter; import com.ruoyi.common.log.service.AsyncLogService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysOperLog; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.Collection; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java index 04796acd6..27de13e52 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java @@ -6,8 +6,8 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.ip.IpUtils; import feign.RequestInterceptor; import feign.RequestTemplate; +import jakarta.servlet.http.HttpServletRequest; import java.util.Map; -import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Component; /** diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java index f3c32f9da..9fe422b15 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java @@ -10,7 +10,7 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.html.EscapeUtil; import com.ruoyi.common.core.web.domain.AjaxResult; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindException; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java index c2730c37c..09f460116 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java @@ -7,8 +7,8 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.AsyncHandlerInterceptor; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 10601b663..1a815baeb 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -10,10 +10,10 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; +import jakarta.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; -import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java index f14b64a57..c0158a5f2 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java @@ -6,7 +6,7 @@ import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.api.model.LoginUser; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; /** diff --git a/ruoyi-common/ruoyi-common-swagger/pom.xml b/ruoyi-common/ruoyi-common-swagger/pom.xml index ff0274bf9..d13141822 100644 --- a/ruoyi-common/ruoyi-common-swagger/pom.xml +++ b/ruoyi-common/ruoyi-common-swagger/pom.xml @@ -8,9 +8,9 @@ 3.6.6 4.0.0 - + ruoyi-common-swagger - + ruoyi-common-swagger绯荤粺鎺ュ彛 @@ -26,7 +26,7 @@ org.springdoc - springdoc-openapi-ui + springdoc-openapi-starter-webmvc-ui diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml index 324c4b931..af142e815 100644 --- a/ruoyi-gateway/pom.xml +++ b/ruoyi-gateway/pom.xml @@ -19,7 +19,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux @@ -57,7 +57,7 @@ org.springframework.boot spring-boot-starter-actuator - + org.springframework.cloud @@ -79,7 +79,7 @@ org.springdoc - springdoc-openapi-webflux-ui + springdoc-openapi-starter-webflux-ui ${springdoc.version} diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java index e5e15c0e1..37f27f8ed 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java @@ -7,8 +7,8 @@ import com.alibaba.nacos.common.notify.listener.Subscriber; import com.ruoyi.common.core.utils.StringUtils; import java.util.Set; import java.util.stream.Collectors; -import org.springdoc.core.AbstractSwaggerUiConfigProperties; -import org.springdoc.core.SwaggerUiConfigProperties; +import org.springdoc.core.properties.AbstractSwaggerUiConfigProperties; +import org.springdoc.core.properties.SwaggerUiConfigProperties; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java index 7a17a9151..8a7410583 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java @@ -11,10 +11,10 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.CaptchaProperties; import com.ruoyi.gateway.service.ValidateCodeService; +import jakarta.annotation.Resource; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.TimeUnit; -import javax.annotation.Resource; import javax.imageio.ImageIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml index b6dc98ae6..1e83d9d65 100644 --- a/ruoyi-gateway/src/main/resources/bootstrap.yml +++ b/ruoyi-gateway/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 8080 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-gateway @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 @@ -33,7 +33,7 @@ spring: datasource: ds1: nacos: - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP data-type: json diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java index dcb3fe227..679d0f005 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FilterConfig.java @@ -1,9 +1,9 @@ package com.ruoyi.file.config; import com.ruoyi.file.filter.RefererFilter; +import jakarta.servlet.DispatcherType; import java.util.HashMap; import java.util.Map; -import javax.servlet.DispatcherType; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.web.servlet.FilterRegistrationBean; diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java index 4d8d3d415..9c895a915 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/filter/RefererFilter.java @@ -1,16 +1,16 @@ package com.ruoyi.file.filter; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.List; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; /** * 闃茬洍閾捐繃婊ゅ櫒 diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml index 55ff41125..60c16c5d6 100644 --- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9300 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-file @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java index 6b7c82863..e3293bc8b 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java @@ -12,11 +12,11 @@ import com.ruoyi.gen.domain.GenTable; import com.ruoyi.gen.domain.GenTableColumn; import com.ruoyi.gen.service.IGenTableColumnService; import com.ruoyi.gen.service.IGenTableService; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java index 14049f85d..f9b584363 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java @@ -3,9 +3,9 @@ package com.ruoyi.gen.domain; import com.ruoyi.common.core.constant.GenConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; import org.apache.commons.lang3.ArrayUtils; /** diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java index 75d5460d0..e56cda372 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java @@ -2,7 +2,7 @@ package com.ruoyi.gen.domain; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; /** * 浠g爜鐢熸垚涓氬姟瀛楁琛 gen_table_column diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml index 0ef5a4575..252fc5dcd 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9202 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-gen @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm index 363979bdb..0395b2fcc 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm @@ -2,7 +2,7 @@ package ${packageName}.controller; import java.util.List; import java.io.IOException; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -27,7 +27,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo; /** * ${functionName}Controller - * + * * @author ${author} * @date ${datetime} */ diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java index 9879599e7..e730ba887 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java @@ -15,8 +15,8 @@ import com.ruoyi.job.domain.SysJob; import com.ruoyi.job.service.ISysJobService; import com.ruoyi.job.util.CronUtils; import com.ruoyi.job.util.ScheduleUtils; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java index fd497e7e1..a9b73c09e 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobLogController.java @@ -9,8 +9,8 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.job.domain.SysJobLog; import com.ruoyi.job.service.ISysJobLogService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java index 0863e356e..c2becb6d0 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java @@ -7,9 +7,9 @@ import com.ruoyi.common.core.constant.ScheduleConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.job.util.CronUtils; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import java.util.Date; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java index 12b224287..e677e8394 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java @@ -6,8 +6,8 @@ import com.ruoyi.job.domain.SysJob; import com.ruoyi.job.mapper.SysJobMapper; import com.ruoyi.job.util.CronUtils; import com.ruoyi.job.util.ScheduleUtils; +import jakarta.annotation.PostConstruct; import java.util.List; -import javax.annotation.PostConstruct; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.Scheduler; diff --git a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml index b86f8c9e1..01b72edd0 100644 --- a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9203 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-job @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java index febe1fe07..615c2a193 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysConfigController.java @@ -10,8 +10,8 @@ import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java index 06bb898d9..86cdecc6c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictDataController.java @@ -12,9 +12,9 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysDictData; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; +import jakarta.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java index 2410959e6..a12491660 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java @@ -10,8 +10,8 @@ import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysDictType; import com.ruoyi.system.service.ISysDictTypeService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java index caef1ac8e..83604ab06 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java @@ -12,8 +12,8 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java index 200bba33e..a619daf5f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java @@ -10,8 +10,8 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java index 01cd4153d..8a88e0f53 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysPostController.java @@ -10,8 +10,8 @@ import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index b677f3261..872d6d764 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -15,8 +15,8 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; -import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 5da3af1c9..a533ff41c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -24,12 +24,12 @@ import com.ruoyi.system.service.ISysPermissionService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index a2f7b4848..256f722ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -3,8 +3,8 @@ package com.ruoyi.system.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java index 84278b996..8e16424c6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java @@ -1,11 +1,11 @@ package com.ruoyi.system.domain; import com.ruoyi.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.ArrayList; import java.util.List; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index 23e4a8186..4b4034799 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -2,8 +2,8 @@ package com.ruoyi.system.domain; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.xss.Xss; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index 5d82929cf..e9084f819 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -3,9 +3,9 @@ package com.ruoyi.system.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.web.domain.BaseEntity; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index 06425dd4f..2570899d5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -9,9 +9,9 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; +import jakarta.annotation.PostConstruct; import java.util.Collection; import java.util.List; -import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 5625c8885..d27379621 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -9,11 +9,11 @@ import com.ruoyi.system.api.domain.SysDictType; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.mapper.SysDictTypeMapper; import com.ruoyi.system.service.ISysDictTypeService; +import jakarta.annotation.PostConstruct; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 961222c00..cfdd55ab1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -20,10 +20,10 @@ import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; +import jakarta.validation.Validator; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import javax.validation.Validator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index 40ab78165..1a8a6c305 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9201 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-system @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java index aad705333..95546b9e3 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java +++ b/ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/config/WebSecurityConfigurer.java @@ -32,8 +32,8 @@ public class WebSecurityConfigurer { .frameOptions() .disable() .and() - .authorizeRequests() - .antMatchers( + .authorizeHttpRequests() + .requestMatchers( adminContextPath + "/assets/**", adminContextPath + "/login", adminContextPath + "/actuator/**", diff --git a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml b/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml index 13d90cd72..9f31a9e78 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml +++ b/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9100 # Spring -spring: +spring: application: # 搴旂敤鍚嶇О name: ruoyi-monitor @@ -14,10 +14,10 @@ spring: nacos: discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 config: # 閰嶇疆涓績鍦板潃 - server-addr: 127.0.0.1:8848 + server-addr: 127.0.0.1:8181 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 diff --git a/sql/ry_20250523.sql b/sql/ry_20250523.sql index ae47ac165..7a61b9386 100644 --- a/sql/ry_20250523.sql +++ b/sql/ry_20250523.sql @@ -178,7 +178,7 @@ insert into sys_menu values('108', '鏃ュ織绠$悊', '1', '9', 'log', insert into sys_menu values('109', '鍦ㄧ嚎鐢ㄦ埛', '2', '1', 'online', 'monitor/online/index', '', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '鍦ㄧ嚎鐢ㄦ埛鑿滃崟'); insert into sys_menu values('110', '瀹氭椂浠诲姟', '2', '2', 'job', 'monitor/job/index', '', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '瀹氭椂浠诲姟鑿滃崟'); insert into sys_menu values('111', 'Sentinel鎺у埗鍙', '2', '3', 'http://localhost:8718', '', '', '', 0, 0, 'C', '0', '0', 'monitor:sentinel:list', 'sentinel', 'admin', sysdate(), '', null, '娴侀噺鎺у埗鑿滃崟'); -insert into sys_menu values('112', 'Nacos鎺у埗鍙', '2', '4', 'http://localhost:8848/nacos', '', '', '', 0, 0, 'C', '0', '0', 'monitor:nacos:list', 'nacos', 'admin', sysdate(), '', null, '鏈嶅姟娌荤悊鑿滃崟'); +insert into sys_menu values('112', 'Nacos鎺у埗鍙', '2', '4', 'http://localhost:8181', '', '', '', 0, 0, 'C', '0', '0', 'monitor:nacos:list', 'nacos', 'admin', sysdate(), '', null, '鏈嶅姟娌荤悊鑿滃崟'); insert into sys_menu values('113', 'Admin鎺у埗鍙', '2', '5', 'http://localhost:9100/login', '', '', '', 0, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '鏈嶅姟鐩戞帶鑿滃崟'); insert into sys_menu values('114', '琛ㄥ崟鏋勫缓', '3', '1', 'build', 'tool/build/index', '', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '琛ㄥ崟鏋勫缓鑿滃崟'); insert into sys_menu values('115', '浠g爜鐢熸垚', '3', '2', 'gen', 'tool/gen/index', '', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '浠g爜鐢熸垚鑿滃崟');