From 1fb4c0f04634d2e664d85726a0c7afa5ca9d50bf Mon Sep 17 00:00:00 2001 From: liyongjie <1318551549@qq.com> Date: Sat, 20 Apr 2024 19:03:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=B3=A8=E9=94=80+=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 35 +- docker/docker-compose.yml | 18 +- docker/nacos/conf/application.properties | 8 - .../main/java/com/muyu/create/CreateEsc.java | 5 +- muyu-analyze/pom.xml | 10 +- .../muyu/analyze/MuYuAnalyzeApplication.java | 6 +- .../com/muyu/analyze/config/KafkaConfig.java | 9 +- .../com/muyu/analyze/config/TutConfig.java | 2 +- .../com/muyu/analyze/consumer/Consumer.java | 3 +- .../controller/RealTimeDataController.java | 1 - .../muyu/analyze/mapper/VehicleMapper.java | 2 +- .../muyu/analyze/service/VehicleService.java | 4 +- .../analyze/service/impl/BreakdownImpl.java | 13 +- .../analyze/service/impl/FenceAlarmImpl.java | 60 +- .../service/impl/RealTimeDataEventImpl.java | 8 +- .../analyze/service/impl/StoredEventImpl.java | 22 +- .../com/muyu/analyze/utils/AnalyzeUtils.java | 11 +- .../com/muyu/analyze/utils/StateConstant.java | 12 +- .../mapper/business/StoredEventMapper.xml | 19 +- muyu-analyze/src/test/java/LoadTest.java | 2 +- .../com/muyu/auth/MuYuAuthApplication.java | 8 +- .../muyu/auth/controller/TokenController.java | 21 +- .../java/com/muyu/auth/form/RegisterBody.java | 3 +- .../muyu/auth/service/SysLoginService.java | 50 +- .../muyu/auth/service/SysPasswordService.java | 33 +- .../auth/service/SysRecordLogService.java | 17 +- muyu-auth/src/main/resources/logback.xml | 70 +- .../muyu/common/core/annotation/Excel.java | 21 +- .../muyu/common/core/annotation/Excels.java | 3 +- .../common/core/constant/CacheConstants.java | 3 +- .../muyu/common/core/constant/Constants.java | 11 +- .../common/core/constant/GenConstants.java | 167 +- .../muyu/common/core/constant/HttpStatus.java | 3 +- .../core/constant/MQQueueConstants.java | 1 + .../core/constant/ScheduleConstants.java | 32 +- .../core/constant/SecurityConstants.java | 3 +- .../core/constant/ServiceNameConstants.java | 3 +- .../common/core/constant/TokenConstants.java | 3 +- .../common/core/constant/UserConstants.java | 71 +- .../core/context/SecurityContextHolder.java | 48 +- .../muyu/common/core/domain/PageResult.java | 13 +- .../com/muyu/common/core/domain/Result.java | 62 +- .../muyu/common/core/enums/UserStatus.java | 12 +- .../core/exception/CaptchaException.java | 6 +- .../core/exception/CheckedException.java | 15 +- .../core/exception/DemoModeException.java | 6 +- .../core/exception/GlobalException.java | 23 +- .../core/exception/InnerAuthException.java | 6 +- .../core/exception/PreAuthorizeException.java | 6 +- .../core/exception/ServiceException.java | 29 +- .../common/core/exception/UtilException.java | 12 +- .../exception/auth/NotLoginException.java | 6 +- .../auth/NotPermissionException.java | 9 +- .../core/exception/auth/NotRoleException.java | 9 +- .../core/exception/base/BaseException.java | 30 +- .../core/exception/file/FileException.java | 6 +- .../FileNameLengthLimitExceededException.java | 8 +- .../file/FileSizeLimitExceededException.java | 8 +- .../exception/file/FileUploadException.java | 27 +- .../file/InvalidExtensionException.java | 39 +- .../core/exception/job/TaskException.java | 15 +- .../user/CaptchaExpireException.java | 6 +- .../core/exception/user/UserException.java | 8 +- .../user/UserPasswordNotMatchException.java | 6 +- .../com/muyu/common/core/text/CharsetKit.java | 56 +- .../com/muyu/common/core/text/Convert.java | 496 ++---- .../muyu/common/core/text/StrFormatter.java | 42 +- .../com/muyu/common/core/utils/DateUtils.java | 67 +- .../muyu/common/core/utils/ExceptionUtil.java | 15 +- .../com/muyu/common/core/utils/JwtUtils.java | 32 +- .../com/muyu/common/core/utils/PageUtils.java | 9 +- .../muyu/common/core/utils/ServletUtils.java | 154 +- .../muyu/common/core/utils/SpringUtils.java | 36 +- .../muyu/common/core/utils/StringUtils.java | 271 ++-- .../common/core/utils/bean/BeanUtils.java | 48 +- .../core/utils/bean/BeanValidators.java | 9 +- .../common/core/utils/file/FileTypeUtils.java | 39 +- .../common/core/utils/file/FileUtils.java | 117 +- .../common/core/utils/file/ImageUtils.java | 41 +- .../common/core/utils/file/MimeTypeUtils.java | 21 +- .../common/core/utils/html/EscapeUtil.java | 75 +- .../common/core/utils/html/HTMLFilter.java | 211 +-- .../muyu/common/core/utils/ip/IpUtils.java | 169 +- .../core/utils/poi/ExcelHandlerAdapter.java | 10 +- .../muyu/common/core/utils/poi/ExcelUtil.java | 722 +++------ .../core/utils/reflect/ReflectUtils.java | 222 +-- .../muyu/common/core/utils/sign/Base64.java | 126 +- .../muyu/common/core/utils/sql/SqlUtil.java | 27 +- .../muyu/common/core/utils/uuid/IdUtils.java | 16 +- .../com/muyu/common/core/utils/uuid/Seq.java | 23 +- .../com/muyu/common/core/utils/uuid/UUID.java | 140 +- .../core/web/controller/BaseController.java | 44 +- .../common/core/web/domain/AjaxResult.java | 116 +- .../common/core/web/domain/BaseEntity.java | 76 +- .../common/core/web/domain/TreeEntity.java | 54 +- .../muyu/common/core/web/page/PageDomain.java | 72 +- .../common/core/web/page/TableDataInfo.java | 23 +- .../common/core/web/page/TableSupport.java | 9 +- .../java/com/muyu/common/core/xss/Xss.java | 9 +- .../muyu/common/core/xss/XssValidator.java | 12 +- .../datascope/annotation/DataScope.java | 3 +- .../datascope/aspect/DataScopeAspect.java | 76 +- .../common/datasource/annotation/Master.java | 5 +- .../common/datasource/annotation/Slave.java | 5 +- .../common/event/cache/VehicleEventCache.java | 25 +- .../constants/VehicleEventConstants.java | 8 +- .../com/muyu/common/log/annotation/Log.java | 6 +- .../com/muyu/common/log/aspect/LogAspect.java | 107 +- .../muyu/common/log/enums/BusinessStatus.java | 4 +- .../muyu/common/log/enums/BusinessType.java | 3 +- .../muyu/common/log/enums/OperatorType.java | 3 +- .../log/filter/PropertyPreExcludeFilter.java | 12 +- .../common/log/service/AsyncLogService.java | 6 +- .../FastJson2JsonRedisSerializer.java | 18 +- .../common/redis/configure/RedisConfig.java | 8 +- .../common/redis/service/RedisService.java | 106 +- muyu-common/muyu-common-security/pom.xml | 1 - .../annotation/EnableCustomConfig.java | 5 +- .../annotation/EnableRyFeignClients.java | 5 +- .../common/security/annotation/InnerAuth.java | 3 +- .../common/security/annotation/Logical.java | 4 +- .../security/annotation/RequiresLogin.java | 6 +- .../annotation/RequiresPermissions.java | 6 +- .../security/annotation/RequiresRoles.java | 5 +- .../security/aspect/InnerAuthAspect.java | 15 +- .../security/aspect/PreAuthorizeAspect.java | 31 +- .../muyu/common/security/auth/AuthLogic.java | 171 +- .../muyu/common/security/auth/AuthUtil.java | 48 +- .../security/config/ApplicationConfig.java | 6 +- .../common/security/config/WebMvcConfig.java | 15 +- .../feign/FeignAutoConfiguration.java | 6 +- .../feign/FeignRequestInterceptor.java | 21 +- .../handler/GlobalExceptionHandler.java | 39 +- .../interceptor/HeaderInterceptor.java | 18 +- .../common/security/service/TokenService.java | 49 +- .../muyu/common/security/utils/DictUtils.java | 23 +- .../common/security/utils/SecurityUtils.java | 38 +- muyu-common/muyu-common-swagger/pom.xml | 4 +- .../annotation/EnableCustomSwagger2.java | 7 +- .../config/SwaggerAutoConfiguration.java | 42 +- .../config/SwaggerBeanPostProcessor.java | 22 +- .../swagger/config/SwaggerProperties.java | 144 +- .../config/SwaggerWebConfiguration.java | 6 +- .../muyu/gateway/MuYuGatewayApplication.java | 8 +- .../muyu/gateway/config/CaptchaConfig.java | 11 +- .../muyu/gateway/config/GatewayConfig.java | 6 +- .../gateway/config/KaptchaTextCreator.java | 36 +- .../config/RouterFunctionConfiguration.java | 6 +- .../muyu/gateway/config/SwaggerProvider.java | 13 +- .../config/properties/CaptchaProperties.java | 15 +- .../properties/IgnoreWhiteProperties.java | 10 +- .../config/properties/XssProperties.java | 18 +- .../com/muyu/gateway/filter/AuthFilter.java | 47 +- .../gateway/filter/BlackListUrlFilter.java | 25 +- .../gateway/filter/CacheRequestFilter.java | 40 +- .../gateway/filter/ValidateCodeFilter.java | 22 +- .../com/muyu/gateway/filter/XssFilter.java | 37 +- .../handler/GatewayExceptionHandler.java | 20 +- .../handler/SentinelFallbackHandler.java | 18 +- .../muyu/gateway/handler/SwaggerHandler.java | 16 +- .../gateway/handler/ValidateCodeHandler.java | 14 +- .../gateway/service/ValidateCodeService.java | 4 +- .../service/impl/ValidateCodeServiceImpl.java | 36 +- muyu-gateway/src/main/resources/logback.xml | 70 +- .../com/muyu/business/domain/AlarmLogs.java | 3 +- .../muyu/business/domain/FaultCodeInfo.java | 40 +- .../com/muyu/business/domain/FaultLogs.java | 37 +- .../java/com/muyu/business/domain/Fence.java | 2 +- .../com/muyu/business/domain/Records.java | 2 +- .../com/muyu/business/domain/Vehicle.java | 2 +- .../business/domain/req/AlarmLogsReq.java | 1 + .../business/domain/req/AlarmLogsUpdReq.java | 1 + .../business/domain/req/FaultCodeReq.java | 13 +- .../business/domain/req/FaultCodesAddReq.java | 37 +- .../business/domain/req/FaultCodesUpdReq.java | 4 +- .../business/domain/req/FaultLogsAddReq.java | 8 +- .../business/domain/req/FaultLogsReq.java | 8 +- .../business/domain/req/FaultLogsUpdReq.java | 8 +- .../domain/request/FenceListRequest.java | 2 +- .../domain/request/FenceUpdateRequest.java | 2 +- .../domain/res/FaultCodeResponse.java | 42 +- .../domain/res/FaultLogsResponse.java | 36 +- .../remote/RemoteAlarmLogsService.java | 7 - .../muyu-business-server/pom.xml | 1 - .../controller/AlarmLogsController.java | 10 +- .../controller/FaultLogsController.java | 6 +- .../controller/FenceInfoController.java | 52 +- .../controller/RecordsController.java | 14 +- .../controller/VehicleDataController.java | 6 +- .../muyu/business/mapper/AlarmLogsMapper.java | 1 - .../muyu/business/mapper/FenceInfoMapper.java | 3 +- .../muyu/business/mapper/RecordsMapper.java | 3 +- .../business/service/AlarmLogsService.java | 1 + .../business/service/FaultLogsService.java | 1 - .../business/service/IFenceInfoService.java | 8 +- .../business/service/IRecordsService.java | 7 +- .../business/service/VehicleDataService.java | 3 +- .../service/impl/AlarmLogsServiceImpl.java | 9 +- .../service/impl/FaultCodesServiceImpl.java | 4 +- .../service/impl/FaultLogsServiceImpl.java | 8 +- .../service/impl/FenceInfoServiceImpl.java | 40 +- .../service/impl/RecordsServiceImpl.java | 28 +- .../service/impl/VehicleDataServiceImpl.java | 17 +- .../com/muyu/business/sms/SendSmsConfig.java | 28 +- .../src/main/resources/logback.xml | 70 +- .../mapper/business/AlarmLogsMapper.xml | 70 +- .../mapper/business/FaultCodesMapper.xml | 4 +- .../mapper/business/FaultLogsMapper.xml | 58 +- muyu-modules/muyu-business/pom.xml | 5 - .../com/muyu/file/common/domian/SysFile.java | 23 +- .../file/common/utils/FileUploadUtils.java | 92 +- .../muyu/file/remote/RemoteFileService.java | 3 +- .../factory/RemoteFileFallbackFactory.java | 12 +- .../muyu-file/muyu-file-server/pom.xml | 1 - .../com/muyu/file/MuYuFileApplication.java | 8 +- .../com/muyu/file/config/MinioConfig.java | 30 +- .../com/muyu/file/config/ResourcesConfig.java | 9 +- .../file/controller/SysFileController.java | 13 +- .../service/FastDfsSysFileServiceImpl.java | 7 +- .../muyu/file/service/ISysFileService.java | 3 +- .../file/service/LocalSysFileServiceImpl.java | 6 +- .../file/service/MinioSysFileServiceImpl.java | 6 +- .../src/main/resources/logback.xml | 70 +- muyu-modules/muyu-file/pom.xml | 5 - muyu-modules/muyu-gen/pom.xml | 2 +- .../java/com/muyu/gen/MuYuGenApplication.java | 6 +- .../java/com/muyu/gen/config/GenConfig.java | 43 +- .../muyu/gen/controller/GenController.java | 57 +- .../java/com/muyu/gen/domain/GenTable.java | 277 ++-- .../com/muyu/gen/domain/GenTableColumn.java | 256 ++- .../muyu/gen/mapper/GenTableColumnMapper.java | 3 +- .../com/muyu/gen/mapper/GenTableMapper.java | 5 +- .../service/GenTableColumnServiceImpl.java | 91 +- .../muyu/gen/service/GenTableServiceImpl.java | 193 +-- .../gen/service/IGenTableColumnService.java | 3 +- .../muyu/gen/service/IGenTableService.java | 7 +- .../main/java/com/muyu/gen/util/GenUtils.java | 107 +- .../muyu/gen/util/VelocityInitializer.java | 13 +- .../java/com/muyu/gen/util/VelocityUtils.java | 181 +-- .../muyu-gen/src/main/resources/logback.xml | 70 +- .../mapper/generator/GenTableColumnMapper.xml | 78 +- .../mapper/generator/GenTableMapper.xml | 245 ++- .../main/resources/vm/java/controller.java.vm | 51 +- .../src/main/resources/vm/java/domain.java.vm | 120 +- .../src/main/resources/vm/java/mapper.java.vm | 68 +- .../main/resources/vm/java/service.java.vm | 18 +- .../resources/vm/java/serviceImpl.java.vm | 168 +- .../main/resources/vm/java/sub-domain.java.vm | 98 +- .../src/main/resources/vm/js/api.js.vm | 46 +- .../main/resources/vm/vue/index-tree.vue.vm | 976 ++++++------ .../src/main/resources/vm/vue/index.vue.vm | 1232 ++++++++------- .../resources/vm/vue/v3/index-tree.vue.vm | 920 ++++++----- .../src/main/resources/vm/vue/v3/index.vue.vm | 1201 +++++++------- .../src/main/resources/vm/xml/mapper.xml.vm | 225 +-- muyu-modules/muyu-job/pom.xml | 2 +- .../java/com/muyu/job/MuYuJobApplication.java | 6 +- .../muyu/job/controller/SysJobController.java | 73 +- .../job/controller/SysJobLogController.java | 18 +- .../main/java/com/muyu/job/domain/SysJob.java | 119 +- .../java/com/muyu/job/domain/SysJobLog.java | 113 +- .../com/muyu/job/mapper/SysJobLogMapper.java | 3 +- .../com/muyu/job/mapper/SysJobMapper.java | 3 +- .../muyu/job/service/ISysJobLogService.java | 3 +- .../com/muyu/job/service/ISysJobService.java | 3 +- .../job/service/SysJobLogServiceImpl.java | 21 +- .../muyu/job/service/SysJobServiceImpl.java | 78 +- .../main/java/com/muyu/job/task/RyTask.java | 12 +- .../com/muyu/job/util/AbstractQuartzJob.java | 35 +- .../java/com/muyu/job/util/CronUtils.java | 27 +- .../java/com/muyu/job/util/JobInvokeUtil.java | 82 +- .../QuartzDisallowConcurrentExecution.java | 7 +- .../com/muyu/job/util/QuartzJobExecution.java | 7 +- .../java/com/muyu/job/util/ScheduleUtils.java | 37 +- .../muyu-job/src/main/resources/logback.xml | 70 +- .../resources/mapper/job/SysJobLogMapper.xml | 159 +- .../resources/mapper/job/SysJobMapper.xml | 202 +-- .../com/muyu/system/common/domain/Car.java | 62 +- .../muyu/system/common/domain/CarInfo.java | 1 + .../system/common/domain/EnterpriseInfo.java | 114 +- .../muyu/system/common/domain/SysConfig.java | 77 +- .../muyu/system/common/domain/SysDept.java | 155 +- .../system/common/domain/SysDictData.java | 128 +- .../system/common/domain/SysDictType.java | 65 +- .../system/common/domain/SysLogininfor.java | 63 +- .../muyu/system/common/domain/SysMenu.java | 203 ++- .../muyu/system/common/domain/SysNotice.java | 77 +- .../muyu/system/common/domain/SysOperLog.java | 173 +- .../muyu/system/common/domain/SysPost.java | 87 +- .../muyu/system/common/domain/SysRole.java | 177 +-- .../system/common/domain/SysRoleDept.java | 31 +- .../system/common/domain/SysRoleMenu.java | 31 +- .../muyu/system/common/domain/SysUser.java | 246 ++- .../system/common/domain/SysUserOnline.java | 73 +- .../system/common/domain/SysUserPost.java | 31 +- .../system/common/domain/SysUserRole.java | 31 +- .../system/common/domain/VehicleData.java | 4 +- .../system/common/domain/req/CarAddReq.java | 9 +- .../common/domain/req/CarInfoAddReq.java | 1 + .../system/common/domain/req/CarRequest.java | 5 +- .../common/domain/req/CarUpdateReq.java | 9 +- .../com/muyu/system/common/domain/track.java | 2 + .../system/common/domain/vo/BusinessVo.java | 40 +- .../muyu/system/common/domain/vo/CarVo.java | 1 + .../muyu/system/common/domain/vo/MetaVo.java | 45 +- .../system/common/domain/vo/RouterVo.java | 57 +- .../system/common/domain/vo/TreeSelect.java | 42 +- .../muyu/system/common/model/LoginUser.java | 57 +- .../muyu/system/config/RestClientConfig.java | 2 +- .../muyu/system/remote/RemoteLogService.java | 7 +- .../muyu/system/remote/RemoteUserService.java | 7 +- .../system/remote/VehicleProviderService.java | 4 +- .../factory/RemoteLogFallbackFactory.java | 16 +- .../factory/RemoteUserFallbackFactory.java | 15 +- .../muyu/system/MuYuSystemApplication.java | 6 +- .../muyu/system/controller/CarController.java | 56 +- .../controller/ClientRegController.java | 11 +- .../controller/EnterpriseInfoController.java | 6 +- .../controller/SysConfigController.java | 33 +- .../system/controller/SysDeptController.java | 41 +- .../controller/SysDictDataController.java | 27 +- .../controller/SysDictTypeController.java | 33 +- .../controller/SysLogininforController.java | 21 +- .../system/controller/SysMenuController.java | 51 +- .../controller/SysNoticeController.java | 18 +- .../controller/SysOperlogController.java | 18 +- .../system/controller/SysPostController.java | 38 +- .../controller/SysProfileController.java | 47 +- .../system/controller/SysRoleController.java | 63 +- .../system/controller/SysUserController.java | 144 +- .../controller/SysUserOnlineController.java | 27 +- .../com/muyu/system/mapper/CarMapper.java | 8 +- .../system/mapper/EnterpriseInfoMapper.java | 7 +- .../muyu/system/mapper/SysConfigMapper.java | 3 +- .../com/muyu/system/mapper/SysDeptMapper.java | 5 +- .../muyu/system/mapper/SysDictDataMapper.java | 5 +- .../muyu/system/mapper/SysDictTypeMapper.java | 3 +- .../system/mapper/SysLogininforMapper.java | 3 +- .../com/muyu/system/mapper/SysMenuMapper.java | 5 +- .../muyu/system/mapper/SysNoticeMapper.java | 3 +- .../muyu/system/mapper/SysOperLogMapper.java | 3 +- .../com/muyu/system/mapper/SysPostMapper.java | 3 +- .../muyu/system/mapper/SysRoleDeptMapper.java | 3 +- .../com/muyu/system/mapper/SysRoleMapper.java | 3 +- .../muyu/system/mapper/SysRoleMenuMapper.java | 3 +- .../com/muyu/system/mapper/SysUserMapper.java | 5 +- .../muyu/system/mapper/SysUserPostMapper.java | 3 +- .../muyu/system/mapper/SysUserRoleMapper.java | 5 +- .../com/muyu/system/mqtt/MqttSubscriber.java | 31 +- .../com/muyu/system/service/CarService.java | 9 +- .../service/IEnterpriseInfoService.java | 8 +- .../system/service/ISysConfigService.java | 3 +- .../muyu/system/service/ISysDeptService.java | 3 +- .../system/service/ISysDictDataService.java | 5 +- .../system/service/ISysDictTypeService.java | 3 +- .../system/service/ISysLogininforService.java | 3 +- .../muyu/system/service/ISysMenuService.java | 5 +- .../system/service/ISysNoticeService.java | 3 +- .../system/service/ISysOperLogService.java | 3 +- .../system/service/ISysPermissionService.java | 3 +- .../muyu/system/service/ISysPostService.java | 3 +- .../muyu/system/service/ISysRoleService.java | 7 +- .../system/service/ISysUserOnlineService.java | 11 +- .../muyu/system/service/ISysUserService.java | 11 +- .../system/service/impl/CarServiceImpl.java | 88 +- .../impl/EnterpriseInfoServiceImpl.java | 24 +- .../service/impl/SysConfigServiceImpl.java | 66 +- .../service/impl/SysDeptServiceImpl.java | 107 +- .../service/impl/SysDictDataServiceImpl.java | 32 +- .../service/impl/SysDictTypeServiceImpl.java | 66 +- .../impl/SysLogininforServiceImpl.java | 15 +- .../service/impl/SysMenuServiceImpl.java | 211 +-- .../service/impl/SysNoticeServiceImpl.java | 21 +- .../service/impl/SysOperLogServiceImpl.java | 18 +- .../impl/SysPermissionServiceImpl.java | 33 +- .../service/impl/SysPostServiceImpl.java | 48 +- .../service/impl/SysRoleServiceImpl.java | 124 +- .../impl/SysUserOnlineServiceImpl.java | 35 +- .../service/impl/SysUserServiceImpl.java | 167 +- .../src/main/resources/logback.xml | 70 +- .../resources/mapper/system/CarMapper.xml | 56 +- .../mapper/system/SysConfigMapper.xml | 125 +- .../resources/mapper/system/SysDeptMapper.xml | 278 ++-- .../mapper/system/SysDictDataMapper.xml | 231 +-- .../mapper/system/SysDictTypeMapper.xml | 175 +- .../mapper/system/SysLogininforMapper.xml | 81 +- .../resources/mapper/system/SysMenuMapper.xml | 404 +++-- .../mapper/system/SysNoticeMapper.xml | 103 +- .../mapper/system/SysOperLogMapper.xml | 156 +- .../resources/mapper/system/SysPostMapper.xml | 212 +-- .../mapper/system/SysRoleDeptMapper.xml | 50 +- .../resources/mapper/system/SysRoleMapper.xml | 268 ++-- .../mapper/system/SysRoleMenuMapper.xml | 50 +- .../resources/mapper/system/SysUserMapper.xml | 425 ++--- .../mapper/system/SysUserPostMapper.xml | 50 +- .../mapper/system/SysUserRoleMapper.xml | 71 +- muyu-modules/muyu-system/pom.xml | 1 - .../monitor/MuYuMonitorApplication.java | 6 +- .../monitor/config/WebSecurityConfigurer.java | 9 +- .../src/main/resources/logback.xml | 70 +- pom.xml | 23 +- sql/ry_20231130.sql | 1403 +++++++++++------ sql/ry_config_20231204.sql | 388 +++-- 402 files changed, 11409 insertions(+), 12564 deletions(-) diff --git a/README.md b/README.md index 9171eb5..da3c7da 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,15 @@ * 后端采用Spring Boot、Spring Cloud & Alibaba。 * 注册中心、配置中心选型Nacos,权限认证使用Redis。 * 流量控制框架选型Sentinel,分布式事务选型Seata。 -* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Cloud-Vue3](https://github.com/yangzongzhuan/RuoYi-Cloud-Vue3),保持同步更新。 -* 如需不分离应用,请移步 [RuoYi](https://gitee.com/y_project/RuoYi),如需分离应用,请移步 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) +* +提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev) +)版本[RuoYi-Cloud-Vue3](https://github.com/yangzongzhuan/RuoYi-Cloud-Vue3),保持同步更新。 +* 如需不分离应用,请移步 [RuoYi](https://gitee.com/y_project/RuoYi) + ,如需分离应用,请移步 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) * 阿里云折扣场:[点我进入](http://aly.muyu.vip),腾讯云秒杀场:[点我进入](http://txy.muyu.vip)   -* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)   +* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link) + ,腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console) +    #### 友情链接 [若依/RuoYi-Cloud](https://gitee.com/zhangmrit/muyu-cloud) Ant Design版本。 @@ -58,15 +63,15 @@ com.muyu ## 内置功能 -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -3. 岗位管理:配置系统用户所属担任职务。 -4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -7. 参数管理:对系统动态配置常用参数。 -8. 通知公告:系统通知公告信息发布维护。 -9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 +1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 +2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 +3. 岗位管理:配置系统用户所属担任职务。 +4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 +5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 +6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 +7. 参数管理:对系统动态配置常用参数。 +8. 通知公告:系统通知公告信息发布维护。 +9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 10. 登录日志:系统登录日志记录查询包含登录异常。 11. 在线用户:当前系统中活跃用户状态监控。 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 @@ -78,7 +83,7 @@ com.muyu ## 在线体验 -- admin/admin123 +- admin/admin123 - 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 演示地址:http://muyu.vip @@ -125,7 +130,7 @@ com.muyu - ## 若依微服务交流群 -QQ群: [![加入QQ群](https://img.shields.io/badge/已满-42799195-blue.svg)](https://jq.qq.com/?_wv=1027&k=yqInfq0S) [![加入QQ群](https://img.shields.io/badge/已满-170157040-blue.svg)](https://jq.qq.com/?_wv=1027&k=Oy1mb3p8) [![加入QQ群](https://img.shields.io/badge/已满-130643120-blue.svg)](https://jq.qq.com/?_wv=1027&k=rvxkJtXK) [![加入QQ群](https://img.shields.io/badge/已满-225920371-blue.svg)](https://jq.qq.com/?_wv=1027&k=0Ck3PvTe) [![加入QQ群](https://img.shields.io/badge/已满-201705537-blue.svg)](https://jq.qq.com/?_wv=1027&k=FnHHP4TT) [![加入QQ群](https://img.shields.io/badge/已满-236543183-blue.svg)](https://jq.qq.com/?_wv=1027&k=qdT1Ojpz) [![加入QQ群](https://img.shields.io/badge/已满-213618602-blue.svg)](https://jq.qq.com/?_wv=1027&k=nw3OiyXs) [![加入QQ群](https://img.shields.io/badge/已满-148794840-blue.svg)](https://jq.qq.com/?_wv=1027&k=kiU5WDls) [![加入QQ群](https://img.shields.io/badge/已满-118752664-blue.svg)](https://jq.qq.com/?_wv=1027&k=MtBy6YfT) [![加入QQ群](https://img.shields.io/badge/已满-101038945-blue.svg)](https://jq.qq.com/?_wv=1027&k=FqImHgH2) [![加入QQ群](https://img.shields.io/badge/已满-128355254-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G4jZ4EtdT50PhnMBudTnEwgonxkXOscJ&authKey=FkGHYfoTKlGE6wHdKdjH9bVoOgQjtLP9WM%2Fj7pqGY1msoqw9uxDiBo39E2mLgzYg&noverify=0&group_code=128355254) [![加入QQ群](https://img.shields.io/badge/179219821-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=irnwcXhbLOQEv1g-TwGifjNTA_f4wZiA&authKey=4bpzEwhcUY%2FvsPDHvzYn6xfoS%2FtOArvZ%2BGXzfr7O0%2FEqLfkKA%2BuCDXlzHIFg8t93&noverify=0&group_code=179219821) 点击按钮入群。 +QQ群: [![加入QQ群](https://img.shields.io/badge/已满-42799195-blue.svg)](https://jq.qq.com/?_wv=1027&k=yqInfq0S) [![加入QQ群](https://img.shields.io/badge/已满-170157040-blue.svg)](https://jq.qq.com/?_wv=1027&k=Oy1mb3p8) [![加入QQ群](https://img.shields.io/badge/已满-130643120-blue.svg)](https://jq.qq.com/?_wv=1027&k=rvxkJtXK) [![加入QQ群](https://img.shields.io/badge/已满-225920371-blue.svg)](https://jq.qq.com/?_wv=1027&k=0Ck3PvTe) [![加入QQ群](https://img.shields.io/badge/已满-201705537-blue.svg)](https://jq.qq.com/?_wv=1027&k=FnHHP4TT) [![加入QQ群](https://img.shields.io/badge/已满-236543183-blue.svg)](https://jq.qq.com/?_wv=1027&k=qdT1Ojpz) [![加入QQ群](https://img.shields.io/badge/已满-213618602-blue.svg)](https://jq.qq.com/?_wv=1027&k=nw3OiyXs) [![加入QQ群](https://img.shields.io/badge/已满-148794840-blue.svg)](https://jq.qq.com/?_wv=1027&k=kiU5WDls) [![加入QQ群](https://img.shields.io/badge/已满-118752664-blue.svg)](https://jq.qq.com/?_wv=1027&k=MtBy6YfT) [![加入QQ群](https://img.shields.io/badge/已满-101038945-blue.svg)](https://jq.qq.com/?_wv=1027&k=FqImHgH2) [![加入QQ群](https://img.shields.io/badge/已满-128355254-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G4jZ4EtdT50PhnMBudTnEwgonxkXOscJ&authKey=FkGHYfoTKlGE6wHdKdjH9bVoOgQjtLP9WM%2Fj7pqGY1msoqw9uxDiBo39E2mLgzYg&noverify=0&group_code=128355254) [![加入QQ群](https://img.shields.io/badge/179219821-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=irnwcXhbLOQEv1g-TwGifjNTA_f4wZiA&authKey=4bpzEwhcUY%2FvsPDHvzYn6xfoS%2FtOArvZ%2BGXzfr7O0%2FEqLfkKA%2BuCDXlzHIFg8t93&noverify=0&group_code=179219821) +点击按钮入群。 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c6d1d41..725b683 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,4 @@ -version : '3.8' +version: '3.8' services: muyu-nacos: container_name: muyu-nacos @@ -28,13 +28,13 @@ services: - ./mysql/logs:/logs - ./mysql/data:/var/lib/mysql command: [ - 'mysqld', - '--innodb-buffer-pool-size=80M', - '--character-set-server=utf8mb4', - '--collation-server=utf8mb4_unicode_ci', - '--default-time-zone=+8:00', - '--lower-case-table-names=1' - ] + 'mysqld', + '--innodb-buffer-pool-size=80M', + '--character-set-server=utf8mb4', + '--collation-server=utf8mb4_unicode_ci', + '--default-time-zone=+8:00', + '--lower-case-table-names=1' + ] environment: MYSQL_DATABASE: 'ry-cloud' MYSQL_ROOT_PASSWORD: password @@ -130,7 +130,7 @@ services: ports: - "9300:9300" volumes: - - ./muyu/uploadPath:/home/muyu/uploadPath + - ./muyu/uploadPath:/home/muyu/uploadPath muyu-visual-monitor: container_name: muyu-visual-monitor build: diff --git a/docker/nacos/conf/application.properties b/docker/nacos/conf/application.properties index 1dd247a..c45e4f0 100644 --- a/docker/nacos/conf/application.properties +++ b/docker/nacos/conf/application.properties @@ -3,23 +3,16 @@ db.num=1 db.url.0=jdbc:mysql://muyu-mysql:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=password - nacos.naming.empty-service.auto-clean=true nacos.naming.empty-service.clean.initial-delay-ms=50000 nacos.naming.empty-service.clean.period-time-ms=30000 - management.endpoints.web.exposure.include=* - management.metrics.export.elastic.enabled=false management.metrics.export.influx.enabled=false - server.tomcat.accesslog.enabled=true server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i - server.tomcat.basedir=/home/muyu/nacos/tomcat/logs - nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** - nacos.core.auth.system.type=nacos nacos.core.auth.enabled=false nacos.core.auth.default.token.expire.seconds=18000 @@ -28,5 +21,4 @@ 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/muyu-aliyun-openapi/src/main/java/com/muyu/create/CreateEsc.java b/muyu-aliyun-openapi/src/main/java/com/muyu/create/CreateEsc.java index cb3c94b..410c589 100644 --- a/muyu-aliyun-openapi/src/main/java/com/muyu/create/CreateEsc.java +++ b/muyu-aliyun-openapi/src/main/java/com/muyu/create/CreateEsc.java @@ -8,6 +8,7 @@ import com.aliyun.teautil.*; /** * 批量创建ECS实例 + * * @Author LiYonJie * @Date 2024/4/12 */ @@ -32,7 +33,7 @@ public class CreateEsc { // 地域Id String regionId = "cn-zhangjiakou"; // 镜像 ID,启动实例时选择的镜像资源。 - String imageId ="m-8vb2cpmwwggxp598kjue"; + String imageId = "m-8vb2cpmwwggxp598kjue"; // 实例规格 String instanceType = "ecs.t6-c1m1.large"; // 新创建实例所属于的安全组 ID。 @@ -63,7 +64,7 @@ public class CreateEsc { com.aliyun.teaconsole.Client.log(instanceType); com.aliyun.teaconsole.Client.log(securityGroupId); com.aliyun.teaconsole.Client.log(vSwitchId); - com.aliyun.teaconsole.Client.log(""+internetMaxBandwidthOut); + com.aliyun.teaconsole.Client.log("" + internetMaxBandwidthOut); com.aliyun.teaconsole.Client.log(size); com.aliyun.teaconsole.Client.log(category); com.aliyun.teaconsole.Client.log(instanceChargeType); diff --git a/muyu-analyze/pom.xml b/muyu-analyze/pom.xml index 8d17ea5..98c245b 100644 --- a/muyu-analyze/pom.xml +++ b/muyu-analyze/pom.xml @@ -27,11 +27,11 @@ spring-kafka 2.8.1 - - - - - + + + + + com.alibaba.cloud diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/MuYuAnalyzeApplication.java b/muyu-analyze/src/main/java/com/muyu/analyze/MuYuAnalyzeApplication.java index c33adc9..59e5a3d 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/MuYuAnalyzeApplication.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/MuYuAnalyzeApplication.java @@ -17,10 +17,8 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableRyFeignClients @SpringBootApplication @EnableScheduling -public class MuYuAnalyzeApplication -{ - public static void main(String[] args) - { +public class MuYuAnalyzeApplication { + public static void main(String[] args) { SpringApplication.run(MuYuAnalyzeApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 系统模块启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/config/KafkaConfig.java b/muyu-analyze/src/main/java/com/muyu/analyze/config/KafkaConfig.java index ba61e26..cc77e74 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/config/KafkaConfig.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/config/KafkaConfig.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Component; import java.util.Properties; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; + @Configuration public class KafkaConfig { @@ -22,20 +23,20 @@ public class KafkaConfig { public static final String DEFAULT_KEY = "10001"; - public static Properties properties1(){ + public static Properties properties1() { // 1;构建 Properties 对象 存放 kafka 生产者配置信息 Properties properties1 = new Properties(); // 设置 kafka 连接地址(从配置文件/环境变量获取) properties1.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, KafkaConfig.BOOTSTRAP_SERVERS); - // 设置 键值 序列化 - properties1.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer .class.getName()); + // 设置 键值 序列化 + properties1.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); properties1.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); return properties1; } - public static Properties properties2(){ + public static Properties properties2() { Properties properties2 = new Properties(); properties2.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "10.10.26.4:9092"); properties2.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java b/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java index 0c9ab48..38becf0 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java @@ -16,7 +16,7 @@ public class TutConfig { @Bean public Queue fault() { - return new Queue(MQQueueConstants.ALARM_QUEUE,true); + return new Queue(MQQueueConstants.ALARM_QUEUE, true); } @Bean diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/consumer/Consumer.java b/muyu-analyze/src/main/java/com/muyu/analyze/consumer/Consumer.java index 003789b..4b7af0f 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/consumer/Consumer.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/consumer/Consumer.java @@ -37,6 +37,7 @@ public class Consumer { /** * kafka消费者--监听 kafka主题 test + * * @param msg */ // @KafkaListener(topics = "test", groupId = "group", properties = {"bootstrap.servers = 10.10.26.4:9092"}) @@ -58,8 +59,6 @@ public class Consumer { } - - // @RabbitHandler // public void take(String msg, Channel channel, Message message) throws IOException { //// String messageId = message.getMessageProperties().getMessageId(); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/controller/RealTimeDataController.java b/muyu-analyze/src/main/java/com/muyu/analyze/controller/RealTimeDataController.java index c14bb5f..b4bd61e 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/controller/RealTimeDataController.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/controller/RealTimeDataController.java @@ -51,5 +51,4 @@ public class RealTimeDataController { } - } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/mapper/VehicleMapper.java b/muyu-analyze/src/main/java/com/muyu/analyze/mapper/VehicleMapper.java index 8843487..aea58bc 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/mapper/VehicleMapper.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/mapper/VehicleMapper.java @@ -17,7 +17,7 @@ import java.util.List; * @Version 1.0 */ @Mapper -public interface VehicleMapper{ +public interface VehicleMapper { Boolean addVehicleStoredEvent(ArrayList list); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/VehicleService.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/VehicleService.java index 7267a0c..9ba33ea 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/VehicleService.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/VehicleService.java @@ -12,11 +12,9 @@ import com.muyu.system.common.domain.VehicleData; * @Date 2024/4/4 09:30 * @Version 1.0 */ -public interface VehicleService { +public interface VehicleService { void eventResolution(VehicleData analyze); - - } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java index edec5a9..5baf834 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java @@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit; */ @Service("breakdown") @Slf4j -public class BreakdownImpl implements VehicleService{ +public class BreakdownImpl implements VehicleService { @Autowired @@ -52,7 +52,6 @@ public class BreakdownImpl implements VehicleService{ public void eventResolution(VehicleData vehicleData) { - //判断故障 if (StateConstant.VEHICLE_STATUS != vehicleData.getVehicleStatus() || StateConstant.CHARGING_STATUS != vehicleData.getChgStatus() @@ -71,7 +70,7 @@ public class BreakdownImpl implements VehicleService{ || StateConstant.DCDC_STATUS != vehicleData.getDcdcStatus() || StateConstant.CHG_STATUS != vehicleData.getChgStatus()) { - log.info("车辆VIN:"+vehicleData.getVin()+"发生故障,故障事件解析"); + log.info("车辆VIN:" + vehicleData.getVin() + "发生故障,故障事件解析"); FaultLogs faultLogsAddReq = new FaultLogs(); @@ -235,16 +234,14 @@ public class BreakdownImpl implements VehicleService{ return message; }); - log.info("车辆VIN:"+vehicleData.getVin()+"故障事件已记录"); + log.info("车辆VIN:" + vehicleData.getVin() + "故障事件已记录"); log.info("故障事件结束"); - }else{ - log.info("车辆VIN:"+vehicleData.getVin()+"没有故障,状态正常"); + } else { + log.info("车辆VIN:" + vehicleData.getVin() + "没有故障,状态正常"); } - - } } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java index 648357f..cd2cfe8 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java @@ -45,7 +45,6 @@ public class FenceAlarmImpl implements VehicleService { private RabbitTemplate rabbitTemplate; - @Override public void eventResolution(VehicleData analyze) { Fence fence = new Fence(); @@ -60,7 +59,7 @@ public class FenceAlarmImpl implements VehicleService { //这里修改为1对多的 电子围栏 目前是一对一 - Car car =vehicleMapper.selectCarList(vin); + Car car = vehicleMapper.selectCarList(vin); String carFenceId = car.getCarFenceId(); @@ -70,44 +69,43 @@ public class FenceAlarmImpl implements VehicleService { Map fence1 = redisService.getCacheMap("fence"); - for (Map.Entry entry : fence1.entrySet()) { for (String s : split1) { - String key = entry.getKey(); - if (s.equals(key)){ - String value = (String) entry.getValue(); + String key = entry.getKey(); + if (s.equals(key)) { + String value = (String) entry.getValue(); - String[] split = value.split(";"); + String[] split = value.split(";"); - boolean withinFence = isWithinFence(pointLat, pointLng, Arrays.asList(split)); + boolean withinFence = isWithinFence(pointLat, pointLng, Arrays.asList(split)); - if (withinFence){ - log.info("车辆vin:"+vin+"------在电子围栏"+key+"---正常行驶---"); - }else { - log.info("车辆vin:"+vin+"------驶出电子围栏"+key+"---报警---"); + if (withinFence) { + log.info("车辆vin:" + vin + "------在电子围栏" + key + "---正常行驶---"); + } else { + log.info("车辆vin:" + vin + "------驶出电子围栏" + key + "---报警---"); - String key1 = "fenceType1"; + String key1 = "fenceType1"; - HashSet hashSet = new HashSet<>(); - fence.setCarVin(vin); - fence.setFenceType("驶出"); - fence.setFenceId(Integer.valueOf(key)); + HashSet hashSet = new HashSet<>(); + fence.setCarVin(vin); + fence.setFenceType("驶出"); + fence.setFenceId(Integer.valueOf(key)); - hashSet.add(fence); - redisService.setCacheSet(key1,hashSet); - redisService.expire(key1, 20, TimeUnit.MINUTES); // 设置过期时间 + hashSet.add(fence); + redisService.setCacheSet(key1, hashSet); + redisService.expire(key1, 20, TimeUnit.MINUTES); // 设置过期时间 - FaultLogs faultLogs = new FaultLogs(); - faultLogs.setCarVin(vin); - faultLogs.setFaultCode("GTX007"); - faultLogs.setStartAlarmTime(DateUtils.getNowDate()); - faultLogs.setAlarmFlag("Y"); - faultLogs.setDisposeStatus("1"); - rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, faultLogs ,message -> { - message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); - return message; - }); - } + FaultLogs faultLogs = new FaultLogs(); + faultLogs.setCarVin(vin); + faultLogs.setFaultCode("GTX007"); + faultLogs.setStartAlarmTime(DateUtils.getNowDate()); + faultLogs.setAlarmFlag("Y"); + faultLogs.setDisposeStatus("1"); + rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, faultLogs, message -> { + message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); + return message; + }); + } // if (withinFence){ // log.info("车辆vin:"+vin+"------驶入禁行区----报警"); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/RealTimeDataEventImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/RealTimeDataEventImpl.java index f6029dc..a3866a3 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/RealTimeDataEventImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/RealTimeDataEventImpl.java @@ -16,7 +16,7 @@ import org.springframework.stereotype.Service; */ @Service("realTime") @Slf4j -public class RealTimeDataEventImpl implements VehicleService { +public class RealTimeDataEventImpl implements VehicleService { private VehicleData realTimeData; // 存储实时数据的变量 @@ -43,13 +43,13 @@ public class RealTimeDataEventImpl implements VehicleService { public VehicleData getRealTimeDataByVin(String vin) { - if (realTimeData==null || realTimeData.getVin()==null){ + if (realTimeData == null || realTimeData.getVin() == null) { return null; } String dataVin = realTimeData.getVin(); - if (dataVin.equals(vin)){ + if (dataVin.equals(vin)) { return realTimeData; - }else{ + } else { return null; } } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java index 2423ccb..d9e16b6 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java @@ -27,31 +27,31 @@ import java.util.List; @Slf4j public class StoredEventImpl implements VehicleService { - @Autowired - private VehicleMapper vehicleMapper; - @Autowired - private RedisService redisService; + @Autowired + private VehicleMapper vehicleMapper; + @Autowired + private RedisService redisService; - private final ArrayList list = new ArrayList<>(); + private final ArrayList list = new ArrayList<>(); @Override public void eventResolution(VehicleData analyze) { - Integer id = (Integer)redisService.getCacheObject("records:info:" + analyze.getVin()); + Integer id = (Integer) redisService.getCacheObject("records:info:" + analyze.getVin()); analyze.setRecordsId(id); list.add(analyze); if (list.size() >= 50) { log.info("集合满50,存储事件开始"); - Boolean i= vehicleMapper.addVehicleStoredEvent(list); + Boolean i = vehicleMapper.addVehicleStoredEvent(list); - if (i) { - list.clear(); - log.info("存储事件结束"); - } + if (i) { + list.clear(); + log.info("存储事件结束"); + } } } } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/utils/AnalyzeUtils.java b/muyu-analyze/src/main/java/com/muyu/analyze/utils/AnalyzeUtils.java index bd43a3a..a8e88c4 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/utils/AnalyzeUtils.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/utils/AnalyzeUtils.java @@ -1,7 +1,6 @@ package com.muyu.analyze.utils; - import com.muyu.system.common.domain.VehicleData; import java.math.BigDecimal; @@ -106,30 +105,29 @@ public class AnalyzeUtils { * 制动踏板行程值 private String brakePedal; */ - String brakePedal =aa.substring(91,93); + String brakePedal = aa.substring(91, 93); vehicleData.setBrakePedal(brakePedal); /** * 燃料消耗率 private String fuelConsumptionRate; */ - String fuelConsumptionRate =aa.substring(93,98); + String fuelConsumptionRate = aa.substring(93, 98); vehicleData.setFuelConsumptionRate(fuelConsumptionRate); /** * 电机控制器温度private String motorControllerTemperature; */ - String motorControllerTemperature =aa.substring(98,104); + String motorControllerTemperature = aa.substring(98, 104); vehicleData.setMotorControllerTemperature(motorControllerTemperature); - /** * 电机转速 private String motorSpeed; */ - String motorSpeed =aa.substring(104,109); + String motorSpeed = aa.substring(104, 109); vehicleData.setMotorSpeed(motorSpeed); @@ -247,7 +245,6 @@ public class AnalyzeUtils { vehicleData.setAvailableBatteryCapacity(availableBatteryCapacity); - // 车辆状态: 0 String vehicleStatus = aa.substring(189, 190); vehicleData.setVehicleStatus(Integer.parseInt(vehicleStatus)); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/utils/StateConstant.java b/muyu-analyze/src/main/java/com/muyu/analyze/utils/StateConstant.java index bc1f11f..6cd6380 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/utils/StateConstant.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/utils/StateConstant.java @@ -13,7 +13,7 @@ public class StateConstant { /** * 车辆状态 */ - public static final Integer VEHICLE_STATUS = 1; + public static final Integer VEHICLE_STATUS = 1; /** * 充电状态 @@ -26,7 +26,7 @@ public class StateConstant { public static final Integer OPERATING_STATUS = 1; /** - * soc状态 + * soc状态 */ public static final Integer SOC_STATUS = 1; @@ -38,12 +38,12 @@ public class StateConstant { /** * 驱动电机状态 */ - public static final Integer DRIVE_MOTOR_STATUS = 1; + public static final Integer DRIVE_MOTOR_STATUS = 1; /** * 定位是否有效 */ - public static final Integer POSITION_STATUS = 1; + public static final Integer POSITION_STATUS = 1; /** * EAS(汽车防盗系统)状态 @@ -56,7 +56,7 @@ public class StateConstant { public static final Integer PTC_STATUS = 1; /** - * ABS(防抱死)状态 + * ABS(防抱死)状态 */ public static final Integer ABS_STATUS = 1; @@ -69,7 +69,7 @@ public class StateConstant { */ public static final Integer HEATING_STATUS = 1; /** - * 动力电池当前状态 + * 动力电池当前状态 */ public static final Integer BATTERY_STATUS = 1; /** diff --git a/muyu-analyze/src/main/resources/mapper/business/StoredEventMapper.xml b/muyu-analyze/src/main/resources/mapper/business/StoredEventMapper.xml index 7e92562..52c3ee1 100644 --- a/muyu-analyze/src/main/resources/mapper/business/StoredEventMapper.xml +++ b/muyu-analyze/src/main/resources/mapper/business/StoredEventMapper.xml @@ -6,17 +6,28 @@ - INSERT INTO vehicle_data (vin, date_time, speed, longitude, latitude, single_battery_min_voltage, motor_voltage, motor_speed, self_check_counter, voltage, gear, remaining_battery, motor_current, brake_pedal, current, single_battery_max_voltage, fuel_consumption_rate, resistance, maximum_feedback_power, single_battery_max_temperature,records_id) + INSERT INTO vehicle_data (vin, date_time, speed, longitude, latitude, single_battery_min_voltage, motor_voltage, + motor_speed, self_check_counter, voltage, gear, remaining_battery, motor_current, brake_pedal, current, + single_battery_max_voltage, fuel_consumption_rate, resistance, maximum_feedback_power, + single_battery_max_temperature,records_id) VALUES - (#{item.vin}, #{item.dateTime}, #{item.speed}, #{item.longitude}, #{item.latitude}, #{item.singleBatteryMinVoltage}, #{item.motorVoltage}, #{item.motorSpeed}, #{item.selfCheckCounter}, #{item.voltage}, #{item.gear}, #{item.remainingBattery}, #{item.motorCurrent}, #{item.brakePedal}, #{item.current}, #{item.singleBatteryMaxVoltage}, #{item.fuelConsumptionRate}, #{item.resistance}, #{item.maximumFeedbackPower}, #{item.singleBatteryMaxTemperature},#{item.recordsId}) + (#{item.vin}, #{item.dateTime}, #{item.speed}, #{item.longitude}, #{item.latitude}, + #{item.singleBatteryMinVoltage}, #{item.motorVoltage}, #{item.motorSpeed}, #{item.selfCheckCounter}, + #{item.voltage}, #{item.gear}, #{item.remainingBattery}, #{item.motorCurrent}, #{item.brakePedal}, + #{item.current}, #{item.singleBatteryMaxVoltage}, #{item.fuelConsumptionRate}, #{item.resistance}, + #{item.maximumFeedbackPower}, #{item.singleBatteryMaxTemperature},#{item.recordsId}) diff --git a/muyu-analyze/src/test/java/LoadTest.java b/muyu-analyze/src/test/java/LoadTest.java index 33261f3..ac54b69 100644 --- a/muyu-analyze/src/test/java/LoadTest.java +++ b/muyu-analyze/src/test/java/LoadTest.java @@ -5,7 +5,7 @@ * @Version 1.0 */ public class LoadTest { - public void load(){ + public void load() { } } diff --git a/muyu-auth/src/main/java/com/muyu/auth/MuYuAuthApplication.java b/muyu-auth/src/main/java/com/muyu/auth/MuYuAuthApplication.java index 984e9fa..2baa39b 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/MuYuAuthApplication.java +++ b/muyu-auth/src/main/java/com/muyu/auth/MuYuAuthApplication.java @@ -11,11 +11,9 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; * @author muyu */ @EnableRyFeignClients -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -public class MuYuAuthApplication -{ - public static void main(String[] args) - { +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class MuYuAuthApplication { + public static void main(String[] args) { SpringApplication.run(MuYuAuthApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 认证授权中心启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + diff --git a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java index 8a6c516..572ff58 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -27,8 +27,7 @@ import static com.muyu.common.core.domain.Result.success; * @author muyu */ @RestController -public class TokenController -{ +public class TokenController { @Autowired private TokenService tokenService; @@ -36,8 +35,7 @@ public class TokenController private SysLoginService sysLoginService; @PostMapping("login") - public Result login(@RequestBody LoginBody form) - { + public Result login(@RequestBody LoginBody form) { // 用户登录 LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); // 获取登录token @@ -45,11 +43,9 @@ public class TokenController } @DeleteMapping("logout") - public Result logout(HttpServletRequest request) - { + public Result logout(HttpServletRequest request) { String token = SecurityUtils.getToken(request); - if (StringUtils.isNotEmpty(token)) - { + if (StringUtils.isNotEmpty(token)) { String username = JwtUtils.getUserName(token); // 删除用户缓存记录 AuthUtil.logoutByToken(token); @@ -60,11 +56,9 @@ public class TokenController } @PostMapping("refresh") - public Result refresh(HttpServletRequest request) - { + public Result refresh(HttpServletRequest request) { LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser)) - { + if (StringUtils.isNotNull(loginUser)) { // 刷新令牌有效期 tokenService.refreshToken(loginUser); return success(); @@ -73,8 +67,7 @@ public class TokenController } @PostMapping("register") - public Result register(@RequestBody RegisterBody registerBody) - { + public Result register(@RequestBody RegisterBody registerBody) { // 用户注册 sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); return success(); diff --git a/muyu-auth/src/main/java/com/muyu/auth/form/RegisterBody.java b/muyu-auth/src/main/java/com/muyu/auth/form/RegisterBody.java index 96490ce..c2a4d5a 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/form/RegisterBody.java +++ b/muyu-auth/src/main/java/com/muyu/auth/form/RegisterBody.java @@ -5,7 +5,6 @@ package com.muyu.auth.form; * * @author muyu */ -public class RegisterBody extends LoginBody -{ +public class RegisterBody extends LoginBody { } diff --git a/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index 7eecab1..d943298 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/muyu-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -27,8 +27,7 @@ import java.util.regex.*; * @author muyu */ @Component -public class SysLoginService -{ +public class SysLoginService { @Autowired private RemoteUserService remoteUserService; @@ -44,44 +43,38 @@ public class SysLoginService /** * 登录 */ - public LoginUser login(String username, String password) - { + public LoginUser login(String username, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, 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) - { + || 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) - { + || 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())) - { + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } // 查询用户信息 Result userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); - if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) - { + if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { String emailRegex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"; Pattern pattern = Pattern.compile(emailRegex); Matcher matcher = pattern.matcher(username); - if(!matcher.matches()){ + if (!matcher.matches()) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "邮箱错误,请检查"); throw new ServiceException("邮箱错误,请检查:" + username); } @@ -89,20 +82,17 @@ public class SysLoginService throw new ServiceException("登录用户:" + username + " 不存在"); } - if (Result.FAIL == userResult.getCode()) - { + if (Result.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); } LoginUser userInfo = userResult.getData(); SysUser user = userResult.getData().getSysUser(); - if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) - { + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); } - if (UserStatus.DISABLE.getCode().equals(user.getStatus())) - { + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); throw new ServiceException("对不起,您的账号:" + username + " 已停用"); } @@ -111,29 +101,24 @@ public class SysLoginService return userInfo; } - public void logout(String loginName) - { + public void logout(String loginName) { recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "退出成功"); } /** * 注册 */ - public void register(String username, String password) - { + public void register(String username, String password) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) - { + if (StringUtils.isAnyBlank(username, password)) { throw new ServiceException("用户/密码必须填写"); } if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_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) - { + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { throw new ServiceException("密码长度必须在5到20个字符之间"); } @@ -144,8 +129,7 @@ public class SysLoginService sysUser.setPassword(SecurityUtils.encryptPassword(password)); Result registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); - if (Result.FAIL == registerResult.getCode()) - { + if (Result.FAIL == registerResult.getCode()) { throw new ServiceException(registerResult.getMsg()); } recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); diff --git a/muyu-auth/src/main/java/com/muyu/auth/service/SysPasswordService.java b/muyu-auth/src/main/java/com/muyu/auth/service/SysPasswordService.java index e66490e..f3e7193 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/service/SysPasswordService.java +++ b/muyu-auth/src/main/java/com/muyu/auth/service/SysPasswordService.java @@ -18,8 +18,7 @@ import java.util.concurrent.TimeUnit; * @author muyu */ @Component -public class SysPasswordService -{ +public class SysPasswordService { @Autowired private RedisService redisService; @@ -36,51 +35,41 @@ public class SysPasswordService * @param username 用户名 * @return 缓存键key */ - private String getCacheKey(String username) - { + private String getCacheKey(String username) { return CacheConstants.PWD_ERR_CNT_KEY + username; } - public void validate(SysUser user, String password) - { + public void validate(SysUser user, String password) { String username = user.getUserName(); Integer retryCount = redisService.getCacheObject(getCacheKey(username)); - if (retryCount == null) - { + if (retryCount == null) { retryCount = 0; } - if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) - { + if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) { String errMsg = String.format("密码输入错误%s次,帐户锁定%s分钟", maxRetryCount, lockTime); - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL,errMsg); + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, errMsg); throw new ServiceException(errMsg); } - if (!matches(user, password)) - { + 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 - { + } else { clearLoginRecordCache(username); } } - public boolean matches(SysUser user, String rawPassword) - { + public boolean matches(SysUser user, String rawPassword) { return SecurityUtils.matchesPassword(rawPassword, user.getPassword()); } - public void clearLoginRecordCache(String loginName) - { - if (redisService.hasKey(getCacheKey(loginName))) - { + public void clearLoginRecordCache(String loginName) { + if (redisService.hasKey(getCacheKey(loginName))) { redisService.deleteObject(getCacheKey(loginName)); } } diff --git a/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java b/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java index 1ab7960..492caa1 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java +++ b/muyu-auth/src/main/java/com/muyu/auth/service/SysRecordLogService.java @@ -16,8 +16,7 @@ import org.springframework.stereotype.Component; * @author muyu */ @Component -public class SysRecordLogService -{ +public class SysRecordLogService { @Autowired private RemoteLogService remoteLogService; @@ -25,23 +24,19 @@ public class SysRecordLogService * 记录登录信息 * * @param username 用户名 - * @param status 状态 - * @param message 消息内容 + * @param status 状态 + * @param message 消息内容 * @return */ - public void recordLogininfor(String username, String status, String message) - { + 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)) - { + if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS); - } - else if (Constants.LOGIN_FAIL.equals(status)) - { + } else if (Constants.LOGIN_FAIL.equals(status)) { logininfor.setStatus(Constants.LOGIN_FAIL_STATUS); } remoteLogService.saveLogininfor(logininfor, SecurityConstants.INNER); diff --git a/muyu-auth/src/main/resources/logback.xml b/muyu-auth/src/main/resources/logback.xml index 5ced9fc..328fc49 100644 --- a/muyu-auth/src/main/resources/logback.xml +++ b/muyu-auth/src/main/resources/logback.xml @@ -1,31 +1,31 @@ - - - + + + - - - ${log.pattern} - - + + + ${log.pattern} + + - - ${log.path}/info.log + + ${log.path}/info.log - + - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + INFO @@ -33,16 +33,16 @@ DENY - + - ${log.path}/error.log + ${log.path}/error.log ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 + + 60 ${log.pattern} @@ -50,25 +50,25 @@ ERROR - + ACCEPT - + DENY - - - + + + - - - - - - - + + + + + + + diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java index b26e1c5..e0f99fa 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java @@ -17,8 +17,7 @@ import java.math.BigDecimal; */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) -public @interface Excel -{ +public @interface Excel { /** * 导出时在excel中排序 */ @@ -149,34 +148,28 @@ public @interface Excel */ Type type() default Type.ALL; - public enum Type - { + public enum Type { ALL(0), EXPORT(1), IMPORT(2); private final int value; - Type(int value) - { + Type(int value) { this.value = value; } - public int value() - { + public int value() { return this.value; } } - public enum ColumnType - { + public enum ColumnType { NUMERIC(0), STRING(1), IMAGE(2); private final int value; - ColumnType(int value) - { + ColumnType(int value) { this.value = value; } - public int value() - { + public int value() { return this.value; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java index 646ee46..ea8dd80 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java @@ -12,7 +12,6 @@ import java.lang.annotation.Target; */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) -public @interface Excels -{ +public @interface Excels { Excel[] value(); } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/CacheConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/CacheConstants.java index f61f4b1..532c9f2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/CacheConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/CacheConstants.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class CacheConstants -{ +public class CacheConstants { /** * 缓存有效期,默认720(分钟) */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/Constants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/Constants.java index 973cd22..a3540fc 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/Constants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/Constants.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class Constants -{ +public class Constants { /** * UTF-8 字符集 */ @@ -120,16 +119,16 @@ public class Constants /** * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全) */ - public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.muyu" }; + public static final String[] JSON_WHITELIST_STR = {"org.springframework", "com.muyu"}; /** * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加) */ - public static final String[] JOB_WHITELIST_STR = { "com.muyu" }; + public static final String[] JOB_WHITELIST_STR = {"com.muyu"}; /** * 定时任务违规的字符 */ - public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", - "org.springframework", "org.apache", "com.muyu.common.core.utils.file" }; + public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", + "org.springframework", "org.apache", "com.muyu.common.core.utils.file"}; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/GenConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/GenConstants.java index 3704488..fde9967 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/GenConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/GenConstants.java @@ -5,113 +5,182 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class GenConstants -{ - /** 单表(增删改查) */ +public class GenConstants { + /** + * 单表(增删改查) + */ public static final String TPL_CRUD = "crud"; - /** 树表(增删改查) */ + /** + * 树表(增删改查) + */ public static final String TPL_TREE = "tree"; - /** 主子表(增删改查) */ + /** + * 主子表(增删改查) + */ public static final String TPL_SUB = "sub"; - /** 树编码字段 */ + /** + * 树编码字段 + */ public static final String TREE_CODE = "treeCode"; - /** 树父编码字段 */ + /** + * 树父编码字段 + */ public static final String TREE_PARENT_CODE = "treeParentCode"; - /** 树名称字段 */ + /** + * 树名称字段 + */ public static final String TREE_NAME = "treeName"; - /** 上级菜单ID字段 */ + /** + * 上级菜单ID字段 + */ public static final String PARENT_MENU_ID = "parentMenuId"; - /** 上级菜单名称字段 */ + /** + * 上级菜单名称字段 + */ 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", - "bigint", "float", "double", "decimal" }; + /** + * 数据库数字类型 + */ + public static final String[] COLUMNTYPE_NUMBER = {"tinyint", "smallint", "mediumint", "int", "number", "integer", + "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_TEXTAREA = "textarea"; - /** 下拉框 */ + /** + * 下拉框 + */ public static final String HTML_SELECT = "select"; - /** 单选框 */ + /** + * 单选框 + */ public static final String HTML_RADIO = "radio"; - /** 复选框 */ + /** + * 复选框 + */ public static final String HTML_CHECKBOX = "checkbox"; - /** 日期控件 */ + /** + * 日期控件 + */ public static final String HTML_DATETIME = "datetime"; - /** 图片上传控件 */ + /** + * 图片上传控件 + */ public static final String HTML_IMAGE_UPLOAD = "imageUpload"; - /** 文件上传控件 */ + /** + * 文件上传控件 + */ public static final String HTML_FILE_UPLOAD = "fileUpload"; - /** 富文本控件 */ + /** + * 富文本控件 + */ public static final String HTML_EDITOR = "editor"; - /** 字符串类型 */ + /** + * 字符串类型 + */ public static final String TYPE_STRING = "String"; - /** 整型 */ + /** + * 整型 + */ public static final String TYPE_INTEGER = "Integer"; - /** 长整型 */ + /** + * 长整型 + */ public static final String TYPE_LONG = "Long"; - /** 浮点型 */ + /** + * 浮点型 + */ public static final String TYPE_DOUBLE = "Double"; - /** 高精度计算类型 */ + /** + * 高精度计算类型 + */ public static final String TYPE_BIGDECIMAL = "BigDecimal"; - /** 时间类型 */ + /** + * 时间类型 + */ public static final String TYPE_DATE = "Date"; - /** 模糊查询 */ + /** + * 模糊查询 + */ public static final String QUERY_LIKE = "LIKE"; - /** 相等查询 */ + /** + * 相等查询 + */ public static final String QUERY_EQ = "EQ"; - /** 需要 */ + /** + * 需要 + */ public static final String REQUIRE = "1"; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/HttpStatus.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/HttpStatus.java index 7f6c350..36e0783 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/HttpStatus.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/HttpStatus.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class HttpStatus -{ +public class HttpStatus { /** * 操作成功 */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/MQQueueConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/MQQueueConstants.java index 873bc79..0d9c3b1 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/MQQueueConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/MQQueueConstants.java @@ -5,6 +5,7 @@ import org.springframework.stereotype.*; /** * MQ常量 + * * @author LiYongJie * @date 2024/4/9 */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ScheduleConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ScheduleConstants.java index e438c94..39ae448 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ScheduleConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ScheduleConstants.java @@ -5,27 +5,35 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class ScheduleConstants -{ +public class ScheduleConstants { public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; - /** 执行目标key */ + /** + * 执行目标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 - { + public enum Status { /** * 正常 */ @@ -37,13 +45,11 @@ public class ScheduleConstants private String value; - private Status(String value) - { + private Status(String value) { this.value = value; } - public String getValue() - { + public String getValue() { return value; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java index 0faa014..c862929 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/SecurityConstants.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class SecurityConstants -{ +public class SecurityConstants { /** * 用户ID字段 */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java index 8449181..721eba8 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class ServiceNameConstants -{ +public class ServiceNameConstants { /** * 认证服务的serviceid */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TokenConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TokenConstants.java index 2ca4941..0884e32 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TokenConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TokenConstants.java @@ -5,8 +5,7 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class TokenConstants -{ +public class TokenConstants { /** * 令牌自定义标识 */ diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/UserConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/UserConstants.java index 90180a1..0df401c 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/UserConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/UserConstants.java @@ -5,62 +5,95 @@ package com.muyu.common.core.constant; * * @author muyu */ -public class UserConstants -{ +public class UserConstants { /** * 平台内系统用户的唯一标志 */ public static final String SYS_USER = "SYS_USER"; - /** 正常状态 */ + /** + * 正常状态 + */ public static final String NORMAL = "0"; - /** 异常状态 */ + /** + * 异常状态 + */ public static final String EXCEPTION = "1"; - /** 用户封禁状态 */ + /** + * 用户封禁状态 + */ public static final String USER_DISABLE = "1"; - /** 角色封禁状态 */ + /** + * 角色封禁状态 + */ public static final String ROLE_DISABLE = "1"; - /** 部门正常状态 */ + /** + * 部门正常状态 + */ public static final String DEPT_NORMAL = "0"; - /** 部门停用状态 */ + /** + * 部门停用状态 + */ public static final String DEPT_DISABLE = "1"; - /** 字典正常状态 */ + /** + * 字典正常状态 + */ public static final String DICT_NORMAL = "0"; - /** 是否为系统默认(是) */ + /** + * 是否为系统默认(是) + */ public static final String YES = "Y"; - /** 是否菜单外链(是) */ + /** + * 是否菜单外链(是) + */ public static final String YES_FRAME = "0"; - /** 是否菜单外链(否) */ + /** + * 是否菜单外链(否) + */ public static final String NO_FRAME = "1"; - /** 菜单类型(目录) */ + /** + * 菜单类型(目录) + */ public static final String TYPE_DIR = "M"; - /** 菜单类型(菜单) */ + /** + * 菜单类型(菜单) + */ public static final String TYPE_MENU = "C"; - /** 菜单类型(按钮) */ + /** + * 菜单类型(按钮) + */ public static final String TYPE_BUTTON = "F"; - /** Layout组件标识 */ + /** + * Layout组件标识 + */ public final static String LAYOUT = "Layout"; - /** ParentView组件标识 */ + /** + * ParentView组件标识 + */ public final static String PARENT_VIEW = "ParentView"; - /** InnerLink组件标识 */ + /** + * InnerLink组件标识 + */ public final static String INNER_LINK = "InnerLink"; - /** 校验是否唯一的返回标识 */ + /** + * 校验是否唯一的返回标识 + */ public final static boolean UNIQUE = true; public final static boolean NOT_UNIQUE = false; diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/context/SecurityContextHolder.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/context/SecurityContextHolder.java index fe33ec5..1de469f 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/context/SecurityContextHolder.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/context/SecurityContextHolder.java @@ -14,86 +14,70 @@ import java.util.concurrent.ConcurrentHashMap; * * @author muyu */ -public class SecurityContextHolder -{ +public class SecurityContextHolder { private static final TransmittableThreadLocal> THREAD_LOCAL = new TransmittableThreadLocal<>(); - public static void set(String key, Object value) - { + 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) - { + 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) - { + public static T get(String key, Class clazz) { Map map = getLocalMap(); return StringUtils.cast(map.getOrDefault(key, null)); } - public static Map getLocalMap() - { + public static Map getLocalMap() { Map map = THREAD_LOCAL.get(); - if (map == null) - { + if (map == null) { map = new ConcurrentHashMap(); THREAD_LOCAL.set(map); } return map; } - public static void setLocalMap(Map threadLocalMap) - { + public static void setLocalMap(Map threadLocalMap) { THREAD_LOCAL.set(threadLocalMap); } - public static Long getUserId() - { + public static Long getUserId() { return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L); } - public static void setUserId(String account) - { + public static void setUserId(String account) { set(SecurityConstants.DETAILS_USER_ID, account); } - public static String getUserName() - { + public static String getUserName() { return get(SecurityConstants.DETAILS_USERNAME); } - public static void setUserName(String username) - { + public static void setUserName(String username) { set(SecurityConstants.DETAILS_USERNAME, username); } - public static String getUserKey() - { + public static String getUserKey() { return get(SecurityConstants.USER_KEY); } - public static void setUserKey(String userKey) - { + public static void setUserKey(String userKey) { set(SecurityConstants.USER_KEY, userKey); } - public static String getPermission() - { + public static String getPermission() { return get(SecurityConstants.ROLE_PERMISSION); } - public static void setPermission(String permissions) - { + public static void setPermission(String permissions) { set(SecurityConstants.ROLE_PERMISSION, permissions); } - public static void remove() - { + public static void remove() { THREAD_LOCAL.remove(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/PageResult.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/PageResult.java index 589a420..d15018b 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/PageResult.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/PageResult.java @@ -7,6 +7,7 @@ import java.util.List; /** * 列表返回结果集 + * * @author XiaoFan * @description: 列表返回结果集 */ @@ -20,16 +21,20 @@ public class PageResult implements Serializable { * 结果集合 */ private List list; + public PageResult() { } + public PageResult(long total, List list) { this.total = total; this.list = list; } - public static PageResult toPageResult(long total, List list){ - return new PageResult(total , list); + + public static PageResult toPageResult(long total, List list) { + return new PageResult(total, list); } - public static Result> toResult(long total, List list){ - return Result.success(PageResult.toPageResult(total,list)); + + public static Result> toResult(long total, List list) { + return Result.success(PageResult.toPageResult(total, list)); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/Result.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/Result.java index cef18ef..7cdec19 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/Result.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/domain/Result.java @@ -10,14 +10,17 @@ import java.io.Serializable; * * @author coderjacky */ -public class Result implements Serializable -{ +public class Result 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; @@ -26,48 +29,39 @@ public class Result implements Serializable private T data; - public static Result success() - { + public static Result success() { return restResult(null, SUCCESS, null); } - public static Result success(T data) - { + public static Result success(T data) { return restResult(data, SUCCESS, null); } - public static Result success(T data, String msg) - { + public static Result success(T data, String msg) { return restResult(data, SUCCESS, msg); } - public static Result error() - { + public static Result error() { return restResult(null, FAIL, null); } - public static Result error(String msg) - { + public static Result error(String msg) { return restResult(null, FAIL, msg); } - public static Result error(T data) - { + public static Result error(T data) { return restResult(data, FAIL, null); } - public static Result error(T data, String msg) - { + public static Result error(T data, String msg) { return restResult(data, FAIL, msg); } - public static Result error(int code, String msg) - { + public static Result error(int code, String msg) { return restResult(null, code, msg); } - private static Result restResult(T data, int code, String msg) - { + private static Result restResult(T data, int code, String msg) { Result apiResult = new Result<>(); apiResult.setCode(code); apiResult.setData(data); @@ -75,43 +69,35 @@ public class Result implements Serializable return apiResult; } - public int getCode() - { + public int getCode() { return code; } - public void setCode(int code) - { + public void setCode(int code) { this.code = code; } - public String getMsg() - { + public String getMsg() { return msg; } - public void setMsg(String msg) - { + public void setMsg(String msg) { this.msg = msg; } - public T getData() - { + public T getData() { return data; } - public void setData(T data) - { + public void setData(T data) { this.data = data; } - public static Boolean isError(Result ret) - { + public static Boolean isError(Result ret) { return !isSuccess(ret); } - public static Boolean isSuccess(Result ret) - { + public static Boolean isSuccess(Result ret) { return Result.SUCCESS == ret.getCode(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/enums/UserStatus.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/enums/UserStatus.java index 585c58a..3cdbb4b 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/enums/UserStatus.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/enums/UserStatus.java @@ -5,26 +5,22 @@ package com.muyu.common.core.enums; * * @author muyu */ -public enum UserStatus -{ +public enum UserStatus { OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); private final String code; private final String info; - UserStatus(String code, String info) - { + UserStatus(String code, String info) { this.code = code; this.info = info; } - public String getCode() - { + public String getCode() { return code; } - public String getInfo() - { + public String getInfo() { return info; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CaptchaException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CaptchaException.java index 00d6805..8a060c2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CaptchaException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CaptchaException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class CaptchaException extends RuntimeException -{ +public class CaptchaException extends RuntimeException { private static final long serialVersionUID = 1L; - public CaptchaException(String msg) - { + public CaptchaException(String msg) { super(msg); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CheckedException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CheckedException.java index dde759c..d3984eb 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CheckedException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/CheckedException.java @@ -5,27 +5,22 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class CheckedException extends RuntimeException -{ +public class CheckedException extends RuntimeException { private static final long serialVersionUID = 1L; - public CheckedException(String message) - { + public CheckedException(String message) { super(message); } - public CheckedException(Throwable cause) - { + public CheckedException(Throwable cause) { super(cause); } - public CheckedException(String message, Throwable cause) - { + public CheckedException(String message, Throwable cause) { super(message, cause); } - public CheckedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) - { + public CheckedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/DemoModeException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/DemoModeException.java index 25d54fb..f661d34 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/DemoModeException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/DemoModeException.java @@ -5,11 +5,9 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class DemoModeException extends RuntimeException -{ +public class DemoModeException extends RuntimeException { private static final long serialVersionUID = 1L; - public DemoModeException() - { + public DemoModeException() { } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/GlobalException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/GlobalException.java index 6eb9984..38395fc 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/GlobalException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/GlobalException.java @@ -5,8 +5,7 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class GlobalException extends RuntimeException -{ +public class GlobalException extends RuntimeException { private static final long serialVersionUID = 1L; /** @@ -16,7 +15,7 @@ public class GlobalException extends RuntimeException /** * 错误明细,内部调试错误 - * + *

* 和 {@link CommonResult#getDetailMessage()} 一致的设计 */ private String detailMessage; @@ -24,34 +23,28 @@ public class GlobalException extends RuntimeException /** * 空构造方法,避免反序列化问题 */ - public GlobalException() - { + public GlobalException() { } - public GlobalException(String message) - { + public GlobalException(String message) { this.message = message; } - public String getDetailMessage() - { + public String getDetailMessage() { return detailMessage; } - public GlobalException setDetailMessage(String detailMessage) - { + public GlobalException setDetailMessage(String detailMessage) { this.detailMessage = detailMessage; return this; } @Override - public String getMessage() - { + public String getMessage() { return message; } - public GlobalException setMessage(String message) - { + public GlobalException setMessage(String message) { this.message = message; return this; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/InnerAuthException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/InnerAuthException.java index 0b5fc7b..406c5d3 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/InnerAuthException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/InnerAuthException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class InnerAuthException extends RuntimeException -{ +public class InnerAuthException extends RuntimeException { private static final long serialVersionUID = 1L; - public InnerAuthException(String message) - { + public InnerAuthException(String message) { super(message); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/PreAuthorizeException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/PreAuthorizeException.java index c10de4f..dad8d44 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/PreAuthorizeException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/PreAuthorizeException.java @@ -5,11 +5,9 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class PreAuthorizeException extends RuntimeException -{ +public class PreAuthorizeException extends RuntimeException { private static final long serialVersionUID = 1L; - public PreAuthorizeException() - { + public PreAuthorizeException() { } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java index 3173034..67b0594 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java @@ -5,8 +5,7 @@ package com.muyu.common.core.exception; * * @author muyu */ -public final class ServiceException extends RuntimeException -{ +public final class ServiceException extends RuntimeException { private static final long serialVersionUID = 1L; /** @@ -21,7 +20,7 @@ public final class ServiceException extends RuntimeException /** * 错误明细,内部调试错误 - * + *

* 和 {@link CommonResult#getDetailMessage()} 一致的设计 */ private String detailMessage; @@ -29,45 +28,37 @@ public final class ServiceException extends RuntimeException /** * 空构造方法,避免反序列化问题 */ - public ServiceException() - { + public ServiceException() { } - public ServiceException(String message) - { + public ServiceException(String message) { this.message = message; } - public ServiceException(String message, Integer code) - { + public ServiceException(String message, Integer code) { this.message = message; this.code = code; } - public String getDetailMessage() - { + public String getDetailMessage() { return detailMessage; } @Override - public String getMessage() - { + public String getMessage() { return message; } - public Integer getCode() - { + public Integer getCode() { return code; } - public ServiceException setMessage(String message) - { + public ServiceException setMessage(String message) { this.message = message; return this; } - public ServiceException setDetailMessage(String detailMessage) - { + public ServiceException setDetailMessage(String detailMessage) { this.detailMessage = detailMessage; return this; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/UtilException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/UtilException.java index 0356755..8c6a38b 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/UtilException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/UtilException.java @@ -5,22 +5,18 @@ package com.muyu.common.core.exception; * * @author muyu */ -public class UtilException extends RuntimeException -{ +public class UtilException extends RuntimeException { private static final long serialVersionUID = 8247610319171014183L; - public UtilException(Throwable e) - { + public UtilException(Throwable e) { super(e.getMessage(), e); } - public UtilException(String message) - { + public UtilException(String message) { super(message); } - public UtilException(String message, Throwable throwable) - { + public UtilException(String message, Throwable throwable) { super(message, throwable); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotLoginException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotLoginException.java index 9f470c2..cabc20a 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotLoginException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotLoginException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception.auth; * * @author muyu */ -public class NotLoginException extends RuntimeException -{ +public class NotLoginException extends RuntimeException { private static final long serialVersionUID = 1L; - public NotLoginException(String message) - { + public NotLoginException(String message) { super(message); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotPermissionException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotPermissionException.java index ee959ba..1b68489 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotPermissionException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotPermissionException.java @@ -7,17 +7,14 @@ import org.apache.commons.lang3.StringUtils; * * @author muyu */ -public class NotPermissionException extends RuntimeException -{ +public class NotPermissionException extends RuntimeException { private static final long serialVersionUID = 1L; - public NotPermissionException(String permission) - { + public NotPermissionException(String permission) { super(permission); } - public NotPermissionException(String[] permissions) - { + public NotPermissionException(String[] permissions) { super(StringUtils.join(permissions, ",")); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotRoleException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotRoleException.java index 584cfae..f6284eb 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotRoleException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/auth/NotRoleException.java @@ -7,17 +7,14 @@ import org.apache.commons.lang3.StringUtils; * * @author muyu */ -public class NotRoleException extends RuntimeException -{ +public class NotRoleException extends RuntimeException { private static final long serialVersionUID = 1L; - public NotRoleException(String role) - { + public NotRoleException(String role) { super(role); } - public NotRoleException(String[] roles) - { + public NotRoleException(String[] roles) { super(StringUtils.join(roles, ",")); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/base/BaseException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/base/BaseException.java index 276140d..c7db900 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/base/BaseException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/base/BaseException.java @@ -5,8 +5,7 @@ package com.muyu.common.core.exception.base; * * @author muyu */ -public class BaseException extends RuntimeException -{ +public class BaseException extends RuntimeException { private static final long serialVersionUID = 1L; /** @@ -29,51 +28,42 @@ public class BaseException extends RuntimeException */ private String defaultMessage; - public BaseException(String module, String code, Object[] args, 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) - { + public BaseException(String module, String code, Object[] args) { this(module, code, args, null); } - public BaseException(String module, String defaultMessage) - { + public BaseException(String module, String defaultMessage) { this(module, null, null, defaultMessage); } - public BaseException(String code, Object[] args) - { + public BaseException(String code, Object[] args) { this(null, code, args, null); } - public BaseException(String defaultMessage) - { + public BaseException(String defaultMessage) { this(null, null, null, defaultMessage); } - public String getModule() - { + public String getModule() { return module; } - public String getCode() - { + public String getCode() { return code; } - public Object[] getArgs() - { + public Object[] getArgs() { return args; } - public String getDefaultMessage() - { + public String getDefaultMessage() { return defaultMessage; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileException.java index 19e3404..da82d02 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileException.java @@ -7,12 +7,10 @@ import com.muyu.common.core.exception.base.BaseException; * * @author muyu */ -public class FileException extends BaseException -{ +public class FileException extends BaseException { private static final long serialVersionUID = 1L; - public FileException(String code, Object[] args, String msg) - { + public FileException(String code, Object[] args, String msg) { super("file", code, args, msg); } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileNameLengthLimitExceededException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileNameLengthLimitExceededException.java index 4a4d280..c273276 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileNameLengthLimitExceededException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileNameLengthLimitExceededException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception.file; * * @author muyu */ -public class FileNameLengthLimitExceededException extends FileException -{ +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/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileSizeLimitExceededException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileSizeLimitExceededException.java index 88a71b6..efa37d5 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileSizeLimitExceededException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileSizeLimitExceededException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception.file; * * @author muyu */ -public class FileSizeLimitExceededException extends FileException -{ +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/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileUploadException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileUploadException.java index 345389b..3be6a6f 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileUploadException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/FileUploadException.java @@ -8,54 +8,45 @@ import java.io.PrintWriter; * * @author muyu */ -public class FileUploadException extends Exception -{ +public class FileUploadException extends Exception { private static final long serialVersionUID = 1L; private final Throwable cause; - public FileUploadException() - { + public FileUploadException() { this(null, null); } - public FileUploadException(final String msg) - { + public FileUploadException(final String msg) { this(msg, null); } - public FileUploadException(String msg, Throwable cause) - { + public FileUploadException(String msg, Throwable cause) { super(msg); this.cause = cause; } @Override - public void printStackTrace(PrintStream stream) - { + public void printStackTrace(PrintStream stream) { super.printStackTrace(stream); - if (cause != null) - { + if (cause != null) { stream.println("Caused by:"); cause.printStackTrace(stream); } } @Override - public void printStackTrace(PrintWriter writer) - { + public void printStackTrace(PrintWriter writer) { super.printStackTrace(writer); - if (cause != null) - { + if (cause != null) { writer.println("Caused by:"); cause.printStackTrace(writer); } } @Override - public Throwable getCause() - { + public Throwable getCause() { return cause; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/InvalidExtensionException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/InvalidExtensionException.java index 220337d..1d34e50 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/InvalidExtensionException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/file/InvalidExtensionException.java @@ -7,73 +7,60 @@ import java.util.Arrays; * * @author muyu */ -public class InvalidExtensionException extends FileUploadException -{ +public class InvalidExtensionException extends FileUploadException { private static final long serialVersionUID = 1L; private String[] allowedExtension; private String extension; private String filename; - public InvalidExtensionException(String[] allowedExtension, String extension, 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 String[] getAllowedExtension() - { + public String[] getAllowedExtension() { return allowedExtension; } - public String getExtension() - { + public String getExtension() { return extension; } - public String getFilename() - { + public String getFilename() { return filename; } - public static class InvalidImageExtensionException extends InvalidExtensionException - { + public static class InvalidImageExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; - public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) - { + public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } - public static class InvalidFlashExtensionException extends InvalidExtensionException - { + public static class InvalidFlashExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; - public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) - { + public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } - public static class InvalidMediaExtensionException extends InvalidExtensionException - { + public static class InvalidMediaExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; - public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) - { + public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } - public static class InvalidVideoExtensionException extends InvalidExtensionException - { + public static class InvalidVideoExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; - public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) - { + public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/job/TaskException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/job/TaskException.java index 0842c17..f4c9624 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/job/TaskException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/job/TaskException.java @@ -5,30 +5,25 @@ package com.muyu.common.core.exception.job; * * @author muyu */ -public class TaskException extends Exception -{ +public class TaskException extends Exception { private static final long serialVersionUID = 1L; private Code code; - public TaskException(String msg, Code code) - { + public TaskException(String msg, Code code) { this(msg, code, null); } - public TaskException(String msg, Code code, Exception nestedEx) - { + public TaskException(String msg, Code code, Exception nestedEx) { super(msg, nestedEx); this.code = code; } - public Code getCode() - { + public Code getCode() { return code; } - public enum Code - { + public enum Code { TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/CaptchaExpireException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/CaptchaExpireException.java index ffcd472..765a950 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/CaptchaExpireException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/CaptchaExpireException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception.user; * * @author muyu */ -public class CaptchaExpireException extends UserException -{ +public class CaptchaExpireException extends UserException { private static final long serialVersionUID = 1L; - public CaptchaExpireException() - { + public CaptchaExpireException() { super("user.jcaptcha.expire", null); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserException.java index 3f3d070..0cff607 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserException.java @@ -4,15 +4,13 @@ import com.muyu.common.core.exception.base.BaseException; /** * 用户信息异常类 - * + * * @author muyu */ -public class UserException extends BaseException -{ +public class UserException extends BaseException { private static final long serialVersionUID = 1L; - public UserException(String code, Object[] args) - { + public UserException(String code, Object[] args) { super("user", code, args, null); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserPasswordNotMatchException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserPasswordNotMatchException.java index 265ebb2..7a6dde3 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserPasswordNotMatchException.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/user/UserPasswordNotMatchException.java @@ -5,12 +5,10 @@ package com.muyu.common.core.exception.user; * * @author muyu */ -public class UserPasswordNotMatchException extends UserException -{ +public class UserPasswordNotMatchException extends UserException { private static final long serialVersionUID = 1L; - public UserPasswordNotMatchException() - { + public UserPasswordNotMatchException() { super("user.password.not.match", null); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/CharsetKit.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/CharsetKit.java index c345b26..9939513 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/CharsetKit.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/CharsetKit.java @@ -10,20 +10,31 @@ import java.nio.charset.StandardCharsets; * * @author muyu */ -public class CharsetKit -{ - /** ISO-8859-1 */ +public class CharsetKit { + /** + * ISO-8859-1 + */ public static final String ISO_8859_1 = "ISO-8859-1"; - /** UTF-8 */ + /** + * UTF-8 + */ public static final String UTF_8 = "UTF-8"; - /** GBK */ + /** + * GBK + */ public static final String GBK = "GBK"; - /** ISO-8859-1 */ + /** + * ISO-8859-1 + */ public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); - /** UTF-8 */ + /** + * UTF-8 + */ public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); - /** GBK */ + /** + * GBK + */ public static final Charset CHARSET_GBK = Charset.forName(GBK); /** @@ -32,46 +43,40 @@ public class CharsetKit * @param charset 字符集,为空则返回默认字符集 * @return Charset */ - public static Charset charset(String charset) - { + public static Charset charset(String charset) { return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); } /** * 转换字符串的字符集编码 * - * @param source 字符串 - * @param srcCharset 源字符集,默认ISO-8859-1 + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 * @param destCharset 目标字符集,默认UTF-8 * @return 转换后的字符集 */ - public static String convert(String source, String srcCharset, String destCharset) - { + public static String convert(String source, String srcCharset, String destCharset) { return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); } /** * 转换字符串的字符集编码 * - * @param source 字符串 - * @param srcCharset 源字符集,默认ISO-8859-1 + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 * @param destCharset 目标字符集,默认UTF-8 * @return 转换后的字符集 */ - public static String convert(String source, Charset srcCharset, Charset destCharset) - { - if (null == srcCharset) - { + public static String convert(String source, Charset srcCharset, Charset destCharset) { + if (null == srcCharset) { srcCharset = StandardCharsets.ISO_8859_1; } - if (null == destCharset) - { + if (null == destCharset) { destCharset = StandardCharsets.UTF_8; } - if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) - { + if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) { return source; } return new String(source.getBytes(srcCharset), destCharset); @@ -80,8 +85,7 @@ public class CharsetKit /** * @return 系统字符集编码 */ - public static String systemCharset() - { + public static String systemCharset() { return Charset.defaultCharset().name(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/Convert.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/Convert.java index b092384..f935611 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/Convert.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/Convert.java @@ -15,25 +15,21 @@ import java.util.Set; * * @author muyu */ -public class Convert -{ +public class Convert { /** * 转换为字符串
* 如果给定的值为null,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static String toStr(Object value, String defaultValue) - { - if (null == value) - { + public static String toStr(Object value, String defaultValue) { + if (null == value) { return defaultValue; } - if (value instanceof String) - { + if (value instanceof String) { return (String) value; } return value.toString(); @@ -47,8 +43,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static String toStr(Object value) - { + public static String toStr(Object value) { return toStr(value, null); } @@ -57,18 +52,15 @@ public class Convert * 如果给定的值为null,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Character toChar(Object value, Character defaultValue) - { - if (null == value) - { + public static Character toChar(Object value, Character defaultValue) { + if (null == value) { return defaultValue; } - if (value instanceof Character) - { + if (value instanceof Character) { return (Character) value; } @@ -84,8 +76,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Character toChar(Object value) - { + public static Character toChar(Object value) { return toChar(value, null); } @@ -94,35 +85,27 @@ public class Convert * 如果给定的值为null,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Byte toByte(Object value, Byte defaultValue) - { - if (value == null) - { + public static Byte toByte(Object value, Byte defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Byte) - { + if (value instanceof Byte) { return (Byte) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).byteValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return Byte.parseByte(valueStr); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -135,8 +118,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Byte toByte(Object value) - { + public static Byte toByte(Object value) { return toByte(value, null); } @@ -145,35 +127,27 @@ public class Convert * 如果给定的值为null,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Short toShort(Object value, Short defaultValue) - { - if (value == null) - { + public static Short toShort(Object value, Short defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Short) - { + if (value instanceof Short) { return (Short) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).shortValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return Short.parseShort(valueStr.trim()); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -186,8 +160,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Short toShort(Object value) - { + public static Short toShort(Object value) { return toShort(value, null); } @@ -196,31 +169,24 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Number toNumber(Object value, Number defaultValue) - { - if (value == null) - { + public static Number toNumber(Object value, Number defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Number) - { + if (value instanceof Number) { return (Number) value; } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return NumberFormat.getInstance().parse(valueStr); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -233,8 +199,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Number toNumber(Object value) - { + public static Number toNumber(Object value) { return toNumber(value, null); } @@ -243,35 +208,27 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Integer toInt(Object value, Integer defaultValue) - { - if (value == null) - { + public static Integer toInt(Object value, Integer defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Integer) - { + if (value instanceof Integer) { return (Integer) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).intValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return Integer.parseInt(valueStr.trim()); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -284,8 +241,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Integer toInt(Object value) - { + public static Integer toInt(Object value) { return toInt(value, null); } @@ -295,8 +251,7 @@ public class Convert * @param str 被转换的值 * @return 结果 */ - public static Integer[] toIntArray(String str) - { + public static Integer[] toIntArray(String str) { return toIntArray(",", str); } @@ -306,8 +261,7 @@ public class Convert * @param str 被转换的值 * @return 结果 */ - public static Long[] toLongArray(String str) - { + public static Long[] toLongArray(String str) { return toLongArray(",", str); } @@ -315,19 +269,16 @@ public class Convert * 转换为Integer数组
* * @param split 分隔符 - * @param str 被转换的值 + * @param str 被转换的值 * @return 结果 */ - public static Integer[] toIntArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Integer[] {}; + 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++) - { + for (int i = 0; i < arr.length; i++) { final Integer v = toInt(arr[i], 0); ints[i] = v; } @@ -338,19 +289,16 @@ public class Convert * 转换为Long数组
* * @param split 分隔符 - * @param str 被转换的值 + * @param str 被转换的值 * @return 结果 */ - public static Long[] toLongArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Long[] {}; + 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++) - { + for (int i = 0; i < arr.length; i++) { final Long v = toLong(arr[i], null); longs[i] = v; } @@ -363,8 +311,7 @@ public class Convert * @param str 被转换的值 * @return 结果 */ - public static String[] toStrArray(String str) - { + public static String[] toStrArray(String str) { return toStrArray(",", str); } @@ -372,11 +319,10 @@ public class Convert * 转换为String数组
* * @param split 分隔符 - * @param str 被转换的值 + * @param str 被转换的值 * @return 结果 */ - public static String[] toStrArray(String split, String str) - { + public static String[] toStrArray(String split, String str) { return str.split(split); } @@ -385,36 +331,28 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Long toLong(Object value, Long defaultValue) - { - if (value == null) - { + public static Long toLong(Object value, Long defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Long) - { + if (value instanceof Long) { return (Long) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).longValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { // 支持科学计数法 return new BigDecimal(valueStr.trim()).longValue(); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -427,8 +365,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Long toLong(Object value) - { + public static Long toLong(Object value) { return toLong(value, null); } @@ -437,36 +374,28 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Double toDouble(Object value, Double defaultValue) - { - if (value == null) - { + public static Double toDouble(Object value, Double defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Double) - { + if (value instanceof Double) { return (Double) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).doubleValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { // 支持科学计数法 return new BigDecimal(valueStr.trim()).doubleValue(); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -479,8 +408,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Double toDouble(Object value) - { + public static Double toDouble(Object value) { return toDouble(value, null); } @@ -489,35 +417,27 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Float toFloat(Object value, Float defaultValue) - { - if (value == null) - { + public static Float toFloat(Object value, Float defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Float) - { + if (value instanceof Float) { return (Float) value; } - if (value instanceof Number) - { + if (value instanceof Number) { return ((Number) value).floatValue(); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return Float.parseFloat(valueStr.trim()); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -530,8 +450,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Float toFloat(Object value) - { + public static Float toFloat(Object value) { return toFloat(value, null); } @@ -540,28 +459,23 @@ public class Convert * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static Boolean toBool(Object value, Boolean defaultValue) - { - if (value == null) - { + public static Boolean toBool(Object value, Boolean defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof Boolean) - { + if (value instanceof Boolean) { return (Boolean) value; } String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } valueStr = valueStr.trim().toLowerCase(); - switch (valueStr) - { + switch (valueStr) { case "true": case "yes": case "ok": @@ -584,8 +498,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static Boolean toBool(Object value) - { + public static Boolean toBool(Object value) { return toBool(value, null); } @@ -593,34 +506,27 @@ public class Convert * 转换为Enum对象
* 如果给定的值为空,或者转换失败,返回默认值
* - * @param clazz Enum的Class - * @param value 值 + * @param clazz Enum的Class + * @param value 值 * @param defaultValue 默认值 * @return Enum */ - public static > E toEnum(Class clazz, Object value, E defaultValue) - { - if (value == null) - { + public static > E toEnum(Class clazz, Object value, E defaultValue) { + if (value == null) { return defaultValue; } - if (clazz.isAssignableFrom(value.getClass())) - { + if (clazz.isAssignableFrom(value.getClass())) { @SuppressWarnings("unchecked") E myE = (E) value; return myE; } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return Enum.valueOf(clazz, valueStr); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -633,8 +539,7 @@ public class Convert * @param value 值 * @return Enum */ - public static > E toEnum(Class clazz, Object value) - { + public static > E toEnum(Class clazz, Object value) { return toEnum(clazz, value, null); } @@ -643,35 +548,27 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static BigInteger toBigInteger(Object value, BigInteger defaultValue) - { - if (value == null) - { + public static BigInteger toBigInteger(Object value, BigInteger defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof BigInteger) - { + if (value instanceof BigInteger) { return (BigInteger) value; } - if (value instanceof Long) - { + if (value instanceof Long) { return BigInteger.valueOf((Long) value); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return new BigInteger(valueStr); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -684,8 +581,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static BigInteger toBigInteger(Object value) - { + public static BigInteger toBigInteger(Object value) { return toBigInteger(value, null); } @@ -694,43 +590,33 @@ public class Convert * 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 * - * @param value 被转换的值 + * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 */ - public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) - { - if (value == null) - { + public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) { + if (value == null) { return defaultValue; } - if (value instanceof BigDecimal) - { + if (value instanceof BigDecimal) { return (BigDecimal) value; } - if (value instanceof Long) - { + if (value instanceof Long) { return new BigDecimal((Long) value); } - if (value instanceof Double) - { + if (value instanceof Double) { return BigDecimal.valueOf((Double) value); } - if (value instanceof Integer) - { + if (value instanceof Integer) { return new BigDecimal((Integer) value); } final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { + if (StringUtils.isEmpty(valueStr)) { return defaultValue; } - try - { + try { return new BigDecimal(valueStr); - } - catch (Exception e) - { + } catch (Exception e) { return defaultValue; } } @@ -743,8 +629,7 @@ public class Convert * @param value 被转换的值 * @return 结果 */ - public static BigDecimal toBigDecimal(Object value) - { + public static BigDecimal toBigDecimal(Object value) { return toBigDecimal(value, null); } @@ -755,8 +640,7 @@ public class Convert * @param obj 对象 * @return 字符串 */ - public static String utf8Str(Object obj) - { + public static String utf8Str(Object obj) { return str(obj, CharsetKit.CHARSET_UTF_8); } @@ -764,12 +648,11 @@ public class Convert * 将对象转为字符串
* 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 * - * @param obj 对象 + * @param obj 对象 * @param charsetName 字符集 * @return 字符串 */ - public static String str(Object obj, String charsetName) - { + public static String str(Object obj, String charsetName) { return str(obj, Charset.forName(charsetName)); } @@ -777,41 +660,30 @@ public class Convert * 将对象转为字符串
* 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 * - * @param obj 对象 + * @param obj 对象 * @param charset 字符集 * @return 字符串 */ - public static String str(Object obj, Charset charset) - { - if (null == obj) - { + public static String str(Object obj, Charset charset) { + if (null == obj) { return null; } - if (obj instanceof String) - { + if (obj instanceof String) { return (String) obj; - } - else if (obj instanceof byte[] || obj instanceof Byte[]) - { - if (obj instanceof byte[]) - { + } else if (obj instanceof byte[] || obj instanceof Byte[]) { + if (obj instanceof byte[]) { return str((byte[]) obj, charset); - } - else - { + } else { Byte[] bytes = (Byte[]) obj; int length = bytes.length; byte[] dest = new byte[length]; - for (int i = 0; i < length; i++) - { + for (int i = 0; i < length; i++) { dest[i] = bytes[i]; } return str(dest, charset); } - } - else if (obj instanceof ByteBuffer) - { + } else if (obj instanceof ByteBuffer) { return str((ByteBuffer) obj, charset); } return obj.toString(); @@ -820,31 +692,27 @@ public class Convert /** * 将byte数组转为字符串 * - * @param bytes byte数组 + * @param bytes byte数组 * @param charset 字符集 * @return 字符串 */ - public static String str(byte[] bytes, String charset) - { + public static String str(byte[] bytes, String charset) { return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); } /** * 解码字节码 * - * @param data 字符串 + * @param data 字符串 * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 * @return 解码后的字符串 */ - public static String str(byte[] data, Charset charset) - { - if (data == null) - { + public static String str(byte[] data, Charset charset) { + if (data == null) { return null; } - if (null == charset) - { + if (null == charset) { return new String(data); } return new String(data, charset); @@ -853,14 +721,12 @@ public class Convert /** * 将编码的byteBuffer数据转换为字符串 * - * @param data 数据 + * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 * @return 字符串 */ - public static String str(ByteBuffer data, String charset) - { - if (data == null) - { + public static String str(ByteBuffer data, String charset) { + if (data == null) { return null; } @@ -870,55 +736,47 @@ public class Convert /** * 将编码的byteBuffer数据转换为字符串 * - * @param data 数据 + * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 * @return 字符串 */ - public static String str(ByteBuffer data, Charset charset) - { - if (null == charset) - { + 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) - { + public static String toSBC(String input) { return toSBC(input, null); } /** * 半角转全角 * - * @param input String + * @param input String * @param notConvertSet 不替换的字符集合 * @return 全角字符串. */ - public static String toSBC(String input, Set notConvertSet) - { + 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])) - { + for (int i = 0; i < c.length; i++) { + if (null != notConvertSet && notConvertSet.contains(c[i])) { // 跳过不替换的字符 continue; } - if (c[i] == ' ') - { + if (c[i] == ' ') { c[i] = '\u3000'; - } - else if (c[i] < '\177') - { + } else if (c[i] < '\177') { c[i] = (char) (c[i] + 65248); } @@ -932,35 +790,28 @@ public class Convert * @param input String. * @return 半角字符串 */ - public static String toDBC(String input) - { + public static String toDBC(String input) { return toDBC(input, null); } /** * 替换全角为半角 * - * @param text 文本 + * @param text 文本 * @param notConvertSet 不替换的字符集合 * @return 替换后的字符 */ - public static String toDBC(String text, Set notConvertSet) - { + 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])) - { + for (int i = 0; i < c.length; i++) { + if (null != notConvertSet && notConvertSet.contains(c[i])) { // 跳过不替换的字符 continue; } - if (c[i] == '\u3000') - { + if (c[i] == '\u3000') { c[i] = ' '; - } - else if (c[i] > '\uFF00' && c[i] < '\uFF5F') - { + } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { c[i] = (char) (c[i] - 65248); } } @@ -973,18 +824,16 @@ public class Convert * @param n 数字 * @return 中文大写数字 */ - public static String digitUppercase(double n) - { - String[] fraction = { "角", "分" }; - String[] digit = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; - String[][] unit = { { "元", "万", "亿" }, { "", "拾", "佰", "仟" } }; + 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++) - { + for (int i = 0; i < fraction.length; i++) { // 优化double计算精度丢失问题 BigDecimal nNum = new BigDecimal(n); BigDecimal decimal = new BigDecimal(10); @@ -992,17 +841,14 @@ public class Convert double d = scale.doubleValue(); s += (digit[(int) (Math.floor(d * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", ""); } - if (s.length() < 1) - { + if (s.length() < 1) { s = "整"; } int integerPart = (int) Math.floor(n); - for (int i = 0; i < unit[0].length && integerPart > 0; i++) - { + for (int i = 0; i < unit[0].length && integerPart > 0; i++) { String p = ""; - for (int j = 0; j < unit[1].length && n > 0; j++) - { + for (int j = 0; j < unit[1].length && n > 0; j++) { p = digit[integerPart % 10] + unit[1][j] + p; integerPart = integerPart / 10; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/StrFormatter.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/StrFormatter.java index 2721457..329fe4f 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/StrFormatter.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/text/StrFormatter.java @@ -7,8 +7,7 @@ import com.muyu.common.core.utils.StringUtils; * * @author muyu */ -public class StrFormatter -{ +public class StrFormatter { public static final String EMPTY_JSON = "{}"; public static final char C_BACKSLASH = '\\'; public static final char C_DELIM_START = '{'; @@ -24,13 +23,11 @@ public class StrFormatter * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
* * @param strPattern 字符串模板 - * @param argArray 参数列表 + * @param argArray 参数列表 * @return 结果 */ - public static String format(final String strPattern, final Object... argArray) - { - if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) - { + public static String format(final String strPattern, final Object... argArray) { + if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) { return strPattern; } final int strPatternLength = strPattern.length(); @@ -40,43 +37,30 @@ public class StrFormatter int handledPosition = 0; int delimIndex;// 占位符所在位置 - for (int argIndex = 0; argIndex < argArray.length; argIndex++) - { + for (int argIndex = 0; argIndex < argArray.length; argIndex++) { delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); - if (delimIndex == -1) - { - if (handledPosition == 0) - { + if (delimIndex == -1) { + if (handledPosition == 0) { return strPattern; - } - else - { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果 + } 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) - { + } 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 - { + } else { // 占位符被转义 argIndex--; sbuf.append(strPattern, handledPosition, delimIndex - 1); sbuf.append(C_DELIM_START); handledPosition = delimIndex + 1; } - } - else - { + } else { // 正常占位符 sbuf.append(strPattern, handledPosition, delimIndex); sbuf.append(Convert.utf8Str(argArray[argIndex])); diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/DateUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/DateUtils.java index c0ebaf6..b1de1e0 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/DateUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/DateUtils.java @@ -13,8 +13,7 @@ import java.util.Date; * * @author muyu */ -public class DateUtils extends org.apache.commons.lang3.time.DateUtils -{ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY = "yyyy"; public static String YYYY_MM = "yyyy-MM"; @@ -35,8 +34,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils * * @return Date() 当前日期 */ - public static Date getNowDate() - { + public static Date getNowDate() { return new Date(); } @@ -45,44 +43,34 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils * * @return String */ - public static String getDate() - { + public static String getDate() { return dateTimeNow(YYYY_MM_DD); } - public static final String getTime() - { + public static final String getTime() { return dateTimeNow(YYYY_MM_DD_HH_MM_SS); } - public static final String dateTimeNow() - { + public static final String dateTimeNow() { return dateTimeNow(YYYYMMDDHHMMSS); } - public static final String dateTimeNow(final String format) - { + public static final String dateTimeNow(final String format) { return parseDateToStr(format, new Date()); } - public static final String dateTime(final Date 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) - { + 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 - { + public static final Date dateTime(final String format, final String ts) { + try { return new SimpleDateFormat(format).parse(ts); - } - catch (ParseException e) - { + } catch (ParseException e) { throw new RuntimeException(e); } } @@ -90,8 +78,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 日期路径 即年/月/日 如2018/08/08 */ - public static final String datePath() - { + public static final String datePath() { Date now = new Date(); return DateFormatUtils.format(now, "yyyy/MM/dd"); } @@ -99,8 +86,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 日期路径 即年/月/日 如20180808 */ - public static final String dateTime() - { + public static final String dateTime() { Date now = new Date(); return DateFormatUtils.format(now, "yyyyMMdd"); } @@ -108,18 +94,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 日期型字符串转化为日期 格式 */ - public static Date parseDate(Object str) - { - if (str == null) - { + public static Date parseDate(Object str) { + if (str == null) { return null; } - try - { + try { return parseDate(str.toString(), parsePatterns); - } - catch (ParseException e) - { + } catch (ParseException e) { return null; } } @@ -127,8 +108,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 获取服务器启动时间 */ - public static Date getServerStartDate() - { + public static Date getServerStartDate() { long time = ManagementFactory.getRuntimeMXBean().getStartTime(); return new Date(time); } @@ -136,12 +116,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 计算时间差 * - * @param endDate 最后时间 + * @param endDate 最后时间 * @param startTime 开始时间 * @return 时间差(天/小时/分钟) */ - public static String timeDistance(Date endDate, Date startTime) - { + public static String timeDistance(Date endDate, Date startTime) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60; @@ -162,8 +141,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 增加 LocalDateTime ==> Date */ - public static Date toDate(LocalDateTime temporalAccessor) - { + public static Date toDate(LocalDateTime temporalAccessor) { ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } @@ -171,8 +149,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 增加 LocalDate ==> Date */ - public static Date toDate(LocalDate temporalAccessor) - { + 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/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ExceptionUtil.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ExceptionUtil.java index fac638c..a9a2f04 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ExceptionUtil.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ExceptionUtil.java @@ -10,29 +10,24 @@ import java.io.StringWriter; * * @author muyu */ -public class ExceptionUtil -{ +public class ExceptionUtil { /** * 获取exception的详细错误信息。 */ - public static String getExceptionMessage(Throwable e) - { + 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) - { + public static String getRootErrorMessage(Exception e) { Throwable root = ExceptionUtils.getRootCause(e); root = (root == null ? e : root); - if (root == null) - { + if (root == null) { return ""; } String msg = root.getMessage(); - if (msg == null) - { + if (msg == null) { return "null"; } return StringUtils.defaultString(msg); diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/JwtUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/JwtUtils.java index 2119731..6580b6f 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/JwtUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/JwtUtils.java @@ -14,8 +14,7 @@ import java.util.Map; * * @author muyu */ -public class JwtUtils -{ +public class JwtUtils { public static String secret = TokenConstants.SECRET; /** @@ -24,8 +23,7 @@ public class JwtUtils * @param claims 数据声明 * @return 令牌 */ - public static String createToken(Map claims) - { + public static String createToken(Map claims) { String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact(); return token; } @@ -36,8 +34,7 @@ public class JwtUtils * @param token 令牌 * @return 数据声明 */ - public static Claims parseToken(String token) - { + public static Claims parseToken(String token) { return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); } @@ -47,8 +44,7 @@ public class JwtUtils * @param token 令牌 * @return 用户ID */ - public static String getUserKey(String token) - { + public static String getUserKey(String token) { Claims claims = parseToken(token); return getValue(claims, SecurityConstants.USER_KEY); } @@ -59,8 +55,7 @@ public class JwtUtils * @param claims 身份信息 * @return 用户ID */ - public static String getUserKey(Claims claims) - { + public static String getUserKey(Claims claims) { return getValue(claims, SecurityConstants.USER_KEY); } @@ -70,8 +65,7 @@ public class JwtUtils * @param token 令牌 * @return 用户ID */ - public static String getUserId(String token) - { + public static String getUserId(String token) { Claims claims = parseToken(token); return getValue(claims, SecurityConstants.DETAILS_USER_ID); } @@ -82,8 +76,7 @@ public class JwtUtils * @param claims 身份信息 * @return 用户ID */ - public static String getUserId(Claims claims) - { + public static String getUserId(Claims claims) { return getValue(claims, SecurityConstants.DETAILS_USER_ID); } @@ -93,8 +86,7 @@ public class JwtUtils * @param token 令牌 * @return 用户名 */ - public static String getUserName(String token) - { + public static String getUserName(String token) { Claims claims = parseToken(token); return getValue(claims, SecurityConstants.DETAILS_USERNAME); } @@ -105,8 +97,7 @@ public class JwtUtils * @param claims 身份信息 * @return 用户名 */ - public static String getUserName(Claims claims) - { + public static String getUserName(Claims claims) { return getValue(claims, SecurityConstants.DETAILS_USERNAME); } @@ -114,11 +105,10 @@ public class JwtUtils * 根据身份信息获取键值 * * @param claims 身份信息 - * @param key 键 + * @param key 键 * @return 值 */ - public static String getValue(Claims claims, String key) - { + public static String getValue(Claims claims, String key) { return Convert.toStr(claims.get(key), ""); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java index 689d235..3a6c829 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java @@ -10,13 +10,11 @@ import com.github.pagehelper.PageHelper; * * @author muyu */ -public class PageUtils extends PageHelper -{ +public class PageUtils extends PageHelper { /** * 设置请求分页数据 */ - public static void startPage() - { + public static void startPage() { PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); @@ -28,8 +26,7 @@ public class PageUtils extends PageHelper /** * 清理分页的线程变量 */ - public static void clearPage() - { + public static void clearPage() { PageHelper.clearPage(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ServletUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ServletUtils.java index dfa9188..25e6ad5 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ServletUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ServletUtils.java @@ -33,53 +33,46 @@ import java.util.Map; * * @author muyu */ -public class ServletUtils -{ +public class ServletUtils { /** * 获取String参数 */ - public static String getParameter(String name) - { + public static String getParameter(String name) { return getRequest().getParameter(name); } /** * 获取String参数 */ - public static String getParameter(String name, String defaultValue) - { + public static String getParameter(String name, String defaultValue) { return Convert.toStr(getRequest().getParameter(name), defaultValue); } /** * 获取Integer参数 */ - public static Integer getParameterToInt(String name) - { + public static Integer getParameterToInt(String name) { return Convert.toInt(getRequest().getParameter(name)); } /** * 获取Integer参数 */ - public static Integer getParameterToInt(String name, Integer defaultValue) - { + public static Integer getParameterToInt(String name, Integer defaultValue) { return Convert.toInt(getRequest().getParameter(name), defaultValue); } /** * 获取Boolean参数 */ - public static Boolean getParameterToBool(String name) - { + public static Boolean getParameterToBool(String name) { return Convert.toBool(getRequest().getParameter(name)); } /** * 获取Boolean参数 */ - public static Boolean getParameterToBool(String name, Boolean defaultValue) - { + public static Boolean getParameterToBool(String name, Boolean defaultValue) { return Convert.toBool(getRequest().getParameter(name), defaultValue); } @@ -89,8 +82,7 @@ public class ServletUtils * @param request 请求对象{@link ServletRequest} * @return Map */ - public static Map getParams(ServletRequest request) - { + public static Map getParams(ServletRequest request) { final Map map = request.getParameterMap(); return Collections.unmodifiableMap(map); } @@ -101,11 +93,9 @@ public class ServletUtils * @param request 请求对象{@link ServletRequest} * @return Map */ - public static Map getParamMap(ServletRequest request) - { + public static Map getParamMap(ServletRequest request) { Map params = new HashMap<>(); - for (Map.Entry entry : getParams(request).entrySet()) - { + for (Map.Entry entry : getParams(request).entrySet()) { params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); } return params; @@ -114,14 +104,10 @@ public class ServletUtils /** * 获取request */ - public static HttpServletRequest getRequest() - { - try - { + public static HttpServletRequest getRequest() { + try { return getRequestAttributes().getRequest(); - } - catch (Exception e) - { + } catch (Exception e) { return null; } } @@ -129,14 +115,10 @@ public class ServletUtils /** * 获取response */ - public static HttpServletResponse getResponse() - { - try - { + public static HttpServletResponse getResponse() { + try { return getRequestAttributes().getResponse(); - } - catch (Exception e) - { + } catch (Exception e) { return null; } } @@ -144,42 +126,32 @@ public class ServletUtils /** * 获取session */ - public static HttpSession getSession() - { + public static HttpSession getSession() { return getRequest().getSession(); } - public static ServletRequestAttributes getRequestAttributes() - { - try - { + public static ServletRequestAttributes getRequestAttributes() { + try { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; - } - catch (Exception e) - { + } catch (Exception e) { return null; } } - public static String getHeader(HttpServletRequest request, String name) - { + public static String getHeader(HttpServletRequest request, String name) { String value = request.getHeader(name); - if (StringUtils.isEmpty(value)) - { + if (StringUtils.isEmpty(value)) { return StringUtils.EMPTY; } return urlDecode(value); } - public static Map getHeaders(HttpServletRequest request) - { + public static Map getHeaders(HttpServletRequest request) { Map map = new LinkedCaseInsensitiveMap<>(); Enumeration enumeration = request.getHeaderNames(); - if (enumeration != null) - { - while (enumeration.hasMoreElements()) - { + if (enumeration != null) { + while (enumeration.hasMoreElements()) { String key = enumeration.nextElement(); String value = request.getHeader(key); map.put(key, value); @@ -192,19 +164,15 @@ public class ServletUtils * 将字符串渲染到客户端 * * @param response 渲染对象 - * @param string 待渲染的字符串 + * @param string 待渲染的字符串 */ - public static void renderString(HttpServletResponse response, String string) - { - try - { + 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) - { + } catch (IOException e) { e.printStackTrace(); } } @@ -214,23 +182,19 @@ public class ServletUtils * * @param request */ - public static boolean isAjaxRequest(HttpServletRequest request) - { + public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); - if (accept != null && accept.contains("application/json")) - { + if (accept != null && accept.contains("application/json")) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); - if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) - { + if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { return true; } String uri = request.getRequestURI(); - if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) - { + if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) { return true; } @@ -244,14 +208,10 @@ public class ServletUtils * @param str 内容 * @return 编码后的内容 */ - public static String urlEncode(String str) - { - try - { + public static String urlEncode(String str) { + try { return URLEncoder.encode(str, Constants.UTF8); - } - catch (UnsupportedEncodingException e) - { + } catch (UnsupportedEncodingException e) { return StringUtils.EMPTY; } } @@ -262,14 +222,10 @@ public class ServletUtils * @param str 内容 * @return 解码后的内容 */ - public static String urlDecode(String str) - { - try - { + public static String urlDecode(String str) { + try { return URLDecoder.decode(str, Constants.UTF8); - } - catch (UnsupportedEncodingException e) - { + } catch (UnsupportedEncodingException e) { return StringUtils.EMPTY; } } @@ -278,11 +234,10 @@ public class ServletUtils * 设置webflux模型响应 * * @param response ServerHttpResponse - * @param value 响应内容 + * @param value 响应内容 * @return Mono */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) - { + public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) { return webFluxResponseWriter(response, HttpStatus.OK, value, Result.FAIL); } @@ -290,12 +245,11 @@ public class ServletUtils * 设置webflux模型响应 * * @param response ServerHttpResponse - * @param code 响应状态码 - * @param value 响应内容 + * @param code 响应状态码 + * @param value 响应内容 * @return Mono */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value, int code) - { + public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value, int code) { return webFluxResponseWriter(response, HttpStatus.OK, value, code); } @@ -303,28 +257,26 @@ public class ServletUtils * 设置webflux模型响应 * * @param response ServerHttpResponse - * @param status http状态码 - * @param code 响应状态码 - * @param value 响应内容 + * @param status http状态码 + * @param code 响应状态码 + * @param value 响应内容 * @return Mono */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) - { + 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 response ServerHttpResponse * @param contentType content-type - * @param status http状态码 - * @param code 响应状态码 - * @param value 响应内容 + * @param status http状态码 + * @param code 响应状态码 + * @param value 响应内容 * @return Mono */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) - { + public static Mono webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) { response.setStatusCode(status); response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType); Result result = Result.error(code, value.toString()); diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java index 15260a0..17608e1 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java @@ -13,14 +13,14 @@ import org.springframework.stereotype.Component; * @author muyu */ @Component -public final class SpringUtils implements BeanFactoryPostProcessor -{ - /** Spring应用上下文环境 */ +public final class SpringUtils implements BeanFactoryPostProcessor { + /** + * Spring应用上下文环境 + */ private static ConfigurableListableBeanFactory beanFactory; @Override - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException - { + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { SpringUtils.beanFactory = beanFactory; } @@ -30,11 +30,9 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException - * */ @SuppressWarnings("unchecked") - public static T getBean(String name) throws BeansException - { + public static T getBean(String name) throws BeansException { return (T) beanFactory.getBean(name); } @@ -44,10 +42,8 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param clz * @return * @throws BeansException - * */ - public static T getBean(Class clz) throws BeansException - { + public static T getBean(Class clz) throws BeansException { T result = (T) beanFactory.getBean(clz); return result; } @@ -58,8 +54,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param name * @return boolean */ - public static boolean containsBean(String name) - { + public static boolean containsBean(String name) { return beanFactory.containsBean(name); } @@ -69,10 +64,8 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param name * @return boolean * @throws NoSuchBeanDefinitionException - * */ - public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException - { + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return beanFactory.isSingleton(name); } @@ -80,10 +73,8 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException - * */ - public static Class getType(String name) throws NoSuchBeanDefinitionException - { + public static Class getType(String name) throws NoSuchBeanDefinitionException { return beanFactory.getType(name); } @@ -93,10 +84,8 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @param name * @return * @throws NoSuchBeanDefinitionException - * */ - public static String[] getAliases(String name) throws NoSuchBeanDefinitionException - { + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return beanFactory.getAliases(name); } @@ -107,8 +96,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor * @return */ @SuppressWarnings("unchecked") - public static T getAopProxy(T invoker) - { + public static T getAopProxy(T invoker) { return (T) AopContext.currentProxy(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/StringUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/StringUtils.java index 201d6f0..b245382 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/StringUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/StringUtils.java @@ -13,12 +13,15 @@ import java.util.Map; * * @author muyu */ -public class StringUtils extends org.apache.commons.lang3.StringUtils -{ - /** 空字符串 */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + /** + * 空字符串 + */ private static final String NULLSTR = ""; - /** 下划线 */ + /** + * 下划线 + */ private static final char SEPARATOR = '_'; /** @@ -27,8 +30,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param value defaultValue 要判断的value * @return value 返回值 */ - public static T nvl(T value, T defaultValue) - { + public static T nvl(T value, T defaultValue) { return value != null ? value : defaultValue; } @@ -38,8 +40,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param coll 要判断的Collection * @return true:为空 false:非空 */ - public static boolean isEmpty(Collection coll) - { + public static boolean isEmpty(Collection coll) { return isNull(coll) || coll.isEmpty(); } @@ -49,8 +50,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param coll 要判断的Collection * @return true:非空 false:空 */ - public static boolean isNotEmpty(Collection coll) - { + public static boolean isNotEmpty(Collection coll) { return !isEmpty(coll); } @@ -58,10 +58,9 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * * 判断一个对象数组是否为空 * * @param objects 要判断的对象数组 - ** @return true:为空 false:非空 + * * @return true:为空 false:非空 */ - public static boolean isEmpty(Object[] objects) - { + public static boolean isEmpty(Object[] objects) { return isNull(objects) || (objects.length == 0); } @@ -71,8 +70,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param objects 要判断的对象数组 * @return true:非空 false:空 */ - public static boolean isNotEmpty(Object[] objects) - { + public static boolean isNotEmpty(Object[] objects) { return !isEmpty(objects); } @@ -82,8 +80,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param map 要判断的Map * @return true:为空 false:非空 */ - public static boolean isEmpty(Map map) - { + public static boolean isEmpty(Map map) { return isNull(map) || map.isEmpty(); } @@ -93,8 +90,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param map 要判断的Map * @return true:非空 false:空 */ - public static boolean isNotEmpty(Map map) - { + public static boolean isNotEmpty(Map map) { return !isEmpty(map); } @@ -104,8 +100,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param str String * @return true:为空 false:非空 */ - public static boolean isEmpty(String str) - { + public static boolean isEmpty(String str) { return isNull(str) || NULLSTR.equals(str.trim()); } @@ -115,8 +110,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param str String * @return true:非空串 false:空串 */ - public static boolean isNotEmpty(String str) - { + public static boolean isNotEmpty(String str) { return !isEmpty(str); } @@ -126,8 +120,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param object Object * @return true:为空 false:非空 */ - public static boolean isNull(Object object) - { + public static boolean isNull(Object object) { return object == null; } @@ -137,8 +130,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param object Object * @return true:非空 false:空 */ - public static boolean isNotNull(Object object) - { + public static boolean isNotNull(Object object) { return !isNull(object); } @@ -148,44 +140,37 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param object 对象 * @return true:是数组 false:不是数组 */ - public static boolean isArray(Object object) - { + public static boolean isArray(Object object) { return isNotNull(object) && object.getClass().isArray(); } /** * 去空格 */ - public static String trim(String str) - { + public static String trim(String str) { return (str == null ? "" : str.trim()); } /** * 截取字符串 * - * @param str 字符串 + * @param str 字符串 * @param start 开始 * @return 结果 */ - public static String substring(final String str, int start) - { - if (str == null) - { + public static String substring(final String str, int start) { + if (str == null) { return NULLSTR; } - if (start < 0) - { + if (start < 0) { start = str.length() + start; } - if (start < 0) - { + if (start < 0) { start = 0; } - if (start > str.length()) - { + if (start > str.length()) { return NULLSTR; } @@ -195,43 +180,35 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 截取字符串 * - * @param str 字符串 + * @param str 字符串 * @param start 开始 - * @param end 结束 + * @param end 结束 * @return 结果 */ - public static String substring(final String str, int start, int end) - { - if (str == null) - { + public static String substring(final String str, int start, int end) { + if (str == null) { return NULLSTR; } - if (end < 0) - { + if (end < 0) { end = str.length() + end; } - if (start < 0) - { + if (start < 0) { start = str.length() + start; } - if (end > str.length()) - { + if (end > str.length()) { end = str.length(); } - if (start > end) - { + if (start > end) { return NULLSTR; } - if (start < 0) - { + if (start < 0) { start = 0; } - if (end < 0) - { + if (end < 0) { end = 0; } @@ -244,18 +221,14 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param str 要判断的value * @return 结果 */ - public static boolean hasText(String str) - { + public static boolean hasText(String str) { return (str != null && !str.isEmpty() && containsText(str)); } - private static boolean containsText(CharSequence str) - { + private static boolean containsText(CharSequence str) { int strLen = str.length(); - for (int i = 0; i < strLen; i++) - { - if (!Character.isWhitespace(str.charAt(i))) - { + for (int i = 0; i < strLen; i++) { + if (!Character.isWhitespace(str.charAt(i))) { return true; } } @@ -272,13 +245,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
* * @param template 文本模板,被替换的部分用 {} 表示 - * @param params 参数值 + * @param params 参数值 * @return 格式化后的文本 */ - public static String format(String template, Object... params) - { - if (isEmpty(params) || isEmpty(template)) - { + public static String format(String template, Object... params) { + if (isEmpty(params) || isEmpty(template)) { return template; } return StrFormatter.format(template, params); @@ -290,8 +261,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param link 链接 * @return 结果 */ - public static boolean ishttp(String link) - { + public static boolean ishttp(String link) { return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); } @@ -299,21 +269,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * 判断给定的collection列表中是否包含数组array 判断给定的数组array中是否包含给定的元素value * * @param collection 给定的集合 - * @param array 给定的数组 + * @param array 给定的数组 * @return boolean 结果 */ - public static boolean containsAny(Collection collection, String... array) - { - if (isEmpty(collection) || isEmpty(array)) - { + public static boolean containsAny(Collection collection, String... array) { + if (isEmpty(collection) || isEmpty(array)) { return false; - } - else - { - for (String str : array) - { - if (collection.contains(str)) - { + } else { + for (String str : array) { + if (collection.contains(str)) { return true; } } @@ -324,10 +288,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 驼峰转下划线命名 */ - public static String toUnderScoreCase(String str) - { - if (str == null) - { + public static String toUnderScoreCase(String str) { + if (str == null) { return null; } StringBuilder sb = new StringBuilder(); @@ -337,31 +299,23 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils boolean curreCharIsUpperCase = true; // 下一字符是否大写 boolean nexteCharIsUpperCase = true; - for (int i = 0; i < str.length(); i++) - { + for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); - if (i > 0) - { + if (i > 0) { preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); - } - else - { + } else { preCharIsUpperCase = false; } curreCharIsUpperCase = Character.isUpperCase(c); - if (i < (str.length() - 1)) - { + if (i < (str.length() - 1)) { nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); } - if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) - { + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { sb.append(SEPARATOR); - } - else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) - { + } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { sb.append(SEPARATOR); } sb.append(Character.toLowerCase(c)); @@ -373,18 +327,14 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 是否包含字符串 * - * @param str 验证字符串 + * @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))) - { + public static boolean inStringIgnoreCase(String str, String... strs) { + if (str != null && strs != null) { + for (String s : strs) { + if (str.equalsIgnoreCase(trim(s))) { return true; } } @@ -398,27 +348,21 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * @param name 转换前的下划线大写方式命名的字符串 * @return 转换后的驼峰式命名的字符串 */ - public static String convertToCamelCase(String name) - { + public static String convertToCamelCase(String name) { StringBuilder result = new StringBuilder(); // 快速检查 - if (name == null || name.isEmpty()) - { + if (name == null || name.isEmpty()) { // 没必要转换 return ""; - } - else if (!name.contains("_")) - { + } else if (!name.contains("_")) { // 不含下划线,仅将首字母大写 return name.substring(0, 1).toUpperCase() + name.substring(1); } // 用下划线将原始字符串分割 String[] camels = name.split("_"); - for (String camel : camels) - { + for (String camel : camels) { // 跳过原始字符串中开头、结尾的下换线或双重下划线 - if (camel.isEmpty()) - { + if (camel.isEmpty()) { continue; } // 首字母大写 @@ -432,34 +376,25 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * 驼峰式命名法 * 例如:user_name->userName */ - public static String toCamelCase(String s) - { - if (s == null) - { + public static String toCamelCase(String s) { + if (s == null) { return null; } - if (s.indexOf(SEPARATOR) == -1) - { + 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++) - { + for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); - if (c == SEPARATOR) - { + if (c == SEPARATOR) { upperCase = true; - } - else if (upperCase) - { + } else if (upperCase) { sb.append(Character.toUpperCase(c)); upperCase = false; - } - else - { + } else { sb.append(c); } } @@ -469,20 +404,16 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 * - * @param str 指定字符串 + * @param str 指定字符串 * @param strs 需要检查的字符串数组 * @return 是否匹配 */ - public static boolean matches(String str, List strs) - { - if (isEmpty(str) || isEmpty(strs)) - { + public static boolean matches(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { return false; } - for (String pattern : strs) - { - if (isMatch(pattern, str)) - { + for (String pattern : strs) { + if (isMatch(pattern, str)) { return true; } } @@ -496,64 +427,52 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * ** 表示任意层路径; * * @param pattern 匹配规则 - * @param url 需要匹配的url + * @param url 需要匹配的url * @return */ - public static boolean isMatch(String pattern, String url) - { + 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) - { + public static T cast(Object obj) { return (T) obj; } /** * 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。 * - * @param num 数字对象 + * @param num 数字对象 * @param size 字符串指定长度 * @return 返回数字的字符串格式,该字符串为指定长度。 */ - public static final String padl(final Number num, final int size) - { + public static final String padl(final Number num, final int size) { return padl(num.toString(), size, '0'); } /** * 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。 * - * @param s 原始字符串 + * @param s 原始字符串 * @param size 字符串指定长度 - * @param c 用于补齐的字符 + * @param c 用于补齐的字符 * @return 返回指定长度的字符串,由原字符串左补齐或截取得到。 */ - public static final String padl(final String s, final int size, final char c) - { + public static final String padl(final String s, final int size, final char c) { final StringBuilder sb = new StringBuilder(size); - if (s != null) - { + if (s != null) { final int len = s.length(); - if (s.length() <= size) - { - for (int i = size - len; i > 0; i--) - { + if (s.length() <= size) { + for (int i = size - len; i > 0; i--) { sb.append(c); } sb.append(s); - } - else - { + } else { return s.substring(len - size, len); } - } - else - { - for (int i = size; i > 0; i--) - { + } else { + for (int i = size; i > 0; i--) { sb.append(c); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanUtils.java index 6761fde..952a88a 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanUtils.java @@ -11,31 +11,32 @@ import java.util.regex.Pattern; * * @author muyu */ -public class BeanUtils extends org.springframework.beans.BeanUtils -{ - /** Bean方法名中属性名开始的下标 */ +public class BeanUtils extends org.springframework.beans.BeanUtils { + /** + * Bean方法名中属性名开始的下标 + */ private static final int BEAN_METHOD_PROP_INDEX = 3; - /** * 匹配getter方法的正则表达式 */ + /** + * 匹配getter方法的正则表达式 + */ private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); - /** * 匹配setter方法的正则表达式 */ + /** + * 匹配setter方法的正则表达式 + */ private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); /** * Bean属性复制工具方法。 * * @param dest 目标对象 - * @param src 源对象 + * @param src 源对象 */ - public static void copyBeanProp(Object dest, Object src) - { - try - { + public static void copyBeanProp(Object dest, Object src) { + try { copyProperties(src, dest); - } - catch (Exception e) - { + } catch (Exception e) { e.printStackTrace(); } } @@ -46,8 +47,7 @@ public class BeanUtils extends org.springframework.beans.BeanUtils * @param obj 对象 * @return 对象的setter方法列表 */ - public static List getSetterMethods(Object obj) - { + public static List getSetterMethods(Object obj) { // setter方法列表 List setterMethods = new ArrayList(); @@ -56,11 +56,9 @@ public class BeanUtils extends org.springframework.beans.BeanUtils // 查找setter方法 - for (Method method : methods) - { + for (Method method : methods) { Matcher m = SET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 1)) - { + if (m.matches() && (method.getParameterTypes().length == 1)) { setterMethods.add(method); } } @@ -75,18 +73,15 @@ public class BeanUtils extends org.springframework.beans.BeanUtils * @return 对象的getter方法列表 */ - public static List getGetterMethods(Object obj) - { + public static List getGetterMethods(Object obj) { // getter方法列表 List getterMethods = new ArrayList(); // 获取所有方法 Method[] methods = obj.getClass().getMethods(); // 查找getter方法 - for (Method method : methods) - { + for (Method method : methods) { Matcher m = GET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 0)) - { + if (m.matches() && (method.getParameterTypes().length == 0)) { getterMethods.add(method); } } @@ -103,8 +98,7 @@ public class BeanUtils extends org.springframework.beans.BeanUtils * @return 属性名一样返回true,否则返回false */ - public static boolean isMethodPropEquals(String m1, String m2) - { + 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/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanValidators.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanValidators.java index 6f4f840..790ec23 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanValidators.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/bean/BeanValidators.java @@ -10,14 +10,11 @@ import java.util.Set; * * @author muyu */ -public class BeanValidators -{ +public class BeanValidators { public static void validateWithException(Validator validator, Object object, Class... groups) - throws ConstraintViolationException - { + throws ConstraintViolationException { Set> constraintViolations = validator.validate(object, groups); - if (!constraintViolations.isEmpty()) - { + if (!constraintViolations.isEmpty()) { throw new ConstraintViolationException(constraintViolations); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileTypeUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileTypeUtils.java index 8d9da11..70571ae 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileTypeUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileTypeUtils.java @@ -12,8 +12,7 @@ import java.util.Objects; * * @author muyu */ -public class FileTypeUtils -{ +public class FileTypeUtils { /** * 获取文件类型 *

@@ -22,10 +21,8 @@ public class FileTypeUtils * @param file 文件名 * @return 后缀(不含".") */ - public static String getFileType(File file) - { - if (null == file) - { + public static String getFileType(File file) { + if (null == file) { return StringUtils.EMPTY; } return getFileType(file.getName()); @@ -39,11 +36,9 @@ public class FileTypeUtils * @param fileName 文件名 * @return 后缀(不含".") */ - public static String getFileType(String fileName) - { + public static String getFileType(String fileName) { int separatorIndex = fileName.lastIndexOf("."); - if (separatorIndex < 0) - { + if (separatorIndex < 0) { return ""; } return fileName.substring(separatorIndex + 1).toLowerCase(); @@ -55,11 +50,9 @@ public class FileTypeUtils * @param file 表单文件 * @return 后缀名 */ - public static final String getExtension(MultipartFile file) - { + public static final String getExtension(MultipartFile file) { String extension = FilenameUtils.getExtension(file.getOriginalFilename()); - if (StringUtils.isEmpty(extension)) - { + if (StringUtils.isEmpty(extension)) { extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } return extension; @@ -71,24 +64,16 @@ public class FileTypeUtils * @param photoByte 文件字节码 * @return 后缀(不含".") */ - public static String getFileExtendName(byte[] photoByte) - { + 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)) - { + && ((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)) - { + } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) { strFileExtendName = "JPG"; - } - else if ((photoByte[0] == 66) && (photoByte[1] == 77)) - { + } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { strFileExtendName = "BMP"; - } - else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) - { + } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { strFileExtendName = "PNG"; } return strFileExtendName; diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileUtils.java index 3625043..4da1cc2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/FileUtils.java @@ -14,12 +14,15 @@ import java.nio.charset.StandardCharsets; * * @author muyu */ -public class FileUtils -{ - /** 字符常量:斜杠 {@code '/'} */ +public class FileUtils { + /** + * 字符常量:斜杠 {@code '/'} + */ public static final char SLASH = '/'; - /** 字符常量:反斜杠 {@code '\\'} */ + /** + * 字符常量:反斜杠 {@code '\\'} + */ public static final char BACKSLASH = '\\'; public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; @@ -28,52 +31,36 @@ public class FileUtils * 输出指定文件的byte数组 * * @param filePath 文件路径 - * @param os 输出流 + * @param os 输出流 * @return */ - public static void writeBytes(String filePath, OutputStream os) throws IOException - { + public static void writeBytes(String filePath, OutputStream os) throws IOException { FileInputStream fis = null; - try - { + try { File file = new File(filePath); - if (!file.exists()) - { + if (!file.exists()) { throw new FileNotFoundException(filePath); } fis = new FileInputStream(file); byte[] b = new byte[1024]; int length; - while ((length = fis.read(b)) > 0) - { + while ((length = fis.read(b)) > 0) { os.write(b, 0, length); } - } - catch (IOException e) - { + } catch (IOException e) { throw e; - } - finally - { - if (os != null) - { - try - { + } finally { + if (os != null) { + try { os.close(); - } - catch (IOException e1) - { + } catch (IOException e1) { e1.printStackTrace(); } } - if (fis != null) - { - try - { + if (fis != null) { + try { fis.close(); - } - catch (IOException e1) - { + } catch (IOException e1) { e1.printStackTrace(); } } @@ -86,13 +73,11 @@ public class FileUtils * @param filePath 文件 * @return */ - public static boolean deleteFile(String filePath) - { + public static boolean deleteFile(String filePath) { boolean flag = false; File file = new File(filePath); // 路径为文件且不为空则进行删除 - if (file.isFile() && file.exists()) - { + if (file.isFile() && file.exists()) { flag = file.delete(); } return flag; @@ -104,8 +89,7 @@ public class FileUtils * @param filename 文件名称 * @return true 正常 false 非法 */ - public static boolean isValidFilename(String filename) - { + public static boolean isValidFilename(String filename) { return filename.matches(FILENAME_PATTERN); } @@ -115,11 +99,9 @@ public class FileUtils * @param resource 需要下载的文件 * @return true 正常 false 非法 */ - public static boolean checkAllowDownload(String resource) - { + public static boolean checkAllowDownload(String resource) { // 禁止目录上跳级别 - if (StringUtils.contains(resource, "..")) - { + if (StringUtils.contains(resource, "..")) { return false; } // 判断是否在允许下载的文件规则内 @@ -129,32 +111,24 @@ public class FileUtils /** * 下载文件名重新编码 * - * @param request 请求对象 + * @param request 请求对象 * @param fileName 文件名 * @return 编码后的文件名 */ - public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException - { + public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException { final String agent = request.getHeader("USER-AGENT"); String filename = fileName; - if (agent.contains("MSIE")) - { + if (agent.contains("MSIE")) { // IE浏览器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); - } - else if (agent.contains("Firefox")) - { + } else if (agent.contains("Firefox")) { // 火狐浏览器 filename = new String(fileName.getBytes(), "ISO8859-1"); - } - else if (agent.contains("Chrome")) - { + } else if (agent.contains("Chrome")) { // google浏览器 filename = URLEncoder.encode(filename, "utf-8"); - } - else - { + } else { // 其它浏览器 filename = URLEncoder.encode(filename, "utf-8"); } @@ -167,30 +141,24 @@ public class FileUtils * @param filePath 文件 * @return 文件名 */ - public static String getName(String filePath) - { - if (null == filePath) - { + public static String getName(String filePath) { + if (null == filePath) { return null; } int len = filePath.length(); - if (0 == len) - { + if (0 == len) { return filePath; } - if (isFileSeparator(filePath.charAt(len - 1))) - { + if (isFileSeparator(filePath.charAt(len - 1))) { // 以分隔符结尾的去掉结尾分隔符 len--; } int begin = 0; char c; - for (int i = len - 1; i > -1; i--) - { + for (int i = len - 1; i > -1; i--) { c = filePath.charAt(i); - if (isFileSeparator(c)) - { + if (isFileSeparator(c)) { // 查找最后一个路径分隔符(/或者\) begin = i + 1; break; @@ -207,20 +175,18 @@ public class FileUtils * @param c 字符 * @return 是否为Windows或者Linux(Unix)文件分隔符 */ - public static boolean isFileSeparator(char c) - { + public static boolean isFileSeparator(char c) { return SLASH == c || BACKSLASH == c; } /** * 下载文件名重新编码 * - * @param response 响应对象 + * @param response 响应对象 * @param realFileName 真实文件名 * @return */ - public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException - { + public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { String percentEncodedFileName = percentEncode(realFileName); StringBuilder contentDispositionValue = new StringBuilder(); @@ -241,8 +207,7 @@ public class FileUtils * @param s 需要百分号编码的字符串 * @return 百分号编码后的字符串 */ - public static String percentEncode(String s) throws UnsupportedEncodingException - { + public static String percentEncode(String s) throws UnsupportedEncodingException { String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); return encode.replaceAll("\\+", "%20"); } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/ImageUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/ImageUtils.java index 859f65d..5a2ffb2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/ImageUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/ImageUtils.java @@ -15,38 +15,27 @@ import java.util.Arrays; * * @author muyu */ -public class ImageUtils -{ +public class ImageUtils { private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); - public static byte[] getImage(String imagePath) - { + public static byte[] getImage(String imagePath) { InputStream is = getFile(imagePath); - try - { + try { return IOUtils.toByteArray(is); - } - catch (Exception e) - { + } catch (Exception e) { log.error("图片加载异常 {}", e); return null; - } - finally - { + } finally { IOUtils.closeQuietly(is); } } - public static InputStream getFile(String imagePath) - { - try - { + public static InputStream getFile(String imagePath) { + try { byte[] result = readFile(imagePath); result = Arrays.copyOf(result, result.length); return new ByteArrayInputStream(result); - } - catch (Exception e) - { + } catch (Exception e) { log.error("获取图片异常 {}", e); } return null; @@ -58,11 +47,9 @@ public class ImageUtils * @param url 地址 * @return 字节数据 */ - public static byte[] readFile(String url) - { + public static byte[] readFile(String url) { InputStream in = null; - try - { + try { // 网络地址 URL urlObj = new URL(url); URLConnection urlConnection = urlObj.openConnection(); @@ -71,14 +58,10 @@ public class ImageUtils urlConnection.setDoInput(true); in = urlConnection.getInputStream(); return IOUtils.toByteArray(in); - } - catch (Exception e) - { + } catch (Exception e) { log.error("访问文件异常 {}", e); return null; - } - finally - { + } finally { IOUtils.closeQuietly(in); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/MimeTypeUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/MimeTypeUtils.java index 37de4d1..6859277 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/MimeTypeUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/file/MimeTypeUtils.java @@ -5,8 +5,7 @@ package com.muyu.common.core.utils.file; * * @author muyu */ -public class MimeTypeUtils -{ +public class MimeTypeUtils { public static final String IMAGE_PNG = "image/png"; public static final String IMAGE_JPG = "image/jpg"; @@ -17,14 +16,14 @@ public class MimeTypeUtils public static final String IMAGE_GIF = "image/gif"; - public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" }; + public static final String[] IMAGE_EXTENSION = {"bmp", "gif", "jpg", "jpeg", "png"}; - public static final String[] FLASH_EXTENSION = { "swf", "flv" }; + 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[] 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[] VIDEO_EXTENSION = {"mp4", "avi", "rmvb"}; public static final String[] DEFAULT_ALLOWED_EXTENSION = { // 图片 @@ -36,12 +35,10 @@ public class MimeTypeUtils // 视频格式 "mp4", "avi", "rmvb", // pdf - "pdf" }; + "pdf"}; - public static String getExtension(String prefix) - { - switch (prefix) - { + public static String getExtension(String prefix) { + switch (prefix) { case IMAGE_PNG: return "png"; case IMAGE_JPG: diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/EscapeUtil.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/EscapeUtil.java index 65c437d..d9bff69 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/EscapeUtil.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/EscapeUtil.java @@ -7,17 +7,14 @@ import com.muyu.common.core.utils.StringUtils; * * @author muyu */ -public class EscapeUtil -{ +public class EscapeUtil { public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)"; private static final char[][] TEXT = new char[64][]; - static - { - for (int i = 0; i < 64; i++) - { - TEXT[i] = new char[] { (char) i }; + static { + for (int i = 0; i < 64; i++) { + TEXT[i] = new char[]{(char) i}; } // special HTML characters @@ -34,8 +31,7 @@ public class EscapeUtil * @param text 被转义的文本 * @return 转义后的文本 */ - public static String escape(String text) - { + public static String escape(String text) { return encode(text); } @@ -45,8 +41,7 @@ public class EscapeUtil * @param content 包含转义符的HTML内容 * @return 转换后的字符串 */ - public static String unescape(String content) - { + public static String unescape(String content) { return decode(content); } @@ -56,8 +51,7 @@ public class EscapeUtil * @param content 文本 * @return 清除标签后的文本 */ - public static String clean(String content) - { + public static String clean(String content) { return new HTMLFilter().filter(content); } @@ -67,32 +61,24 @@ public class EscapeUtil * @param text 被编码的文本 * @return 编码后的字符 */ - private static String encode(String text) - { - if (StringUtils.isEmpty(text)) - { + 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++) - { + for (int i = 0; i < text.length(); i++) { c = text.charAt(i); - if (c < 256) - { + if (c < 256) { tmp.append("%"); - if (c < 16) - { + if (c < 16) { tmp.append("0"); } tmp.append(Integer.toString(c, 16)); - } - else - { + } else { tmp.append("%u"); - if (c <= 0xfff) - { + if (c <= 0xfff) { // issue#I49JU8@Gitee tmp.append("0"); } @@ -108,43 +94,31 @@ public class EscapeUtil * @param content 被转义的内容 * @return 解码后的字符串 */ - public static String decode(String content) - { - if (StringUtils.isEmpty(content)) - { + 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()) - { + while (lastPos < content.length()) { pos = content.indexOf("%", lastPos); - if (pos == lastPos) - { - if (content.charAt(pos + 1) == 'u') - { + 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 - { + } else { ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); tmp.append(ch); lastPos = pos + 3; } - } - else - { - if (pos == -1) - { + } else { + if (pos == -1) { tmp.append(content.substring(lastPos)); lastPos = content.length(); - } - else - { + } else { tmp.append(content.substring(lastPos, pos)); lastPos = pos; } @@ -153,8 +127,7 @@ public class EscapeUtil return tmp.toString(); } - public static void main(String[] args) - { + public static void main(String[] args) { String html = ""; String escape = EscapeUtil.escape(html); // String html = "ipt>alert(\"XSS\")ipt>"; diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/HTMLFilter.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/HTMLFilter.java index 9ac19bd..57cede0 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/HTMLFilter.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/html/HTMLFilter.java @@ -11,8 +11,7 @@ import java.util.regex.Pattern; * * @author muyu */ -public final class HTMLFilter -{ +public final class HTMLFilter { /** * regex flag union representing /si modifiers in php **/ @@ -96,8 +95,7 @@ public final class HTMLFilter /** * Default constructor. */ - public HTMLFilter() - { + public HTMLFilter() { vAllowed = new HashMap<>(); final ArrayList a_atts = new ArrayList<>(); @@ -118,13 +116,13 @@ public final class HTMLFilter 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" }; + 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; @@ -136,8 +134,7 @@ public final class HTMLFilter * @param conf map containing configuration. keys match field names. */ @SuppressWarnings("unchecked") - public HTMLFilter(final Map conf) - { + public HTMLFilter(final Map conf) { assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; @@ -161,20 +158,17 @@ public final class HTMLFilter alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; } - private void reset() - { + private void reset() { vTagCounts.clear(); } // --------------------------------------------------------------- // my versions of some PHP library functions - public static String chr(final int decimal) - { + public static String chr(final int decimal) { return String.valueOf((char) decimal); } - public static String htmlSpecialChars(final String s) - { + public static String htmlSpecialChars(final String s) { String result = s; result = regexReplace(P_AMP, "&", result); result = regexReplace(P_QUOTE, """, result); @@ -191,8 +185,7 @@ public final class HTMLFilter * @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) - { + public String filter(final String input) { reset(); String s = input; @@ -209,22 +202,18 @@ public final class HTMLFilter return s; } - public boolean isAlwaysMakeTags() - { + public boolean isAlwaysMakeTags() { return alwaysMakeTags; } - public boolean isStripComments() - { + public boolean isStripComments() { return stripComment; } - private String escapeComments(final String s) - { + private String escapeComments(final String s) { final Matcher m = P_COMMENTS.matcher(s); final StringBuffer buf = new StringBuffer(); - if (m.find()) - { + if (m.find()) { final String match = m.group(1); // (.*?) m.appendReplacement(buf, Matcher.quoteReplacement("")); } @@ -233,10 +222,8 @@ public final class HTMLFilter return buf.toString(); } - private String balanceHTML(String s) - { - if (alwaysMakeTags) - { + private String balanceHTML(String s) { + if (alwaysMakeTags) { // // try and form html // @@ -245,9 +232,7 @@ public final class HTMLFilter s = regexReplace(P_BODY_TO_END, "<$1>", s); s = regexReplace(P_XML_CONTENT, "$1<$2", s); - } - else - { + } else { // // escape stray brackets // @@ -265,13 +250,11 @@ public final class HTMLFilter return s; } - private String checkTags(String s) - { + private String checkTags(String s) { Matcher m = P_TAGS.matcher(s); final StringBuffer buf = new StringBuffer(); - while (m.find()) - { + while (m.find()) { String replaceStr = m.group(1); replaceStr = processTag(replaceStr); m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); @@ -281,10 +264,8 @@ public final class HTMLFilter // 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++) - { + for (String key : vTagCounts.keySet()) { + for (int ii = 0; ii < vTagCounts.get(key); ii++) { sBuilder.append(""); } } @@ -293,18 +274,14 @@ public final class HTMLFilter return s; } - private String processRemoveBlanks(final String s) - { + private String processRemoveBlanks(final String s) { String result = s; - for (String tag : vRemoveBlanks) - { - if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) - { + 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)) - { + 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); @@ -313,25 +290,19 @@ public final class HTMLFilter return result; } - private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) - { + 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) - { + private String processTag(final String s) { // ending tags Matcher m = P_END_TAG.matcher(s); - if (m.find()) - { + if (m.find()) { final String name = m.group(1).toLowerCase(); - if (allowed(name)) - { - if (!inArray(name, vSelfClosingTags)) - { - if (vTagCounts.containsKey(name)) - { + if (allowed(name)) { + if (!inArray(name, vSelfClosingTags)) { + if (vTagCounts.containsKey(name)) { vTagCounts.put(name, vTagCounts.get(name) - 1); return ""; } @@ -341,35 +312,30 @@ public final class HTMLFilter // starting tags m = P_START_TAG.matcher(s); - if (m.find()) - { + 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)) - { + 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()) - { + while (m2.find()) { paramNames.add(m2.group(1)); // ([a-z0-9]+) paramValues.add(m2.group(3)); // (.*?) } - while (m3.find()) - { + 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++) - { + for (int ii = 0; ii < paramNames.size(); ii++) { paramName = paramNames.get(ii).toLowerCase(); paramValue = paramValues.get(ii); @@ -377,72 +343,55 @@ public final class HTMLFilter // debug( "paramValue='" + paramValue + "'" ); // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); - if (allowedAttribute(name, paramName)) - { - if (inArray(paramName, vProtocolAtts)) - { + if (allowedAttribute(name, paramName)) { + if (inArray(paramName, vProtocolAtts)) { paramValue = processParamProtocol(paramValue); } params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\\\""); } } - if (inArray(name, vSelfClosingTags)) - { + if (inArray(name, vSelfClosingTags)) { ending = " /"; } - if (inArray(name, vNeedClosingTags)) - { + if (inArray(name, vNeedClosingTags)) { ending = ""; } - if (ending == null || ending.length() < 1) - { - if (vTagCounts.containsKey(name)) - { + if (ending == null || ending.length() < 1) { + if (vTagCounts.containsKey(name)) { vTagCounts.put(name, vTagCounts.get(name) + 1); - } - else - { + } else { vTagCounts.put(name, 1); } - } - else - { + } else { ending = " /"; } return "<" + name + params + ending + ">"; - } - else - { + } else { return ""; } } // comments m = P_COMMENT.matcher(s); - if (!stripComment && m.find()) - { + if (!stripComment && m.find()) { return "<" + m.group() + ">"; } return ""; } - private String processParamProtocol(String s) - { + private String processParamProtocol(String s) { s = decodeEntities(s); final Matcher m = P_PROTOCOL.matcher(s); - if (m.find()) - { + if (m.find()) { final String protocol = m.group(1); - if (!inArray(protocol, vAllowedProtocols)) - { + if (!inArray(protocol, vAllowedProtocols)) { // bad protocol, turn into local anchor link instead s = "#" + s.substring(protocol.length() + 1); - if (s.startsWith("#//")) - { + if (s.startsWith("#//")) { s = "#" + s.substring(3); } } @@ -451,13 +400,11 @@ public final class HTMLFilter return s; } - private String decodeEntities(String s) - { + private String decodeEntities(String s) { StringBuffer buf = new StringBuffer(); Matcher m = P_ENTITY.matcher(s); - while (m.find()) - { + while (m.find()) { final String match = m.group(1); final int decimal = Integer.decode(match).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); @@ -467,8 +414,7 @@ public final class HTMLFilter buf = new StringBuffer(); m = P_ENTITY_UNICODE.matcher(s); - while (m.find()) - { + while (m.find()) { final String match = m.group(1); final int decimal = Integer.valueOf(match, 16).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); @@ -478,8 +424,7 @@ public final class HTMLFilter buf = new StringBuffer(); m = P_ENCODE.matcher(s); - while (m.find()) - { + while (m.find()) { final String match = m.group(1); final int decimal = Integer.valueOf(match, 16).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); @@ -491,14 +436,12 @@ public final class HTMLFilter return s; } - private String validateEntities(final String 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()) - { + while (m.find()) { final String one = m.group(1); // ([^&;]*) final String two = m.group(2); // (?=(;|&|$)) m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); @@ -508,14 +451,11 @@ public final class HTMLFilter return encodeQuotes(buf.toString()); } - private String encodeQuotes(final String s) - { - if (encodeQuotes) - { + private String encodeQuotes(final String s) { + if (encodeQuotes) { StringBuffer buf = new StringBuffer(); Matcher m = P_VALID_QUOTES.matcher(s); - while (m.find()) - { + while (m.find()) { final String one = m.group(1); // (>|^) final String two = m.group(2); // ([^<]+?) final String three = m.group(3); // (<|$) @@ -524,43 +464,34 @@ public final class HTMLFilter } m.appendTail(buf); return buf.toString(); - } - else - { + } 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; } - private boolean isValidEntity(final String entity) - { + 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)) - { + 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) - { + private boolean allowed(final String name) { return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); } - private boolean allowedAttribute(final String name, final String paramName) - { + private boolean allowedAttribute(final String name, final String paramName) { return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java index 2d57ff3..818dba2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java @@ -12,8 +12,7 @@ import java.net.UnknownHostException; * * @author muyu */ -public class IpUtils -{ +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 + ")"; @@ -26,8 +25,7 @@ public class IpUtils * * @return IP地址 */ - public static String getIpAddr() - { + public static String getIpAddr() { return getIpAddr(ServletUtils.getRequest()); } @@ -37,32 +35,25 @@ public class IpUtils * @param request 请求对象 * @return IP地址 */ - public static String getIpAddr(HttpServletRequest request) - { - if (request == null) - { + 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)) - { + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(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)) - { + 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)) - { + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Real-IP"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) - { + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } @@ -75,8 +66,7 @@ public class IpUtils * @param ip IP地址 * @return 结果 */ - public static boolean internalIp(String ip) - { + public static boolean internalIp(String ip) { byte[] addr = textToNumericFormatV4(ip); return internalIp(addr) || "127.0.0.1".equals(ip); } @@ -87,10 +77,8 @@ public class IpUtils * @param addr byte地址 * @return 结果 */ - private static boolean internalIp(byte[] addr) - { - if (StringUtils.isNull(addr) || addr.length < 2) - { + private static boolean internalIp(byte[] addr) { + if (StringUtils.isNull(addr) || addr.length < 2) { return true; } final byte b0 = addr[0]; @@ -104,18 +92,15 @@ public class IpUtils // 192.168.x.x/16 final byte SECTION_5 = (byte) 0xC0; final byte SECTION_6 = (byte) 0xA8; - switch (b0) - { + switch (b0) { case SECTION_1: return true; case SECTION_2: - if (b1 >= SECTION_3 && b1 <= SECTION_4) - { + if (b1 >= SECTION_3 && b1 <= SECTION_4) { return true; } case SECTION_5: - switch (b1) - { + switch (b1) { case SECTION_6: return true; } @@ -130,25 +115,20 @@ public class IpUtils * @param text IPv4地址 * @return byte 字节 */ - public static byte[] textToNumericFormatV4(String text) - { - if (text.length() == 0) - { + public static byte[] textToNumericFormatV4(String text) { + if (text.length() == 0) { return null; } byte[] bytes = new byte[4]; String[] elements = text.split("\\.", -1); - try - { + try { long l; int i; - switch (elements.length) - { + switch (elements.length) { case 1: l = Long.parseLong(elements[0]); - if ((l < 0L) || (l > 4294967295L)) - { + if ((l < 0L) || (l > 4294967295L)) { return null; } bytes[0] = (byte) (int) (l >> 24 & 0xFF); @@ -158,14 +138,12 @@ public class IpUtils break; case 2: l = Integer.parseInt(elements[0]); - if ((l < 0L) || (l > 255L)) - { + if ((l < 0L) || (l > 255L)) { return null; } bytes[0] = (byte) (int) (l & 0xFF); l = Integer.parseInt(elements[1]); - if ((l < 0L) || (l > 16777215L)) - { + if ((l < 0L) || (l > 16777215L)) { return null; } bytes[1] = (byte) (int) (l >> 16 & 0xFF); @@ -173,29 +151,24 @@ public class IpUtils bytes[3] = (byte) (int) (l & 0xFF); break; case 3: - for (i = 0; i < 2; ++i) - { + for (i = 0; i < 2; ++i) { l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { + if ((l < 0L) || (l > 255L)) { return null; } bytes[i] = (byte) (int) (l & 0xFF); } l = Integer.parseInt(elements[2]); - if ((l < 0L) || (l > 65535L)) - { + 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) - { + for (i = 0; i < 4; ++i) { l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) - { + if ((l < 0L) || (l > 255L)) { return null; } bytes[i] = (byte) (int) (l & 0xFF); @@ -204,9 +177,7 @@ public class IpUtils default: return null; } - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { return null; } return bytes; @@ -217,14 +188,10 @@ public class IpUtils * * @return 本地IP地址 */ - public static String getHostIp() - { - try - { + public static String getHostIp() { + try { return InetAddress.getLocalHost().getHostAddress(); - } - catch (UnknownHostException e) - { + } catch (UnknownHostException e) { } return "127.0.0.1"; } @@ -234,14 +201,10 @@ public class IpUtils * * @return 本地主机名 */ - public static String getHostName() - { - try - { + public static String getHostName() { + try { return InetAddress.getLocalHost().getHostName(); - } - catch (UnknownHostException e) - { + } catch (UnknownHostException e) { } return "未知"; } @@ -252,16 +215,12 @@ public class IpUtils * @param ip 获得的IP地址 * @return 第一个非unknown IP地址 */ - public static String getMultistageReverseProxyIp(String ip) - { + public static String getMultistageReverseProxyIp(String ip) { // 多级反向代理检测 - if (ip != null && ip.indexOf(",") > 0) - { + if (ip != null && ip.indexOf(",") > 0) { final String[] ips = ip.trim().split(","); - for (String subIp : ips) - { - if (false == isUnknown(subIp)) - { + for (String subIp : ips) { + if (false == isUnknown(subIp)) { ip = subIp; break; } @@ -276,39 +235,33 @@ public class IpUtils * @param checkString 被检测的字符串 * @return 是否未知 */ - public static boolean isUnknown(String checkString) - { + public static boolean isUnknown(String checkString) { return StringUtils.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString); } /** * 是否为IP */ - public static boolean isIP(String ip) - { + public static boolean isIP(String ip) { return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP); } /** * 是否为IP,或 *为间隔的通配符地址 */ - public static boolean isIpWildCard(String ip) - { + public static boolean isIpWildCard(String ip) { return StringUtils.isNotBlank(ip) && ip.matches(REGX_IP_WILDCARD); } /** * 检测参数是否在ip通配符里 */ - public static boolean ipIsInWildCardNoCheck(String ipWildCard, String 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])) - { + for (int i = 0; i < s1.length && !s1[i].equals("*"); i++) { + if (!s1[i].equals(s2[i])) { isMatchedSeg = false; break; } @@ -319,29 +272,25 @@ public class IpUtils /** * 是否为特定格式如:“10.10.10.1-10.10.10.99”的ip段字符串 */ - public static boolean isIPSegment(String ipSeg) - { + public static boolean isIPSegment(String ipSeg) { return StringUtils.isNotBlank(ipSeg) && ipSeg.matches(REGX_IP_SEG); } /** * 判断ip是否在指定网段中 */ - public static boolean ipIsInNetNoCheck(String iparea, String 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) - { + 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) - { + if (ips > ipe) { long t = ips; ips = ipe; ipe = t; @@ -353,28 +302,20 @@ public class IpUtils * 校验ip是否符合过滤串规则 * * @param filter 过滤IP列表,支持后缀'*'通配,支持网段如:`10.10.10.1-10.10.10.99` - * @param ip 校验IP地址 + * @param ip 校验IP地址 * @return boolean 结果 */ - public static boolean isMatchedIp(String filter, String ip) - { - if (StringUtils.isEmpty(filter) || StringUtils.isEmpty(ip)) - { + 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)) - { + for (String iStr : ips) { + if (isIP(iStr) && iStr.equals(ip)) { return true; - } - else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) - { + } else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) { return true; - } - else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) - { + } else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) { return true; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelHandlerAdapter.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelHandlerAdapter.java index a7074f5..b8ea3fc 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelHandlerAdapter.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelHandlerAdapter.java @@ -8,16 +8,14 @@ import org.apache.poi.ss.usermodel.Workbook; * * @author muyu */ -public interface ExcelHandlerAdapter -{ +public interface ExcelHandlerAdapter { /** * 格式化 * * @param value 单元格数据值 - * @param args excel注解args参数组 - * @param cell 单元格对象 - * @param wb 工作簿对象 - * + * @param args excel注解args参数组 + * @param cell 单元格对象 + * @param wb 工作簿对象 * @return 处理后的值 */ Object format(Object value, String[] args, Cell cell, Workbook wb); diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelUtil.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelUtil.java index 62e1ba7..fe6dc21 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelUtil.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/poi/ExcelUtil.java @@ -42,13 +42,12 @@ import java.util.stream.Collectors; * * @author muyu */ -public class ExcelUtil -{ +public class ExcelUtil { private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; - public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; + public static final String[] FORMULA_STR = {"=", "-", "+", "@"}; /** * Excel sheet最大行数,默认65536 @@ -145,8 +144,7 @@ public class ExcelUtil */ public String[] excludeFields; - public ExcelUtil(Class clazz) - { + public ExcelUtil(Class clazz) { this.clazz = clazz; } @@ -156,15 +154,12 @@ public class ExcelUtil * @param fields 列属性名 示例[单个"name"/多个"id","name"] * @throws Exception */ - public void hideColumn(String... fields) - { + public void hideColumn(String... fields) { this.excludeFields = fields; } - public void init(List list, String sheetName, String title, Type type) - { - if (list == null) - { + public void init(List list, String sheetName, String title, Type type) { + if (list == null) { list = new ArrayList(); } this.list = list; @@ -180,15 +175,12 @@ public class ExcelUtil /** * 创建excel第一行标题 */ - public void createTitle() - { - if (StringUtils.isNotEmpty(title)) - { + public void createTitle() { + if (StringUtils.isNotEmpty(title)) { subMergedFirstRowNum++; subMergedLastRowNum++; int titleLastCol = this.fields.size() - 1; - if (isSubList()) - { + if (isSubList()) { titleLastCol = titleLastCol + subFields.size() - 1; } Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); @@ -203,16 +195,13 @@ public class ExcelUtil /** * 创建对象的子列表名称 */ - public void createSubHead() - { - if (isSubList()) - { + public void createSubHead() { + if (isSubList()) { subMergedFirstRowNum++; subMergedLastRowNum++; Row subRow = sheet.createRow(rownum); int excelNum = 0; - for (Object[] objects : fields) - { + for (Object[] objects : fields) { Excel attr = (Excel) objects[1]; Cell headCell1 = subRow.createCell(excelNum); headCell1.setCellValue(attr.name()); @@ -221,8 +210,7 @@ public class ExcelUtil } int headFirstRow = excelNum - 1; int headLastRow = headFirstRow + subFields.size() - 1; - if (headLastRow > headFirstRow) - { + if (headLastRow > headFirstRow) { sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow)); } rownum++; @@ -235,20 +223,14 @@ public class ExcelUtil * @param is 输入流 * @return 转换后集合 */ - public List importExcel(InputStream is) - { + public List importExcel(InputStream is) { List list = null; - try - { + try { list = importExcel(is, 0); - } - catch (Exception e) - { + } catch (Exception e) { log.error("导入Excel异常{}", e.getMessage()); throw new UtilException(e.getMessage()); - } - finally - { + } finally { IOUtils.closeQuietly(is); } return list; @@ -257,12 +239,11 @@ public class ExcelUtil /** * 对excel表单默认第一个索引名转换成list * - * @param is 输入流 + * @param is 输入流 * @param titleNum 标题占用行数 * @return 转换后集合 */ - public List importExcel(InputStream is, int titleNum) throws Exception - { + public List importExcel(InputStream is, int titleNum) throws Exception { return importExcel(StringUtils.EMPTY, is, titleNum); } @@ -270,67 +251,55 @@ public class ExcelUtil * 对excel表单指定表格索引名转换成list * * @param sheetName 表格索引名 - * @param titleNum 标题占用行数 - * @param is 输入流 + * @param titleNum 标题占用行数 + * @param is 输入流 * @return 转换后集合 */ - public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception - { + 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个sheet Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); - if (sheet == null) - { + if (sheet == null) { throw new IOException("文件sheet不存在"); } // 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1 int rows = sheet.getLastRowNum(); - if (rows > 0) - { + if (rows > 0) { // 定义一个map用于存放excel列的序号和field. Map cellMap = new HashMap(); // 获取表头 Row heard = sheet.getRow(titleNum); - for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) - { + for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { Cell cell = heard.getCell(i); - if (StringUtils.isNotNull(cell)) - { + if (StringUtils.isNotNull(cell)) { String value = this.getCellValue(heard, i).toString(); cellMap.put(value, i); - } - else - { + } else { cellMap.put(null, i); } } // 有数据时才处理 得到类的所有field. List fields = this.getFields(); Map fieldsMap = new HashMap(); - for (Object[] objects : fields) - { + for (Object[] objects : fields) { Excel attr = (Excel) objects[1]; Integer column = cellMap.get(attr.name()); - if (column != null) - { + if (column != null) { fieldsMap.put(column, objects); } } - for (int i = titleNum + 1; i <= rows; i++) - { + for (int i = titleNum + 1; i <= rows; i++) { // 从第2行开始取数据,默认第一行是表头. Row row = sheet.getRow(i); // 判断当前行是否是空行 - if (isRowEmpty(row)) - { + if (isRowEmpty(row)) { continue; } T entity = null; - for (Map.Entry entry : fieldsMap.entrySet()) - { + for (Map.Entry entry : fieldsMap.entrySet()) { Object val = this.getCellValue(row, entry.getKey()); // 如果不存在实例则新建. @@ -340,74 +309,45 @@ public class ExcelUtil Excel attr = (Excel) entry.getValue()[1]; // 取得类型,并根据对象类型设置值. Class fieldType = field.getType(); - if (String.class == fieldType) - { + if (String.class == fieldType) { String s = Convert.toStr(val); - if (StringUtils.endsWith(s, ".0")) - { + if (StringUtils.endsWith(s, ".0")) { val = StringUtils.substringBefore(s, ".0"); - } - else - { + } else { String dateFormat = field.getAnnotation(Excel.class).dateFormat(); - if (StringUtils.isNotEmpty(dateFormat)) - { + if (StringUtils.isNotEmpty(dateFormat)) { val = parseDateToStr(dateFormat, val); - } - else - { + } else { val = Convert.toStr(val); } } - } - else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(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))) - { + } 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) - { + } else if (Double.TYPE == fieldType || Double.class == fieldType) { val = Convert.toDouble(val); - } - else if (Float.TYPE == fieldType || Float.class == fieldType) - { + } else if (Float.TYPE == fieldType || Float.class == fieldType) { val = Convert.toFloat(val); - } - else if (BigDecimal.class == fieldType) - { + } else if (BigDecimal.class == fieldType) { val = Convert.toBigDecimal(val); - } - else if (Date.class == fieldType) - { - if (val instanceof String) - { + } else if (Date.class == fieldType) { + if (val instanceof String) { val = DateUtils.parseDate(val); - } - else if (val instanceof Double) - { + } else if (val instanceof Double) { val = DateUtil.getJavaDate((Double) val); } - } - else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) - { + } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) { val = Convert.toBool(val, false); } - if (StringUtils.isNotNull(fieldType)) - { + if (StringUtils.isNotNull(fieldType)) { String propertyName = field.getName(); - if (StringUtils.isNotEmpty(attr.targetAttr())) - { + if (StringUtils.isNotEmpty(attr.targetAttr())) { propertyName = field.getName() + "." + attr.targetAttr(); } - if (StringUtils.isNotEmpty(attr.readConverterExp())) - { + if (StringUtils.isNotEmpty(attr.readConverterExp())) { val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); - } - else if (!attr.handler().equals(ExcelHandlerAdapter.class)) - { + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { val = dataFormatHandlerAdapter(val, attr, null); } ReflectUtils.invokeSetter(entity, propertyName, val); @@ -422,27 +362,25 @@ public class ExcelUtil /** * 对list数据源将其里面的数据导入到excel表单 * - * @param response 返回数据 - * @param list 导出数据集合 + * @param response 返回数据 + * @param list 导出数据集合 * @param sheetName 工作表的名称 * @return 结果 */ - public void exportExcel(HttpServletResponse response, List list, String sheetName) - { + public void exportExcel(HttpServletResponse response, List list, String sheetName) { exportExcel(response, list, sheetName, StringUtils.EMPTY); } /** * 对list数据源将其里面的数据导入到excel表单 * - * @param response 返回数据 - * @param list 导出数据集合 + * @param response 返回数据 + * @param list 导出数据集合 * @param sheetName 工作表的名称 - * @param title 标题 + * @param title 标题 * @return 结果 */ - public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) - { + 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); @@ -455,8 +393,7 @@ public class ExcelUtil * @param sheetName 工作表的名称 * @return 结果 */ - public void importTemplateExcel(HttpServletResponse response, String sheetName) - { + public void importTemplateExcel(HttpServletResponse response, String sheetName) { importTemplateExcel(response, sheetName, StringUtils.EMPTY); } @@ -464,11 +401,10 @@ public class ExcelUtil * 对list数据源将其里面的数据导入到excel表单 * * @param sheetName 工作表的名称 - * @param title 标题 + * @param title 标题 * @return 结果 */ - public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) - { + 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); @@ -480,19 +416,13 @@ public class ExcelUtil * * @return 结果 */ - public void exportExcel(HttpServletResponse response) - { - try - { + public void exportExcel(HttpServletResponse response) { + try { writeSheet(); wb.write(response.getOutputStream()); - } - catch (Exception e) - { + } catch (Exception e) { log.error("导出Excel异常{}", e.getMessage()); - } - finally - { + } finally { IOUtils.closeQuietly(wb); } } @@ -500,37 +430,29 @@ public class ExcelUtil /** * 创建写入数据到Sheet */ - public void writeSheet() - { + public void writeSheet() { // 取出一共有多少个sheet. int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); - for (int index = 0; index < sheetNo; index++) - { + for (int index = 0; index < sheetNo; index++) { createSheet(sheetNo, index); // 产生一行 Row row = sheet.createRow(rownum); int column = 0; // 写入各个字段的列头名称 - for (Object[] os : fields) - { + for (Object[] os : fields) { Field field = (Field) os[0]; Excel excel = (Excel) os[1]; - if (Collection.class.isAssignableFrom(field.getType())) - { - for (Field subField : subFields) - { + if (Collection.class.isAssignableFrom(field.getType())) { + for (Field subField : subFields) { Excel subExcel = subField.getAnnotation(Excel.class); this.createHeadCell(subExcel, row, column++); } - } - else - { + } else { this.createHeadCell(excel, row, column++); } } - if (Type.EXPORT.equals(type)) - { + if (Type.EXPORT.equals(type)) { fillExcelData(index, row); addStatisticsRow(); } @@ -541,55 +463,43 @@ public class ExcelUtil * 填充excel数据 * * @param index 序号 - * @param row 单元格行 + * @param row 单元格行 */ @SuppressWarnings("unchecked") - public void fillExcelData(int index, Row row) - { + public void fillExcelData(int index, Row row) { int startNo = index * sheetSize; int endNo = Math.min(startNo + sheetSize, list.size()); int rowNo = (1 + rownum) - startNo; - for (int i = startNo; i < endNo; i++) - { + for (int i = startNo; i < endNo; i++) { rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; row = sheet.createRow(rowNo); // 得到导出对象. T vo = (T) list.get(i); Collection subList = null; - if (isSubList()) - { - if (isSubListValue(vo)) - { + if (isSubList()) { + if (isSubListValue(vo)) { subList = getListCellValue(vo); subMergedLastRowNum = subMergedLastRowNum + subList.size(); - } - else - { + } else { subMergedFirstRowNum++; subMergedLastRowNum++; } } int column = 0; - for (Object[] os : fields) - { + for (Object[] os : fields) { Field field = (Field) os[0]; Excel excel = (Excel) os[1]; - if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) - { + if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) { boolean subFirst = false; - for (Object obj : subList) - { - if (subFirst) - { + for (Object obj : subList) { + if (subFirst) { rowNo++; row = sheet.createRow(rowNo); } List subFields = FieldUtils.getFieldsListWithAnnotation(obj.getClass(), Excel.class); int subIndex = 0; - for (Field subField : subFields) - { - if (subField.isAnnotationPresent(Excel.class)) - { + for (Field subField : subFields) { + if (subField.isAnnotationPresent(Excel.class)) { subField.setAccessible(true); Excel attr = subField.getAnnotation(Excel.class); this.addCell(attr, row, (T) obj, subField, column + subIndex); @@ -599,9 +509,7 @@ public class ExcelUtil subFirst = true; } this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size(); - } - else - { + } else { this.addCell(excel, row, vo, field, column++); } } @@ -614,8 +522,7 @@ public class ExcelUtil * @param wb 工作薄对象 * @return 样式列表 */ - private Map createStyles(Workbook wb) - { + private Map createStyles(Workbook wb) { // 写入各条记录,每条记录对应excel表中的一行 Map styles = new HashMap(); CellStyle style = wb.createCellStyle(); @@ -667,15 +574,12 @@ public class ExcelUtil * @param wb 工作薄对象 * @return 自定义样式列表 */ - private Map annotationHeaderStyles(Workbook wb, Map styles) - { + private Map annotationHeaderStyles(Workbook wb, Map styles) { Map headerStyles = new HashMap(); - for (Object[] os : fields) - { + for (Object[] os : fields) { Excel excel = (Excel) os[1]; String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); - if (!headerStyles.containsKey(key)) - { + if (!headerStyles.containsKey(key)) { CellStyle style = wb.createCellStyle(); style.cloneStyleFrom(styles.get("data")); style.setAlignment(HorizontalAlignment.CENTER); @@ -700,15 +604,12 @@ public class ExcelUtil * @param wb 工作薄对象 * @return 自定义样式列表 */ - private Map annotationDataStyles(Workbook wb) - { + private Map annotationDataStyles(Workbook wb) { Map styles = new HashMap(); - for (Object[] os : fields) - { + for (Object[] os : fields) { Excel excel = (Excel) os[1]; String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor()); - if (!styles.containsKey(key)) - { + if (!styles.containsKey(key)) { CellStyle style = wb.createCellStyle(); style.setAlignment(excel.align()); style.setVerticalAlignment(VerticalAlignment.CENTER); @@ -736,20 +637,17 @@ public class ExcelUtil /** * 创建单元格 */ - public Cell createHeadCell(Excel attr, Row row, int column) - { + 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()) - { + if (isSubList()) { // 填充默认样式,防止合并单元格样式失效 sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); - if (attr.needMerge()) - { + if (attr.needMerge()) { sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); } } @@ -760,38 +658,28 @@ public class ExcelUtil * 设置单元格信息 * * @param value 单元格值 - * @param attr 注解相关 - * @param cell 单元格信息 + * @param attr 注解相关 + * @param cell 单元格信息 */ - public void setCellVo(Object value, Excel attr, Cell cell) - { - if (ColumnType.STRING == attr.cellType()) - { + public void setCellVo(Object value, Excel attr, Cell cell) { + if (ColumnType.STRING == attr.cellType()) { String cellValue = Convert.toStr(value); // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 - if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) - { + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) { cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); } - if (value instanceof Collection && StringUtils.equals("[]", cellValue)) - { + 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)) - { + } 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()) - { + } 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)) - { + if (StringUtils.isNotEmpty(imagePath)) { byte[] data = ImageUtils.getImage(imagePath); getDrawingPatriarch(cell.getSheet()).createPicture(anchor, cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); @@ -802,10 +690,8 @@ public class ExcelUtil /** * 获取画布 */ - public static Drawing getDrawingPatriarch(Sheet sheet) - { - if (sheet.getDrawingPatriarch() == null) - { + public static Drawing getDrawingPatriarch(Sheet sheet) { + if (sheet.getDrawingPatriarch() == null) { sheet.createDrawingPatriarch(); } return sheet.getDrawingPatriarch(); @@ -814,15 +700,11 @@ public class ExcelUtil /** * 获取图片类型,设置图片插入类型 */ - public int getImageType(byte[] value) - { + public int getImageType(byte[] value) { String type = FileTypeUtils.getFileExtendName(value); - if ("JPG".equalsIgnoreCase(type)) - { + if ("JPG".equalsIgnoreCase(type)) { return Workbook.PICTURE_TYPE_JPEG; - } - else if ("PNG".equalsIgnoreCase(type)) - { + } else if ("PNG".equalsIgnoreCase(type)) { return Workbook.PICTURE_TYPE_PNG; } return Workbook.PICTURE_TYPE_JPEG; @@ -831,26 +713,18 @@ public class ExcelUtil /** * 创建表格样式 */ - public void setDataValidation(Excel attr, Row row, int column) - { - if (attr.name().indexOf("注:") >= 0) - { + public void setDataValidation(Excel attr, Row row, int column) { + if (attr.name().indexOf("注:") >= 0) { sheet.setColumnWidth(column, 6000); - } - else - { + } 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) - { + 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 - { + } else { // 提示信息或只能选择不能输入的列内容. setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); } @@ -860,20 +734,16 @@ public class ExcelUtil /** * 添加单元格 */ - public Cell addCell(Excel attr, Row row, T vo, Field field, int column) - { + public Cell addCell(Excel attr, Row row, T vo, Field field, int column) { Cell cell = null; - try - { + try { // 设置行高 row.setHeight(maxHeight); // 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列. - if (attr.isExport()) - { + if (attr.isExport()) { // 创建cell cell = row.createCell(column); - if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) - { + if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) { CellRangeAddress cellAddress = new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column); sheet.addMergedRegion(cellAddress); } @@ -884,32 +754,21 @@ public class ExcelUtil String dateFormat = attr.dateFormat(); String readConverterExp = attr.readConverterExp(); String separator = attr.separator(); - if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) - { + if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { cell.setCellValue(parseDateToStr(dateFormat, value)); - } - else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(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()) - { + } 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)) - { + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell)); - } - else - { + } else { // 设置列类型 setCellVo(value, attr, cell); } addStatisticsData(column, Convert.toStr(value), attr); } - } - catch (Exception e) - { + } catch (Exception e) { log.error("导出Excel失败{}", e); } return cell; @@ -918,35 +777,30 @@ public class ExcelUtil /** * 设置 POI XSSFSheet 单元格提示或选择框 * - * @param sheet 表单 - * @param textlist 下拉框显示的内容 + * @param sheet 表单 + * @param textlist 下拉框显示的内容 * @param promptContent 提示内容 - * @param firstRow 开始行 - * @param endRow 结束行 - * @param firstCol 开始列 - * @param endCol 结束列 + * @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) - { + 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)) - { + if (StringUtils.isNotEmpty(promptContent)) { // 如果设置了提示信息则鼠标放上去提示 dataValidation.createPromptBox("", promptContent); dataValidation.setShowPromptBox(true); } // 处理Excel兼容性问题 - if (dataValidation instanceof XSSFDataValidation) - { + if (dataValidation instanceof XSSFDataValidation) { dataValidation.setSuppressDropDownArrow(true); dataValidation.setShowErrorBox(true); - } - else - { + } else { dataValidation.setSuppressDropDownArrow(false); } sheet.addValidationData(dataValidation); @@ -955,20 +809,18 @@ public class ExcelUtil /** * 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框). * - * @param sheet 要设置的sheet. - * @param textlist 下拉框显示的内容 + * @param sheet 要设置的sheet. + * @param textlist 下拉框显示的内容 * @param promptContent 提示内容 - * @param firstRow 开始行 - * @param endRow 结束行 - * @param firstCol 开始列 - * @param endCol 结束列 + * @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) - { + public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) { String hideSheetName = "combo_" + firstCol + "_" + endCol; Sheet hideSheet = wb.createSheet(hideSheetName); // 用于存储 下拉菜单数据 - for (int i = 0; i < textlist.length; i++) - { + for (int i = 0; i < textlist.length; i++) { hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); } // 创建名称,可被其他单元格引用 @@ -982,20 +834,16 @@ public class ExcelUtil CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); // 数据有效性对象 DataValidation dataValidation = helper.createValidation(constraint, regions); - if (StringUtils.isNotEmpty(promptContent)) - { + if (StringUtils.isNotEmpty(promptContent)) { // 如果设置了提示信息则鼠标放上去提示 dataValidation.createPromptBox("", promptContent); dataValidation.setShowPromptBox(true); } // 处理Excel兼容性问题 - if (dataValidation instanceof XSSFDataValidation) - { + if (dataValidation instanceof XSSFDataValidation) { dataValidation.setSuppressDropDownArrow(true); dataValidation.setShowErrorBox(true); - } - else - { + } else { dataValidation.setSuppressDropDownArrow(false); } @@ -1008,32 +856,24 @@ public class ExcelUtil * 解析导出值 0=男,1=女,2=未知 * * @param propertyValue 参数值 - * @param converterExp 翻译注解 - * @param separator 分隔符 + * @param converterExp 翻译注解 + * @param separator 分隔符 * @return 解析后值 */ - public static String convertByExp(String propertyValue, String converterExp, String separator) - { + public static String convertByExp(String propertyValue, String converterExp, String separator) { StringBuilder propertyString = new StringBuilder(); String[] convertSource = converterExp.split(","); - for (String item : convertSource) - { + for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(propertyValue, separator)) - { - for (String value : propertyValue.split(separator)) - { - if (itemArray[0].equals(value)) - { + 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)) - { + } else { + if (itemArray[0].equals(propertyValue)) { return itemArray[1]; } } @@ -1045,32 +885,24 @@ public class ExcelUtil * 反向解析值 男=0,女=1,未知=2 * * @param propertyValue 参数值 - * @param converterExp 翻译注解 - * @param separator 分隔符 + * @param converterExp 翻译注解 + * @param separator 分隔符 * @return 解析后值 */ - public static String reverseByExp(String propertyValue, String converterExp, String separator) - { + public static String reverseByExp(String propertyValue, String converterExp, String separator) { StringBuilder propertyString = new StringBuilder(); String[] convertSource = converterExp.split(","); - for (String item : convertSource) - { + for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(propertyValue, separator)) - { - for (String value : propertyValue.split(separator)) - { - if (itemArray[1].equals(value)) - { + 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)) - { + } else { + if (itemArray[1].equals(propertyValue)) { return itemArray[0]; } } @@ -1085,16 +917,12 @@ public class ExcelUtil * @param excel 数据注解 * @return */ - public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell) - { - try - { + 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 }); + 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) - { + } catch (Exception e) { log.error("不能格式化数据 " + excel.handler(), e.getMessage()); } return Convert.toStr(value); @@ -1103,21 +931,15 @@ public class ExcelUtil /** * 合计统计信息 */ - private void addStatisticsData(Integer index, String text, Excel entity) - { - if (entity != null && entity.isStatistics()) - { + private void addStatisticsData(Integer index, String text, Excel entity) { + if (entity != null && entity.isStatistics()) { Double temp = 0D; - if (!statistics.containsKey(index)) - { + if (!statistics.containsKey(index)) { statistics.put(index, temp); } - try - { + try { temp = Double.valueOf(text); - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { } statistics.put(index, statistics.get(index) + temp); } @@ -1126,18 +948,15 @@ public class ExcelUtil /** * 创建统计行 */ - public void addStatisticsRow() - { - if (statistics.size() > 0) - { + 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) - { + for (Integer key : keys) { cell = row.createCell(key); cell.setCellStyle(styles.get("total")); cell.setCellValue(DOUBLE_FORMAT.format(statistics.get(key))); @@ -1149,28 +968,22 @@ public class ExcelUtil /** * 获取bean中的属性值 * - * @param vo 实体对象 + * @param vo 实体对象 * @param field 字段 * @param excel 注解 * @return 最终的属性值 * @throws Exception */ - private Object getTargetValue(T vo, Field field, Excel excel) throws Exception - { + private Object getTargetValue(T vo, Field field, Excel excel) throws Exception { Object o = field.get(vo); - if (StringUtils.isNotEmpty(excel.targetAttr())) - { + if (StringUtils.isNotEmpty(excel.targetAttr())) { String target = excel.targetAttr(); - if (target.contains(".")) - { + if (target.contains(".")) { String[] targets = target.split("[.]"); - for (String name : targets) - { + for (String name : targets) { o = getValue(o, name); } - } - else - { + } else { o = getValue(o, target); } } @@ -1185,10 +998,8 @@ public class ExcelUtil * @return value * @throws Exception */ - private Object getValue(Object o, String name) throws Exception - { - if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) - { + 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); @@ -1200,8 +1011,7 @@ public class ExcelUtil /** * 得到所有定义字段 */ - private void createExcelField() - { + 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(); @@ -1210,27 +1020,21 @@ public class ExcelUtil /** * 获取字段注解信息 */ - public List getFields() - { + public List getFields() { List fields = new ArrayList(); List tempFields = new ArrayList<>(); tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); - for (Field field : tempFields) - { - if (!ArrayUtils.contains(this.excludeFields, field.getName())) - { + for (Field field : tempFields) { + if (!ArrayUtils.contains(this.excludeFields, field.getName())) { // 单注解 - if (field.isAnnotationPresent(Excel.class)) - { + if (field.isAnnotationPresent(Excel.class)) { Excel attr = field.getAnnotation(Excel.class); - if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) - { + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) { field.setAccessible(true); - fields.add(new Object[] { field, attr }); + fields.add(new Object[]{field, attr}); } - if (Collection.class.isAssignableFrom(field.getType())) - { + if (Collection.class.isAssignableFrom(field.getType())) { subMethod = getSubMethod(field.getName(), clazz); ParameterizedType pt = (ParameterizedType) field.getGenericType(); Class subClass = (Class) pt.getActualTypeArguments()[0]; @@ -1239,17 +1043,14 @@ public class ExcelUtil } // 多注解 - if (field.isAnnotationPresent(Excels.class)) - { + if (field.isAnnotationPresent(Excels.class)) { Excels attrs = field.getAnnotation(Excels.class); Excel[] excels = attrs.value(); - for (Excel attr : excels) - { + for (Excel attr : excels) { if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) - && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) - { + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { field.setAccessible(true); - fields.add(new Object[] { field, attr }); + fields.add(new Object[]{field, attr}); } } } @@ -1261,11 +1062,9 @@ public class ExcelUtil /** * 根据注解获取最大行高 */ - public short getRowHeight() - { + public short getRowHeight() { double maxHeight = 0; - for (Object[] os : this.fields) - { + for (Object[] os : this.fields) { Excel excel = (Excel) os[1]; maxHeight = Math.max(maxHeight, excel.height()); } @@ -1275,8 +1074,7 @@ public class ExcelUtil /** * 创建一个工作簿 */ - public void createWorkbook() - { + public void createWorkbook() { this.wb = new SXSSFWorkbook(500); this.sheet = wb.createSheet(); wb.setSheetName(0, sheetName); @@ -1287,13 +1085,11 @@ public class ExcelUtil * 创建工作表 * * @param sheetNo sheet数量 - * @param index 序号 + * @param index 序号 */ - public void createSheet(int sheetNo, int index) - { + public void createSheet(int sheetNo, int index) { // 设置工作表的名称. - if (sheetNo > 1 && index > 0) - { + if (sheetNo > 1 && index > 0) { this.sheet = wb.createSheet(); this.createTitle(); wb.setSheetName(index, sheetName + index); @@ -1303,58 +1099,39 @@ public class ExcelUtil /** * 获取单元格值 * - * @param row 获取的行 + * @param row 获取的行 * @param column 获取单元格列号 * @return 单元格值 */ - public Object getCellValue(Row row, int column) - { - if (row == null) - { + public Object getCellValue(Row row, int column) { + if (row == null) { return row; } Object val = ""; - try - { + try { Cell cell = row.getCell(column); - if (StringUtils.isNotNull(cell)) - { - if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) - { + if (StringUtils.isNotNull(cell)) { + if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { val = cell.getNumericCellValue(); - if (DateUtil.isCellDateFormatted(cell)) - { + if (DateUtil.isCellDateFormatted(cell)) { val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换 - } - else - { - if ((Double) val % 1 != 0) - { + } else { + if ((Double) val % 1 != 0) { val = new BigDecimal(val.toString()); - } - else - { + } else { val = new DecimalFormat("0").format(val); } } - } - else if (cell.getCellType() == CellType.STRING) - { + } else if (cell.getCellType() == CellType.STRING) { val = cell.getStringCellValue(); - } - else if (cell.getCellType() == CellType.BOOLEAN) - { + } else if (cell.getCellType() == CellType.BOOLEAN) { val = cell.getBooleanCellValue(); - } - else if (cell.getCellType() == CellType.ERROR) - { + } else if (cell.getCellType() == CellType.ERROR) { val = cell.getErrorCellValue(); } } - } - catch (Exception e) - { + } catch (Exception e) { return val; } return val; @@ -1366,17 +1143,13 @@ public class ExcelUtil * @param row 判断的行 * @return */ - private boolean isRowEmpty(Row row) - { - if (row == null) - { + private boolean isRowEmpty(Row row) { + if (row == null) { return true; } - for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) - { + for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); - if (cell != null && cell.getCellType() != CellType.BLANK) - { + if (cell != null && cell.getCellType() != CellType.BLANK) { return false; } } @@ -1387,30 +1160,21 @@ public class ExcelUtil * 格式化不同类型的日期对象 * * @param dateFormat 日期格式 - * @param val 被格式化的日期对象 + * @param val 被格式化的日期对象 * @return 格式化后的日期字符 */ - public String parseDateToStr(String dateFormat, Object val) - { - if (val == null) - { + public String parseDateToStr(String dateFormat, Object val) { + if (val == null) { return ""; } String str; - if (val instanceof Date) - { + if (val instanceof Date) { str = DateUtils.parseDateToStr(dateFormat, (Date) val); - } - else if (val instanceof LocalDateTime) - { + } else if (val instanceof LocalDateTime) { str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); - } - else if (val instanceof LocalDate) - { + } else if (val instanceof LocalDate) { str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); - } - else - { + } else { str = val.toString(); } return str; @@ -1419,31 +1183,25 @@ public class ExcelUtil /** * 是否有对象的子列表 */ - public boolean isSubList() - { + public boolean isSubList() { return StringUtils.isNotNull(subFields) && subFields.size() > 0; } /** * 是否有对象的子列表,集合不为空 */ - public boolean isSubListValue(T vo) - { + public boolean isSubListValue(T vo) { return StringUtils.isNotNull(subFields) && subFields.size() > 0 && StringUtils.isNotNull(getListCellValue(vo)) && getListCellValue(vo).size() > 0; } /** * 获取集合的值 */ - public Collection getListCellValue(Object obj) - { + public Collection getListCellValue(Object obj) { Object value; - try - { - value = subMethod.invoke(obj, new Object[] {}); - } - catch (Exception e) - { + try { + value = subMethod.invoke(obj, new Object[]{}); + } catch (Exception e) { return new ArrayList(); } return (Collection) value; @@ -1452,22 +1210,18 @@ public class ExcelUtil /** * 获取对象的子列表方法 * - * @param name 名称 + * @param name 名称 * @param pojoClass 类对象 * @return 子列表方法 */ - public Method getSubMethod(String name, Class pojoClass) - { + 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) - { + try { + method = pojoClass.getMethod(getMethodName.toString(), new Class[]{}); + } catch (Exception e) { log.error("获取对象异常{}", e.getMessage()); } return method; diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/reflect/ReflectUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/reflect/ReflectUtils.java index f0dcbe3..c26e2c5 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/reflect/ReflectUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/reflect/ReflectUtils.java @@ -17,8 +17,7 @@ import java.util.Date; * @author muyu */ @SuppressWarnings("rawtypes") -public class ReflectUtils -{ +public class ReflectUtils { private static final String SETTER_PREFIX = "set"; private static final String GETTER_PREFIX = "get"; @@ -32,13 +31,11 @@ public class ReflectUtils * 支持多级,如:对象名.对象名.方法 */ @SuppressWarnings("unchecked") - public static E invokeGetter(Object obj, String propertyName) - { + public static E invokeGetter(Object obj, String propertyName) { Object object = obj; - for (String name : StringUtils.split(propertyName, ".")) - { + for (String name : StringUtils.split(propertyName, ".")) { String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(name); - object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); + object = invokeMethod(object, getterMethodName, new Class[]{}, new Object[]{}); } return (E) object; } @@ -47,21 +44,16 @@ public class ReflectUtils * 调用Setter方法, 仅匹配方法名。 * 支持多级,如:对象名.对象名.方法 */ - public static void invokeSetter(Object obj, String propertyName, E value) - { + 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) - { + 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 - { + object = invokeMethod(object, getterMethodName, new Class[]{}, new Object[]{}); + } else { String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(names[i]); - invokeMethodByName(object, setterMethodName, new Object[] { value }); + invokeMethodByName(object, setterMethodName, new Object[]{value}); } } } @@ -70,21 +62,16 @@ public class ReflectUtils * 直接读取对象属性值, 无视private/protected修饰符, 不经过getter函数. */ @SuppressWarnings("unchecked") - public static E getFieldValue(final Object obj, final String fieldName) - { + public static E getFieldValue(final Object obj, final String fieldName) { Field field = getAccessibleField(obj, fieldName); - if (field == null) - { + if (field == null) { logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); return null; } E result = null; - try - { + try { result = (E) field.get(obj); - } - catch (IllegalAccessException e) - { + } catch (IllegalAccessException e) { logger.error("不可能抛出的异常{}", e.getMessage()); } return result; @@ -93,21 +80,16 @@ public class ReflectUtils /** * 直接设置对象属性值, 无视private/protected修饰符, 不经过setter函数. */ - public static void setFieldValue(final Object obj, final String fieldName, final E value) - { + public static void setFieldValue(final Object obj, final String fieldName, final E value) { Field field = getAccessibleField(obj, fieldName); - if (field == null) - { + if (field == null) { // throw new IllegalArgumentException("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); return; } - try - { + try { field.set(obj, value); - } - catch (IllegalAccessException e) - { + } catch (IllegalAccessException e) { logger.error("不可能抛出的异常: {}", e.getMessage()); } } @@ -119,24 +101,18 @@ public class ReflectUtils */ @SuppressWarnings("unchecked") public static E invokeMethod(final Object obj, final String methodName, final Class[] parameterTypes, - final Object[] args) - { - if (obj == null || methodName == null) - { + final Object[] args) { + if (obj == null || methodName == null) { return null; } Method method = getAccessibleMethod(obj, methodName, parameterTypes); - if (method == null) - { + if (method == null) { logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + methodName + "] 方法 "); return null; } - try - { + try { return (E) method.invoke(obj, args); - } - catch (Exception e) - { + } catch (Exception e) { String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; throw convertReflectionExceptionToUnchecked(msg, e); } @@ -148,68 +124,44 @@ public class ReflectUtils * 只匹配函数名,如果有多个同名函数调用第一个。 */ @SuppressWarnings("unchecked") - public static E invokeMethodByName(final Object obj, final String methodName, final Object[] args) - { + public static E invokeMethodByName(final Object obj, final String methodName, final Object[] args) { Method method = getAccessibleMethodByName(obj, methodName, args.length); - if (method == null) - { + if (method == null) { // 如果为空不报错,直接返回空。 logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + methodName + "] 方法 "); return null; } - try - { + 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) - { + 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")) - { + if (StringUtils.endsWith((String) args[i], ".0")) { args[i] = StringUtils.substringBefore((String) args[i], ".0"); } - } - else if (cs[i] == Integer.class) - { + } else if (cs[i] == Integer.class) { args[i] = Convert.toInt(args[i]); - } - else if (cs[i] == Long.class) - { + } else if (cs[i] == Long.class) { args[i] = Convert.toLong(args[i]); - } - else if (cs[i] == Double.class) - { + } else if (cs[i] == Double.class) { args[i] = Convert.toDouble(args[i]); - } - else if (cs[i] == Float.class) - { + } else if (cs[i] == Float.class) { args[i] = Convert.toFloat(args[i]); - } - else if (cs[i] == Date.class) - { - if (args[i] instanceof String) - { + } else if (cs[i] == Date.class) { + if (args[i] instanceof String) { args[i] = DateUtils.parseDate(args[i]); - } - else - { + } else { args[i] = DateUtil.getJavaDate((Double) args[i]); } - } - else if (cs[i] == boolean.class || cs[i] == Boolean.class) - { + } 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) - { + } catch (Exception e) { String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; throw convertReflectionExceptionToUnchecked(msg, e); } @@ -219,24 +171,18 @@ public class ReflectUtils * 循环向上转型, 获取对象的DeclaredField, 并强制设置为可访问. * 如向上转型到Object仍无法找到, 返回null. */ - public static Field getAccessibleField(final Object obj, final String fieldName) - { + public static Field getAccessibleField(final Object obj, final String fieldName) { // 为空不报错。直接返回 null - if (obj == 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 - { + for (Class superClass = obj.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) { + try { Field field = superClass.getDeclaredField(fieldName); makeAccessible(field); return field; - } - catch (NoSuchFieldException e) - { + } catch (NoSuchFieldException e) { continue; } } @@ -250,24 +196,18 @@ public class ReflectUtils * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) */ public static Method getAccessibleMethod(final Object obj, final String methodName, - final Class... parameterTypes) - { + final Class... parameterTypes) { // 为空不报错。直接返回 null - if (obj == 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 - { + 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) - { + } catch (NoSuchMethodException e) { continue; } } @@ -280,21 +220,16 @@ public class ReflectUtils * 只匹配函数名。 * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) */ - public static Method getAccessibleMethodByName(final Object obj, final String methodName, int argsNum) - { + public static Method getAccessibleMethodByName(final Object obj, final String methodName, int argsNum) { // 为空不报错。直接返回 null - if (obj == 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()) - { + 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) - { + for (Method method : methods) { + if (method.getName().equals(methodName) && method.getParameterTypes().length == argsNum) { makeAccessible(method); return method; } @@ -306,11 +241,9 @@ public class ReflectUtils /** * 改变private/protected的方法为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 */ - public static void makeAccessible(Method method) - { + public static void makeAccessible(Method method) { if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) - && !method.isAccessible()) - { + && !method.isAccessible()) { method.setAccessible(true); } } @@ -318,11 +251,9 @@ public class ReflectUtils /** * 改变private/protected的成员变量为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 */ - public static void makeAccessible(Field field) - { + public static void makeAccessible(Field field) { if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) - || Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) - { + || Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) { field.setAccessible(true); } } @@ -332,8 +263,7 @@ public class ReflectUtils * 如无法找到, 返回Object.class. */ @SuppressWarnings("unchecked") - public static Class getClassGenricType(final Class clazz) - { + public static Class getClassGenricType(final Class clazz) { return getClassGenricType(clazz, 0); } @@ -341,26 +271,22 @@ public class ReflectUtils * 通过反射, 获得Class定义中声明的父类的泛型参数的类型. * 如无法找到, 返回Object.class. */ - public static Class getClassGenricType(final Class clazz, final int index) - { + public static Class getClassGenricType(final Class clazz, final int index) { Type genType = clazz.getGenericSuperclass(); - if (!(genType instanceof ParameterizedType)) - { + if (!(genType instanceof ParameterizedType)) { logger.debug(clazz.getSimpleName() + "'s superclass not ParameterizedType"); return Object.class; } Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); - if (index >= params.length || index < 0) - { + 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)) - { + if (!(params[index] instanceof Class)) { logger.debug(clazz.getSimpleName() + " not set the actual class on superclass generic parameter"); return Object.class; } @@ -368,18 +294,14 @@ public class ReflectUtils return (Class) params[index]; } - public static Class getUserClass(Object instance) - { - if (instance == null) - { + 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)) - { + if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) { Class superClass = clazz.getSuperclass(); - if (superClass != null && !Object.class.equals(superClass)) - { + if (superClass != null && !Object.class.equals(superClass)) { return superClass; } } @@ -390,15 +312,11 @@ public class ReflectUtils /** * 将反射时的checked exception转换为unchecked exception. */ - public static RuntimeException convertReflectionExceptionToUnchecked(String msg, Exception e) - { + public static RuntimeException convertReflectionExceptionToUnchecked(String msg, Exception e) { if (e instanceof IllegalAccessException || e instanceof IllegalArgumentException - || e instanceof NoSuchMethodException) - { + || e instanceof NoSuchMethodException) { return new IllegalArgumentException(msg, e); - } - else if (e instanceof InvocationTargetException) - { + } else if (e instanceof InvocationTargetException) { return new RuntimeException(msg, ((InvocationTargetException) e).getTargetException()); } return new RuntimeException(msg, e); diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sign/Base64.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sign/Base64.java index c28352a..9251217 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sign/Base64.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sign/Base64.java @@ -5,72 +5,60 @@ package com.muyu.common.core.utils.sign; * * @author muyu */ -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]; +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) - { + static { + for (int i = 0; i < BASELENGTH; ++i) { base64Alphabet[i] = -1; } - for (int i = 'Z'; i >= 'A'; i--) - { + for (int i = 'Z'; i >= 'A'; i--) { base64Alphabet[i] = (byte) (i - 'A'); } - for (int i = 'z'; i >= 'a'; i--) - { + for (int i = 'z'; i >= 'a'; i--) { base64Alphabet[i] = (byte) (i - 'a' + 26); } - for (int i = '9'; i >= '0'; i--) - { + for (int i = '9'; i >= '0'; i--) { base64Alphabet[i] = (byte) (i - '0' + 52); } base64Alphabet['+'] = 62; base64Alphabet['/'] = 63; - for (int i = 0; i <= 25; i++) - { + for (int i = 0; i <= 25; i++) { lookUpBase64Alphabet[i] = (char) ('A' + i); } - for (int i = 26, j = 0; i <= 51; i++, j++) - { + for (int i = 26, j = 0; i <= 51; i++, j++) { lookUpBase64Alphabet[i] = (char) ('a' + j); } - for (int i = 52, j = 0; i <= 61; i++, j++) - { + for (int i = 52, j = 0; i <= 61; i++, j++) { lookUpBase64Alphabet[i] = (char) ('0' + j); } lookUpBase64Alphabet[62] = (char) '+'; lookUpBase64Alphabet[63] = (char) '/'; } - private static boolean isWhiteSpace(char octect) - { + private static boolean isWhiteSpace(char octect) { return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); } - private static boolean isPad(char octect) - { + private static boolean isPad(char octect) { return (octect == PAD); } - private static boolean isData(char octect) - { + private static boolean isData(char octect) { return (octect < BASELENGTH && base64Alphabet[octect] != -1); } @@ -80,16 +68,13 @@ public final class Base64 * @param binaryData Array containing binaryData * @return Encoded Base64 array */ - public static String encode(byte[] binaryData) - { - if (binaryData == null) - { + public static String encode(byte[] binaryData) { + if (binaryData == null) { return null; } int lengthDataBits = binaryData.length * EIGHTBIT; - if (lengthDataBits == 0) - { + if (lengthDataBits == 0) { return ""; } @@ -105,8 +90,7 @@ public final class Base64 int encodedIndex = 0; int dataIndex = 0; - for (int i = 0; i < numberTriplets; i++) - { + for (int i = 0; i < numberTriplets; i++) { b1 = binaryData[dataIndex++]; b2 = binaryData[dataIndex++]; b3 = binaryData[dataIndex++]; @@ -125,8 +109,7 @@ public final class Base64 } // form integral number of 6-bit groups - if (fewerThan24bits == EIGHTBIT) - { + if (fewerThan24bits == EIGHTBIT) { b1 = binaryData[dataIndex]; k = (byte) (b1 & 0x03); byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); @@ -134,9 +117,7 @@ public final class Base64 encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; encodedData[encodedIndex++] = PAD; encodedData[encodedIndex++] = PAD; - } - else if (fewerThan24bits == SIXTEENBIT) - { + } else if (fewerThan24bits == SIXTEENBIT) { b1 = binaryData[dataIndex]; b2 = binaryData[dataIndex + 1]; l = (byte) (b2 & 0x0f); @@ -159,10 +140,8 @@ public final class Base64 * @param encoded string containing Base64 data * @return Array containind decoded data. */ - public static byte[] decode(String encoded) - { - if (encoded == null) - { + public static byte[] decode(String encoded) { + if (encoded == null) { return null; } @@ -170,15 +149,13 @@ public final class Base64 // remove white spaces int len = removeWhiteSpace(base64Data); - if (len % FOURBYTE != 0) - { + if (len % FOURBYTE != 0) { return null;// should be divisible by four } int numberQuadruple = (len / FOURBYTE); - if (numberQuadruple == 0) - { + if (numberQuadruple == 0) { return new byte[0]; } @@ -191,12 +168,10 @@ public final class Base64 int dataIndex = 0; decodedData = new byte[(numberQuadruple) * 3]; - for (; i < numberQuadruple - 1; i++) - { + for (; i < numberQuadruple - 1; i++) { if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++])) - || !isData((d3 = base64Data[dataIndex++])) || !isData((d4 = base64Data[dataIndex++]))) - { + || !isData((d3 = base64Data[dataIndex++])) || !isData((d4 = base64Data[dataIndex++]))) { return null; } // if found "no data" just return null @@ -210,8 +185,7 @@ public final class Base64 decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); } - if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) - { + if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) { return null;// if found "no data" just return null } @@ -220,10 +194,8 @@ public final class Base64 d3 = base64Data[dataIndex++]; d4 = base64Data[dataIndex++]; - if (!isData((d3)) || !isData((d4))) - {// Check if they are PAD characters - if (isPad(d3) && isPad(d4)) - { + 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; @@ -232,9 +204,7 @@ public final class Base64 System.arraycopy(decodedData, 0, tmp, 0, i * 3); tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); return tmp; - } - else if (!isPad(d3) && isPad(d4)) - { + } else if (!isPad(d3) && isPad(d4)) { b3 = base64Alphabet[d3]; if ((b3 & 0x3) != 0)// last 2 bits should be zero { @@ -245,14 +215,10 @@ public final class Base64 tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); return tmp; - } - else - { + } else { return null; } - } - else - { // No PAD e.g 3cQl + } else { // No PAD e.g 3cQl b3 = base64Alphabet[d3]; b4 = base64Alphabet[d4]; decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); @@ -269,20 +235,16 @@ public final class Base64 * @param data the byte array of base64 data (with WS) * @return the new length */ - private static int removeWhiteSpace(char[] data) - { - if (data == null) - { + 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])) - { + for (int i = 0; i < len; i++) { + if (!isWhiteSpace(data[i])) { data[newSize++] = data[i]; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sql/SqlUtil.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sql/SqlUtil.java index 270b79b..beadf96 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sql/SqlUtil.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/sql/SqlUtil.java @@ -8,8 +8,7 @@ import com.muyu.common.core.utils.StringUtils; * * @author muyu */ -public class SqlUtil -{ +public class SqlUtil { /** * 定义常用的 sql关键字 */ @@ -28,14 +27,11 @@ public class SqlUtil /** * 检查字符,防止注入绕过 */ - public static String escapeOrderBySql(String value) - { - if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) - { + public static String escapeOrderBySql(String value) { + if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) { throw new UtilException("参数不符合规范,不能进行查询"); } - if (StringUtils.length(value) > ORDER_BY_MAX_LENGTH) - { + if (StringUtils.length(value) > ORDER_BY_MAX_LENGTH) { throw new UtilException("参数已超过最大限制,不能进行查询"); } return value; @@ -44,25 +40,20 @@ public class SqlUtil /** * 验证 order by 语法是否符合规范 */ - public static boolean isValidOrderBySql(String value) - { + public static boolean isValidOrderBySql(String value) { return value.matches(SQL_PATTERN); } /** * SQL关键字检查 */ - public static void filterKeyword(String value) - { - if (StringUtils.isEmpty(value)) - { + 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) - { + for (String sqlKeyword : sqlKeywords) { + if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) { throw new UtilException("参数存在SQL注入风险"); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/IdUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/IdUtils.java index 69fe3cb..7d7aeec 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/IdUtils.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/IdUtils.java @@ -5,15 +5,13 @@ package com.muyu.common.core.utils.uuid; * * @author muyu */ -public class IdUtils -{ +public class IdUtils { /** * 获取随机UUID * * @return 随机UUID */ - public static String randomUUID() - { + public static String randomUUID() { return UUID.randomUUID().toString(); } @@ -22,8 +20,7 @@ public class IdUtils * * @return 简化的UUID,去掉了横线 */ - public static String simpleUUID() - { + public static String simpleUUID() { return UUID.randomUUID().toString(true); } @@ -32,8 +29,7 @@ public class IdUtils * * @return 随机UUID */ - public static String fastUUID() - { + public static String fastUUID() { return UUID.fastUUID().toString(); } @@ -42,10 +38,10 @@ public class IdUtils * * @return 简化的UUID,去掉了横线 */ - public static String fastSimpleUUID() - { + public static String fastSimpleUUID() { return UUID.fastUUID().toString(true); } + public static String generateShortUUID() { String uuid = UUID.fastUUID().toString(true); // 截取前 14 位作为新的 UUID diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/Seq.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/Seq.java index f502f62..090ffaa 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/Seq.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/Seq.java @@ -8,8 +8,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** * @author muyu 序列生成类 */ -public class Seq -{ +public class Seq { // 通用序列类型 public static final String commSeqType = "COMMON"; @@ -30,8 +29,7 @@ public class Seq * * @return 序列值 */ - public static String getId() - { + public static String getId() { return getId(commSeqType); } @@ -40,11 +38,9 @@ public class Seq * * @return 序列值 */ - public static String getId(String type) - { + public static String getId(String type) { AtomicInteger atomicInt = commSeq; - if (uploadSeqType.equals(type)) - { + if (uploadSeqType.equals(type)) { atomicInt = uploadSeq; } return getId(atomicInt, 3); @@ -54,11 +50,10 @@ public class Seq * 通用接口序列号 yyMMddHHmmss + 一位机器标识 + length长度循环递增字符串 * * @param atomicInt 序列数 - * @param length 数值长度 + * @param length 数值长度 * @return 序列值 */ - public static String getId(AtomicInteger atomicInt, int length) - { + public static String getId(AtomicInteger atomicInt, int length) { String result = DateUtils.dateTimeNow(); result += machineCode; result += getSeq(atomicInt, length); @@ -70,15 +65,13 @@ public class Seq * * @return 序列值 */ - private synchronized static String getSeq(AtomicInteger atomicInt, int length) - { + private synchronized static 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) - { + if (atomicInt.get() >= maxSeq) { atomicInt.set(1); } // 转字符串,用0左补齐 diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/UUID.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/UUID.java index 9636a60..49f220a 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/UUID.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/uuid/UUID.java @@ -13,23 +13,24 @@ import java.util.concurrent.ThreadLocalRandom; * * @author muyu */ -public final class UUID implements java.io.Serializable, Comparable -{ +public final class UUID implements java.io.Serializable, Comparable { private static final long serialVersionUID = -1185015143654744140L; /** * SecureRandom 的单例 - * */ - private static class Holder - { + private static class Holder { static final SecureRandom numberGenerator = getSecureRandom(); } - /** 此UUID的最高64有效位 */ + /** + * 此UUID的最高64有效位 + */ private final long mostSigBits; - /** 此UUID的最低64有效位 */ + /** + * 此UUID的最低64有效位 + */ private final long leastSigBits; /** @@ -37,17 +38,14 @@ public final class UUID implements java.io.Serializable, Comparable * * @param data 数据 */ - private UUID(byte[] 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++) - { + for (int i = 0; i < 8; i++) { msb = (msb << 8) | (data[i] & 0xff); } - for (int i = 8; i < 16; i++) - { + for (int i = 8; i < 16; i++) { lsb = (lsb << 8) | (data[i] & 0xff); } this.mostSigBits = msb; @@ -57,11 +55,10 @@ public final class UUID implements java.io.Serializable, Comparable /** * 使用指定的数据构造新的 UUID。 * - * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位 + * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位 * @param leastSigBits 用于 {@code UUID} 的最低有效 64 位 */ - public UUID(long mostSigBits, long leastSigBits) - { + public UUID(long mostSigBits, long leastSigBits) { this.mostSigBits = mostSigBits; this.leastSigBits = leastSigBits; } @@ -71,8 +68,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 随机生成的 {@code UUID} */ - public static UUID fastUUID() - { + public static UUID fastUUID() { return randomUUID(false); } @@ -81,8 +77,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 随机生成的 {@code UUID} */ - public static UUID randomUUID() - { + public static UUID randomUUID() { return randomUUID(true); } @@ -92,8 +87,7 @@ public final class UUID implements java.io.Serializable, Comparable * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能 * @return 随机生成的 {@code UUID} */ - public static UUID randomUUID(boolean isSecure) - { + public static UUID randomUUID(boolean isSecure) { final Random ng = isSecure ? Holder.numberGenerator : getRandom(); byte[] randomBytes = new byte[16]; @@ -109,18 +103,13 @@ public final class UUID implements java.io.Serializable, Comparable * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。 * * @param name 用于构造 UUID 的字节数组。 - * * @return 根据指定数组生成的 {@code UUID} */ - public static UUID nameUUIDFromBytes(byte[] name) - { + public static UUID nameUUIDFromBytes(byte[] name) { MessageDigest md; - try - { + try { md = MessageDigest.getInstance("MD5"); - } - catch (NoSuchAlgorithmException nsae) - { + } catch (NoSuchAlgorithmException nsae) { throw new InternalError("MD5 not supported"); } byte[] md5Bytes = md.digest(name); @@ -137,17 +126,13 @@ public final class UUID implements java.io.Serializable, Comparable * @param name 指定 {@code UUID} 字符串 * @return 具有指定值的 {@code UUID} * @throws IllegalArgumentException 如果 name 与 {@link #toString} 中描述的字符串表示形式不符抛出此异常 - * */ - public static UUID fromString(String name) - { + public static UUID fromString(String name) { String[] components = name.split("-"); - if (components.length != 5) - { + if (components.length != 5) { throw new IllegalArgumentException("Invalid UUID string: " + name); } - for (int i = 0; i < 5; i++) - { + for (int i = 0; i < 5; i++) { components[i] = "0x" + components[i]; } @@ -169,8 +154,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 此 UUID 的 128 位值中的最低有效 64 位。 */ - public long getLeastSignificantBits() - { + public long getLeastSignificantBits() { return leastSigBits; } @@ -179,8 +163,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 此 UUID 的 128 位值中最高有效 64 位。 */ - public long getMostSignificantBits() - { + public long getMostSignificantBits() { return mostSigBits; } @@ -197,8 +180,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 此 {@code UUID} 的版本号 */ - public int version() - { + public int version() { // Version is bits masked by 0x000000000000F000 in MS long return (int) ((mostSigBits >> 12) & 0x0f); } @@ -216,8 +198,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return 此 {@code UUID} 相关联的变体号 */ - public int variant() - { + 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) @@ -239,8 +220,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID。 */ - public long timestamp() throws UnsupportedOperationException - { + public long timestamp() throws UnsupportedOperationException { checkTimeBase(); return (mostSigBits & 0x0FFFL) << 48// | ((mostSigBits >> 16) & 0x0FFFFL) << 32// @@ -257,11 +237,9 @@ public final class UUID implements java.io.Serializable, Comparable * UnsupportedOperationException。 * * @return 此 {@code UUID} 的时钟序列 - * * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 */ - public int clockSequence() throws UnsupportedOperationException - { + public int clockSequence() throws UnsupportedOperationException { checkTimeBase(); return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); } @@ -276,11 +254,9 @@ public final class UUID implements java.io.Serializable, Comparable * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 * * @return 此 {@code UUID} 的节点值 - * * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 */ - public long node() throws UnsupportedOperationException - { + public long node() throws UnsupportedOperationException { checkTimeBase(); return leastSigBits & 0x0000FFFFFFFFFFFFL; } @@ -310,8 +286,7 @@ public final class UUID implements java.io.Serializable, Comparable * @see #toString(boolean) */ @Override - public String toString() - { + public String toString() { return toString(false); } @@ -339,31 +314,26 @@ public final class UUID implements java.io.Serializable, Comparable * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串 * @return 此{@code UUID} 的字符串表现形式 */ - public String toString(boolean isSimple) - { + public String toString(boolean isSimple) { final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); // time_low builder.append(digits(mostSigBits >> 32, 8)); - if (false == isSimple) - { + if (false == isSimple) { builder.append('-'); } // time_mid builder.append(digits(mostSigBits >> 16, 4)); - if (false == isSimple) - { + if (false == isSimple) { builder.append('-'); } // time_high_and_version builder.append(digits(mostSigBits, 4)); - if (false == isSimple) - { + if (false == isSimple) { builder.append('-'); } // variant_and_sequence builder.append(digits(leastSigBits >> 48, 4)); - if (false == isSimple) - { + if (false == isSimple) { builder.append('-'); } // node @@ -378,8 +348,7 @@ public final class UUID implements java.io.Serializable, Comparable * @return UUID 的哈希码值。 */ @Override - public int hashCode() - { + public int hashCode() { long hilo = mostSigBits ^ leastSigBits; return ((int) (hilo >> 32)) ^ (int) hilo; } @@ -390,14 +359,11 @@ public final class UUID implements java.io.Serializable, Comparable * 当且仅当参数不为 {@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)) - { + public boolean equals(Object obj) { + if ((null == obj) || (obj.getClass() != UUID.class)) { return false; } UUID id = (UUID) obj; @@ -413,13 +379,10 @@ public final class UUID implements java.io.Serializable, Comparable * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。 * * @param val 与此 UUID 比较的 UUID - * * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。 - * */ @Override - public int compareTo(UUID val) - { + 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 : // @@ -431,15 +394,15 @@ public final class UUID implements java.io.Serializable, Comparable // ------------------------------------------------------------------------------------------------------------------- // Private method start + /** * 返回指定数字对应的hex值 * - * @param val 值 + * @param val 值 * @param digits 位 * @return 值 */ - private static String digits(long val, int digits) - { + private static String digits(long val, int digits) { long hi = 1L << (digits * 4); return Long.toHexString(hi | (val & (hi - 1))).substring(1); } @@ -447,10 +410,8 @@ public final class UUID implements java.io.Serializable, Comparable /** * 检查是否为time-based版本UUID */ - private void checkTimeBase() - { - if (version() != 1) - { + private void checkTimeBase() { + if (version() != 1) { throw new UnsupportedOperationException("Not a time-based UUID"); } } @@ -460,14 +421,10 @@ public final class UUID implements java.io.Serializable, Comparable * * @return {@link SecureRandom} */ - public static SecureRandom getSecureRandom() - { - try - { + public static SecureRandom getSecureRandom() { + try { return SecureRandom.getInstance("SHA1PRNG"); - } - catch (NoSuchAlgorithmException e) - { + } catch (NoSuchAlgorithmException e) { throw new UtilException(e); } } @@ -478,8 +435,7 @@ public final class UUID implements java.io.Serializable, Comparable * * @return {@link ThreadLocalRandom} */ - public static ThreadLocalRandom getRandom() - { + public static ThreadLocalRandom getRandom() { return ThreadLocalRandom.current(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java index 141dc13..476b5d9 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java @@ -21,22 +21,18 @@ import java.util.List; * * @author coderjacky */ -public class BaseController -{ +public class BaseController { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 将前台传递过来的日期格式的字符串,自动转化为Date类型 */ @InitBinder - public void initBinder(WebDataBinder binder) - { + public void initBinder(WebDataBinder binder) { // Date 类型转换 - binder.registerCustomEditor(Date.class, new PropertyEditorSupport() - { + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override - public void setAsText(String text) - { + public void setAsText(String text) { setValue(DateUtils.parseDate(text)); } }); @@ -45,25 +41,22 @@ public class BaseController /** * 设置请求分页数据 */ - protected void startPage() - { + protected void startPage() { PageUtils.startPage(); } /** * 清理分页的线程变量 */ - protected void clearPage() - { + protected void clearPage() { PageUtils.clearPage(); } /** * 响应请求分页数据 */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - protected Result getDataTable(List list) - { + @SuppressWarnings({"rawtypes", "unchecked"}) + protected Result getDataTable(List list) { TableDataInfo rspData = new TableDataInfo(); rspData.setRows(list); rspData.setTotal(new PageInfo(list).getTotal()); @@ -80,32 +73,28 @@ public class BaseController /** * 返回成功 Result.success() */ - public Result success() - { + public Result success() { return Result.success(); } /** * 返回成功消息 */ - public Result success(String message) - { + public Result success(String message) { return Result.success(message); } /** * 返回成功消息 */ - public Result success(Object data) - { + public Result success(Object data) { return Result.success(data); } /** * 返回失败消息 */ - public Result error() - { + public Result error() { return Result.error(); } @@ -113,8 +102,7 @@ public class BaseController /** * 返回警告消息 */ - public Result error(String message) - { + public Result error(String message) { return Result.error(message); } @@ -124,8 +112,7 @@ public class BaseController * @param rows 影响行数 * @return 操作结果 */ - protected Result toAjax(int rows) - { + protected Result toAjax(int rows) { return rows > 0 ? Result.success() : Result.error(); } @@ -135,8 +122,7 @@ public class BaseController * @param result 结果 * @return 操作结果 */ - protected Result toAjax(boolean result) - { + protected Result toAjax(boolean result) { return result ? success() : error(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/AjaxResult.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/AjaxResult.java index ab3a311..28b4384 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/AjaxResult.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/AjaxResult.java @@ -11,34 +11,37 @@ import java.util.Objects; * * @author muyu */ -public class AjaxResult extends HashMap -{ +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() - { + public AjaxResult() { } /** * 初始化一个新创建的 AjaxResult 对象 * * @param code 状态码 - * @param msg 返回内容 + * @param msg 返回内容 */ - public AjaxResult(int code, String msg) - { + public AjaxResult(int code, String msg) { super.put(CODE_TAG, code); super.put(MSG_TAG, msg); } @@ -47,15 +50,13 @@ public class AjaxResult extends HashMap * 初始化一个新创建的 AjaxResult 对象 * * @param code 状态码 - * @param msg 返回内容 + * @param msg 返回内容 * @param data 数据对象 */ - public AjaxResult(int code, String msg, Object data) - { + public AjaxResult(int code, String msg, Object data) { super.put(CODE_TAG, code); super.put(MSG_TAG, msg); - if (StringUtils.isNotNull(data)) - { + if (StringUtils.isNotNull(data)) { super.put(DATA_TAG, data); } } @@ -65,42 +66,38 @@ public class AjaxResult extends HashMap * * @return 成功消息 */ - public static AjaxResult success() - { - return AjaxResult.success("操作成功"); - } + 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); + 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) - { + public static AjaxResult success(String msg, Object data) { return new AjaxResult(HttpStatus.SUCCESS, msg, data); } @@ -110,44 +107,42 @@ public class AjaxResult extends HashMap * @param msg 返回内容 * @return 警告消息 */ - public static AjaxResult warn(String msg) - { + public static AjaxResult warn(String msg) { return AjaxResult.warn(msg, null); } -// /** + // /** // * 返回警告消息 // * // * @param msg 返回内容 // * @param data 数据对象 // * @return 警告消息 // */ - public static AjaxResult warn(String msg, Object data) - { + public static AjaxResult warn(String msg, Object data) { return new AjaxResult(HttpStatus.WARN, msg, data); } -// + + // // /** // * 返回错误消息 // * // * @return 错误消息 // */ - public static AjaxResult error() - { + public static AjaxResult error() { return AjaxResult.error("操作失败"); } -// /** + // /** // * 返回错误消息 // * // * @param msg 返回内容 // * @return 错误消息 // */ - public static AjaxResult error(String msg) - { + public static AjaxResult error(String msg) { return AjaxResult.error(msg, null); } -// + + // // /** // * 返回错误消息 // * @@ -155,50 +150,46 @@ public class AjaxResult extends HashMap // * @param data 数据对象 // * @return 错误消息 // */ - public static AjaxResult error(String msg, Object data) - { + 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) - { + public static AjaxResult error(int code, String msg) { return new AjaxResult(code, msg, null); } -// + + // // /** // * 是否为成功消息 // * // * @return 结果 // */ - public boolean isSuccess() - { + public boolean isSuccess() { return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG)); } -// /** + // /** // * 是否为警告消息 // * // * @return 结果 // */ - public boolean isWarn() - { + public boolean isWarn() { return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG)); } -// /** + // /** // * 是否为错误消息 // * // * @return 结果 // */ - public boolean isError() - { + public boolean isError() { return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG)); } @@ -210,8 +201,7 @@ public class AjaxResult extends HashMap * @return */ @Override - public AjaxResult put(String key, Object value) - { + public AjaxResult put(String key, Object value) { super.put(key, value); return this; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java index e839713..89f70f2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java @@ -14,106 +14,104 @@ import java.util.Map; * * @author muyu */ -public class BaseEntity implements Serializable -{ +public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - /** 搜索值 */ + /** + * 搜索值 + */ @JsonIgnore private String searchValue; - /** 创建者 */ + /** + * 创建者 + */ private String createBy; - /** 创建时间 */ + /** + * 创建时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - /** 更新者 */ + /** + * 更新者 + */ private String updateBy; - /** 更新时间 */ + /** + * 更新时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - /** 备注 */ + /** + * 备注 + */ private String remark; - /** 请求参数 */ + /** + * 请求参数 + */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params; - public String getSearchValue() - { + public String getSearchValue() { return searchValue; } - public void setSearchValue(String searchValue) - { + public void setSearchValue(String searchValue) { this.searchValue = searchValue; } - public String getCreateBy() - { + public String getCreateBy() { return createBy; } - public void setCreateBy(String createBy) - { + public void setCreateBy(String createBy) { this.createBy = createBy; } - public Date getCreateTime() - { + public Date getCreateTime() { return createTime; } - public void setCreateTime(Date createTime) - { + public void setCreateTime(Date createTime) { this.createTime = createTime; } - public String getUpdateBy() - { + public String getUpdateBy() { return updateBy; } - public void setUpdateBy(String updateBy) - { + public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } - public Date getUpdateTime() - { + public Date getUpdateTime() { return updateTime; } - public void setUpdateTime(Date updateTime) - { + public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } - public String getRemark() - { + public String getRemark() { return remark; } - public void setRemark(String remark) - { + public void setRemark(String remark) { this.remark = remark; } - public Map getParams() - { - if (params == null) - { + public Map getParams() { + if (params == null) { params = new HashMap<>(); } return params; } - public void setParams(Map params) - { + public void setParams(Map params) { this.params = params; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/TreeEntity.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/TreeEntity.java index 8d1b57b..9fa5241 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/TreeEntity.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/domain/TreeEntity.java @@ -8,75 +8,75 @@ import java.util.List; * * @author muyu */ -public class TreeEntity extends BaseEntity -{ +public class TreeEntity extends BaseEntity { private static final long serialVersionUID = 1L; - /** 父菜单名称 */ + /** + * 父菜单名称 + */ private String parentName; - /** 父菜单ID */ + /** + * 父菜单ID + */ private Long parentId; - /** 显示顺序 */ + /** + * 显示顺序 + */ private Integer orderNum; - /** 祖级列表 */ + /** + * 祖级列表 + */ private String ancestors; - /** 子部门 */ + /** + * 子部门 + */ private List children = new ArrayList<>(); public void setChildren(List children) { this.children = children; } - public List getChildren() - { + + public List getChildren() { return children; } - public String getParentName() - { + + public String getParentName() { return parentName; } - public void setParentName(String parentName) - { + public void setParentName(String parentName) { this.parentName = parentName; } - public Long getParentId() - { + public Long getParentId() { return parentId; } - public void setParentId(Long parentId) - { + public void setParentId(Long parentId) { this.parentId = parentId; } - public Integer getOrderNum() - { + public Integer getOrderNum() { return orderNum; } - public void setOrderNum(Integer orderNum) - { + public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } - public String getAncestors() - { + public String getAncestors() { return ancestors; } - public void setAncestors(String ancestors) - { + public void setAncestors(String ancestors) { this.ancestors = ancestors; } - - } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java index 721ee44..4036ac2 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java @@ -7,95 +7,87 @@ import com.muyu.common.core.utils.StringUtils; * * @author muyu */ -public class PageDomain -{ - /** 当前记录起始索引 */ +public class PageDomain { + /** + * 当前记录起始索引 + */ private Integer pageNum; - /** 每页显示记录数 */ + /** + * 每页显示记录数 + */ private Integer pageSize; - /** 排序列 */ + /** + * 排序列 + */ private String orderByColumn; - /** 排序的方向desc或者asc */ + /** + * 排序的方向desc或者asc + */ private String isAsc = "asc"; - /** 分页参数合理化 */ + /** + * 分页参数合理化 + */ private Boolean reasonable = true; - public String getOrderBy() - { - if (StringUtils.isEmpty(orderByColumn)) - { + public String getOrderBy() { + if (StringUtils.isEmpty(orderByColumn)) { return ""; } return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; } - public Integer getPageNum() - { + public Integer getPageNum() { return pageNum; } - public void setPageNum(Integer pageNum) - { + public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } - public Integer getPageSize() - { + public Integer getPageSize() { return pageSize; } - public void setPageSize(Integer pageSize) - { + public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } - public String getOrderByColumn() - { + public String getOrderByColumn() { return orderByColumn; } - public void setOrderByColumn(String orderByColumn) - { + public void setOrderByColumn(String orderByColumn) { this.orderByColumn = orderByColumn; } - public String getIsAsc() - { + public String getIsAsc() { return isAsc; } - public void setIsAsc(String isAsc) - { - if (StringUtils.isNotEmpty(isAsc)) - { + public void setIsAsc(String isAsc) { + if (StringUtils.isNotEmpty(isAsc)) { // 兼容前端排序类型 - if ("ascending".equals(isAsc)) - { + if ("ascending".equals(isAsc)) { isAsc = "asc"; - } - else if ("descending".equals(isAsc)) - { + } else if ("descending".equals(isAsc)) { isAsc = "desc"; } this.isAsc = isAsc; } } - public Boolean getReasonable() - { - if (StringUtils.isNull(reasonable)) - { + public Boolean getReasonable() { + if (StringUtils.isNull(reasonable)) { return Boolean.TRUE; } return reasonable; } - public void setReasonable(Boolean reasonable) - { + public void setReasonable(Boolean reasonable) { this.reasonable = reasonable; } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java index 6d0a9aa..c854b46 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java @@ -9,14 +9,17 @@ import java.util.List; * * @author muyu */ -public class TableDataInfo implements Serializable -{ +public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; - /** 总记录数 */ + /** + * 总记录数 + */ private long total; - /** 列表数据 */ + /** + * 列表数据 + */ private List rows; @@ -40,23 +43,19 @@ public class TableDataInfo implements Serializable // this.total = total; // } - public long getTotal() - { + public long getTotal() { return total; } - public void setTotal(long total) - { + public void setTotal(long total) { this.total = total; } - public List getRows() - { + public List getRows() { return rows; } - public void setRows(List rows) - { + public void setRows(List rows) { this.rows = rows; } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java index ff69a37..c28a45d 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java @@ -8,8 +8,7 @@ import com.muyu.common.core.utils.ServletUtils; * * @author muyu */ -public class TableSupport -{ +public class TableSupport { /** * 当前记录起始索引 */ @@ -38,8 +37,7 @@ public class TableSupport /** * 封装分页对象 */ - public static PageDomain getPageDomain() - { + 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)); @@ -49,8 +47,7 @@ public class TableSupport return pageDomain; } - public static PageDomain buildPageRequest() - { + public static PageDomain buildPageRequest() { return getPageDomain(); } } diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/Xss.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/Xss.java index 16f5821..ed002a3 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/Xss.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/Xss.java @@ -13,13 +13,12 @@ import java.lang.annotation.Target; * @author muyu */ @Retention(RetentionPolicy.RUNTIME) -@Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER }) -@Constraint(validatedBy = { XssValidator.class }) -public @interface Xss -{ +@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) +@Constraint(validatedBy = {XssValidator.class}) +public @interface Xss { String message() - default "不允许任何脚本运行"; + default "不允许任何脚本运行"; Class[] groups() default {}; diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/XssValidator.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/XssValidator.java index cc3a3c7..0478d6a 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/XssValidator.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/xss/XssValidator.java @@ -12,22 +12,18 @@ import java.util.regex.Pattern; * * @author muyu */ -public class XssValidator implements ConstraintValidator -{ +public class XssValidator implements ConstraintValidator { private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />"; @Override - public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) - { - if (StringUtils.isBlank(value)) - { + public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { + if (StringUtils.isBlank(value)) { return true; } return !containsHtml(value); } - public static boolean containsHtml(String value) - { + public static boolean containsHtml(String value) { Pattern pattern = Pattern.compile(HTML_PATTERN); Matcher matcher = pattern.matcher(value); return matcher.matches(); diff --git a/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java b/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java index 9d4e09d..5277b20 100644 --- a/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java +++ b/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java @@ -10,8 +10,7 @@ import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface DataScope -{ +public @interface DataScope { /** * 部门表的别名 */ diff --git a/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java b/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java index c9ec030..0791450 100644 --- a/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java +++ b/muyu-common/muyu-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java @@ -24,8 +24,7 @@ import java.util.List; */ @Aspect @Component -public class DataScopeAspect -{ +public class DataScopeAspect { /** * 全部数据权限 */ @@ -57,22 +56,18 @@ public class DataScopeAspect public static final String DATA_SCOPE = "dataScope"; @Before("@annotation(controllerDataScope)") - public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable - { + public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable { clearDataScope(point); handleDataScope(point, controllerDataScope); } - protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) - { + protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) { // 获取当前的用户 LoginUser loginUser = SecurityUtils.getLoginUser(); - if (StringUtils.isNotNull(loginUser)) - { + if (StringUtils.isNotNull(loginUser)) { SysUser currentUser = loginUser.getSysUser(); // 如果是超级管理员,则不过滤数据 - if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) - { + if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), SecurityContextHolder.getPermission()); dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), controllerDataScope.userAlias(), permission); @@ -83,59 +78,43 @@ public class DataScopeAspect /** * 数据范围过滤 * - * @param joinPoint 切点 - * @param user 用户 - * @param deptAlias 部门别名 - * @param userAlias 用户别名 + * @param joinPoint 切点 + * @param user 用户 + * @param deptAlias 部门别名 + * @param userAlias 用户别名 * @param permission 权限字符 */ - public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) - { + public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) { StringBuilder sqlString = new StringBuilder(); List conditions = new ArrayList(); - for (SysRole role : user.getRoles()) - { + for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); - if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) - { + if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) { continue; } if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) - && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) - { + && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) { continue; } - if (DATA_SCOPE_ALL.equals(dataScope)) - { + if (DATA_SCOPE_ALL.equals(dataScope)) { sqlString = new StringBuilder(); conditions.add(dataScope); break; - } - else if (DATA_SCOPE_CUSTOM.equals(dataScope)) - { + } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { 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)) - { + } 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)) - { + } 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)) - { + } else if (DATA_SCOPE_SELF.equals(dataScope)) { + if (StringUtils.isNotBlank(userAlias)) { sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); - } - else - { + } else { // 数据权限为仅本人且没有userAlias别名不查询任何数据 sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } @@ -144,16 +123,13 @@ public class DataScopeAspect } // 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 - if (StringUtils.isEmpty(conditions)) - { + if (StringUtils.isEmpty(conditions)) { sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } - if (StringUtils.isNotBlank(sqlString.toString())) - { + if (StringUtils.isNotBlank(sqlString.toString())) { Object params = joinPoint.getArgs()[0]; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) - { + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) params; baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); } @@ -163,11 +139,9 @@ public class DataScopeAspect /** * 拼接权限sql前先清空params.dataScope参数防止注入 */ - private void clearDataScope(final JoinPoint joinPoint) - { + private void clearDataScope(final JoinPoint joinPoint) { Object params = joinPoint.getArgs()[0]; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) - { + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) params; baseEntity.getParams().put(DATA_SCOPE, ""); } diff --git a/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Master.java b/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Master.java index 0a79590..d9aae00 100644 --- a/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Master.java +++ b/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Master.java @@ -9,11 +9,10 @@ import java.lang.annotation.*; * * @author muyu */ -@Target({ ElementType.TYPE, ElementType.METHOD }) +@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @DS("master") -public @interface Master -{ +public @interface Master { } diff --git a/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Slave.java b/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Slave.java index 46a10d5..9663cd4 100644 --- a/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Slave.java +++ b/muyu-common/muyu-common-datasource/src/main/java/com/muyu/common/datasource/annotation/Slave.java @@ -9,11 +9,10 @@ import java.lang.annotation.*; * * @author muyu */ -@Target({ ElementType.TYPE, ElementType.METHOD }) +@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @DS("slave") -public @interface Slave -{ +public @interface Slave { } diff --git a/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/cache/VehicleEventCache.java b/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/cache/VehicleEventCache.java index 932570b..151bb87 100644 --- a/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/cache/VehicleEventCache.java +++ b/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/cache/VehicleEventCache.java @@ -19,42 +19,31 @@ public class VehicleEventCache { private RedisService redisService; - public String encode(String vin){ - return "event:arr:"+vin; + public String encode(String vin) { + return "event:arr:" + vin; } /** * 添加事件 */ - public void addEvent(String vin,String eventName){ - redisService.setCacheSet(encode(vin),eventName); + public void addEvent(String vin, String eventName) { + redisService.setCacheSet(encode(vin), eventName); } /** * 删除事件 */ - public void removeEvent(String vin,String eventName){ - redisService.deleteCacheSet(encode(vin),eventName); + public void removeEvent(String vin, String eventName) { + redisService.deleteCacheSet(encode(vin), eventName); } /** * 获取事件集合 */ - public Set getEventList(String vin){ + public Set getEventList(String vin) { return redisService.getCacheSet(encode(vin)); } - - - - - - - - - - - } diff --git a/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/constants/VehicleEventConstants.java b/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/constants/VehicleEventConstants.java index dd511ef..09a64fa 100644 --- a/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/constants/VehicleEventConstants.java +++ b/muyu-common/muyu-common-event/src/main/java/com/muyu/common/event/constants/VehicleEventConstants.java @@ -10,13 +10,13 @@ package com.muyu.common.event.constants; */ public interface VehicleEventConstants { //围栏报警 - String WEI_LAN="fenceAlarm"; + String WEI_LAN = "fenceAlarm"; //实时数据 - String SHI_SHI="realTime"; + String SHI_SHI = "realTime"; //故障监测 - String GU_ZHANG="breakdown"; + String GU_ZHANG = "breakdown"; //存储事件 - String CUN_CU="storedEvent"; + String CUN_CU = "storedEvent"; } diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/annotation/Log.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/annotation/Log.java index c1f2950..a8b6fea 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/annotation/Log.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/annotation/Log.java @@ -9,13 +9,11 @@ import java.lang.annotation.*; * 自定义操作日志记录注解 * * @author muyu - * */ -@Target({ ElementType.PARAMETER, ElementType.METHOD }) +@Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface Log -{ +public @interface Log { /** * 模块 */ diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/aspect/LogAspect.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/aspect/LogAspect.java index 89dd960..fb2d5e3 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/aspect/LogAspect.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/aspect/LogAspect.java @@ -38,14 +38,17 @@ import java.util.Map; */ @Aspect @Component -public class LogAspect -{ +public class LogAspect { private static final Logger log = LoggerFactory.getLogger(LogAspect.class); - /** 排除敏感属性字段 */ - public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + /** + * 排除敏感属性字段 + */ + public static final String[] EXCLUDE_PROPERTIES = {"password", "oldPassword", "newPassword", "confirmPassword"}; - /** 计算操作消耗时间 */ + /** + * 计算操作消耗时间 + */ private static final ThreadLocal TIME_THREADLOCAL = new NamedThreadLocal("Cost Time"); @Autowired @@ -55,8 +58,7 @@ public class LogAspect * 处理请求前执行 */ @Before(value = "@annotation(controllerLog)") - public void boBefore(JoinPoint joinPoint, Log controllerLog) - { + public void boBefore(JoinPoint joinPoint, Log controllerLog) { TIME_THREADLOCAL.set(System.currentTimeMillis()); } @@ -66,8 +68,7 @@ public class LogAspect * @param joinPoint 切点 */ @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") - public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) - { + public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) { handleLog(joinPoint, controllerLog, null, jsonResult); } @@ -75,18 +76,15 @@ public class LogAspect * 拦截异常操作 * * @param joinPoint 切点 - * @param e 异常 + * @param e 异常 */ @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") - public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception 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 - { + protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) { + try { // *========数据库日志=========*// SysOperLog operLog = new SysOperLog(); operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); @@ -95,13 +93,11 @@ public class LogAspect operLog.setOperIp(ip); operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); String username = SecurityUtils.getUsername(); - if (StringUtils.isNotBlank(username)) - { + if (StringUtils.isNotBlank(username)) { operLog.setOperName(username); } - if (e != null) - { + if (e != null) { operLog.setStatus(BusinessStatus.FAIL.ordinal()); operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); } @@ -117,15 +113,11 @@ public class LogAspect operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get()); // 保存数据库 asyncLogService.saveSysLog(operLog); - } - catch (Exception exp) - { + } catch (Exception exp) { // 记录本地异常日志 log.error("异常信息:{}", exp.getMessage()); exp.printStackTrace(); - } - finally - { + } finally { TIME_THREADLOCAL.remove(); } } @@ -133,12 +125,11 @@ public class LogAspect /** * 获取注解中对方法的描述信息 用于Controller层注解 * - * @param log 日志 + * @param log 日志 * @param operLog 操作日志 * @throws Exception */ - public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception - { + public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception { // 设置action动作 operLog.setBusinessType(log.businessType().ordinal()); // 设置标题 @@ -146,14 +137,12 @@ public class LogAspect // 设置操作人类别 operLog.setOperatorType(log.operatorType().ordinal()); // 是否需要保存request,参数和值 - if (log.isSaveRequestData()) - { + if (log.isSaveRequestData()) { // 获取参数的信息,传入到数据库中。 setRequestValue(joinPoint, operLog, log.excludeParamNames()); } // 是否需要保存response,参数和值 - if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) - { + if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) { operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); } } @@ -164,18 +153,14 @@ public class LogAspect * @param operLog 操作日志 * @throws Exception 异常 */ - private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog, String[] excludeParamNames) 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) - && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) - { + && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) { String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); operLog.setOperParam(StringUtils.substring(params, 0, 2000)); - } - else - { + } else { operLog.setOperParam(StringUtils.substring(JSON.toJSONString(paramsMap, excludePropertyPreFilter(excludeParamNames)), 0, 2000)); } } @@ -183,22 +168,15 @@ public class LogAspect /** * 参数拼装 */ - private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) - { + private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) { String params = ""; - if (paramsArray != null && paramsArray.length > 0) - { - for (Object o : paramsArray) - { - if (StringUtils.isNotNull(o) && !isFilterObject(o)) - { - try - { + 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 += jsonObj.toString() + " "; - } - catch (Exception e) - { + } catch (Exception e) { } } } @@ -209,8 +187,7 @@ public class LogAspect /** * 忽略敏感属性 */ - public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) - { + public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) { return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames)); } @@ -221,26 +198,18 @@ public class LogAspect * @return 如果是需要过滤的对象,则返回true;否则返回false。 */ @SuppressWarnings("rawtypes") - public boolean isFilterObject(final Object o) - { + public boolean isFilterObject(final Object o) { Class clazz = o.getClass(); - if (clazz.isArray()) - { + if (clazz.isArray()) { return clazz.getComponentType().isAssignableFrom(MultipartFile.class); - } - else if (Collection.class.isAssignableFrom(clazz)) - { + } else if (Collection.class.isAssignableFrom(clazz)) { Collection collection = (Collection) o; - for (Object value : collection) - { + for (Object value : collection) { return value instanceof MultipartFile; } - } - else if (Map.class.isAssignableFrom(clazz)) - { + } else if (Map.class.isAssignableFrom(clazz)) { Map map = (Map) o; - for (Object value : map.entrySet()) - { + for (Object value : map.entrySet()) { Map.Entry entry = (Map.Entry) value; return entry.getValue() instanceof MultipartFile; } diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessStatus.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessStatus.java index 907dd2e..45e9713 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessStatus.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessStatus.java @@ -4,10 +4,8 @@ package com.muyu.common.log.enums; * 操作状态 * * @author muyu - * */ -public enum BusinessStatus -{ +public enum BusinessStatus { /** * 成功 */ diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessType.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessType.java index 3baad98..2e928c7 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessType.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/BusinessType.java @@ -5,8 +5,7 @@ package com.muyu.common.log.enums; * * @author muyu */ -public enum BusinessType -{ +public enum BusinessType { /** * 其它 */ diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/OperatorType.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/OperatorType.java index 6c79bf4..645777f 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/OperatorType.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/enums/OperatorType.java @@ -5,8 +5,7 @@ package com.muyu.common.log.enums; * * @author muyu */ -public enum OperatorType -{ +public enum OperatorType { /** * 其它 */ diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/filter/PropertyPreExcludeFilter.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/filter/PropertyPreExcludeFilter.java index 6f5158b..640a10e 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/filter/PropertyPreExcludeFilter.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/filter/PropertyPreExcludeFilter.java @@ -7,16 +7,12 @@ import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; * * @author muyu */ -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++) - { + public PropertyPreExcludeFilter addExcludes(String... filters) { + for (int i = 0; i < filters.length; i++) { this.getExcludes().add(filters[i]); } return this; diff --git a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/service/AsyncLogService.java b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/service/AsyncLogService.java index 00ff79b..ebc90e8 100644 --- a/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/service/AsyncLogService.java +++ b/muyu-common/muyu-common-log/src/main/java/com/muyu/common/log/service/AsyncLogService.java @@ -14,8 +14,7 @@ import org.springframework.stereotype.Service; * @author muyu */ @Service -public class AsyncLogService -{ +public class AsyncLogService { @Autowired private RemoteLogService remoteLogService; @@ -23,8 +22,7 @@ public class AsyncLogService * 保存系统日志记录 */ @Async - public void saveSysLog(SysOperLog sysOperLog) throws Exception - { + public void saveSysLog(SysOperLog sysOperLog) throws Exception { remoteLogService.saveLog(sysOperLog, SecurityConstants.INNER); } } diff --git a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/FastJson2JsonRedisSerializer.java b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/FastJson2JsonRedisSerializer.java index 4278462..8191b4c 100644 --- a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/FastJson2JsonRedisSerializer.java +++ b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/FastJson2JsonRedisSerializer.java @@ -15,35 +15,29 @@ import java.nio.charset.Charset; * * @author muyu */ -public class FastJson2JsonRedisSerializer implements RedisSerializer -{ +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); private Class clazz; - public FastJson2JsonRedisSerializer(Class clazz) - { + public FastJson2JsonRedisSerializer(Class clazz) { super(); this.clazz = clazz; } @Override - public byte[] serialize(T t) throws SerializationException - { - if (t == null) - { + 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) - { + public T deserialize(byte[] bytes) throws SerializationException { + if (bytes == null || bytes.length <= 0) { return null; } String str = new String(bytes, DEFAULT_CHARSET); diff --git a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/RedisConfig.java b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/RedisConfig.java index 187342b..e8f4934 100644 --- a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/RedisConfig.java +++ b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/configure/RedisConfig.java @@ -18,12 +18,10 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration @EnableCaching @AutoConfigureBefore(RedisAutoConfiguration.class) -public class RedisConfig extends CachingConfigurerSupport -{ +public class RedisConfig extends CachingConfigurerSupport { @Bean - @SuppressWarnings(value = { "unchecked", "rawtypes" }) - public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) - { + @SuppressWarnings(value = {"unchecked", "rawtypes"}) + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); diff --git a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java index 4fb4f78..b8181e1 100644 --- a/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java +++ b/muyu-common/muyu-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java @@ -16,59 +16,54 @@ import java.util.concurrent.TimeUnit; * * @author muyu **/ -@SuppressWarnings(value = { "unchecked", "rawtypes" }) +@SuppressWarnings(value = {"unchecked", "rawtypes"}) @Component -public class RedisService -{ +public class RedisService { @Autowired public RedisTemplate redisTemplate; /** * 缓存基本的对象,Integer、String、实体类等 * - * @param key 缓存的键值 + * @param key 缓存的键值 * @param value 缓存的值 */ - public void setCacheObject(final String key, final T value) - { + public void setCacheObject(final String key, final T value) { redisTemplate.opsForValue().set(key, value); } /** * 缓存基本的对象,Integer、String、实体类等 * - * @param key 缓存的键值 - * @param value 缓存的值 - * @param timeout 时间 + * @param key 缓存的键值 + * @param value 缓存的值 + * @param timeout 时间 * @param timeUnit 时间颗粒度 */ - public void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit 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 key Redis键 * @param timeout 超时时间 * @return true=设置成功;false=设置失败 */ - public boolean expire(final String key, final long timeout) - { + public boolean expire(final String key, final long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } /** * 设置有效时间 * - * @param key Redis键 + * @param key Redis键 * @param timeout 超时时间 - * @param unit 时间单位 + * @param unit 时间单位 * @return true=设置成功;false=设置失败 */ - public boolean expire(final String key, final long timeout, final TimeUnit unit) - { + public boolean expire(final String key, final long timeout, final TimeUnit unit) { return redisTemplate.expire(key, timeout, unit); } @@ -78,8 +73,7 @@ public class RedisService * @param key Redis键 * @return 有效时间 */ - public long getExpire(final String key) - { + public long getExpire(final String key) { return redisTemplate.getExpire(key); } @@ -89,8 +83,7 @@ public class RedisService * @param key 键 * @return true 存在 false不存在 */ - public Boolean hasKey(String key) - { + public Boolean hasKey(String key) { return redisTemplate.hasKey(key); } @@ -100,8 +93,7 @@ public class RedisService * @param key 缓存键值 * @return 缓存键值对应的数据 */ - public T getCacheObject(final String key) - { + public T getCacheObject(final String key) { ValueOperations operation = redisTemplate.opsForValue(); return operation.get(key); } @@ -111,8 +103,7 @@ public class RedisService * * @param key */ - public boolean deleteObject(final String key) - { + public boolean deleteObject(final String key) { return redisTemplate.delete(key); } @@ -122,23 +113,22 @@ public class RedisService * @param collection 多个对象 * @return */ - public boolean deleteObject(final Collection collection) - { + public boolean deleteObject(final Collection collection) { return redisTemplate.delete(collection) > 0; } /** * 缓存List数据 * - * @param key 缓存的键值 + * @param key 缓存的键值 * @param dataList 待缓存的List数据 * @return 缓存的对象 */ - public long setCacheList(final String key, final List dataList) - { + public long setCacheList(final String key, final List dataList) { Long count = redisTemplate.opsForList().rightPushAll(key, dataList); return count == null ? 0 : count; } + public Object leftPopAndRemove(String key) { return redisTemplate.opsForList().leftPop(key); } @@ -146,43 +136,41 @@ public class RedisService public Long rightPush(String key, String value) { return redisTemplate.opsForList().rightPush(key, value); } + /** * 获得缓存的list对象 * * @param key 缓存的键值 * @return 缓存键值对应的数据 */ - public List getCacheList(final String key) - { + public List getCacheList(final String key) { return redisTemplate.opsForList().range(key, 0, -1); } /** * 缓存Set * - * @param key 缓存键值 + * @param key 缓存键值 * @param dataSet 缓存的数据 * @return 缓存数据的对象 */ - public BoundSetOperations setCacheSet(final String key, final Set dataSet) - { + public BoundSetOperations setCacheSet(final String key, final Set dataSet) { BoundSetOperations setOperation = redisTemplate.boundSetOps(key); Iterator it = dataSet.iterator(); - while (it.hasNext()) - { + while (it.hasNext()) { setOperation.add(it.next()); } return setOperation; } + /** * 缓存Set * - * @param key 缓存键值 + * @param key 缓存键值 * @param setValue 缓存的数据 * @return 缓存数据的对象 */ - public BoundSetOperations setCacheSet(final String key, final T setValue) - { + public BoundSetOperations setCacheSet(final String key, final T setValue) { BoundSetOperations setOperation = redisTemplate.boundSetOps(key); setOperation.add(setValue); return setOperation; @@ -191,7 +179,7 @@ public class RedisService /** * 缓存Set * - * @param key 缓存键值 + * @param key 缓存键值 * @param setValue 缓存的数据 * @return 缓存数据的对象 */ @@ -209,8 +197,7 @@ public class RedisService * @param key * @return */ - public Set getCacheSet(final String key) - { + public Set getCacheSet(final String key) { return redisTemplate.opsForSet().members(key); } @@ -220,8 +207,7 @@ public class RedisService * @param key * @param dataMap */ - public void setCacheMap(final String key, final Map dataMap) - { + public void setCacheMap(final String key, final Map dataMap) { if (dataMap != null) { redisTemplate.opsForHash().putAll(key, dataMap); } @@ -233,32 +219,29 @@ public class RedisService * @param key * @return */ - public Map getCacheMap(final String key) - { + public Map getCacheMap(final String key) { return redisTemplate.opsForHash().entries(key); } /** * 往Hash中存入数据 * - * @param key Redis键 - * @param hKey Hash键 + * @param key Redis键 + * @param hKey Hash键 * @param value 值 */ - public void setCacheMapValue(final String key, final String hKey, final T value) - { + public void setCacheMapValue(final String key, final String hKey, final T value) { redisTemplate.opsForHash().put(key, hKey, value); } /** * 获取Hash中的数据 * - * @param key Redis键 + * @param key Redis键 * @param hKey Hash键 * @return Hash中的对象 */ - public T getCacheMapValue(final String key, final String hKey) - { + public T getCacheMapValue(final String key, final String hKey) { HashOperations opsForHash = redisTemplate.opsForHash(); return opsForHash.get(key, hKey); } @@ -266,24 +249,22 @@ public class RedisService /** * 获取多个Hash中的数据 * - * @param key Redis键 + * @param key Redis键 * @param hKeys Hash键集合 * @return Hash对象集合 */ - public List getMultiCacheMapValue(final String key, final Collection hKeys) - { + public List getMultiCacheMapValue(final String key, final Collection hKeys) { return redisTemplate.opsForHash().multiGet(key, hKeys); } /** * 删除Hash中的某条数据 * - * @param key Redis键 + * @param key Redis键 * @param hKey Hash键 * @return 是否成功 */ - public boolean deleteCacheMapValue(final String key, final String hKey) - { + public boolean deleteCacheMapValue(final String key, final String hKey) { return redisTemplate.opsForHash().delete(key, hKey) > 0; } @@ -293,8 +274,7 @@ public class RedisService * @param pattern 字符串前缀 * @return 对象列表 */ - public Collection keys(final String pattern) - { + public Collection keys(final String pattern) { return redisTemplate.keys(pattern); } diff --git a/muyu-common/muyu-common-security/pom.xml b/muyu-common/muyu-common-security/pom.xml index 5a73b97..5a57f15 100644 --- a/muyu-common/muyu-common-security/pom.xml +++ b/muyu-common/muyu-common-security/pom.xml @@ -23,7 +23,6 @@ - com.muyu diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableCustomConfig.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableCustomConfig.java index f18d379..ca7a07a 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableCustomConfig.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableCustomConfig.java @@ -20,8 +20,7 @@ import java.lang.annotation.*; // 开启线程异步执行 @EnableAsync // 自动加载类 -@Import({ ApplicationConfig.class, FeignAutoConfiguration.class }) -public @interface EnableCustomConfig -{ +@Import({ApplicationConfig.class, FeignAutoConfiguration.class}) +public @interface EnableCustomConfig { } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableRyFeignClients.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableRyFeignClients.java index 76d6445..f98b214 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableRyFeignClients.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/EnableRyFeignClients.java @@ -14,11 +14,10 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @EnableFeignClients -public @interface EnableRyFeignClients -{ +public @interface EnableRyFeignClients { String[] value() default {}; - String[] basePackages() default { "com.muyu" }; + String[] basePackages() default {"com.muyu"}; Class[] basePackageClasses() default {}; diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java index b7e6616..69b0912 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java @@ -10,8 +10,7 @@ import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface InnerAuth -{ +public @interface InnerAuth { /** * 是否校验用户信息 */ diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/Logical.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/Logical.java index 1fe3eab..0be306a 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/Logical.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/Logical.java @@ -4,10 +4,8 @@ package com.muyu.common.security.annotation; * 权限注解的验证模式 * * @author muyu - * */ -public enum Logical -{ +public enum Logical { /** * 必须具有所有的元素 */ diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresLogin.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresLogin.java index 9fcbc1f..4eff911 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresLogin.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresLogin.java @@ -9,10 +9,8 @@ import java.lang.annotation.Target; * 登录认证:只有登录之后才能进入该方法 * * @author muyu - * */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresLogin -{ +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresLogin { } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java index b53792e..c0d9e08 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java @@ -9,12 +9,10 @@ import java.lang.annotation.Target; * 权限认证:必须具有指定权限才能进入该方法 * * @author muyu - * */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresPermissions -{ +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresPermissions { /** * 需要校验的权限码 */ diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java index f0f0f2e..df6c145 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java @@ -11,9 +11,8 @@ import java.lang.annotation.Target; * @author muyu */ @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) -public @interface RequiresRoles -{ +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface RequiresRoles { /** * 需要校验的角色标识 */ diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/InnerAuthAspect.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/InnerAuthAspect.java index fddff4e..380593f 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/InnerAuthAspect.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/InnerAuthAspect.java @@ -18,23 +18,19 @@ import org.springframework.stereotype.Component; */ @Aspect @Component -public class InnerAuthAspect implements Ordered -{ +public class InnerAuthAspect implements Ordered { @Around("@annotation(innerAuth)") - public Object innerAround(ProceedingJoinPoint point, InnerAuth innerAuth) throws Throwable - { + public Object innerAround(ProceedingJoinPoint point, InnerAuth innerAuth) throws Throwable { String source = ServletUtils.getRequest().getHeader(SecurityConstants.FROM_SOURCE); // 内部请求验证 - if (!StringUtils.equals(SecurityConstants.INNER, 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))) - { + if (innerAuth.isUser() && (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))) { throw new InnerAuthException("没有设置用户信息,不允许访问 "); } return point.proceed(); @@ -44,8 +40,7 @@ public class InnerAuthAspect implements Ordered * 确保在权限认证aop执行前执行 */ @Override - public int getOrder() - { + public int getOrder() { return Ordered.HIGHEST_PRECEDENCE + 1; } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/PreAuthorizeAspect.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/PreAuthorizeAspect.java index 3dad02d..4bc690c 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/PreAuthorizeAspect.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/aspect/PreAuthorizeAspect.java @@ -20,13 +20,11 @@ import java.lang.reflect.Method; */ @Aspect @Component -public class PreAuthorizeAspect -{ +public class PreAuthorizeAspect { /** * 构建 */ - public PreAuthorizeAspect() - { + public PreAuthorizeAspect() { } /** @@ -40,8 +38,7 @@ public class PreAuthorizeAspect * 声明AOP签名 */ @Pointcut(POINTCUT_SIGN) - public void pointcut() - { + public void pointcut() { } /** @@ -52,19 +49,15 @@ public class PreAuthorizeAspect * @throws Throwable 底层方法抛出的异常 */ @Around("pointcut()") - public Object around(ProceedingJoinPoint joinPoint) throws Throwable - { + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { // 注解鉴权 MethodSignature signature = (MethodSignature) joinPoint.getSignature(); checkMethodAnnotation(signature.getMethod()); - try - { + try { // 执行原有逻辑 Object obj = joinPoint.proceed(); return obj; - } - catch (Throwable e) - { + } catch (Throwable e) { throw e; } } @@ -72,26 +65,22 @@ public class PreAuthorizeAspect /** * 对一个Method对象进行注解检查 */ - public void checkMethodAnnotation(Method method) - { + public void checkMethodAnnotation(Method method) { // 校验 @RequiresLogin 注解 RequiresLogin requiresLogin = method.getAnnotation(RequiresLogin.class); - if (requiresLogin != null) - { + if (requiresLogin != null) { AuthUtil.checkLogin(); } // 校验 @RequiresRoles 注解 RequiresRoles requiresRoles = method.getAnnotation(RequiresRoles.class); - if (requiresRoles != null) - { + if (requiresRoles != null) { AuthUtil.checkRole(requiresRoles); } // 校验 @RequiresPermissions 注解 RequiresPermissions requiresPermissions = method.getAnnotation(RequiresPermissions.class); - if (requiresPermissions != null) - { + if (requiresPermissions != null) { AuthUtil.checkPermi(requiresPermissions); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthLogic.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthLogic.java index d73869d..b315724 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthLogic.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthLogic.java @@ -25,12 +25,15 @@ import java.util.Set; * * @author muyu */ -public class AuthLogic -{ - /** 所有权限标识 */ +public class AuthLogic { + /** + * 所有权限标识 + */ private static final String ALL_PERMISSION = "*:*:*"; - /** 管理员角色权限标识 */ + /** + * 管理员角色权限标识 + */ private static final String SUPER_ADMIN = "admin"; public TokenService tokenService = SpringUtils.getBean(TokenService.class); @@ -38,11 +41,9 @@ public class AuthLogic /** * 会话注销 */ - public void logout() - { + public void logout() { String token = SecurityUtils.getToken(); - if (token == null) - { + if (token == null) { return; } logoutByToken(token); @@ -51,16 +52,14 @@ public class AuthLogic /** * 会话注销,根据指定Token */ - public void logoutByToken(String token) - { + public void logoutByToken(String token) { tokenService.delLoginUser(token); } /** * 检验用户是否已经登录,如未登录,则抛出异常 */ - public void checkLogin() - { + public void checkLogin() { getLoginUser(); } @@ -69,16 +68,13 @@ public class AuthLogic * * @return 用户缓存信息 */ - public LoginUser getLoginUser() - { + public LoginUser getLoginUser() { String token = SecurityUtils.getToken(); - if (token == null) - { + if (token == null) { throw new NotLoginException("未提供token"); } LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser == null) - { + if (loginUser == null) { throw new NotLoginException("无效的token"); } return loginUser; @@ -90,8 +86,7 @@ public class AuthLogic * @param token 前端传递的认证信息 * @return 用户缓存信息 */ - public LoginUser getLoginUser(String token) - { + public LoginUser getLoginUser(String token) { return tokenService.getLoginUser(token); } @@ -100,8 +95,7 @@ public class AuthLogic * * @param loginUser 当前用户信息 */ - public void verifyLoginUserExpire(LoginUser loginUser) - { + public void verifyLoginUserExpire(LoginUser loginUser) { tokenService.verifyToken(loginUser); } @@ -111,8 +105,7 @@ public class AuthLogic * @param permission 权限字符串 * @return 用户是否具备某权限 */ - public boolean hasPermi(String permission) - { + public boolean hasPermi(String permission) { return hasPermi(getPermiList(), permission); } @@ -122,10 +115,8 @@ public class AuthLogic * @param permission 权限字符串 * @return 用户是否具备某权限 */ - public void checkPermi(String permission) - { - if (!hasPermi(getPermiList(), permission)) - { + public void checkPermi(String permission) { + if (!hasPermi(getPermiList(), permission)) { throw new NotPermissionException(permission); } } @@ -135,15 +126,11 @@ public class AuthLogic * * @param requiresPermissions 注解对象 */ - public void checkPermi(RequiresPermissions requiresPermissions) - { + public void checkPermi(RequiresPermissions requiresPermissions) { SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ",")); - if (requiresPermissions.logical() == Logical.AND) - { + if (requiresPermissions.logical() == Logical.AND) { checkPermiAnd(requiresPermissions.value()); - } - else - { + } else { checkPermiOr(requiresPermissions.value()); } } @@ -153,13 +140,10 @@ public class AuthLogic * * @param permissions 权限列表 */ - public void checkPermiAnd(String... permissions) - { + public void checkPermiAnd(String... permissions) { Set permissionList = getPermiList(); - for (String permission : permissions) - { - if (!hasPermi(permissionList, permission)) - { + for (String permission : permissions) { + if (!hasPermi(permissionList, permission)) { throw new NotPermissionException(permission); } } @@ -170,18 +154,14 @@ public class AuthLogic * * @param permissions 权限码数组 */ - public void checkPermiOr(String... permissions) - { + public void checkPermiOr(String... permissions) { Set permissionList = getPermiList(); - for (String permission : permissions) - { - if (hasPermi(permissionList, permission)) - { + for (String permission : permissions) { + if (hasPermi(permissionList, permission)) { return; } } - if (permissions.length > 0) - { + if (permissions.length > 0) { throw new NotPermissionException(permissions); } } @@ -192,8 +172,7 @@ public class AuthLogic * @param role 角色标识 * @return 用户是否具备某角色 */ - public boolean hasRole(String role) - { + public boolean hasRole(String role) { return hasRole(getRoleList(), role); } @@ -202,10 +181,8 @@ public class AuthLogic * * @param role 角色标识 */ - public void checkRole(String role) - { - if (!hasRole(role)) - { + public void checkRole(String role) { + if (!hasRole(role)) { throw new NotRoleException(role); } } @@ -215,14 +192,10 @@ public class AuthLogic * * @param requiresRoles 注解对象 */ - public void checkRole(RequiresRoles requiresRoles) - { - if (requiresRoles.logical() == Logical.AND) - { + public void checkRole(RequiresRoles requiresRoles) { + if (requiresRoles.logical() == Logical.AND) { checkRoleAnd(requiresRoles.value()); - } - else - { + } else { checkRoleOr(requiresRoles.value()); } } @@ -232,13 +205,10 @@ public class AuthLogic * * @param roles 角色标识数组 */ - public void checkRoleAnd(String... roles) - { + public void checkRoleAnd(String... roles) { Set roleList = getRoleList(); - for (String role : roles) - { - if (!hasRole(roleList, role)) - { + for (String role : roles) { + if (!hasRole(roleList, role)) { throw new NotRoleException(role); } } @@ -249,18 +219,14 @@ public class AuthLogic * * @param roles 角色标识数组 */ - public void checkRoleOr(String... roles) - { + public void checkRoleOr(String... roles) { Set roleList = getRoleList(); - for (String role : roles) - { - if (hasRole(roleList, role)) - { + for (String role : roles) { + if (hasRole(roleList, role)) { return; } } - if (roles.length > 0) - { + if (roles.length > 0) { throw new NotRoleException(roles); } } @@ -270,8 +236,7 @@ public class AuthLogic * * @param at 注解对象 */ - public void checkByAnnotation(RequiresLogin at) - { + public void checkByAnnotation(RequiresLogin at) { this.checkLogin(); } @@ -280,15 +245,11 @@ public class AuthLogic * * @param at 注解对象 */ - public void checkByAnnotation(RequiresRoles at) - { + public void checkByAnnotation(RequiresRoles at) { String[] roleArray = at.value(); - if (at.logical() == Logical.AND) - { + if (at.logical() == Logical.AND) { this.checkRoleAnd(roleArray); - } - else - { + } else { this.checkRoleOr(roleArray); } } @@ -298,15 +259,11 @@ public class AuthLogic * * @param at 注解对象 */ - public void checkByAnnotation(RequiresPermissions at) - { + public void checkByAnnotation(RequiresPermissions at) { String[] permissionArray = at.value(); - if (at.logical() == Logical.AND) - { + if (at.logical() == Logical.AND) { this.checkPermiAnd(permissionArray); - } - else - { + } else { this.checkPermiOr(permissionArray); } } @@ -316,15 +273,11 @@ public class AuthLogic * * @return 角色列表 */ - public Set getRoleList() - { - try - { + public Set getRoleList() { + try { LoginUser loginUser = getLoginUser(); return loginUser.getRoles(); - } - catch (Exception e) - { + } catch (Exception e) { return new HashSet<>(); } } @@ -334,15 +287,11 @@ public class AuthLogic * * @return 权限列表 */ - public Set getPermiList() - { - try - { + public Set getPermiList() { + try { LoginUser loginUser = getLoginUser(); return loginUser.getPermissions(); - } - catch (Exception e) - { + } catch (Exception e) { return new HashSet<>(); } } @@ -351,11 +300,10 @@ public class AuthLogic * 判断是否包含权限 * * @param authorities 权限列表 - * @param permission 权限字符串 + * @param permission 权限字符串 * @return 用户是否具备某权限 */ - public boolean hasPermi(Collection authorities, String permission) - { + public boolean hasPermi(Collection authorities, String permission) { return authorities.stream().filter(StringUtils::hasText) .anyMatch(x -> ALL_PERMISSION.equals(x) || PatternMatchUtils.simpleMatch(x, permission)); } @@ -364,11 +312,10 @@ public class AuthLogic * 判断是否包含角色 * * @param roles 角色列表 - * @param role 角色 + * @param role 角色 * @return 用户是否具备某角色权限 */ - public boolean hasRole(Collection roles, String role) - { + 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/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthUtil.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthUtil.java index 801bf4f..ab0f1be 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthUtil.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/auth/AuthUtil.java @@ -10,8 +10,7 @@ import com.muyu.system.common.model.LoginUser; * * @author muyu */ -public class AuthUtil -{ +public class AuthUtil { /** * 底层的 AuthLogic 对象 */ @@ -20,8 +19,7 @@ public class AuthUtil /** * 会话注销 */ - public static void logout() - { + public static void logout() { authLogic.logout(); } @@ -30,16 +28,14 @@ public class AuthUtil * * @param token 指定token */ - public static void logoutByToken(String token) - { + public static void logoutByToken(String token) { authLogic.logoutByToken(token); } /** * 检验当前会话是否已经登录,如未登录,则抛出异常 */ - public static void checkLogin() - { + public static void checkLogin() { authLogic.checkLogin(); } @@ -49,8 +45,7 @@ public class AuthUtil * @param token 指定token * @return 用户信息 */ - public static LoginUser getLoginUser(String token) - { + public static LoginUser getLoginUser(String token) { return authLogic.getLoginUser(token); } @@ -59,8 +54,7 @@ public class AuthUtil * * @param loginUser 用户信息 */ - public static void verifyLoginUserExpire(LoginUser loginUser) - { + public static void verifyLoginUserExpire(LoginUser loginUser) { authLogic.verifyLoginUserExpire(loginUser); } @@ -70,8 +64,7 @@ public class AuthUtil * @param role 角色标识 * @return 是否含有指定角色标识 */ - public static boolean hasRole(String role) - { + public static boolean hasRole(String role) { return authLogic.hasRole(role); } @@ -80,8 +73,7 @@ public class AuthUtil * * @param role 角色标识 */ - public static void checkRole(String role) - { + public static void checkRole(String role) { authLogic.checkRole(role); } @@ -90,8 +82,7 @@ public class AuthUtil * * @param requiresRoles 角色权限注解 */ - public static void checkRole(RequiresRoles requiresRoles) - { + public static void checkRole(RequiresRoles requiresRoles) { authLogic.checkRole(requiresRoles); } @@ -100,8 +91,7 @@ public class AuthUtil * * @param roles 角色标识数组 */ - public static void checkRoleAnd(String... roles) - { + public static void checkRoleAnd(String... roles) { authLogic.checkRoleAnd(roles); } @@ -110,8 +100,7 @@ public class AuthUtil * * @param roles 角色标识数组 */ - public static void checkRoleOr(String... roles) - { + public static void checkRoleOr(String... roles) { authLogic.checkRoleOr(roles); } @@ -121,8 +110,7 @@ public class AuthUtil * @param permission 权限码 * @return 是否含有指定权限 */ - public static boolean hasPermi(String permission) - { + public static boolean hasPermi(String permission) { return authLogic.hasPermi(permission); } @@ -131,8 +119,7 @@ public class AuthUtil * * @param permission 权限码 */ - public static void checkPermi(String permission) - { + public static void checkPermi(String permission) { authLogic.checkPermi(permission); } @@ -141,8 +128,7 @@ public class AuthUtil * * @param requiresPermissions 权限注解 */ - public static void checkPermi(RequiresPermissions requiresPermissions) - { + public static void checkPermi(RequiresPermissions requiresPermissions) { authLogic.checkPermi(requiresPermissions); } @@ -151,8 +137,7 @@ public class AuthUtil * * @param permissions 权限码数组 */ - public static void checkPermiAnd(String... permissions) - { + public static void checkPermiAnd(String... permissions) { authLogic.checkPermiAnd(permissions); } @@ -161,8 +146,7 @@ public class AuthUtil * * @param permissions 权限码数组 */ - public static void checkPermiOr(String... permissions) - { + public static void checkPermiOr(String... permissions) { authLogic.checkPermiOr(permissions); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/ApplicationConfig.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/ApplicationConfig.java index f2c3271..3d23586 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/ApplicationConfig.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/ApplicationConfig.java @@ -10,14 +10,12 @@ import java.util.TimeZone; * * @author muyu */ -public class ApplicationConfig -{ +public class ApplicationConfig { /** * 时区配置 */ @Bean - public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() - { + public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/WebMvcConfig.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/WebMvcConfig.java index 358dad4..915ae54 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/WebMvcConfig.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/config/WebMvcConfig.java @@ -9,14 +9,14 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * * @author muyu */ -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) - { + public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(getHeaderInterceptor()) .addPathPatterns("/**") .excludePathPatterns(excludeUrls) @@ -26,8 +26,7 @@ public class WebMvcConfig implements WebMvcConfigurer /** * 自定义请求头拦截器 */ - public HeaderInterceptor getHeaderInterceptor() - { + public HeaderInterceptor getHeaderInterceptor() { return new HeaderInterceptor(); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignAutoConfiguration.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignAutoConfiguration.java index a1edbc0..5f71976 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignAutoConfiguration.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignAutoConfiguration.java @@ -10,11 +10,9 @@ import org.springframework.context.annotation.Configuration; * @author muyu **/ @Configuration -public class FeignAutoConfiguration -{ +public class FeignAutoConfiguration { @Bean - public RequestInterceptor requestInterceptor() - { + public RequestInterceptor requestInterceptor() { return new FeignRequestInterceptor(); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignRequestInterceptor.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignRequestInterceptor.java index 3b9bac6..d1f2be0 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignRequestInterceptor.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/feign/FeignRequestInterceptor.java @@ -17,34 +17,27 @@ import java.util.Map; * @author muyu */ @Component -public class FeignRequestInterceptor implements RequestInterceptor -{ +public class FeignRequestInterceptor implements RequestInterceptor { @Override - public void apply(RequestTemplate requestTemplate) - { + public void apply(RequestTemplate requestTemplate) { HttpServletRequest httpServletRequest = ServletUtils.getRequest(); - if (StringUtils.isNotNull(httpServletRequest)) - { + if (StringUtils.isNotNull(httpServletRequest)) { Map headers = ServletUtils.getHeaders(httpServletRequest); // 传递用户信息请求头,防止丢失 String userId = headers.get(SecurityConstants.DETAILS_USER_ID); - if (StringUtils.isNotEmpty(userId)) - { + if (StringUtils.isNotEmpty(userId)) { requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId); } String userKey = headers.get(SecurityConstants.USER_KEY); - if (StringUtils.isNotEmpty(userKey)) - { + if (StringUtils.isNotEmpty(userKey)) { requestTemplate.header(SecurityConstants.USER_KEY, userKey); } String userName = headers.get(SecurityConstants.DETAILS_USERNAME); - if (StringUtils.isNotEmpty(userName)) - { + if (StringUtils.isNotEmpty(userName)) { requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName); } String authentication = headers.get(SecurityConstants.AUTHORIZATION_HEADER); - if (StringUtils.isNotEmpty(authentication)) - { + if (StringUtils.isNotEmpty(authentication)) { requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication); } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/handler/GlobalExceptionHandler.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/handler/GlobalExceptionHandler.java index ab88aea..1b5a517 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/handler/GlobalExceptionHandler.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/handler/GlobalExceptionHandler.java @@ -26,16 +26,14 @@ import javax.servlet.http.HttpServletRequest; * @author muyu */ @RestControllerAdvice -public class GlobalExceptionHandler -{ +public class GlobalExceptionHandler { private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); /** * 权限码异常 */ @ExceptionHandler(NotPermissionException.class) - public Result handleNotPermissionException(NotPermissionException e, HttpServletRequest request) - { + public Result handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage()); return Result.success(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权"); @@ -45,8 +43,7 @@ public class GlobalExceptionHandler * 角色权限异常 */ @ExceptionHandler(NotRoleException.class) - public Result handleNotRoleException(NotRoleException e, HttpServletRequest request) - { + public Result handleNotRoleException(NotRoleException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage()); return Result.error(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权"); @@ -56,8 +53,7 @@ public class GlobalExceptionHandler * 请求方式不支持 */ @ExceptionHandler(HttpRequestMethodNotSupportedException.class) - public Result handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) - { + public Result handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod()); return Result.error(e.getMessage()); @@ -67,8 +63,7 @@ public class GlobalExceptionHandler * 业务异常 */ @ExceptionHandler(ServiceException.class) - public Result handleServiceException(ServiceException e, HttpServletRequest request) - { + public Result handleServiceException(ServiceException e, HttpServletRequest request) { log.error(e.getMessage(), e); Integer code = e.getCode(); return StringUtils.isNotNull(code) ? Result.error(code, e.getMessage()) : Result.error(e.getMessage()); @@ -78,8 +73,7 @@ public class GlobalExceptionHandler * 请求路径中缺少必需的路径变量 */ @ExceptionHandler(MissingPathVariableException.class) - public Result handleMissingPathVariableException(MissingPathVariableException e, HttpServletRequest request) - { + public Result handleMissingPathVariableException(MissingPathVariableException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求路径中缺少必需的路径变量'{}',发生系统异常.", requestURI, e); return Result.error(String.format("请求路径中缺少必需的路径变量[%s]", e.getVariableName())); @@ -89,8 +83,7 @@ public class GlobalExceptionHandler * 请求参数类型不匹配 */ @ExceptionHandler(MethodArgumentTypeMismatchException.class) - public Result handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) - { + public Result handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求参数类型不匹配'{}',发生系统异常.", requestURI, e); return Result.error(String.format("请求参数类型不匹配,参数[%s]要求类型为:'%s',但输入值为:'%s'", e.getName(), e.getRequiredType().getName(), e.getValue())); @@ -100,8 +93,7 @@ public class GlobalExceptionHandler * 拦截未知的运行时异常 */ @ExceptionHandler(RuntimeException.class) - public Result handleRuntimeException(RuntimeException e, HttpServletRequest request) - { + public Result handleRuntimeException(RuntimeException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',发生未知异常.", requestURI, e); return Result.error(e.getMessage()); @@ -111,8 +103,7 @@ public class GlobalExceptionHandler * 系统异常 */ @ExceptionHandler(Exception.class) - public Result handleException(Exception e, HttpServletRequest request) - { + public Result handleException(Exception e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',发生系统异常.", requestURI, e); return Result.error(e.getMessage()); @@ -122,8 +113,7 @@ public class GlobalExceptionHandler * 自定义验证异常 */ @ExceptionHandler(BindException.class) - public Result handleBindException(BindException e) - { + public Result handleBindException(BindException e) { log.error(e.getMessage(), e); String message = e.getAllErrors().get(0).getDefaultMessage(); return Result.error(message); @@ -133,8 +123,7 @@ public class GlobalExceptionHandler * 自定义验证异常 */ @ExceptionHandler(MethodArgumentNotValidException.class) - public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) - { + public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { log.error(e.getMessage(), e); String message = e.getBindingResult().getFieldError().getDefaultMessage(); return Result.error(message); @@ -144,8 +133,7 @@ public class GlobalExceptionHandler * 内部认证异常 */ @ExceptionHandler(InnerAuthException.class) - public Result handleInnerAuthException(InnerAuthException e) - { + public Result handleInnerAuthException(InnerAuthException e) { return Result.error(e.getMessage()); } @@ -153,8 +141,7 @@ public class GlobalExceptionHandler * 演示模式异常 */ @ExceptionHandler(DemoModeException.class) - public Result handleDemoModeException(DemoModeException e) - { + public Result handleDemoModeException(DemoModeException e) { return Result.error("演示模式,不允许操作"); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/interceptor/HeaderInterceptor.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/interceptor/HeaderInterceptor.java index 5ec5db9..ac0dcc8 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/interceptor/HeaderInterceptor.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/interceptor/HeaderInterceptor.java @@ -20,13 +20,10 @@ import javax.servlet.http.HttpServletResponse; * * @author muyu */ -public class HeaderInterceptor implements AsyncHandlerInterceptor -{ +public class HeaderInterceptor implements AsyncHandlerInterceptor { @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception - { - if (!(handler instanceof HandlerMethod)) - { + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if (!(handler instanceof HandlerMethod)) { return true; } @@ -35,11 +32,9 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); String token = SecurityUtils.getToken(); - if (StringUtils.isNotEmpty(token)) - { + if (StringUtils.isNotEmpty(token)) { LoginUser loginUser = AuthUtil.getLoginUser(token); - if (StringUtils.isNotNull(loginUser)) - { + if (StringUtils.isNotNull(loginUser)) { AuthUtil.verifyLoginUserExpire(loginUser); SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); } @@ -49,8 +44,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) - throws Exception - { + throws Exception { SecurityContextHolder.remove(); } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/service/TokenService.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/service/TokenService.java index e51b1f4..422779d 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/service/TokenService.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/service/TokenService.java @@ -27,8 +27,7 @@ import java.util.concurrent.TimeUnit; * @author muyu */ @Component -public class TokenService -{ +public class TokenService { private static final Logger log = LoggerFactory.getLogger(TokenService.class); @Autowired @@ -47,8 +46,7 @@ public class TokenService /** * 创建令牌 */ - public Map createToken(LoginUser loginUser) - { + public Map createToken(LoginUser loginUser) { String token = IdUtils.fastUUID(); Long userId = loginUser.getSysUser().getUserId(); String userName = loginUser.getSysUser().getUserName(); @@ -76,8 +74,7 @@ public class TokenService * * @return 用户信息 */ - public LoginUser getLoginUser() - { + public LoginUser getLoginUser() { return getLoginUser(ServletUtils.getRequest()); } @@ -86,8 +83,7 @@ public class TokenService * * @return 用户信息 */ - public LoginUser getLoginUser(HttpServletRequest request) - { + public LoginUser getLoginUser(HttpServletRequest request) { // 获取请求携带的令牌 String token = SecurityUtils.getToken(request); return getLoginUser(token); @@ -98,20 +94,15 @@ public class TokenService * * @return 用户信息 */ - public LoginUser getLoginUser(String token) - { + public LoginUser getLoginUser(String token) { LoginUser user = null; - try - { - if (StringUtils.isNotEmpty(token)) - { + try { + if (StringUtils.isNotEmpty(token)) { String userkey = JwtUtils.getUserKey(token); user = redisService.getCacheObject(getTokenKey(userkey)); return user; } - } - catch (Exception e) - { + } catch (Exception e) { log.error("获取用户信息异常'{}'", e.getMessage()); } return user; @@ -120,10 +111,8 @@ public class TokenService /** * 设置用户身份信息 */ - public void setLoginUser(LoginUser loginUser) - { - if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) - { + public void setLoginUser(LoginUser loginUser) { + if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) { refreshToken(loginUser); } } @@ -131,10 +120,8 @@ public class TokenService /** * 删除用户缓存信息 */ - public void delLoginUser(String token) - { - if (StringUtils.isNotEmpty(token)) - { + public void delLoginUser(String token) { + if (StringUtils.isNotEmpty(token)) { String userkey = JwtUtils.getUserKey(token); redisService.deleteObject(getTokenKey(userkey)); } @@ -145,12 +132,10 @@ public class TokenService * * @param loginUser */ - public void verifyToken(LoginUser loginUser) - { + public void verifyToken(LoginUser loginUser) { long expireTime = loginUser.getExpireTime(); long currentTime = System.currentTimeMillis(); - if (expireTime - currentTime <= MILLIS_MINUTE_TEN) - { + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) { refreshToken(loginUser); } } @@ -160,8 +145,7 @@ public class TokenService * * @param loginUser 登录信息 */ - public void refreshToken(LoginUser loginUser) - { + public void refreshToken(LoginUser loginUser) { loginUser.setLoginTime(System.currentTimeMillis()); loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE); // 根据uuid将loginUser缓存 @@ -169,8 +153,7 @@ public class TokenService redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); } - private String getTokenKey(String token) - { + private String getTokenKey(String token) { return ACCESS_TOKEN + token; } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/DictUtils.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/DictUtils.java index 84acf44..44b61d7 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/DictUtils.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/DictUtils.java @@ -16,16 +16,14 @@ import java.util.List; * * @author muyu */ -public class DictUtils -{ +public class DictUtils { /** * 设置字典缓存 * - * @param key 参数键 + * @param key 参数键 * @param dictDatas 字典数据列表 */ - public static void setDictCache(String key, List dictDatas) - { + public static void setDictCache(String key, List dictDatas) { SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas); } @@ -35,11 +33,9 @@ public class DictUtils * @param key 参数键 * @return dictDatas 字典数据列表 */ - public static List getDictCache(String key) - { + public static List getDictCache(String key) { JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(arrayCache)) - { + if (StringUtils.isNotNull(arrayCache)) { return arrayCache.toList(SysDictData.class); } return null; @@ -50,16 +46,14 @@ public class DictUtils * * @param key 字典键 */ - public static void removeDictCache(String key) - { + public static void removeDictCache(String key) { SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key)); } /** * 清空字典缓存 */ - public static void clearDictCache() - { + public static void clearDictCache() { Collection keys = SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*"); SpringUtils.getBean(RedisService.class).deleteObject(keys); } @@ -70,8 +64,7 @@ public class DictUtils * @param configKey 参数键 * @return 缓存键key */ - public static String getCacheKey(String configKey) - { + public static String getCacheKey(String configKey) { return CacheConstants.SYS_DICT_KEY + configKey; } } diff --git a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/SecurityUtils.java b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/SecurityUtils.java index 60b7953..ed2d897 100644 --- a/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/SecurityUtils.java +++ b/muyu-common/muyu-common-security/src/main/java/com/muyu/common/security/utils/SecurityUtils.java @@ -16,53 +16,46 @@ import javax.servlet.http.HttpServletRequest; * * @author muyu */ -public class SecurityUtils -{ +public class SecurityUtils { /** * 获取用户ID */ - public static Long getUserId() - { + public static Long getUserId() { return SecurityContextHolder.getUserId(); } /** * 获取用户名称 */ - public static String getUsername() - { + public static String getUsername() { return SecurityContextHolder.getUserName(); } /** * 获取用户key */ - public static String getUserKey() - { + public static String getUserKey() { return SecurityContextHolder.getUserKey(); } /** * 用户信息 */ - public static LoginUser getLoginUser() - { + public static LoginUser getLoginUser() { return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class); } /** * 获取请求token */ - public static String getToken() - { + public static String getToken() { return getToken(ServletUtils.getRequest()); } /** * 根据request获取请求token */ - public static String getToken(HttpServletRequest request) - { + public static String getToken(HttpServletRequest request) { // 从header获取token标识 String token = request.getHeader(TokenConstants.AUTHENTICATION); return replaceTokenPrefix(token); @@ -71,11 +64,9 @@ public class SecurityUtils /** * 裁剪token前缀 */ - public static String replaceTokenPrefix(String token) - { + public static String replaceTokenPrefix(String token) { // 如果前端设置了令牌前缀,则裁剪掉前缀 - if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) - { + if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) { token = token.replaceFirst(TokenConstants.PREFIX, ""); } return token; @@ -87,8 +78,7 @@ public class SecurityUtils * @param userId 用户ID * @return 结果 */ - public static boolean isAdmin(Long userId) - { + public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } @@ -98,8 +88,7 @@ public class SecurityUtils * @param password 密码 * @return 加密字符串 */ - public static String encryptPassword(String password) - { + public static String encryptPassword(String password) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.encode(password); } @@ -107,12 +96,11 @@ public class SecurityUtils /** * 判断密码是否相同 * - * @param rawPassword 真实密码 + * @param rawPassword 真实密码 * @param encodedPassword 加密后字符 * @return 结果 */ - public static boolean matchesPassword(String rawPassword, String encodedPassword) - { + public static boolean matchesPassword(String rawPassword, String encodedPassword) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.matches(rawPassword, encodedPassword); } diff --git a/muyu-common/muyu-common-swagger/pom.xml b/muyu-common/muyu-common-swagger/pom.xml index 1b66ac3..750bd3a 100644 --- a/muyu-common/muyu-common-swagger/pom.xml +++ b/muyu-common/muyu-common-swagger/pom.xml @@ -15,7 +15,7 @@ muyu-common-swagger系统接口 - + @@ -30,5 +30,5 @@ ${swagger.fox.version} - + diff --git a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/annotation/EnableCustomSwagger2.java b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/annotation/EnableCustomSwagger2.java index 4181756..8b56946 100644 --- a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/annotation/EnableCustomSwagger2.java +++ b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/annotation/EnableCustomSwagger2.java @@ -5,12 +5,11 @@ import org.springframework.context.annotation.Import; import java.lang.annotation.*; -@Target({ ElementType.TYPE }) +@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited -@Import({ SwaggerAutoConfiguration.class }) -public @interface EnableCustomSwagger2 -{ +@Import({SwaggerAutoConfiguration.class}) +public @interface EnableCustomSwagger2 { } diff --git a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerAutoConfiguration.java b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerAutoConfiguration.java index 4e70bc1..bb7ae78 100644 --- a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerAutoConfiguration.java +++ b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerAutoConfiguration.java @@ -25,8 +25,7 @@ import java.util.function.Predicate; @EnableConfigurationProperties(SwaggerProperties.class) @ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true) @Import({SwaggerBeanPostProcessor.class, SwaggerWebConfiguration.class}) -public class SwaggerAutoConfiguration -{ +public class SwaggerAutoConfiguration { /** * 默认的排除路径,排除Spring Boot默认的错误处理路径和端点 */ @@ -35,11 +34,9 @@ public class SwaggerAutoConfiguration private static final String BASE_PATH = "/**"; @Bean - public Docket api(SwaggerProperties swaggerProperties) - { + public Docket api(SwaggerProperties swaggerProperties) { // base-path处理 - if (swaggerProperties.getBasePath().isEmpty()) - { + if (swaggerProperties.getBasePath().isEmpty()) { swaggerProperties.getBasePath().add(BASE_PATH); } // noinspection unchecked @@ -47,8 +44,7 @@ public class SwaggerAutoConfiguration swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path))); // exclude-path处理 - if (swaggerProperties.getExcludePath().isEmpty()) - { + if (swaggerProperties.getExcludePath().isEmpty()) { swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH); } @@ -68,8 +64,7 @@ public class SwaggerAutoConfiguration /** * 安全模式,这里指定token通过Authorization头请求头传递 */ - private List securitySchemes() - { + private List securitySchemes() { List apiKeyList = new ArrayList(); apiKeyList.add(new ApiKey("Authorization", "Authorization", "header")); return apiKeyList; @@ -78,8 +73,7 @@ public class SwaggerAutoConfiguration /** * 安全上下文 */ - private List securityContexts() - { + private List securityContexts() { List securityContexts = new ArrayList<>(); securityContexts.add( SecurityContext.builder() @@ -94,8 +88,7 @@ public class SwaggerAutoConfiguration * * @return */ - private List defaultAuth() - { + private List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; @@ -104,16 +97,15 @@ public class SwaggerAutoConfiguration return securityReferences; } - private ApiInfo apiInfo(SwaggerProperties swaggerProperties) - { - return new ApiInfoBuilder() - .title(swaggerProperties.getTitle()) - .description(swaggerProperties.getDescription()) - .license(swaggerProperties.getLicense()) - .licenseUrl(swaggerProperties.getLicenseUrl()) - .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()) - .contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail())) - .version(swaggerProperties.getVersion()) - .build(); + private ApiInfo apiInfo(SwaggerProperties swaggerProperties) { + return new ApiInfoBuilder() + .title(swaggerProperties.getTitle()) + .description(swaggerProperties.getDescription()) + .license(swaggerProperties.getLicense()) + .licenseUrl(swaggerProperties.getLicenseUrl()) + .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()) + .contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail())) + .version(swaggerProperties.getVersion()) + .build(); } } diff --git a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerBeanPostProcessor.java b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerBeanPostProcessor.java index aaf7287..74fb02d 100644 --- a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerBeanPostProcessor.java +++ b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerBeanPostProcessor.java @@ -16,20 +16,16 @@ import java.util.stream.Collectors; * * @author muyu */ -public class SwaggerBeanPostProcessor implements BeanPostProcessor -{ +public class SwaggerBeanPostProcessor implements BeanPostProcessor { @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException - { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) - { + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); } return bean; } - private void customizeSpringfoxHandlerMappings(List mappings) - { + private void customizeSpringfoxHandlerMappings(List mappings) { List copy = mappings.stream().filter(mapping -> mapping.getPatternParser() == null) .collect(Collectors.toList()); mappings.clear(); @@ -37,16 +33,12 @@ public class SwaggerBeanPostProcessor implements BeanPostProcessor } @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) - { - try - { + private List getHandlerMappings(Object bean) { + try { Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); field.setAccessible(true); return (List) field.get(bean); - } - catch (IllegalArgumentException | IllegalAccessException e) - { + } catch (IllegalArgumentException | IllegalAccessException e) { throw new IllegalStateException(e); } } diff --git a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerProperties.java b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerProperties.java index a39bcf0..7d79147 100644 --- a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerProperties.java +++ b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerProperties.java @@ -6,8 +6,7 @@ import java.util.ArrayList; import java.util.List; @ConfigurationProperties("swagger") -public class SwaggerProperties -{ +public class SwaggerProperties { /** * 是否开启swagger */ @@ -73,138 +72,111 @@ public class SwaggerProperties **/ private Authorization authorization = new Authorization(); - public Boolean getEnabled() - { + public Boolean getEnabled() { return enabled; } - public void setEnabled(Boolean enabled) - { + public void setEnabled(Boolean enabled) { this.enabled = enabled; } - public String getBasePackage() - { + public String getBasePackage() { return basePackage; } - public void setBasePackage(String basePackage) - { + public void setBasePackage(String basePackage) { this.basePackage = basePackage; } - public List getBasePath() - { + public List getBasePath() { return basePath; } - public void setBasePath(List basePath) - { + public void setBasePath(List basePath) { this.basePath = basePath; } - public List getExcludePath() - { + public List getExcludePath() { return excludePath; } - public void setExcludePath(List excludePath) - { + public void setExcludePath(List excludePath) { this.excludePath = excludePath; } - public String getTitle() - { + public String getTitle() { return title; } - public void setTitle(String title) - { + public void setTitle(String title) { this.title = title; } - public String getDescription() - { + public String getDescription() { return description; } - public void setDescription(String description) - { + public void setDescription(String description) { this.description = description; } - public String getVersion() - { + public String getVersion() { return version; } - public void setVersion(String version) - { + public void setVersion(String version) { this.version = version; } - public String getLicense() - { + public String getLicense() { return license; } - public void setLicense(String license) - { + public void setLicense(String license) { this.license = license; } - public String getLicenseUrl() - { + public String getLicenseUrl() { return licenseUrl; } - public void setLicenseUrl(String licenseUrl) - { + public void setLicenseUrl(String licenseUrl) { this.licenseUrl = licenseUrl; } - public String getTermsOfServiceUrl() - { + public String getTermsOfServiceUrl() { return termsOfServiceUrl; } - public void setTermsOfServiceUrl(String termsOfServiceUrl) - { + public void setTermsOfServiceUrl(String termsOfServiceUrl) { this.termsOfServiceUrl = termsOfServiceUrl; } - public String getHost() - { + public String getHost() { return host; } - public void setHost(String host) - { + public void setHost(String host) { this.host = host; } - public Contact getContact() - { + public Contact getContact() { return contact; } - public void setContact(Contact contact) - { + public void setContact(Contact contact) { this.contact = contact; } - public Authorization getAuthorization() - { + public Authorization getAuthorization() { return authorization; } - public void setAuthorization(Authorization authorization) - { + public void setAuthorization(Authorization authorization) { this.authorization = authorization; } - public static class Contact - { + public static class Contact { /** * 联系人 **/ @@ -218,39 +190,32 @@ public class SwaggerProperties **/ private String email = ""; - public String getName() - { + public String getName() { return name; } - public void setName(String name) - { + public void setName(String name) { this.name = name; } - public String getUrl() - { + public String getUrl() { return url; } - public void setUrl(String url) - { + public void setUrl(String url) { this.url = url; } - public String getEmail() - { + public String getEmail() { return email; } - public void setEmail(String email) - { + public void setEmail(String email) { this.email = email; } } - public static class Authorization - { + public static class Authorization { /** * 鉴权策略ID,需要和SecurityReferences ID保持一致 */ @@ -268,49 +233,40 @@ public class SwaggerProperties private List tokenUrlList = new ArrayList<>(); - public String getName() - { + public String getName() { return name; } - public void setName(String name) - { + public void setName(String name) { this.name = name; } - public String getAuthRegex() - { + public String getAuthRegex() { return authRegex; } - public void setAuthRegex(String authRegex) - { + public void setAuthRegex(String authRegex) { this.authRegex = authRegex; } - public List getAuthorizationScopeList() - { + public List getAuthorizationScopeList() { return authorizationScopeList; } - public void setAuthorizationScopeList(List authorizationScopeList) - { + public void setAuthorizationScopeList(List authorizationScopeList) { this.authorizationScopeList = authorizationScopeList; } - public List getTokenUrlList() - { + public List getTokenUrlList() { return tokenUrlList; } - public void setTokenUrlList(List tokenUrlList) - { + public void setTokenUrlList(List tokenUrlList) { this.tokenUrlList = tokenUrlList; } } - public static class AuthorizationScope - { + public static class AuthorizationScope { /** * 作用域名称 */ @@ -321,23 +277,19 @@ public class SwaggerProperties */ private String description = ""; - public String getScope() - { + public String getScope() { return scope; } - public void setScope(String scope) - { + public void setScope(String scope) { this.scope = scope; } - public String getDescription() - { + public String getDescription() { return description; } - public void setDescription(String description) - { + public void setDescription(String description) { this.description = description; } } diff --git a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerWebConfiguration.java b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerWebConfiguration.java index 386db2f..4ad671e 100644 --- a/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerWebConfiguration.java +++ b/muyu-common/muyu-common-swagger/src/main/java/com/muyu/common/swagger/config/SwaggerWebConfiguration.java @@ -8,11 +8,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * * @author muyu */ -public class SwaggerWebConfiguration implements WebMvcConfigurer -{ +public class SwaggerWebConfiguration implements WebMvcConfigurer { @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) - { + public void addResourceHandlers(ResourceHandlerRegistry registry) { /** swagger-ui 地址 */ registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/MuYuGatewayApplication.java b/muyu-gateway/src/main/java/com/muyu/gateway/MuYuGatewayApplication.java index 9a8215e..821b321 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/MuYuGatewayApplication.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/MuYuGatewayApplication.java @@ -9,11 +9,9 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; * * @author muyu */ -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) -public class MuYuGatewayApplication -{ - public static void main(String[] args) - { +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class MuYuGatewayApplication { + public static void main(String[] args) { SpringApplication.run(MuYuGatewayApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 若依网关启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/CaptchaConfig.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/CaptchaConfig.java index da73d81..f4f6c2e 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/CaptchaConfig.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/CaptchaConfig.java @@ -1,10 +1,12 @@ package com.muyu.gateway.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.*; /** @@ -13,11 +15,9 @@ import static com.google.code.kaptcha.Constants.*; * @author muyu */ @Configuration -public class CaptchaConfig -{ +public class CaptchaConfig { @Bean(name = "captchaProducer") - public DefaultKaptcha getKaptchaBean() - { + public DefaultKaptcha getKaptchaBean() { DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); Properties properties = new Properties(); // 是否有边框 默认为true 我们可以自己设置yes,no @@ -44,8 +44,7 @@ public class CaptchaConfig } @Bean(name = "captchaProducerMath") - public DefaultKaptcha getKaptchaBeanMath() - { + public DefaultKaptcha getKaptchaBeanMath() { DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); Properties properties = new Properties(); // 是否有边框 默认为true 我们可以自己设置yes,no diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/GatewayConfig.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/GatewayConfig.java index a93ef38..dd6125d 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/GatewayConfig.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/GatewayConfig.java @@ -12,12 +12,10 @@ import com.muyu.gateway.handler.SentinelFallbackHandler; * @author muyu */ @Configuration -public class GatewayConfig -{ +public class GatewayConfig { @Bean @Order(Ordered.HIGHEST_PRECEDENCE) - public SentinelFallbackHandler sentinelGatewayExceptionHandler() - { + public SentinelFallbackHandler sentinelGatewayExceptionHandler() { return new SentinelFallbackHandler(); } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/KaptchaTextCreator.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/KaptchaTextCreator.java index 72d18a1..853006c 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/KaptchaTextCreator.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/KaptchaTextCreator.java @@ -1,6 +1,7 @@ package com.muyu.gateway.config; import java.util.Random; + import com.google.code.kaptcha.text.impl.DefaultTextCreator; /** @@ -8,62 +9,47 @@ import com.google.code.kaptcha.text.impl.DefaultTextCreator; * * @author muyu */ -public class KaptchaTextCreator extends DefaultTextCreator -{ +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() - { + 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) - { + 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) - { + } else if (randomoperands == 1) { + if ((x != 0) && y % x == 0) { result = y / x; suChinese.append(CNUMBERS[y]); suChinese.append("/"); suChinese.append(CNUMBERS[x]); - } - else - { + } else { result = x + y; suChinese.append(CNUMBERS[x]); suChinese.append("+"); suChinese.append(CNUMBERS[y]); } - } - else if (randomoperands == 2) - { - if (x >= y) - { + } else if (randomoperands == 2) { + if (x >= y) { result = x - y; suChinese.append(CNUMBERS[x]); suChinese.append("-"); suChinese.append(CNUMBERS[y]); - } - else - { + } else { result = y - x; suChinese.append(CNUMBERS[y]); suChinese.append("-"); suChinese.append(CNUMBERS[x]); } - } - else - { + } else { result = x + y; suChinese.append(CNUMBERS[x]); suChinese.append("+"); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/RouterFunctionConfiguration.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/RouterFunctionConfiguration.java index 8c45634..2541b94 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/RouterFunctionConfiguration.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/RouterFunctionConfiguration.java @@ -15,15 +15,13 @@ import com.muyu.gateway.handler.ValidateCodeHandler; * @author muyu */ @Configuration -public class RouterFunctionConfiguration -{ +public class RouterFunctionConfiguration { @Autowired private ValidateCodeHandler validateCodeHandler; @SuppressWarnings("rawtypes") @Bean - public RouterFunction routerFunction() - { + public RouterFunction routerFunction() { return RouterFunctions.route( RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), validateCodeHandler); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/SwaggerProvider.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/SwaggerProvider.java index 85902a8..1638780 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/SwaggerProvider.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/SwaggerProvider.java @@ -2,6 +2,7 @@ package com.muyu.gateway.config; import java.util.ArrayList; import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.gateway.config.GatewayProperties; import org.springframework.cloud.gateway.route.RouteLocator; @@ -19,8 +20,7 @@ import springfox.documentation.swagger.web.SwaggerResourcesProvider; * @author muyu */ @Component -public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigurer -{ +public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigurer { /** * Swagger2默认的url后缀 */ @@ -42,8 +42,7 @@ public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigu * @return */ @Override - public List get() - { + public List get() { List resourceList = new ArrayList<>(); List routes = new ArrayList<>(); // 获取网关中配置的route @@ -60,8 +59,7 @@ public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigu return resourceList; } - private SwaggerResource swaggerResource(String name, String location) - { + private SwaggerResource swaggerResource(String name, String location) { SwaggerResource swaggerResource = new SwaggerResource(); swaggerResource.setName(name); swaggerResource.setLocation(location); @@ -70,8 +68,7 @@ public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigu } @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) - { + public void addResourceHandlers(ResourceHandlerRegistry registry) { /** swagger-ui 地址 */ registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CaptchaProperties.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CaptchaProperties.java index 3e85fe6..e43dbe9 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CaptchaProperties.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CaptchaProperties.java @@ -12,8 +12,7 @@ import org.springframework.context.annotation.Configuration; @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.captcha") -public class CaptchaProperties -{ +public class CaptchaProperties { /** * 验证码开关 */ @@ -24,23 +23,19 @@ public class CaptchaProperties */ private String type; - public Boolean getEnabled() - { + public Boolean getEnabled() { return enabled; } - public void setEnabled(Boolean enabled) - { + public void setEnabled(Boolean enabled) { this.enabled = enabled; } - public String getType() - { + public String getType() { return type; } - public void setType(String type) - { + public void setType(String type) { this.type = type; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/IgnoreWhiteProperties.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/IgnoreWhiteProperties.java index 0108739..b67e92a 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/IgnoreWhiteProperties.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/IgnoreWhiteProperties.java @@ -2,6 +2,7 @@ package com.muyu.gateway.config.properties; import java.util.ArrayList; import java.util.List; + import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; @@ -14,20 +15,17 @@ import org.springframework.context.annotation.Configuration; @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.ignore") -public class IgnoreWhiteProperties -{ +public class IgnoreWhiteProperties { /** * 放行白名单配置,网关不校验此处的白名单 */ private List whites = new ArrayList<>(); - public List getWhites() - { + public List getWhites() { return whites; } - public void setWhites(List whites) - { + public void setWhites(List whites) { this.whites = whites; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/XssProperties.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/XssProperties.java index b73a266..2d8664c 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/XssProperties.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/XssProperties.java @@ -2,20 +2,20 @@ package com.muyu.gateway.config.properties; import java.util.ArrayList; import java.util.List; + import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; /** * XSS跨站脚本配置 - * + * * @author muyu */ @Configuration @RefreshScope @ConfigurationProperties(prefix = "security.xss") -public class XssProperties -{ +public class XssProperties { /** * Xss开关 */ @@ -26,23 +26,19 @@ public class XssProperties */ private List excludeUrls = new ArrayList<>(); - public Boolean getEnabled() - { + public Boolean getEnabled() { return enabled; } - public void setEnabled(Boolean enabled) - { + public void setEnabled(Boolean enabled) { this.enabled = enabled; } - public List getExcludeUrls() - { + public List getExcludeUrls() { return excludeUrls; } - public void setExcludeUrls(List excludeUrls) - { + public void setExcludeUrls(List excludeUrls) { this.excludeUrls = excludeUrls; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/filter/AuthFilter.java b/muyu-gateway/src/main/java/com/muyu/gateway/filter/AuthFilter.java index 468a6ba..50d3625 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/filter/AuthFilter.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/filter/AuthFilter.java @@ -23,12 +23,11 @@ import reactor.core.publisher.Mono; /** * 网关鉴权 - * + * * @author muyu */ @Component -public class AuthFilter implements GlobalFilter, Ordered -{ +public class AuthFilter implements GlobalFilter, Ordered { private static final Logger log = LoggerFactory.getLogger(AuthFilter.class); // 排除过滤的 uri 地址,nacos自行添加 @@ -40,37 +39,31 @@ public class AuthFilter implements GlobalFilter, Ordered @Override - public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) - { + 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())) - { + if (StringUtils.matches(url, ignoreWhite.getWhites())) { return chain.filter(exchange); } String token = getToken(request); - if (StringUtils.isEmpty(token)) - { + if (StringUtils.isEmpty(token)) { return unauthorizedResponse(exchange, "令牌不能为空"); } Claims claims = JwtUtils.parseToken(token); - if (claims == null) - { + if (claims == null) { return unauthorizedResponse(exchange, "令牌已过期或验证不正确!"); } String userkey = JwtUtils.getUserKey(claims); boolean islogin = redisService.hasKey(getTokenKey(userkey)); - if (!islogin) - { + if (!islogin) { return unauthorizedResponse(exchange, "登录状态已过期"); } String userid = JwtUtils.getUserId(claims); String username = JwtUtils.getUserName(claims); - if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) - { + if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { return unauthorizedResponse(exchange, "令牌验证失败"); } @@ -83,10 +76,8 @@ public class AuthFilter implements GlobalFilter, Ordered return chain.filter(exchange.mutate().request(mutate.build()).build()); } - private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) - { - if (value == null) - { + private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) { + if (value == null) { return; } String valueStr = value.toString(); @@ -94,13 +85,11 @@ public class AuthFilter implements GlobalFilter, Ordered mutate.header(name, valueEncode); } - private void removeHeader(ServerHttpRequest.Builder mutate, String name) - { + private void removeHeader(ServerHttpRequest.Builder mutate, String name) { mutate.headers(httpHeaders -> httpHeaders.remove(name)).build(); } - private Mono unauthorizedResponse(ServerWebExchange exchange, String msg) - { + private Mono unauthorizedResponse(ServerWebExchange exchange, String msg) { log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath()); return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); } @@ -108,28 +97,24 @@ public class AuthFilter implements GlobalFilter, Ordered /** * 获取缓存key */ - private String getTokenKey(String token) - { + private String getTokenKey(String token) { return CacheConstants.LOGIN_TOKEN_KEY + token; } /** * 获取请求token */ - private String getToken(ServerHttpRequest request) - { + private String getToken(ServerHttpRequest request) { String token = request.getHeaders().getFirst(TokenConstants.AUTHENTICATION); // 如果前端设置了令牌前缀,则裁剪掉前缀 - if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) - { + if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) { token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY); } return token; } @Override - public int getOrder() - { + public int getOrder() { return -200; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/filter/BlackListUrlFilter.java b/muyu-gateway/src/main/java/com/muyu/gateway/filter/BlackListUrlFilter.java index 8cab7d3..21b9581 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/filter/BlackListUrlFilter.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/filter/BlackListUrlFilter.java @@ -3,6 +3,7 @@ package com.muyu.gateway.filter; 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; @@ -14,16 +15,13 @@ import com.muyu.common.core.utils.ServletUtils; * @author muyu */ @Component -public class BlackListUrlFilter extends AbstractGatewayFilterFactory -{ +public class BlackListUrlFilter extends AbstractGatewayFilterFactory { @Override - public GatewayFilter apply(Config config) - { + public GatewayFilter apply(Config config) { return (exchange, chain) -> { String url = exchange.getRequest().getURI().getPath(); - if (config.matchBlacklist(url)) - { + if (config.matchBlacklist(url)) { return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请求地址不允许访问"); } @@ -31,29 +29,24 @@ public class BlackListUrlFilter extends AbstractGatewayFilterFactory blacklistUrl; private List blacklistUrlPattern = new ArrayList<>(); - public boolean matchBlacklist(String url) - { + public boolean matchBlacklist(String url) { return !blacklistUrlPattern.isEmpty() && blacklistUrlPattern.stream().anyMatch(p -> p.matcher(url).find()); } - public List getBlacklistUrl() - { + public List getBlacklistUrl() { return blacklistUrl; } - public void setBlacklistUrl(List blacklistUrl) - { + public void setBlacklistUrl(List blacklistUrl) { this.blacklistUrl = blacklistUrl; this.blacklistUrlPattern.clear(); this.blacklistUrl.forEach(url -> { diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/filter/CacheRequestFilter.java b/muyu-gateway/src/main/java/com/muyu/gateway/filter/CacheRequestFilter.java index d62b231..5c829af 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/filter/CacheRequestFilter.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/filter/CacheRequestFilter.java @@ -2,6 +2,7 @@ package com.muyu.gateway.filter; import java.util.Collections; import java.util.List; + import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.OrderedGatewayFilter; @@ -18,45 +19,36 @@ import reactor.core.publisher.Mono; * @author muyu */ @Component -public class CacheRequestFilter extends AbstractGatewayFilterFactory -{ - public CacheRequestFilter() - { +public class CacheRequestFilter extends AbstractGatewayFilterFactory { + public CacheRequestFilter() { super(Config.class); } @Override - public String name() - { + public String name() { return "CacheRequestFilter"; } @Override - public GatewayFilter apply(Config config) - { + public GatewayFilter apply(Config config) { CacheRequestGatewayFilter cacheRequestGatewayFilter = new CacheRequestGatewayFilter(); Integer order = config.getOrder(); - if (order == null) - { + if (order == null) { return cacheRequestGatewayFilter; } return new OrderedGatewayFilter(cacheRequestGatewayFilter, order); } - public static class CacheRequestGatewayFilter implements GatewayFilter - { + public static class CacheRequestGatewayFilter implements GatewayFilter { @Override - public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) - { + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { // GET DELETE 不过滤 HttpMethod method = exchange.getRequest().getMethod(); - if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) - { + if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) { return chain.filter(exchange); } return ServerWebExchangeUtils.cacheRequestBodyAndRequest(exchange, (serverHttpRequest) -> { - if (serverHttpRequest == exchange.getRequest()) - { + if (serverHttpRequest == exchange.getRequest()) { return chain.filter(exchange); } return chain.filter(exchange.mutate().request(serverHttpRequest).build()); @@ -65,22 +57,18 @@ public class CacheRequestFilter extends AbstractGatewayFilterFactory shortcutFieldOrder() - { + public List shortcutFieldOrder() { return Collections.singletonList("order"); } - static class Config - { + static class Config { private Integer order; - public Integer getOrder() - { + public Integer getOrder() { return order; } - public void setOrder(Integer order) - { + public void setOrder(Integer order) { this.order = order; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/filter/ValidateCodeFilter.java b/muyu-gateway/src/main/java/com/muyu/gateway/filter/ValidateCodeFilter.java index 07c86fe..cde01e6 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/filter/ValidateCodeFilter.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/filter/ValidateCodeFilter.java @@ -3,6 +3,7 @@ package com.muyu.gateway.filter; import java.nio.CharBuffer; import java.nio.charset.StandardCharsets; import java.util.concurrent.atomic.AtomicReference; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; @@ -24,9 +25,8 @@ import reactor.core.publisher.Flux; * @author muyu */ @Component -public class ValidateCodeFilter extends AbstractGatewayFilterFactory -{ - private final static String[] VALIDATE_URL = new String[] { "/auth/login", "/auth/register" }; +public class ValidateCodeFilter extends AbstractGatewayFilterFactory { + private final static String[] VALIDATE_URL = new String[]{"/auth/login", "/auth/register"}; @Autowired private ValidateCodeService validateCodeService; @@ -39,33 +39,27 @@ public class ValidateCodeFilter extends AbstractGatewayFilterFactory private static final String UUID = "uuid"; @Override - public GatewayFilter apply(Object config) - { + public GatewayFilter apply(Object config) { return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); // 非登录/注册请求或验证码关闭,不处理 - if (!StringUtils.equalsAnyIgnoreCase(request.getURI().getPath(), VALIDATE_URL) || !captchaProperties.getEnabled()) - { + if (!StringUtils.equalsAnyIgnoreCase(request.getURI().getPath(), VALIDATE_URL) || !captchaProperties.getEnabled()) { return chain.filter(exchange); } - try - { + try { String rspStr = resolveBodyFromRequest(request); JSONObject obj = JSON.parseObject(rspStr); validateCodeService.checkCaptcha(obj.getString(CODE), obj.getString(UUID)); - } - catch (Exception e) - { + } catch (Exception e) { return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage()); } return chain.filter(exchange); }; } - private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) - { + private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) { // 获取请求体 Flux body = serverHttpRequest.getBody(); AtomicReference bodyRef = new AtomicReference<>(); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/filter/XssFilter.java b/muyu-gateway/src/main/java/com/muyu/gateway/filter/XssFilter.java index 49a6584..986cb24 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/filter/XssFilter.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/filter/XssFilter.java @@ -1,6 +1,7 @@ package com.muyu.gateway.filter; import java.nio.charset.StandardCharsets; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.gateway.filter.GatewayFilterChain; @@ -32,36 +33,30 @@ import reactor.core.publisher.Mono; */ @Component @ConditionalOnProperty(value = "security.xss.enabled", havingValue = "true") -public class XssFilter implements GlobalFilter, Ordered -{ +public class XssFilter implements GlobalFilter, Ordered { // 跨站脚本的 xss 配置,nacos自行添加 @Autowired private XssProperties xss; @Override - public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) - { + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); // xss开关未开启 或 通过nacos关闭,不过滤 - if (!xss.getEnabled()) - { + if (!xss.getEnabled()) { return chain.filter(exchange); } // GET DELETE 不过滤 HttpMethod method = request.getMethod(); - if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) - { + if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) { return chain.filter(exchange); } // 非json类型,不过滤 - if (!isJsonRequest(exchange)) - { + if (!isJsonRequest(exchange)) { return chain.filter(exchange); } // excludeUrls 不过滤 String url = request.getURI().getPath(); - if (StringUtils.matches(url, xss.getExcludeUrls())) - { + if (StringUtils.matches(url, xss.getExcludeUrls())) { return chain.filter(exchange); } ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); @@ -69,13 +64,10 @@ public class XssFilter implements GlobalFilter, Ordered } - private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange) - { - ServerHttpRequestDecorator serverHttpRequestDecorator = new ServerHttpRequestDecorator(exchange.getRequest()) - { + private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange) { + ServerHttpRequestDecorator serverHttpRequestDecorator = new ServerHttpRequestDecorator(exchange.getRequest()) { @Override - public Flux getBody() - { + public Flux getBody() { Flux body = super.getBody(); return body.buffer().map(dataBuffers -> { DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory(); @@ -96,8 +88,7 @@ public class XssFilter implements GlobalFilter, Ordered } @Override - public HttpHeaders getHeaders() - { + public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.putAll(super.getHeaders()); // 由于修改了请求体的body,导致content-length长度不确定,因此需要删除原先的content-length @@ -115,15 +106,13 @@ public class XssFilter implements GlobalFilter, Ordered * * @param exchange HTTP请求 */ - public boolean isJsonRequest(ServerWebExchange exchange) - { + 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() - { + public int getOrder() { return -100; } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/handler/GatewayExceptionHandler.java b/muyu-gateway/src/main/java/com/muyu/gateway/handler/GatewayExceptionHandler.java index 1bfecd7..ac79233 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/handler/GatewayExceptionHandler.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/handler/GatewayExceptionHandler.java @@ -19,33 +19,25 @@ import reactor.core.publisher.Mono; */ @Order(-1) @Configuration -public class GatewayExceptionHandler implements ErrorWebExceptionHandler -{ +public class GatewayExceptionHandler implements ErrorWebExceptionHandler { private static final Logger log = LoggerFactory.getLogger(GatewayExceptionHandler.class); @Override - public Mono handle(ServerWebExchange exchange, Throwable ex) - { + public Mono handle(ServerWebExchange exchange, Throwable ex) { ServerHttpResponse response = exchange.getResponse(); - if (exchange.getResponse().isCommitted()) - { + if (exchange.getResponse().isCommitted()) { return Mono.error(ex); } String msg; - if (ex instanceof NotFoundException) - { + if (ex instanceof NotFoundException) { msg = "服务未找到"; - } - else if (ex instanceof ResponseStatusException) - { + } else if (ex instanceof ResponseStatusException) { ResponseStatusException responseStatusException = (ResponseStatusException) ex; msg = responseStatusException.getMessage(); - } - else - { + } else { msg = "内部服务器错误"; } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/handler/SentinelFallbackHandler.java b/muyu-gateway/src/main/java/com/muyu/gateway/handler/SentinelFallbackHandler.java index a80624f..a09d7b8 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/handler/SentinelFallbackHandler.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/handler/SentinelFallbackHandler.java @@ -13,29 +13,23 @@ import reactor.core.publisher.Mono; * * @author muyu */ -public class SentinelFallbackHandler implements WebExceptionHandler -{ - private Mono writeResponse(ServerResponse response, ServerWebExchange exchange) - { +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()) - { + public Mono handle(ServerWebExchange exchange, Throwable ex) { + if (exchange.getResponse().isCommitted()) { return Mono.error(ex); } - if (!BlockException.isBlockException(ex)) - { + if (!BlockException.isBlockException(ex)) { return Mono.error(ex); } return handleBlockedRequest(exchange, ex).flatMap(response -> writeResponse(response, exchange)); } - private Mono handleBlockedRequest(ServerWebExchange exchange, Throwable throwable) - { + private Mono handleBlockedRequest(ServerWebExchange exchange, Throwable throwable) { return GatewayCallbackManager.getBlockHandler().handleRequest(exchange, throwable); } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/handler/SwaggerHandler.java b/muyu-gateway/src/main/java/com/muyu/gateway/handler/SwaggerHandler.java index 38241bb..ca81918 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/handler/SwaggerHandler.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/handler/SwaggerHandler.java @@ -1,6 +1,7 @@ package com.muyu.gateway.handler; import java.util.Optional; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -16,8 +17,7 @@ import springfox.documentation.swagger.web.UiConfigurationBuilder; @RestController @RequestMapping("/swagger-resources") -public class SwaggerHandler -{ +public class SwaggerHandler { @Autowired(required = false) private SecurityConfiguration securityConfiguration; @@ -27,30 +27,26 @@ public class SwaggerHandler private final SwaggerResourcesProvider swaggerResources; @Autowired - public SwaggerHandler(SwaggerResourcesProvider swaggerResources) - { + public SwaggerHandler(SwaggerResourcesProvider swaggerResources) { this.swaggerResources = swaggerResources; } @GetMapping("/configuration/security") - public Mono> securityConfiguration() - { + public Mono> securityConfiguration() { return Mono.just(new ResponseEntity<>( Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK)); } @GetMapping("/configuration/ui") - public Mono> uiConfiguration() - { + public Mono> uiConfiguration() { return Mono.just(new ResponseEntity<>( Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK)); } @SuppressWarnings("rawtypes") @GetMapping("") - public Mono swaggerResources() - { + public Mono swaggerResources() { return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK))); } } diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/handler/ValidateCodeHandler.java b/muyu-gateway/src/main/java/com/muyu/gateway/handler/ValidateCodeHandler.java index 4672b95..95b6c9e 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/handler/ValidateCodeHandler.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/handler/ValidateCodeHandler.java @@ -1,6 +1,7 @@ package com.muyu.gateway.handler; import java.io.IOException; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; @@ -19,21 +20,16 @@ import reactor.core.publisher.Mono; * @author muyu */ @Component -public class ValidateCodeHandler implements HandlerFunction -{ +public class ValidateCodeHandler implements HandlerFunction { @Autowired private ValidateCodeService validateCodeService; @Override - public Mono handle(ServerRequest serverRequest) - { + public Mono handle(ServerRequest serverRequest) { AjaxResult ajax; - try - { + try { ajax = validateCodeService.createCaptcha(); - } - catch (CaptchaException | IOException e) - { + } catch (CaptchaException | IOException e) { return Mono.error(e); } return ServerResponse.status(HttpStatus.OK).body(BodyInserters.fromValue(ajax)); diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/service/ValidateCodeService.java b/muyu-gateway/src/main/java/com/muyu/gateway/service/ValidateCodeService.java index aba6458..3566522 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/service/ValidateCodeService.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/service/ValidateCodeService.java @@ -1,6 +1,7 @@ package com.muyu.gateway.service; import java.io.IOException; + import com.muyu.common.core.exception.CaptchaException; import com.muyu.common.core.web.domain.AjaxResult; @@ -9,8 +10,7 @@ import com.muyu.common.core.web.domain.AjaxResult; * * @author muyu */ -public interface ValidateCodeService -{ +public interface ValidateCodeService { /** * 生成验证码 */ diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/service/impl/ValidateCodeServiceImpl.java b/muyu-gateway/src/main/java/com/muyu/gateway/service/impl/ValidateCodeServiceImpl.java index f89ca1c..70229af 100644 --- a/muyu-gateway/src/main/java/com/muyu/gateway/service/impl/ValidateCodeServiceImpl.java +++ b/muyu-gateway/src/main/java/com/muyu/gateway/service/impl/ValidateCodeServiceImpl.java @@ -5,6 +5,7 @@ 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,8 +27,7 @@ import com.muyu.gateway.service.ValidateCodeService; * @author muyu */ @Service -public class ValidateCodeServiceImpl implements ValidateCodeService -{ +public class ValidateCodeServiceImpl implements ValidateCodeService { @Resource(name = "captchaProducer") private Producer captchaProducer; @@ -44,13 +44,11 @@ public class ValidateCodeServiceImpl implements ValidateCodeService * 生成验证码 */ @Override - public AjaxResult createCaptcha() throws IOException, CaptchaException - { + public AjaxResult createCaptcha() throws IOException, CaptchaException { AjaxResult ajax = AjaxResult.success(); boolean captchaEnabled = captchaProperties.getEnabled(); ajax.put("captchaEnabled", captchaEnabled); - if (!captchaEnabled) - { + if (!captchaEnabled) { return ajax; } @@ -63,15 +61,12 @@ public class ValidateCodeServiceImpl implements ValidateCodeService String captchaType = captchaProperties.getType(); // 生成验证码 - if ("math".equals(captchaType)) - { + 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)) - { + } else if ("char".equals(captchaType)) { capStr = code = captchaProducer.createText(); image = captchaProducer.createImage(capStr); } @@ -79,12 +74,9 @@ public class ValidateCodeServiceImpl implements ValidateCodeService redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); - try - { + try { ImageIO.write(image, "jpg", os); - } - catch (IOException e) - { + } catch (IOException e) { return AjaxResult.error(e.getMessage()); } @@ -97,22 +89,18 @@ public class ValidateCodeServiceImpl implements ValidateCodeService * 校验验证码 */ @Override - public void checkCaptcha(String code, String uuid) throws CaptchaException - { - if (StringUtils.isEmpty(code)) - { + public void checkCaptcha(String code, String uuid) throws CaptchaException { + if (StringUtils.isEmpty(code)) { throw new CaptchaException("验证码不能为空"); } - if (StringUtils.isEmpty(uuid)) - { + if (StringUtils.isEmpty(uuid)) { throw new CaptchaException("验证码已失效"); } String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; String captcha = redisService.getCacheObject(verifyKey); redisService.deleteObject(verifyKey); - if (!code.equalsIgnoreCase(captcha)) - { + if (!code.equalsIgnoreCase(captcha)) { throw new CaptchaException("验证码错误"); } } diff --git a/muyu-gateway/src/main/resources/logback.xml b/muyu-gateway/src/main/resources/logback.xml index 04a09f9..9084cd2 100644 --- a/muyu-gateway/src/main/resources/logback.xml +++ b/muyu-gateway/src/main/resources/logback.xml @@ -1,31 +1,31 @@ - - - + + + - - - ${log.pattern} - - + + + ${log.pattern} + + - - ${log.path}/info.log + + ${log.path}/info.log - + - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + INFO @@ -33,16 +33,16 @@ DENY - + - ${log.path}/error.log + ${log.path}/error.log ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 + + 60 ${log.pattern} @@ -50,25 +50,25 @@ ERROR - + ACCEPT - + DENY - - - + + + - - - - - - - + + + + + + + diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/AlarmLogs.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/AlarmLogs.java index d81747b..7594446 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/AlarmLogs.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/AlarmLogs.java @@ -16,6 +16,7 @@ import java.util.*; /** * 报警记录对象 + * * @Author LiYonJie * @Date 2024/4/4 */ @@ -117,5 +118,5 @@ public class AlarmLogs implements Serializable { .readFlag(alarmLogsUpdReq.getReadFlag()) .remark(alarmLogsUpdReq.getRemark()) .build(); - } + } } diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultCodeInfo.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultCodeInfo.java index 5760294..c1cb1e4 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultCodeInfo.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultCodeInfo.java @@ -27,44 +27,64 @@ import java.util.*; public class FaultCodeInfo implements Serializable { private static final long serialVersionUID = 1L; - /** 故障码主键 */ + /** + * 故障码主键 + */ @TableId(type = IdType.AUTO) @ApiModelProperty("故障码主键") private Long faultId; - /** 故障名称 */ + /** + * 故障名称 + */ @ApiModelProperty("故障名称") private String faultName; - /** 故障码 */ + /** + * 故障码 + */ @ApiModelProperty("故障码") private String faultCode; - /** 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 */ + /** + * 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 + */ @ApiModelProperty("故障类型") private Integer faultType; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ @ApiModelProperty("故障等级") private Integer faultLevel; - /** 是否产生报警(Y正常 N报警) */ + /** + * 是否产生报警(Y正常 N报警) + */ @ApiModelProperty("是否产生报警") private String alarmFlag; - /** 故障描述 */ + /** + * 故障描述 + */ @ApiModelProperty("故障描述") private String faultDesc; - /** 故障位 */ + /** + * 故障位 + */ @ApiModelProperty("故障位") private Integer faultLocation; - /** 故障码状态(0正常 1停用) */ + /** + * 故障码状态(0正常 1停用) + */ @ApiModelProperty("故障码状态") private String status; - /** 删除标志(0存在 2删除) */ + /** + * 删除标志(0存在 2删除) + */ @ApiModelProperty("删除标志") private String delFlag; /** diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultLogs.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultLogs.java index 7f7614f..72a3d33 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultLogs.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/FaultLogs.java @@ -13,6 +13,7 @@ import java.util.*; /** * 故障日志对象 + * * @Author LiYonJie * @Date 2024/3/30 */ @@ -25,12 +26,16 @@ import java.util.*; public class FaultLogs implements Serializable { private static final long serialVersionUID = 1L; - /** 故障日志主键*/ + /** + * 故障日志主键 + */ @TableId(type = IdType.AUTO) @ApiModelProperty("故障日志主键") private Long logId; - /** 车辆VIN*/ + /** + * 车辆VIN + */ @ApiModelProperty("车辆VIN") private String carVin; @@ -40,35 +45,47 @@ public class FaultLogs implements Serializable { @ApiModelProperty("故障码") private String faultCode; - /** 是否产生报警:Y正常 N报警 */ + /** + * 是否产生报警:Y正常 N报警 + */ @ApiModelProperty("是否产生报警") private String alarmFlag; - /** 报警开始时间*/ + /** + * 报警开始时间 + */ @ApiModelProperty("报警开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startAlarmTime; - /** 报警结束时间*/ + /** + * 报警结束时间 + */ @ApiModelProperty("报警结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endAlarmTime; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ @ApiModelProperty("故障等级") private Integer faultLevel; - /** 处理状态(0解决 1处理中 2忽略)*/ + /** + * 处理状态(0解决 1处理中 2忽略) + */ @ApiModelProperty("处理状态") private String disposeStatus; - /** 备注*/ + /** + * 备注 + */ @ApiModelProperty("备注") private String remark; - public static FaultLogs addFaultLogsReq(FaultLogsAddReq faultLogsAddReq){ + public static FaultLogs addFaultLogsReq(FaultLogsAddReq faultLogsAddReq) { return FaultLogs.builder() .carVin(faultLogsAddReq.getCarVin()) .faultCode(faultLogsAddReq.getFaultCode()) @@ -80,7 +97,7 @@ public class FaultLogs implements Serializable { .build(); } - public static FaultLogs updFaultLogsReq(FaultLogsUpdReq faultLogsUpdReq){ + public static FaultLogs updFaultLogsReq(FaultLogsUpdReq faultLogsUpdReq) { return FaultLogs.builder() .logId(faultLogsUpdReq.getLogId()) .carVin(faultLogsUpdReq.getCarVin()) diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Fence.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Fence.java index dc8b7b2..429c121 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Fence.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Fence.java @@ -24,7 +24,7 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @TableName("fence") -public class Fence{ +public class Fence { /** * 围栏ID diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Records.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Records.java index 8b670a1..f892146 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Records.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Records.java @@ -24,7 +24,7 @@ import java.util.Date; @NoArgsConstructor public class Records { - @TableId(value = "records_id",type = IdType.AUTO) + @TableId(value = "records_id", type = IdType.AUTO) private Integer recordsId; private String vin; diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Vehicle.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Vehicle.java index fa40b49..f3fd866 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Vehicle.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/Vehicle.java @@ -16,7 +16,7 @@ import lombok.Data; @TableName("vehicle_data") public class Vehicle { - @TableId(value = "id",type = IdType.AUTO) + @TableId(value = "id", type = IdType.AUTO) private Integer id; private String vin; diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsReq.java index 2054262..7351ddf 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsReq.java @@ -10,6 +10,7 @@ import java.util.*; /** * 报警记录查询对象 + * * @Author LiYonJie * @Date 2024/4/4 */ diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsUpdReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsUpdReq.java index 43bf592..be993ef 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsUpdReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/AlarmLogsUpdReq.java @@ -11,6 +11,7 @@ import java.util.*; /** * 报警记录修改对象 + * * @Author LiYonJie * @Date 2024/4/4 */ diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodeReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodeReq.java index 6a5c3c9..336c79d 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodeReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodeReq.java @@ -7,6 +7,7 @@ import java.io.*; /** * 查询故障码对象 + * * @Author LiYonJie * @Date 2024/3/28 */ @@ -15,12 +16,18 @@ import java.io.*; @NoArgsConstructor @AllArgsConstructor public class FaultCodeReq implements Serializable { - /** 故障名称 */ + /** + * 故障名称 + */ private String faultName; - /** 故障码 */ + /** + * 故障码 + */ private String faultCode; - /** 是否产生报警(Y正常 N报警) */ + /** + * 是否产生报警(Y正常 N报警) + */ private String alarmFlag; } diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesAddReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesAddReq.java index 0ba04cf..0f6663e 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesAddReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesAddReq.java @@ -12,6 +12,7 @@ import java.util.*; /** * 新增故障码对象 + * * @author LiYonJie * @date 2024/3/28 */ @@ -20,37 +21,55 @@ import java.util.*; @NoArgsConstructor @AllArgsConstructor public class FaultCodesAddReq implements Serializable { - /** 故障名称 */ + /** + * 故障名称 + */ @NotBlank(message = "故障名称不能为空") private String faultName; - /** 故障码 */ + /** + * 故障码 + */ @NotBlank(message = "故障码不能为空") private String faultCode; - /** 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 */ + /** + * 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 + */ @NotNull(message = "故障类型不能为空") private Integer faultType; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ @ApiModelProperty("故障等级") private Integer faultLevel; - /** 是否产生报警(Y正常 N报警) */ + /** + * 是否产生报警(Y正常 N报警) + */ private String alarmFlag; - /** 故障描述 */ + /** + * 故障描述 + */ @NotBlank(message = "故障描述不能为空") private String faultDesc; - /** 故障位 */ + /** + * 故障位 + */ @NotNull(message = "故障位不能为空") private Integer faultLocation; - /** 故障码状态(0正常 1停用) */ + /** + * 故障码状态(0正常 1停用) + */ private String status; - /** 删除标志(0存在 2删除) */ + /** + * 删除标志(0存在 2删除) + */ private String delFlag; /** * 创建者 diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesUpdReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesUpdReq.java index 9663452..8bc69a3 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesUpdReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultCodesUpdReq.java @@ -43,7 +43,9 @@ public class FaultCodesUpdReq implements Serializable { @NotNull(message = "故障类型不能为空") private Integer faultType; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ @ApiModelProperty("故障等级") private Integer faultLevel; diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsAddReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsAddReq.java index 5fe930c..01163a2 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsAddReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsAddReq.java @@ -49,10 +49,14 @@ public class FaultLogsAddReq implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endAlarmTime; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ private Integer faultLevel; - /** 处理状态(0解决 1处理中 2忽略)*/ + /** + * 处理状态(0解决 1处理中 2忽略) + */ private String disposeStatus; /** diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsReq.java index a511871..7948f93 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsReq.java @@ -28,7 +28,9 @@ public class FaultLogsReq implements Serializable { */ private String faultCode; - /**故障名称*/ + /** + * 故障名称 + */ private String faultName; /** @@ -45,6 +47,8 @@ public class FaultLogsReq implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private Date endAlarmTime; - /** 处理状态(0解决 1处理中 2忽略)*/ + /** + * 处理状态(0解决 1处理中 2忽略) + */ private String disposeStatus; } diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsUpdReq.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsUpdReq.java index 2c37547..0142bd2 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsUpdReq.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/req/FaultLogsUpdReq.java @@ -52,10 +52,14 @@ public class FaultLogsUpdReq implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private Date endAlarmTime; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ private Integer faultLevel; - /** 处理状态(0解决 1处理中 2忽略)*/ + /** + * 处理状态(0解决 1处理中 2忽略) + */ private String disposeStatus; /** diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceListRequest.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceListRequest.java index eedf426..4467f03 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceListRequest.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceListRequest.java @@ -20,7 +20,7 @@ import javax.validation.constraints.Pattern; @Data @AllArgsConstructor @NoArgsConstructor -public class FenceListRequest{ +public class FenceListRequest { /** * 围栏名称 diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceUpdateRequest.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceUpdateRequest.java index 1177a85..2507ebf 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceUpdateRequest.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/request/FenceUpdateRequest.java @@ -17,7 +17,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class FenceUpdateRequest{ +public class FenceUpdateRequest { /** * 围栏ID diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultCodeResponse.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultCodeResponse.java index 1a8cf1f..8bc2b78 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultCodeResponse.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultCodeResponse.java @@ -17,35 +17,55 @@ import java.io.*; @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@EqualsAndHashCode(callSuper=false) +@EqualsAndHashCode(callSuper = false) public class FaultCodeResponse implements Serializable { - /** 故障码主键 */ + /** + * 故障码主键 + */ private Long faultId; - /** 故障名称 */ + /** + * 故障名称 + */ private String faultName; - /** 故障码 */ + /** + * 故障码 + */ private String faultCode; - /** 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 */ + /** + * 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 + */ private Integer faultType; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ private Integer faultLevel; - /** 是否产生报警(0正常 1报警) */ + /** + * 是否产生报警(0正常 1报警) + */ private String alarmFlag; - /** 故障描述 */ + /** + * 故障描述 + */ private String faultDesc; - /** 故障位 */ + /** + * 故障位 + */ private Integer faultLocation; - /** 故障值 */ + /** + * 故障值 + */ private Long faultValue; - /** 故障码状态(0正常 1停用) */ + /** + * 故障码状态(0正常 1停用) + */ private String status; } diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultLogsResponse.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultLogsResponse.java index 7ae940a..c91e38e 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultLogsResponse.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/muyu/business/domain/res/FaultLogsResponse.java @@ -22,7 +22,9 @@ import java.util.*; @AllArgsConstructor @EqualsAndHashCode(callSuper = false) public class FaultLogsResponse implements Serializable { - /** 故障日志主键*/ + /** + * 故障日志主键 + */ private Long logId; /** @@ -30,22 +32,34 @@ public class FaultLogsResponse implements Serializable { */ private String carVin; - /** 故障码 */ + /** + * 故障码 + */ private String faultCode; - /** 故障名称 */ + /** + * 故障名称 + */ private String faultName; - /** 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 */ + /** + * 故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障 + */ private Integer faultType; - /** 故障等级:1-高级故障 2-中级故障 3-低级故障 */ + /** + * 故障等级:1-高级故障 2-中级故障 3-低级故障 + */ private Integer faultLevel; - /** 故障描述 */ + /** + * 故障描述 + */ private String faultDesc; - /** 故障位 */ + /** + * 故障位 + */ private Integer faultLocation; /** @@ -67,9 +81,13 @@ public class FaultLogsResponse implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private Date endAlarmTime; - /** 处理状态(0解决 1处理中 2忽略)*/ + /** + * 处理状态(0解决 1处理中 2忽略) + */ private String disposeStatus; - /** 备注*/ + /** + * 备注 + */ private String remark; } diff --git a/muyu-modules/muyu-business/muyu-business-remote/src/main/java/com/muyu/business/remote/RemoteAlarmLogsService.java b/muyu-modules/muyu-business/muyu-business-remote/src/main/java/com/muyu/business/remote/RemoteAlarmLogsService.java index e94a730..60ef3ba 100644 --- a/muyu-modules/muyu-business/muyu-business-remote/src/main/java/com/muyu/business/remote/RemoteAlarmLogsService.java +++ b/muyu-modules/muyu-business/muyu-business-remote/src/main/java/com/muyu/business/remote/RemoteAlarmLogsService.java @@ -22,11 +22,4 @@ public interface RemoteAlarmLogsService { public Result add(@RequestBody AlarmLogsAddReq alarmLogsAddReq, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; - - - - - - - } diff --git a/muyu-modules/muyu-business/muyu-business-server/pom.xml b/muyu-modules/muyu-business/muyu-business-server/pom.xml index 49bbbb9..ceac1de 100644 --- a/muyu-modules/muyu-business/muyu-business-server/pom.xml +++ b/muyu-modules/muyu-business/muyu-business-server/pom.xml @@ -109,5 +109,4 @@ - diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java index b254002..9d7460a 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java @@ -19,6 +19,7 @@ import java.util.*; /** * 报警日志Controller + * * @Author LiYonJie * @Date 2024/4/4 */ @@ -60,7 +61,7 @@ public class AlarmLogsController extends BaseController { /** * 获取报警日志详细信息 */ - @ApiOperation(value = "报警日志详情",hidden = true) + @ApiOperation(value = "报警日志详情", hidden = true) @RequiresPermissions("business:alarmLogs:query") @GetMapping(value = "/{alarmId}") public Result getInfo(@PathVariable("alarmId") Integer alarmId) { @@ -70,7 +71,7 @@ public class AlarmLogsController extends BaseController { /** * 修改报警日志 */ - @ApiOperation(value = "修改报警日志",hidden = true) + @ApiOperation(value = "修改报警日志", hidden = true) @RequiresPermissions("business:alarmLogs:edit") @Log(title = "报警日志", businessType = BusinessType.UPDATE) @PutMapping @@ -81,15 +82,16 @@ public class AlarmLogsController extends BaseController { /** * 删除报警日志 */ - @ApiOperation(value = "删除报警日志",hidden = true) + @ApiOperation(value = "删除报警日志", hidden = true) @RequiresPermissions("business:alarmLogs:remove") @Log(title = "报警日志", businessType = BusinessType.DELETE) @DeleteMapping("/{alarmIds}") public Result remove(@PathVariable Long[] alarmIds) { return toAjax(alarmLogsService.deleteAlarmLogsByIds(alarmIds)); } + @Scheduled(cron = "0/10 * * * * ?") - public void alarmLogsService(){ + public void alarmLogsService() { alarmLogsService.alarmLogsService(); } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java index 8ba6af3..db37709 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java @@ -59,7 +59,7 @@ public class FaultLogsController extends BaseController { /** * 故障日志详情 */ - @ApiOperation(value = "故障日志详情",hidden = true) + @ApiOperation(value = "故障日志详情", hidden = true) @RequiresPermissions("business:faultLogs:query") @GetMapping("/{logId}") public Result detail(@ApiParam(value = "故障日志主键") @PathVariable("logId") Long logId) { @@ -69,7 +69,7 @@ public class FaultLogsController extends BaseController { /** * 修改故障日志 */ - @ApiOperation(value = "修改故障日志",hidden = true) + @ApiOperation(value = "修改故障日志", hidden = true) @RequiresPermissions("business:faultLogs:edit") @Log(title = "故障日志", businessType = BusinessType.UPDATE) @PutMapping @@ -80,7 +80,7 @@ public class FaultLogsController extends BaseController { /** * 删除故障日志 */ - @ApiOperation(value = "删除故障日志",hidden = true) + @ApiOperation(value = "删除故障日志", hidden = true) @RequiresPermissions("business:faultLogs:remove") @Log(title = "故障日志", businessType = BusinessType.DELETE) @DeleteMapping("/{logIds}") diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FenceInfoController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FenceInfoController.java index 2011298..fda17b2 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FenceInfoController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FenceInfoController.java @@ -25,10 +25,10 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/fence") -public class FenceInfoController extends BaseController -{ +public class FenceInfoController extends BaseController { /** * 电子围栏业务实现层 + * * @author yinyuyang * @date 2024/3/28 16:15 */ @@ -36,90 +36,84 @@ public class FenceInfoController extends BaseController private IFenceInfoService fenceInfoService; /** - * @author yinyuyang - * @date 2024/3/26 22:27 - * @param fenceListRequest - * @return Result + * @param fenceListRequest + * @return Result * 查询电子围栏列表 + * @author yinyuyang + * @date 2024/3/26 22:27 */ @RequiresPermissions("business:fence:list") @GetMapping("/list") - public Result> list(FenceListRequest fenceListRequest) - { + public Result> list(FenceListRequest fenceListRequest) { return fenceInfoService.selectFenceList(fenceListRequest); } /** - * @author yingyuyang - * @date 2024/3/28 21:37 * @param fenceAddRequest * @return Result * 新增电子围栏 + * @author yingyuyang + * @date 2024/3/28 21:37 */ @RequiresPermissions("business:fence:add") @Log(title = "电子围栏", businessType = BusinessType.INSERT) @PostMapping("/insert") - public Result add(@RequestBody FenceAddRequest fenceAddRequest) - { + public Result add(@RequestBody FenceAddRequest fenceAddRequest) { return toAjax(fenceInfoService.insertFence(Fence.addReqBuild(fenceAddRequest))); } /** - * @author yingyuyang - * @date 2024/3/28 21:39 * @param fenceUpdateRequest * @return Result * 修改电子围栏 + * @author yingyuyang + * @date 2024/3/28 21:39 */ @RequiresPermissions("business:fence:edit") @Log(title = "电子围栏", businessType = BusinessType.UPDATE) @PostMapping("/update") - public Result edit(@RequestBody FenceUpdateRequest fenceUpdateRequest) - { + public Result edit(@RequestBody FenceUpdateRequest fenceUpdateRequest) { return toAjax(fenceInfoService.updateFence(Fence.updateReqBuild(fenceUpdateRequest))); } /** - * @author YinYuYang - * @date 2024/3/30 11:35 * @param fenceId * @return Result * 删除电子围栏 + * @author YinYuYang + * @date 2024/3/30 11:35 */ @RequiresPermissions("business:fence:remove") @Log(title = "电子围栏", businessType = BusinessType.DELETE) - @DeleteMapping("/delete/{fenceId}") - public Result remove(@PathVariable("fenceId") Integer fenceId) - { + @DeleteMapping("/delete/{fenceId}") + public Result remove(@PathVariable("fenceId") Integer fenceId) { return toAjax(fenceInfoService.deleteFenceByFenceId(fenceId)); } /** - * @author YinYuYang - * @date 2024/3/31 9:12 * @param fenceId * @return Fence * 获取电子围栏详细信息 + * @author YinYuYang + * @date 2024/3/31 9:12 */ @RequiresPermissions("business:fence:query") @GetMapping("/findById/{fenceId}") - public Fence getInfo(@PathVariable("fenceId") Integer fenceId) - { + public Fence getInfo(@PathVariable("fenceId") Integer fenceId) { return fenceInfoService.selectFenceByFenceId(fenceId); } /** - * @author yingyuyang - * @date 2024/3/28 21:39 * @param mapRequest * @return Result * 修改电子围栏 + * @author yingyuyang + * @date 2024/3/28 21:39 */ @RequiresPermissions("business:fence:edit") @Log(title = "电子围栏", businessType = BusinessType.UPDATE) @PostMapping("/savePolygon") - public Result savePolygon(@RequestBody MapRequest mapRequest) - { + public Result savePolygon(@RequestBody MapRequest mapRequest) { return toAjax(fenceInfoService.savePolygon(mapRequest)); } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/RecordsController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/RecordsController.java index 3a4fe7e..64ad560 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/RecordsController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/RecordsController.java @@ -21,8 +21,7 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/records") -public class RecordsController extends BaseController -{ +public class RecordsController extends BaseController { @Autowired private IRecordsService recordsService; @@ -31,8 +30,7 @@ public class RecordsController extends BaseController */ @RequiresPermissions("business:records:list") @GetMapping("/list") - public Result> list(RecordsListRequest recordsListRequest) - { + public Result> list(RecordsListRequest recordsListRequest) { return recordsService.selectList(recordsListRequest); } @@ -41,15 +39,14 @@ public class RecordsController extends BaseController */ @RequiresPermissions("business:records:remove") @Log(title = "车辆历史轨迹", businessType = BusinessType.DELETE) - @PostMapping("/delete/{recordsId}") - public Result remove(@PathVariable Integer recordsId) - { + @PostMapping("/delete/{recordsId}") + public Result remove(@PathVariable Integer recordsId) { return toAjax(recordsService.deleteRecords(recordsId)); } @PostMapping("/insert/{vin}") @Log(title = "车辆历史轨迹", businessType = BusinessType.INSERT) - public Result insert(@PathVariable("vin") String vin){ + public Result insert(@PathVariable("vin") String vin) { return Result.success(recordsService.insert(vin)); } @@ -60,5 +57,4 @@ public class RecordsController extends BaseController } - } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/VehicleDataController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/VehicleDataController.java index 1350664..8ddbe67 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/VehicleDataController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/VehicleDataController.java @@ -22,16 +22,14 @@ import java.util.List; */ @RestController @RequestMapping("/vehicleData") -public class VehicleDataController extends BaseController -{ +public class VehicleDataController extends BaseController { @Autowired private VehicleDataService vehicleDataService; @RequiresPermissions("business:records:query") @GetMapping("/findVDByRecordsId/{recordsId}") - public Result> findVDByRecordsId(@PathVariable Integer recordsId) - { + public Result> findVDByRecordsId(@PathVariable Integer recordsId) { vehicleDataService.findVDByRecordsId(recordsId); return Result.success(); } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/AlarmLogsMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/AlarmLogsMapper.java index 1d750e5..6e65c89 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/AlarmLogsMapper.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/AlarmLogsMapper.java @@ -26,5 +26,4 @@ public interface AlarmLogsMapper extends BaseMapper { void alarmLogsService(Fence fence); - } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FenceInfoMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FenceInfoMapper.java index 406236a..676ca08 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FenceInfoMapper.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FenceInfoMapper.java @@ -9,7 +9,6 @@ import com.muyu.business.domain.Fence; * @author YinYuYang * @date 2024-03-29 */ -public interface FenceInfoMapper extends BaseMapper -{ +public interface FenceInfoMapper extends BaseMapper { } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/RecordsMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/RecordsMapper.java index ed1db45..7939849 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/RecordsMapper.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/RecordsMapper.java @@ -9,7 +9,6 @@ import com.muyu.business.domain.Records; * @author yinyuyang * @date 2024-04-05 */ -public interface RecordsMapper extends BaseMapper -{ +public interface RecordsMapper extends BaseMapper { } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/AlarmLogsService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/AlarmLogsService.java index 84ea209..90325a3 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/AlarmLogsService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/AlarmLogsService.java @@ -48,6 +48,7 @@ public interface AlarmLogsService extends IService { /** * 删除报警日志 + * * @param alarmId * @return */ diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultLogsService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultLogsService.java index 2c7c9e5..7ee05c6 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultLogsService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultLogsService.java @@ -65,5 +65,4 @@ public interface FaultLogsService extends IService { void faultLogsService(); - } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IFenceInfoService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IFenceInfoService.java index 9c81dd1..0572789 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IFenceInfoService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IFenceInfoService.java @@ -14,34 +14,38 @@ import com.muyu.business.domain.Fence; * @author bwie * @date 2024-03-29 */ -public interface IFenceInfoService extends IService -{ +public interface IFenceInfoService extends IService { /** * 查询电子围栏列表 + * * @param fenceListRequest 电子围栏 */ Result> selectFenceList(FenceListRequest fenceListRequest); /** * 新增电子围栏 + * * @param fence 电子围栏 */ int insertFence(Fence fence); /** * 修改电子围栏 + * * @param fence 电子围栏 */ int updateFence(Fence fence); /** * 删除电子围栏信息 + * * @param fenceId 电子围栏主键 */ int deleteFenceByFenceId(Integer fenceId); /** * 获取电子围栏详情信息 + * * @param fenceId 电子围栏主键 */ Fence selectFenceByFenceId(Integer fenceId); diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IRecordsService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IRecordsService.java index aaf9928..152127a 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IRecordsService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/IRecordsService.java @@ -13,19 +13,18 @@ import com.muyu.common.core.domain.Result; * @author yinyuyang * @date 2024-04-05 */ -public interface IRecordsService extends IService -{ +public interface IRecordsService extends IService { /** + * @param recordsListRequest * @author YinYuYang * @date 2024/4/5 11:00 - * @param recordsListRequest */ Result> selectList(RecordsListRequest recordsListRequest); /** + * @param recordsId * @author YinYuYang * @date 2024/4/5 11:09 - * @param recordsId */ int deleteRecords(Integer recordsId); diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/VehicleDataService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/VehicleDataService.java index bbbd124..2197322 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/VehicleDataService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/VehicleDataService.java @@ -10,8 +10,7 @@ import java.util.List; * @author: YinYuYang * @date: 2024/4/5 **/ -public interface VehicleDataService extends IService -{ +public interface VehicleDataService extends IService { void findVDByRecordsId(Integer recordsId); diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java index c31e61d..1ef4987 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java @@ -59,7 +59,6 @@ public class AlarmLogsServiceImpl extends ServiceImpl selectAlarmLogsList(AlarmLogsReq alarmLogsReq) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -68,15 +67,15 @@ public class AlarmLogsServiceImpl extends ServiceImpl { + rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, alarmLogs, message -> { message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); return message; }); diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java index be42cdb..dbb8210 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java @@ -39,9 +39,9 @@ public class FaultCodesServiceImpl extends ServiceImpl selectFaultCodesList(FaultCodeReq faultCodeReq) { LambdaQueryWrapper wrapper = buildCommonQueryWrapper(faultCodeReq); - wrapper.like(StringUtils.isNotEmpty(faultCodeReq.getFaultCode()),FaultCodeInfo::getFaultCode, faultCodeReq.getFaultCode()); + wrapper.like(StringUtils.isNotEmpty(faultCodeReq.getFaultCode()), FaultCodeInfo::getFaultCode, faultCodeReq.getFaultCode()); wrapper.like(StringUtils.isNotEmpty(faultCodeReq.getFaultName()), FaultCodeInfo::getFaultName, faultCodeReq.getFaultName()); - wrapper.eq(StringUtils.isNotEmpty(faultCodeReq.getAlarmFlag()),FaultCodeInfo::getAlarmFlag, faultCodeReq.getAlarmFlag()); + wrapper.eq(StringUtils.isNotEmpty(faultCodeReq.getAlarmFlag()), FaultCodeInfo::getAlarmFlag, faultCodeReq.getAlarmFlag()); return faultCodesMapper.selectList(wrapper); } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultLogsServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultLogsServiceImpl.java index 0e15600..4a89314 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultLogsServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultLogsServiceImpl.java @@ -38,8 +38,6 @@ public class FaultLogsServiceImpl extends ServiceImpl selectFaultLogsList(FaultLogsReq faultLogsReq) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -47,7 +45,7 @@ public class FaultLogsServiceImpl extends ServiceImpl currentedFaltCodesList = faultCodesService.currentFaltCodesList(faultCodeReq); // 遍历实时故障位 for (FaultCodeInfo info : currentedFaltCodesList) { - size ++; + size++; } // 修改故障位 FaultCodesUpdReq codeInfo = new FaultCodesUpdReq(); @@ -103,7 +101,7 @@ public class FaultLogsServiceImpl extends ServiceImpl - implements IFenceInfoService -{ + implements IFenceInfoService { @Autowired private FenceInfoMapper fenceInfoMapper; @Autowired private RedisService redisService; - /** - * @author YinYuYang - * @date 2024/3/30 10:06 * @param fenceListRequest * @return PageResult + * @author YinYuYang + * @date 2024/3/30 10:06 */ @Override public Result> selectFenceList(FenceListRequest fenceListRequest) { - PageHelper.startPage(fenceListRequest.getPageNum(),fenceListRequest.getPageSize()); + PageHelper.startPage(fenceListRequest.getPageNum(), fenceListRequest.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -58,26 +56,26 @@ public class FenceInfoServiceImpl extends ServiceImpl fenceListRequest.getFenceName()); - queryWrapper.eq(StringUtils.isNotNull(fenceListRequest.getFenceType()),Fence::getFenceType, + queryWrapper.eq(StringUtils.isNotNull(fenceListRequest.getFenceType()), Fence::getFenceType, fenceListRequest.getFenceType()); - queryWrapper.eq(StringUtils.isNotNull(fenceListRequest.getFenceState()),Fence::getFenceState, + queryWrapper.eq(StringUtils.isNotNull(fenceListRequest.getFenceState()), Fence::getFenceState, fenceListRequest.getFenceState()); List fenceList = this.list(queryWrapper); PageInfo pageInfo = new PageInfo<>(fenceList); - return PageResult.toResult(pageInfo.getTotal(),fenceList); + return PageResult.toResult(pageInfo.getTotal(), fenceList); } /** - * @author YinYuYang - * @date 2024/3/30 10:09 * @param fence * @return int + * @author YinYuYang + * @date 2024/3/30 10:09 */ @Override public int insertFence(Fence fence) { @@ -88,10 +86,10 @@ public class FenceInfoServiceImpl extends ServiceImpl } /** - * @author YinYuYang - * @date 2024/3/30 10:52 * @param fence * @return int + * @author YinYuYang + * @date 2024/3/30 10:52 */ @Override public int updateFence(Fence fence) { @@ -101,10 +99,10 @@ public class FenceInfoServiceImpl extends ServiceImpl /** - * @author YinYuYang - * @date 2024/3/30 10:52 * @param fenceId * @return int + * @author YinYuYang + * @date 2024/3/30 10:52 */ @Override public int deleteFenceByFenceId(Integer fenceId) { @@ -114,10 +112,10 @@ public class FenceInfoServiceImpl extends ServiceImpl /** - * @author YinYuYang - * @date 2024/3/30 11:43 * @param fenceId * @return String + * @author YinYuYang + * @date 2024/3/30 11:43 */ @Override public Fence selectFenceByFenceId(Integer fenceId) { @@ -150,17 +148,17 @@ public class FenceInfoServiceImpl extends ServiceImpl UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("fence_id",mapRequest.getFenceId()); + updateWrapper.eq("fence_id", mapRequest.getFenceId()); Fence fence = new Fence(); fence.setFenceRadius(result.toString()); HashMap hashMap = new HashMap<>(); - hashMap.put(mapRequest.getFenceId().toString(),fence.getFenceRadius()); - redisService.setCacheMap("fence",hashMap); + hashMap.put(mapRequest.getFenceId().toString(), fence.getFenceRadius()); + redisService.setCacheMap("fence", hashMap); - return fenceInfoMapper.update(fence,updateWrapper); + return fenceInfoMapper.update(fence, updateWrapper); } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java index 679e2b4..dff0cbd 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java @@ -26,47 +26,46 @@ import java.util.List; * @date 2024-04-05 */ @Service -public class RecordsServiceImpl extends ServiceImpl - implements IRecordsService -{ +public class RecordsServiceImpl extends ServiceImpl + implements IRecordsService { @Autowired private RecordsMapper recordsMapper; /** + * @param recordsListRequest + * @return Result> * @author YinYuYang * @date 2024/4/5 11:10 - * @param recordsListRequest - * @return Result> */ @Override public Result> selectList(RecordsListRequest recordsListRequest) { - PageHelper.startPage(recordsListRequest.getPageNum(),recordsListRequest.getPageSize()); + PageHelper.startPage(recordsListRequest.getPageNum(), recordsListRequest.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(recordsListRequest.getVin()),Records::getVin, + queryWrapper.like(StringUtils.isNotEmpty(recordsListRequest.getVin()), Records::getVin, recordsListRequest.getVin()); - queryWrapper.ge(StringUtils.isNotNull(recordsListRequest.getStartTime()),Records::getStartTime, + queryWrapper.ge(StringUtils.isNotNull(recordsListRequest.getStartTime()), Records::getStartTime, recordsListRequest.getStartTime()); - queryWrapper.le(StringUtils.isNotNull(recordsListRequest.getOverTime()),Records::getOverTime, + queryWrapper.le(StringUtils.isNotNull(recordsListRequest.getOverTime()), Records::getOverTime, recordsListRequest.getOverTime()); List list = this.list(queryWrapper); PageInfo pageInfo = new PageInfo<>(list); - return PageResult.toResult(pageInfo.getTotal(),list); + return PageResult.toResult(pageInfo.getTotal(), list); } /** - * @author YinYuYang - * @date 2024/4/5 11:10 * @param recordsId * @return int + * @author YinYuYang + * @date 2024/4/5 11:10 */ @Override public int deleteRecords(Integer recordsId) { @@ -75,7 +74,6 @@ public class RecordsServiceImpl extends ServiceImpl } - @Override public int insert(String vin) { @@ -95,13 +93,13 @@ public class RecordsServiceImpl extends ServiceImpl UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("records_id",recordsId); + updateWrapper.eq("records_id", recordsId); Records records = new Records(); records.setOverTime(new Date()); - return recordsMapper.update(records,updateWrapper); + return recordsMapper.update(records, updateWrapper); } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/VehicleDataServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/VehicleDataServiceImpl.java index 7ff8075..9c5d86a 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/VehicleDataServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/VehicleDataServiceImpl.java @@ -27,8 +27,7 @@ import java.util.List; */ @Service public class VehicleDataServiceImpl extends ServiceImpl - implements VehicleDataService -{ + implements VehicleDataService { @Autowired private VehicleDataMapper vehicleDataMapper; @@ -39,9 +38,9 @@ public class VehicleDataServiceImpl extends ServiceImpl + * 先根据提供的记录ID使用查询包装器构造查询条件,然后从数据库中选出匹配的车辆数据。 + * 接着,清除Redis中现有的车辆数据列表,并逐条将新查询到的数据添加到Redis列表的末尾。 */ @Override public void findVDByRecordsId(Integer recordsId) { @@ -54,11 +53,11 @@ public class VehicleDataServiceImpl extends ServiceImpl vehicleDataList = vehicleDataMapper.selectList(queryWrapper); // 清除Redis中现有的车辆数据列表 - redisService.deleteObject("vehicle:info:"+recordsId); + redisService.deleteObject("vehicle:info:" + recordsId); // 将新查询到的车辆数据逐条添加到Redis列表的末尾 for (Vehicle Vehicle : vehicleDataList) { - redisService.rightPush("vehicle:info:"+recordsId,JSON.toJSONString(Vehicle)); + redisService.rightPush("vehicle:info:" + recordsId, JSON.toJSONString(Vehicle)); } } @@ -74,9 +73,9 @@ public class VehicleDataServiceImpl extends ServiceImpl 0){ + if (count.intValue() > 0) { alarmLogsService.insertAlarmLogs(alarmLogsAddReq); // 消息确认 channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - log.info("消息队列:【{}】,收到报警日志:【{}】,消费成功...",MQQueueConstants.ALARM_QUEUE,alarmLogsAddReq); - }else { - log.error("消息队列:【{}】,收到报警日志:【{}】,消费重复...",MQQueueConstants.ALARM_QUEUE,alarmLogsAddReq); + log.info("消息队列:【{}】,收到报警日志:【{}】,消费成功...", MQQueueConstants.ALARM_QUEUE, alarmLogsAddReq); + } else { + log.error("消息队列:【{}】,收到报警日志:【{}】,消费重复...", MQQueueConstants.ALARM_QUEUE, alarmLogsAddReq); } } catch (IOException e) { e.printStackTrace(); - log.error("消息队列:【{}】,收到报警日志:【{}】,消费异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLogsAddReq,e.getMessage()); + log.error("消息队列:【{}】,收到报警日志:【{}】,消费异常:【{}】", MQQueueConstants.ALARM_QUEUE, alarmLogsAddReq, e.getMessage()); // 消息回退 try { channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); } catch (IOException ex) { - log.error("消息队列:【{}】,收到报警日志:【{}】,消息退回异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLogsAddReq,e.getMessage()); + log.error("消息队列:【{}】,收到报警日志:【{}】,消息退回异常:【{}】", MQQueueConstants.ALARM_QUEUE, alarmLogsAddReq, e.getMessage()); } } } @RabbitListener(queuesToDeclare = {@Queue(value = MQQueueConstants.FAULT_QUEUE, declare = "true")}) public void sendSms(FaultLogs faultLogs, Message message, Channel channel) { - log.info("消息队列:【{}】,收到故障日志:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs); + log.info("消息队列:【{}】,收到故障日志:【{}】", MQQueueConstants.FAULT_QUEUE, faultLogs); try { String messageId = message.getMessageProperties().getMessageId(); Long count = redisTemplate.opsForSet().add(MQQueueConstants.FAULT_QUEUE, messageId); - if (count.intValue() > 0){ + if (count.intValue() > 0) { faultLogsService.insertFaultLogs(faultLogs); // 消息确认 channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - log.info("消息队列:【{}】,收到故障日志:【{}】,消费成功...",MQQueueConstants.FAULT_QUEUE,faultLogs); - }else { - log.error("消息队列:【{}】,收到故障日志:【{}】,消费重复...",MQQueueConstants.FAULT_QUEUE,faultLogs); + log.info("消息队列:【{}】,收到故障日志:【{}】,消费成功...", MQQueueConstants.FAULT_QUEUE, faultLogs); + } else { + log.error("消息队列:【{}】,收到故障日志:【{}】,消费重复...", MQQueueConstants.FAULT_QUEUE, faultLogs); } } catch (IOException e) { e.printStackTrace(); - log.error("消息队列:【{}】,收到故障日志:【{}】,消费异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); + log.error("消息队列:【{}】,收到故障日志:【{}】,消费异常:【{}】", MQQueueConstants.FAULT_QUEUE, faultLogs, e.getMessage()); // 消息回退 try { channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); } catch (IOException ex) { - log.error("消息队列:【{}】,收到故障日志:【{}】,消息退回异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); + log.error("消息队列:【{}】,收到故障日志:【{}】,消息退回异常:【{}】", MQQueueConstants.FAULT_QUEUE, faultLogs, e.getMessage()); } } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/logback.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/logback.xml index a4cd9d5..b80c00f 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/logback.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/logback.xml @@ -1,31 +1,31 @@ - - - + + + - - - ${log.pattern} - - + + + ${log.pattern} + + - - ${log.path}/info.log + + ${log.path}/info.log - + - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + INFO @@ -33,16 +33,16 @@ DENY - + - ${log.path}/error.log + ${log.path}/error.log ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 + + 60 ${log.pattern} @@ -50,25 +50,25 @@ ERROR - + ACCEPT - + DENY - - - + + + - - - - - - - + + + + + + + diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/AlarmLogsMapper.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/AlarmLogsMapper.xml index 2962a53..b288c19 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/AlarmLogsMapper.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/AlarmLogsMapper.xml @@ -5,50 +5,48 @@ - - - - - - - - - - - + + + + + + + + + + + - select - a.alarm_id, - l.log_id, - l.car_vin, - l.fault_code, - c.fault_name, - c.fault_type, - c.fault_desc, - l.alarm_flag, - l.fault_level, - l.start_alarm_time, - l.end_alarm_time, - a.dispose_by, - a.dispose_status, - a.dispose_time, - a.dispose_methods, - a.read_flag, - a.send_count, - a.remark - from - alarm_logs a - left join fault_logs l on a.log_id = l.log_id - left join fault_code_info c on l.fault_code = c.fault_code + select a.alarm_id, + l.log_id, + l.car_vin, + l.fault_code, + c.fault_name, + c.fault_type, + c.fault_desc, + l.alarm_flag, + l.fault_level, + l.start_alarm_time, + l.end_alarm_time, + a.dispose_by, + a.dispose_status, + a.dispose_time, + a.dispose_methods, + a.read_flag, + a.send_count, + a.remark + from alarm_logs a + left join fault_logs l on a.log_id = l.log_id + left join fault_code_info c on l.fault_code = c.fault_code diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultCodesMapper.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultCodesMapper.xml index fa07593..554cbc3 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultCodesMapper.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultCodesMapper.xml @@ -6,7 +6,9 @@ - update fault_code_info set del_flag = 2 where fault_id = #{faultId,jdbcType=BIGINT} + update fault_code_info + set del_flag = 2 + where fault_id = #{faultId,jdbcType=BIGINT} diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultLogsMapper.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultLogsMapper.xml index adafe6d..7432c60 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultLogsMapper.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/business/FaultLogsMapper.xml @@ -6,39 +6,37 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - select - l.log_id, - l.car_vin, - l.fault_code, - c.fault_name, - c.fault_type, - c.fault_desc, - c.fault_location, - l.alarm_flag, - l.fault_level, - l.start_alarm_time, - l.end_alarm_time, - l.dispose_status, - l.remark - from - fault_logs l - left join fault_code_info c on l.fault_code = c.fault_code + select l.log_id, + l.car_vin, + l.fault_code, + c.fault_name, + c.fault_type, + c.fault_desc, + c.fault_location, + l.alarm_flag, + l.fault_level, + l.start_alarm_time, + l.end_alarm_time, + l.dispose_status, + l.remark + from fault_logs l + left join fault_code_info c on l.fault_code = c.fault_code + - + insert into gen_table_column ( table_id, column_name, diff --git a/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableMapper.xml b/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableMapper.xml index 198066a..e1d793c 100644 --- a/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableMapper.xml @@ -5,58 +5,79 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, tpl_web_type, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table + select table_id, + table_name, + table_comment, + sub_table_name, + sub_table_fk_name, + class_name, + tpl_category, + tpl_web_type, + package_name, + module_name, + business_name, + function_name, + function_author, + gen_type, + gen_path, + options, + create_by, + create_time, + update_by, + update_time, + remark + from gen_table - + insert into gen_table ( database_name, table_name, diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/controller.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/controller.java.vm index 74eb698..427ddf6 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/controller.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/controller.java.vm @@ -3,6 +3,7 @@ package ${packageName}.controller; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -33,30 +34,27 @@ import com.muyu.common.core.web.page.TableDataInfo; */ @RestController @RequestMapping("/${businessName}") -public class ${ClassName}Controller extends BaseController -{ +public class ${ClassName}Controller extends BaseController { @Autowired private I${ClassName}Service ${className}Service; - /** - * 查询${functionName}列表 - */ - @RequiresPermissions("${permissionPrefix}:list") - @GetMapping("/list") -#if($table.crud || $table.sub) - public Result list(${ClassName} ${className}) - { +/** + * 查询${functionName}列表 + */ +@RequiresPermissions("${permissionPrefix}:list") +@GetMapping("/list") + #if($table.crud || $table.sub) + public Result list(${ClassName} ${className}) { startPage(); List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); return getDataTable(list); } -#elseif($table.tree) - public Result list(${ClassName} ${className}) - { - List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - return success(list); - } -#end + #elseif($table.tree) + public Result list(${ClassName} ${className}) { + List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); + return success(list); + } + #end /** * 导出${functionName}列表 @@ -64,10 +62,9 @@ public class ${ClassName}Controller extends BaseController @RequiresPermissions("${permissionPrefix}:export") @Log(title = "${functionName}", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, ${ClassName} ${className}) - { + public void export(HttpServletResponse response, ${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); + ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}. class); util.exportExcel(response, list, "${functionName}数据"); } @@ -76,8 +73,7 @@ public class ${ClassName}Controller extends BaseController */ @RequiresPermissions("${permissionPrefix}:query") @GetMapping(value = "/{${pkColumn.javaField}}") - public Result getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) - { + public Result getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { return success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); } @@ -87,8 +83,7 @@ public class ${ClassName}Controller extends BaseController @RequiresPermissions("${permissionPrefix}:add") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @PostMapping - public Result add(@RequestBody ${ClassName} ${className}) - { + public Result add(@RequestBody ${ClassName} ${className}) { return toAjax(${className}Service.insert${ClassName}(${className})); } @@ -98,8 +93,7 @@ public class ${ClassName}Controller extends BaseController @RequiresPermissions("${permissionPrefix}:edit") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @PutMapping - public Result edit(@RequestBody ${ClassName} ${className}) - { + public Result edit(@RequestBody ${ClassName} ${className}) { return toAjax(${className}Service.update${ClassName}(${className})); } @@ -108,9 +102,8 @@ public class ${ClassName}Controller extends BaseController */ @RequiresPermissions("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) - @DeleteMapping("/{${pkColumn.javaField}s}") - public Result remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) - { + @DeleteMapping("/{${pkColumn.javaField}s}") + public Result remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s)); } } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/domain.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/domain.java.vm index 4d0d9a6..6f8d749 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/domain.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/domain.java.vm @@ -19,87 +19,87 @@ import com.muyu.common.core.web.domain.TreeEntity; * @date ${datetime} */ #if($table.crud || $table.sub) -#set($Entity="BaseEntity") + #set($Entity="BaseEntity") #elseif($table.tree) -#set($Entity="TreeEntity") + #set($Entity="TreeEntity") #end public class ${ClassName} extends ${Entity} -{ - private static final long serialVersionUID = 1L; + { +private static final long serialVersionUID=1L; #foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) + #if(!$table.isSuperColumn($column.javaField)) /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end + #if($column.list) + #set($parentheseIndex=$column.columnComment.indexOf("(")) + #if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) + #else + #set($comment=$column.columnComment) + #end + #if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + #elseif($column.javaType == 'Date') + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") + #else + @Excel(name = "${comment}") + #end + #end private $column.javaType $column.javaField; -#end + #end #end #if($table.sub) - /** $table.subTable.functionName信息 */ - private List<${subClassName}> ${subclassName}List; +/** $table.subTable.functionName信息 */ +private List<${subClassName}> ${subclassName}List; #end #foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end + #if(!$table.isSuperColumn($column.javaField)) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } + { + this.$column.javaField = $column.javaField; + } public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end + { + return $column.javaField; + } + #end #end #if($table.sub) - public List<${subClassName}> get${subClassName}List() - { +public List<${subClassName}> get${subClassName}List() + { return ${subclassName}List; - } + } - public void set${subClassName}List(List<${subClassName}> ${subclassName}List) - { - this.${subclassName}List = ${subclassName}List; - } +public void set${subClassName}List(List<${subClassName}> ${subclassName}List) + { + this.${subclassName}List= ${subclassName}List; + } #end - @Override - public String toString() { +@Override +public String toString(){ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end -#if($table.sub) - .append("${subclassName}List", get${subClassName}List()) -#end - .toString(); - } -} + #foreach ($column in $columns) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + .append("${column.javaField}",get${AttrName}()) + #end + #if($table.sub) + .append("${subclassName}List",get${subClassName}List()) + #end + .toString(); + } + } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/mapper.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/mapper.java.vm index 7e7d7c2..6dac139 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/mapper.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/mapper.java.vm @@ -1,6 +1,7 @@ package ${packageName}.mapper; import java.util.List; + import ${packageName}.domain.${ClassName}; #if($table.sub) import ${packageName}.domain.${subClassName}; @@ -8,15 +9,14 @@ import ${packageName}.domain.${subClassName}; /** * ${functionName}Mapper接口 - * + * * @author ${author} * @date ${datetime} */ -public interface ${ClassName}Mapper -{ +public interface ${ClassName}Mapper { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @@ -24,7 +24,7 @@ public interface ${ClassName}Mapper /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ @@ -32,7 +32,7 @@ public interface ${ClassName}Mapper /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -40,7 +40,7 @@ public interface ${ClassName}Mapper /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -48,7 +48,7 @@ public interface ${ClassName}Mapper /** * 删除${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ @@ -56,36 +56,36 @@ public interface ${ClassName}Mapper /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); -#if($table.sub) + #if($table.sub) - /** - * 批量删除${subTable.functionName} - * - * @param ${pkColumn.javaField}s 需要删除的数据主键集合 - * @return 结果 - */ - public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - - /** - * 批量新增${subTable.functionName} - * - * @param ${subclassName}List ${subTable.functionName}列表 - * @return 结果 - */ - public int batch${subClassName}(List<${subClassName}> ${subclassName}List); - + /** + * 批量删除${subTable.functionName} + * + * @param ${pkColumn.javaField}s 需要删除的数据主键集合 + * @return 结果 + */ + public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - /** - * 通过${functionName}主键删除${subTable.functionName}信息 - * - * @param ${pkColumn.javaField} ${functionName}ID - * @return 结果 - */ - public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); -#end + /** + * 批量新增${subTable.functionName} + * + * @param ${subclassName}List ${subTable.functionName}列表 + * @return 结果 + */ + public int batch${subClassName}(List<${subClassName}> ${subclassName}List); + + + /** + * 通过${functionName}主键删除${subTable.functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}ID + * @return 结果 + */ + public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); + #end } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/service.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/service.java.vm index 264882b..f6df34d 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/service.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/service.java.vm @@ -1,19 +1,19 @@ package ${packageName}.service; import java.util.List; + import ${packageName}.domain.${ClassName}; /** * ${functionName}Service接口 - * + * * @author ${author} * @date ${datetime} */ -public interface I${ClassName}Service -{ +public interface I${ClassName}Service { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @@ -21,7 +21,7 @@ public interface I${ClassName}Service /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ @@ -29,7 +29,7 @@ public interface I${ClassName}Service /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -37,7 +37,7 @@ public interface I${ClassName}Service /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -45,7 +45,7 @@ public interface I${ClassName}Service /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 * @return 结果 */ @@ -53,7 +53,7 @@ public interface I${ClassName}Service /** * 删除${functionName}信息 - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/serviceImpl.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/serviceImpl.java.vm index 3904af5..dc7585b 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/serviceImpl.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/serviceImpl.java.vm @@ -1,20 +1,21 @@ package ${packageName}.service.impl; import java.util.List; -#foreach ($column in $columns) -#if($column.javaField == 'createTime' || $column.javaField == 'updateTime') -import com.muyu.common.core.utils.DateUtils; -#break -#end -#end + #foreach ($column in $columns) + #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') + import com.muyu.common.core.utils.DateUtils; + #break + #end + #end import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -#if($table.sub) -import java.util.ArrayList; -import com.muyu.common.core.utils.StringUtils; -import org.springframework.transaction.annotation.Transactional; -import ${packageName}.domain.${subClassName}; -#end + #if($table.sub) + import java.util.ArrayList; + + import com.muyu.common.core.utils.StringUtils; + import org.springframework.transaction.annotation.Transactional; + import ${packageName}.domain.${subClassName}; + #end import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; @@ -26,8 +27,7 @@ import ${packageName}.service.I${ClassName}Service; * @date ${datetime} */ @Service -public class ${ClassName}ServiceImpl implements I${ClassName}Service -{ +public class ${ClassName}ServiceImpl implements I${ClassName}Service { @Autowired private ${ClassName}Mapper ${className}Mapper; @@ -38,8 +38,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @return ${functionName} */ @Override - public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { + public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); } @@ -50,8 +49,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @return ${functionName} */ @Override - public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) - { + public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { return ${className}Mapper.select${ClassName}List(${className}); } @@ -61,24 +59,23 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @param ${className} ${functionName} * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int insert${ClassName}(${ClassName} ${className}) - { -#foreach ($column in $columns) -#if($column.javaField == 'createTime') - ${className}.setCreateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - int rows = ${className}Mapper.insert${ClassName}(${className}); - insert${subClassName}(${className}); - return rows; -#else - return ${className}Mapper.insert${ClassName}(${className}); -#end + public int insert${ClassName}(${ClassName} ${className}) { + #foreach ($column in $columns) + #if($column.javaField == 'createTime') + ${className}.setCreateTime(DateUtils.getNowDate()); + #end + #end + #if($table.sub) + int rows = ${className}Mapper.insert${ClassName}(${className}); + insert${subClassName}(${className}); + return rows; + #else + return ${className}Mapper.insert${ClassName}(${className}); + #end } /** @@ -87,21 +84,21 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @param ${className} ${functionName} * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int update${ClassName}(${ClassName} ${className}) - { -#foreach ($column in $columns) -#if($column.javaField == 'updateTime') - ${className}.setUpdateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); - insert${subClassName}(${className}); -#end + public int update${ClassName}(${ClassName} ${className}) { + #foreach ($column in $columns) + #if($column.javaField == 'updateTime') + ${className}.setUpdateTime(DateUtils.getNowDate()); + #end + #end + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()) + ; + insert${subClassName}(${className}); + #end return ${className}Mapper.update${ClassName}(${className}); } @@ -111,15 +108,14 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); -#end + public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); + #end return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s); } @@ -129,41 +125,37 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); -#end + public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); + #end return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); } -#if($table.sub) + #if($table.sub) - /** - * 新增${subTable.functionName}信息 - * - * @param ${className} ${functionName}对象 - */ - public void insert${subClassName}(${ClassName} ${className}) - { - List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); - ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); - if (StringUtils.isNotNull(${subclassName}List)) - { - List<${subClassName}> list = new ArrayList<${subClassName}>(); - for (${subClassName} ${subclassName} : ${subclassName}List) - { - ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); - list.add(${subclassName}); - } - if (list.size() > 0) - { - ${className}Mapper.batch${subClassName}(list); + /** + * 新增${subTable.functionName}信息 + * + * @param ${className} ${functionName}对象 + */ + public void insert${subClassName}(${ClassName} ${className}) { + List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); + ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); + if (StringUtils.isNotNull(${subclassName}List)) { + List<${subClassName}> list = new ArrayList<${subClassName}>(); + for (${subClassName} ${subclassName} :${subclassName}List) + { + ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); + list.add(${subclassName}); + } + if (list.size() > 0) { + ${className}Mapper.batch${subClassName}(list); + } } } - } -#end + #end } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/java/sub-domain.java.vm b/muyu-modules/muyu-gen/src/main/resources/vm/java/sub-domain.java.vm index 2caad43..83fa9e3 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/java/sub-domain.java.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/java/sub-domain.java.vm @@ -1,8 +1,8 @@ package ${packageName}.domain; -#foreach ($import in $subImportList) -import ${import}; -#end + #foreach ($import in $subImportList) + import ${import}; + #end import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.muyu.common.core.annotation.Excel; @@ -15,62 +15,62 @@ import com.muyu.common.core.web.domain.BaseEntity; * @date ${datetime} */ public class ${subClassName} extends BaseEntity -{ - private static final long serialVersionUID = 1L; + { +private static final long serialVersionUID=1L; #foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) + #if(!$table.isSuperColumn($column.javaField)) /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end + #if($column.list) + #set($parentheseIndex=$column.columnComment.indexOf("(")) + #if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) + #else + #set($comment=$column.columnComment) + #end + #if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + #elseif($column.javaType == 'Date') + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") + #else + @Excel(name = "${comment}") + #end + #end private $column.javaType $column.javaField; -#end + #end #end #foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end + #if(!$table.isSuperColumn($column.javaField)) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } + { + this.$column.javaField = $column.javaField; + } public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end + { + return $column.javaField; + } + #end #end - @Override - public String toString() { +@Override +public String toString(){ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $subTable.columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end - .toString(); - } -} + #foreach ($column in $subTable.columns) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + .append("${column.javaField}",get${AttrName}()) + #end + .toString(); + } + } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/js/api.js.vm b/muyu-modules/muyu-gen/src/main/resources/vm/js/api.js.vm index 9295524..346c95e 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/js/api.js.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/js/api.js.vm @@ -2,43 +2,43 @@ import request from '@/utils/request' // 查询${functionName}列表 export function list${BusinessName}(query) { - return request({ - url: '/${moduleName}/${businessName}/list', - method: 'get', - params: query - }) + return request({ + url: '/${moduleName}/${businessName}/list', + method: 'get', + params: query + }) } // 查询${functionName}详细 export function get${BusinessName}(${pkColumn.javaField}) { - return request({ - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, - method: 'get' - }) + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'get' + }) } // 新增${functionName} export function add${BusinessName}(data) { - return request({ - url: '/${moduleName}/${businessName}', - method: 'post', - data: data - }) + return request({ + url: '/${moduleName}/${businessName}', + method: 'post', + data: data + }) } // 修改${functionName} export function update${BusinessName}(data) { - return request({ - url: '/${moduleName}/${businessName}', - method: 'put', - data: data - }) + return request({ + url: '/${moduleName}/${businessName}', + method: 'put', + data: data + }) } // 删除${functionName} export function del${BusinessName}(${pkColumn.javaField}) { - return request({ - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, - method: 'delete' - }) + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'delete' + }) } diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/vue/index-tree.vue.vm b/muyu-modules/muyu-gen/src/main/resources/vm/vue/index-tree.vue.vm index a4c64a0..31077bd 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -1,68 +1,68 @@ diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/vue/index.vue.vm b/muyu-modules/muyu-gen/src/main/resources/vm/vue/index.vue.vm index 8f2aeb0..f0d5599 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/vue/index.vue.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/vue/index.vue.vm @@ -1,66 +1,66 @@ diff --git a/muyu-modules/muyu-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm b/muyu-modules/muyu-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm index 7bbd2fc..2fe2754 100644 --- a/muyu-modules/muyu-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm +++ b/muyu-modules/muyu-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm @@ -1,65 +1,65 @@