From 9b4b9e0c744f43417a3c8b741f35090ab4e3c68f Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 15 三月 2021 16:38:43 +0800 Subject: [PATCH] update 删除通用工具 改为使用hutool --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java | 18 ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java | 40 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java | 15 ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java | 8 ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java | 21 ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java | 15 ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java | 16 ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java | 4 ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java | 21 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 15 ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java | 15 ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java | 23 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java | 34 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java | 11 ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java | 43 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java | 21 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 28 ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java | 17 ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java | 18 ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java | 15 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java | 14 ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java | 21 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java | 11 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java | 26 ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java | 14 ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java | 28 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 23 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java | 27 ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java | 20 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 40 ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java | 16 ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java | 6 ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java | 31 ruoyi-common/src/main/java/com/ruoyi/common/exception/BaseException.java | 4 ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 79 +- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java | 24 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 114 +-- ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java | 68 +- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java | 17 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 34 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 38 ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java | 4 ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java | 11 ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java | 25 ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java | 21 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java | 24 ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java | 11 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java | 31 ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java | 25 /dev/null | 291 --------- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 9 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 45 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java | 22 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java | 28 ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java | 26 ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java | 33 ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java | 15 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java | 45 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 27 ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java | 17 63 files changed, 718 insertions(+), 1,055 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index e0c728f..c69cdf2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -1,7 +1,12 @@ package com.ruoyi.web.controller.common; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.framework.config.ServerConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,13 +15,9 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.framework.config.ServerConfig; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * 閫氱敤璇锋眰澶勭悊 @@ -44,7 +45,7 @@ { if (!FileUtils.checkAllowDownload(fileName)) { - throw new Exception(StringUtils.format("鏂囦欢鍚嶇О({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", fileName)); + throw new Exception(StrUtil.format("鏂囦欢鍚嶇О({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", fileName)); } String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String filePath = RuoYiConfig.getDownloadPath() + fileName; @@ -98,14 +99,14 @@ { if (!FileUtils.checkAllowDownload(resource)) { - throw new Exception(StringUtils.format("璧勬簮鏂囦欢({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", resource)); + throw new Exception(StrUtil.format("璧勬簮鏂囦欢({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", resource)); } // 鏈湴璧勬簮璺緞 String localPath = RuoYiConfig.getProfile(); // 鏁版嵁搴撹祫婧愬湴鍧� - String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); + String downloadPath = localPath + StrUtil.subAfter(resource, Constants.RESOURCE_PREFIX,false); // 涓嬭浇鍚嶇О - String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); + String downloadName = StrUtil.subAfter(downloadPath, "/",true); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, downloadName); FileUtils.writeBytes(downloadPath, response.getOutputStream()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java index fa9c623..b3efd5a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -1,10 +1,7 @@ package com.ruoyi.web.controller.monitor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.core.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; @@ -12,8 +9,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.StringUtils; + +import java.util.*; /** * 缂撳瓨鐩戞帶 @@ -43,8 +40,8 @@ commandStats.stringPropertyNames().forEach(key -> { Map<String, String> data = new HashMap<>(2); String property = commandStats.getProperty(key); - data.put("name", StringUtils.removeStart(key, "cmdstat_")); - data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); + data.put("name", StrUtil.removePrefix(key, "cmdstat_")); + data.put("value", StrUtil.subBetween(property, "calls=", ",usec")); pieList.add(data); }); result.put("commandStats", pieList); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java index 9b157ea..8c06d01 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java @@ -1,16 +1,7 @@ package com.ruoyi.web.controller.monitor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.controller.BaseController; @@ -19,9 +10,16 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysUserOnline; import com.ruoyi.system.service.ISysUserOnlineService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; /** * 鍦ㄧ嚎鐢ㄦ埛鐩戞帶 @@ -47,23 +45,23 @@ for (String key : keys) { LoginUser user = redisCache.getCacheObject(key); - if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) + if (Validator.isNotEmpty(ipaddr) && Validator.isNotEmpty(userName)) { - if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) + if (StrUtil.equals(ipaddr, user.getIpaddr()) && StrUtil.equals(userName, user.getUsername())) { userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); } } - else if (StringUtils.isNotEmpty(ipaddr)) + else if (Validator.isNotEmpty(ipaddr)) { - if (StringUtils.equals(ipaddr, user.getIpaddr())) + if (StrUtil.equals(ipaddr, user.getIpaddr())) { userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); } } - else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) + else if (Validator.isNotEmpty(userName) && Validator.isNotNull(user.getUser())) { - if (StringUtils.equals(userName, user.getUsername())) + if (StrUtil.equals(userName, user.getUsername())) { userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 480816a..719012b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,19 +1,6 @@ package com.ruoyi.web.controller.system; -import java.util.Iterator; -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -21,8 +8,15 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Iterator; +import java.util.List; /** * 閮ㄩ棬淇℃伅 @@ -60,7 +54,7 @@ { SysDept d = (SysDept) it.next(); if (d.getDeptId().intValue() == deptId - || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")) + || ArrayUtils.contains(StrUtil.split(d.getAncestors(), ","), deptId + "")) { it.remove(); } @@ -133,7 +127,7 @@ { return AjaxResult.error("淇敼閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛屼笂绾ч儴闂ㄤ笉鑳芥槸鑷繁"); } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) + else if (StrUtil.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0) { return AjaxResult.error("璇ラ儴闂ㄥ寘鍚湭鍋滅敤鐨勫瓙閮ㄩ棬锛�"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java index 91bd67d..7fbd05c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java @@ -1,18 +1,6 @@ package com.ruoyi.web.controller.system; -import java.util.ArrayList; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -20,10 +8,16 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; /** * 鏁版嵁瀛楀吀淇℃伅 @@ -76,7 +70,7 @@ public AjaxResult dictType(@PathVariable String dictType) { List<SysDictData> data = dictTypeService.selectDictDataByType(dictType); - if (StringUtils.isNull(data)) + if (Validator.isNull(data)) { data = new ArrayList<SysDictData>(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 997c582..b2df955 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,12 +1,5 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; @@ -18,6 +11,14 @@ import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Set; /** * 鐧诲綍楠岃瘉 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index 2ee7238..547368b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -1,17 +1,6 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; @@ -22,9 +11,14 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 鑿滃崟淇℃伅 @@ -103,7 +97,7 @@ return AjaxResult.error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) - && !StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS)) + && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS)) { return AjaxResult.error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧�蹇呴』浠ttp(s)://寮�澶�"); } @@ -124,7 +118,7 @@ return AjaxResult.error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) - && !StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS)) + && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS)) { return AjaxResult.error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧�蹇呴』浠ttp(s)://寮�澶�"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index a06f848..4d0d165 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -1,17 +1,6 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -22,12 +11,17 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 瑙掕壊淇℃伅 @@ -123,7 +117,7 @@ { // 鏇存柊缂撳瓨鐢ㄦ埛鏉冮檺 LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) + if (Validator.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) { loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 02346f1..6a88484 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,19 +1,6 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -25,12 +12,19 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.stream.Collectors; /** * 鐢ㄦ埛淇℃伅 @@ -106,7 +100,7 @@ List<SysRole> roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) + if (Validator.isNotNull(userId)) { ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); ajax.put("postIds", postService.selectPostListByUserId(userId)); @@ -127,12 +121,12 @@ { return AjaxResult.error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) + else if (Validator.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { return AjaxResult.error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); } - else if (StringUtils.isNotEmpty(user.getEmail()) + else if (Validator.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return AjaxResult.error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); @@ -151,12 +145,12 @@ public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); - if (StringUtils.isNotEmpty(user.getPhonenumber()) + if (Validator.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { return AjaxResult.error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); } - else if (StringUtils.isNotEmpty(user.getEmail()) + else if (Validator.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return AjaxResult.error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java index 9c6e6b5..3c5bf7c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java @@ -1,24 +1,15 @@ package com.ruoyi.web.controller.tool; +import cn.hutool.core.lang.Validator; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import io.swagger.annotations.*; +import org.springframework.web.bind.annotation.*; + import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.StringUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import io.swagger.annotations.ApiOperation; /** * swagger 鐢ㄦ埛娴嬭瘯鏂规硶 @@ -64,7 +55,7 @@ @PostMapping("/save") public AjaxResult save(UserEntity user) { - if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) + if (Validator.isNull(user) || Validator.isNull(user.getUserId())) { return AjaxResult.error("鐢ㄦ埛ID涓嶈兘涓虹┖"); } @@ -76,7 +67,7 @@ @PutMapping("/update") public AjaxResult update(UserEntity user) { - if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) + if (Validator.isNull(user) || Validator.isNull(user.getUserId())) { return AjaxResult.error("鐢ㄦ埛ID涓嶈兘涓虹┖"); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java deleted file mode 100644 index d60afee..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.ruoyi.common.constant; - -/** - * 杩斿洖鐘舵�佺爜 - * - * @author ruoyi - */ -public class HttpStatus -{ - /** - * 鎿嶄綔鎴愬姛 - */ - public static final int SUCCESS = 200; - - /** - * 瀵硅薄鍒涘缓鎴愬姛 - */ - public static final int CREATED = 201; - - /** - * 璇锋眰宸茬粡琚帴鍙� - */ - public static final int ACCEPTED = 202; - - /** - * 鎿嶄綔宸茬粡鎵ц鎴愬姛锛屼絾鏄病鏈夎繑鍥炴暟鎹� - */ - public static final int NO_CONTENT = 204; - - /** - * 璧勬簮宸茶绉婚櫎 - */ - public static final int MOVED_PERM = 301; - - /** - * 閲嶅畾鍚� - */ - public static final int SEE_OTHER = 303; - - /** - * 璧勬簮娌℃湁琚慨鏀� - */ - public static final int NOT_MODIFIED = 304; - - /** - * 鍙傛暟鍒楄〃閿欒锛堢己灏戯紝鏍煎紡涓嶅尮閰嶏級 - */ - public static final int BAD_REQUEST = 400; - - /** - * 鏈巿鏉� - */ - public static final int UNAUTHORIZED = 401; - - /** - * 璁块棶鍙楅檺锛屾巿鏉冭繃鏈� - */ - public static final int FORBIDDEN = 403; - - /** - * 璧勬簮锛屾湇鍔℃湭鎵惧埌 - */ - public static final int NOT_FOUND = 404; - - /** - * 涓嶅厑璁哥殑http鏂规硶 - */ - public static final int BAD_METHOD = 405; - - /** - * 璧勬簮鍐茬獊锛屾垨鑰呰祫婧愯閿� - */ - public static final int CONFLICT = 409; - - /** - * 涓嶆敮鎸佺殑鏁版嵁锛屽獟浣撶被鍨� - */ - public static final int UNSUPPORTED_TYPE = 415; - - /** - * 绯荤粺鍐呴儴閿欒 - */ - public static final int ERROR = 500; - - /** - * 鎺ュ彛鏈疄鐜� - */ - public static final int NOT_IMPLEMENTED = 501; -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index 9eb24e0..67b961b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -1,22 +1,24 @@ package com.ruoyi.common.core.controller; -import java.beans.PropertyEditorSupport; -import java.util.Date; -import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpStatus; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; /** * web灞傞�氱敤鏁版嵁澶勭悊 @@ -52,7 +54,7 @@ PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); - if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) + if (Validator.isNotNull(pageNum) && Validator.isNotNull(pageSize)) { String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); PageHelper.startPage(pageNum, pageSize, orderBy); @@ -66,7 +68,7 @@ protected TableDataInfo getDataTable(List<?> list) { TableDataInfo rspData = new TableDataInfo(); - rspData.setCode(HttpStatus.SUCCESS); + rspData.setCode(HttpStatus.HTTP_OK); rspData.setMsg("鏌ヨ鎴愬姛"); rspData.setRows(list); rspData.setTotal(new PageInfo(list).getTotal()); @@ -89,6 +91,6 @@ */ public String redirect(String url) { - return StringUtils.format("redirect:{}", url); + return StrUtil.format("redirect:{}", url); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java index 28e5a68..5609a8f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java @@ -1,8 +1,9 @@ package com.ruoyi.common.core.domain; +import cn.hutool.core.lang.Validator; +import cn.hutool.http.HttpStatus; + import java.util.HashMap; -import com.ruoyi.common.constant.HttpStatus; -import com.ruoyi.common.utils.StringUtils; /** * 鎿嶄綔娑堟伅鎻愰啋 @@ -52,7 +53,7 @@ { super.put(CODE_TAG, code); super.put(MSG_TAG, msg); - if (StringUtils.isNotNull(data)) + if (Validator.isNotNull(data)) { super.put(DATA_TAG, data); } @@ -98,7 +99,7 @@ */ public static AjaxResult success(String msg, Object data) { - return new AjaxResult(HttpStatus.SUCCESS, msg, data); + return new AjaxResult(HttpStatus.HTTP_OK, msg, data); } /** @@ -131,7 +132,7 @@ */ public static AjaxResult error(String msg, Object data) { - return new AjaxResult(HttpStatus.ERROR, msg, data); + return new AjaxResult(HttpStatus.HTTP_INTERNAL_ERROR, msg, data); } /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java index 6fba883..a68f284 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java @@ -1,6 +1,6 @@ package com.ruoyi.common.core.page; -import com.ruoyi.common.utils.StringUtils; +import cn.hutool.core.util.StrUtil; /** * 鍒嗛〉鏁版嵁 @@ -23,11 +23,11 @@ public String getOrderBy() { - if (StringUtils.isEmpty(orderByColumn)) + if (StrUtil.isEmpty(orderByColumn)) { return ""; } - return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; + return StrUtil.toUnderlineCase(orderByColumn) + " " + isAsc; } public Integer getPageNum() diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java deleted file mode 100644 index 84124aa..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.ruoyi.common.core.text; - -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import com.ruoyi.common.utils.StringUtils; - -/** - * 瀛楃闆嗗伐鍏风被 - * - * @author ruoyi - */ -public class CharsetKit -{ - /** ISO-8859-1 */ - public static final String ISO_8859_1 = "ISO-8859-1"; - /** UTF-8 */ - public static final String UTF_8 = "UTF-8"; - /** GBK */ - public static final String GBK = "GBK"; - - /** ISO-8859-1 */ - public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); - /** UTF-8 */ - public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); - /** GBK */ - public static final Charset CHARSET_GBK = Charset.forName(GBK); - - /** - * 杞崲涓篊harset瀵硅薄 - * - * @param charset 瀛楃闆嗭紝涓虹┖鍒欒繑鍥為粯璁ゅ瓧绗﹂泦 - * @return Charset - */ - public static Charset charset(String charset) - { - return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); - } - - /** - * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮� - * - * @param source 瀛楃涓� - * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 - * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 - * @return 杞崲鍚庣殑瀛楃闆� - */ - public static String convert(String source, String srcCharset, String destCharset) - { - return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); - } - - /** - * 杞崲瀛楃涓茬殑瀛楃闆嗙紪鐮� - * - * @param source 瀛楃涓� - * @param srcCharset 婧愬瓧绗﹂泦锛岄粯璁SO-8859-1 - * @param destCharset 鐩爣瀛楃闆嗭紝榛樿UTF-8 - * @return 杞崲鍚庣殑瀛楃闆� - */ - public static String convert(String source, Charset srcCharset, Charset destCharset) - { - if (null == srcCharset) - { - srcCharset = StandardCharsets.ISO_8859_1; - } - - if (null == destCharset) - { - destCharset = StandardCharsets.UTF_8; - } - - if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) - { - return source; - } - return new String(source.getBytes(srcCharset), destCharset); - } - - /** - * @return 绯荤粺瀛楃闆嗙紪鐮� - */ - public static String systemCharset() - { - return Charset.defaultCharset().name(); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java deleted file mode 100644 index 1fb7461..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java +++ /dev/null @@ -1,1005 +0,0 @@ -package com.ruoyi.common.core.text; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.text.NumberFormat; -import java.util.Set; -import com.ruoyi.common.utils.StringUtils; -import org.apache.commons.lang3.ArrayUtils; - -/** - * 绫诲瀷杞崲鍣� - * - * @author ruoyi - */ -public class Convert -{ - /** - * 杞崲涓哄瓧绗︿覆<br> - * 濡傛灉缁欏畾鐨勫�间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static String toStr(Object value, String defaultValue) - { - if (null == value) - { - return defaultValue; - } - if (value instanceof String) - { - return (String) value; - } - return value.toString(); - } - - /** - * 杞崲涓哄瓧绗︿覆<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static String toStr(Object value) - { - return toStr(value, null); - } - - /** - * 杞崲涓哄瓧绗�<br> - * 濡傛灉缁欏畾鐨勫�间负null锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Character toChar(Object value, Character defaultValue) - { - if (null == value) - { - return defaultValue; - } - if (value instanceof Character) - { - return (Character) value; - } - - final String valueStr = toStr(value, null); - return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); - } - - /** - * 杞崲涓哄瓧绗�<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Character toChar(Object value) - { - return toChar(value, null); - } - - /** - * 杞崲涓篵yte<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Byte toByte(Object value, Byte defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Byte) - { - return (Byte) value; - } - if (value instanceof Number) - { - return ((Number) value).byteValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Byte.parseByte(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篵yte<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Byte toByte(Object value) - { - return toByte(value, null); - } - - /** - * 杞崲涓篠hort<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Short toShort(Object value, Short defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Short) - { - return (Short) value; - } - if (value instanceof Number) - { - return ((Number) value).shortValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Short.parseShort(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篠hort<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Short toShort(Object value) - { - return toShort(value, null); - } - - /** - * 杞崲涓篘umber<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Number toNumber(Object value, Number defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Number) - { - return (Number) value; - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return NumberFormat.getInstance().parse(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篘umber<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Number toNumber(Object value) - { - return toNumber(value, null); - } - - /** - * 杞崲涓篿nt<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Integer toInt(Object value, Integer defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Integer) - { - return (Integer) value; - } - if (value instanceof Number) - { - return ((Number) value).intValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Integer.parseInt(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篿nt<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Integer toInt(Object value) - { - return toInt(value, null); - } - - /** - * 杞崲涓篒nteger鏁扮粍<br> - * - * @param str 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Integer[] toIntArray(String str) - { - return toIntArray(",", str); - } - - /** - * 杞崲涓篖ong鏁扮粍<br> - * - * @param str 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Long[] toLongArray(String str) - { - return toLongArray(",", str); - } - - /** - * 杞崲涓篒nteger鏁扮粍<br> - * - * @param split 鍒嗛殧绗� - * @param split 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Integer[] toIntArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Integer[] {}; - } - String[] arr = str.split(split); - final Integer[] ints = new Integer[arr.length]; - for (int i = 0; i < arr.length; i++) - { - final Integer v = toInt(arr[i], 0); - ints[i] = v; - } - return ints; - } - - /** - * 杞崲涓篖ong鏁扮粍<br> - * - * @param split 鍒嗛殧绗� - * @param str 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Long[] toLongArray(String split, String str) - { - if (StringUtils.isEmpty(str)) - { - return new Long[] {}; - } - String[] arr = str.split(split); - final Long[] longs = new Long[arr.length]; - for (int i = 0; i < arr.length; i++) - { - final Long v = toLong(arr[i], null); - longs[i] = v; - } - return longs; - } - - /** - * 杞崲涓篠tring鏁扮粍<br> - * - * @param str 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static String[] toStrArray(String str) - { - return toStrArray(",", str); - } - - /** - * 杞崲涓篠tring鏁扮粍<br> - * - * @param split 鍒嗛殧绗� - * @param split 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static String[] toStrArray(String split, String str) - { - return str.split(split); - } - - /** - * 杞崲涓簂ong<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Long toLong(Object value, Long defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Long) - { - return (Long) value; - } - if (value instanceof Number) - { - return ((Number) value).longValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - // 鏀寔绉戝璁℃暟娉� - return new BigDecimal(valueStr.trim()).longValue(); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓簂ong<br> - * 濡傛灉缁欏畾鐨勫�间负<code>null</code>锛屾垨鑰呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Long toLong(Object value) - { - return toLong(value, null); - } - - /** - * 杞崲涓篸ouble<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Double toDouble(Object value, Double defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Double) - { - return (Double) value; - } - if (value instanceof Number) - { - return ((Number) value).doubleValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - // 鏀寔绉戝璁℃暟娉� - return new BigDecimal(valueStr.trim()).doubleValue(); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篸ouble<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Double toDouble(Object value) - { - return toDouble(value, null); - } - - /** - * 杞崲涓篎loat<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Float toFloat(Object value, Float defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Float) - { - return (Float) value; - } - if (value instanceof Number) - { - return ((Number) value).floatValue(); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Float.parseFloat(valueStr.trim()); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篎loat<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Float toFloat(Object value) - { - return toFloat(value, null); - } - - /** - * 杞崲涓篵oolean<br> - * String鏀寔鐨勫�间负锛歵rue銆乫alse銆亂es銆乷k銆乶o锛�1,0 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static Boolean toBool(Object value, Boolean defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof Boolean) - { - return (Boolean) value; - } - String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - valueStr = valueStr.trim().toLowerCase(); - switch (valueStr) - { - case "true": - return true; - case "false": - return false; - case "yes": - return true; - case "ok": - return true; - case "no": - return false; - case "1": - return true; - case "0": - return false; - default: - return defaultValue; - } - } - - /** - * 杞崲涓篵oolean<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static Boolean toBool(Object value) - { - return toBool(value, null); - } - - /** - * 杞崲涓篍num瀵硅薄<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * - * @param clazz Enum鐨凜lass - * @param value 鍊� - * @param defaultValue 榛樿鍊� - * @return Enum - */ - public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value, E defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (clazz.isAssignableFrom(value.getClass())) - { - @SuppressWarnings("unchecked") - E myE = (E) value; - return myE; - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return Enum.valueOf(clazz, valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓篍num瀵硅薄<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * - * @param clazz Enum鐨凜lass - * @param value 鍊� - * @return Enum - */ - public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value) - { - return toEnum(clazz, value, null); - } - - /** - * 杞崲涓築igInteger<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static BigInteger toBigInteger(Object value, BigInteger defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof BigInteger) - { - return (BigInteger) value; - } - if (value instanceof Long) - { - return BigInteger.valueOf((Long) value); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return new BigInteger(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓築igInteger<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<code>null</code><br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static BigInteger toBigInteger(Object value) - { - return toBigInteger(value, null); - } - - /** - * 杞崲涓築igDecimal<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @param defaultValue 杞崲閿欒鏃剁殑榛樿鍊� - * @return 缁撴灉 - */ - public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) - { - if (value == null) - { - return defaultValue; - } - if (value instanceof BigDecimal) - { - return (BigDecimal) value; - } - if (value instanceof Long) - { - return new BigDecimal((Long) value); - } - if (value instanceof Double) - { - return new BigDecimal((Double) value); - } - if (value instanceof Integer) - { - return new BigDecimal((Integer) value); - } - final String valueStr = toStr(value, null); - if (StringUtils.isEmpty(valueStr)) - { - return defaultValue; - } - try - { - return new BigDecimal(valueStr); - } - catch (Exception e) - { - return defaultValue; - } - } - - /** - * 杞崲涓築igDecimal<br> - * 濡傛灉缁欏畾鐨勫�间负绌猴紝鎴栬�呰浆鎹㈠け璐ワ紝杩斿洖榛樿鍊�<br> - * 杞崲澶辫触涓嶄細鎶ラ敊 - * - * @param value 琚浆鎹㈢殑鍊� - * @return 缁撴灉 - */ - public static BigDecimal toBigDecimal(Object value) - { - return toBigDecimal(value, null); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆<br> - * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁� 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @return 瀛楃涓� - */ - public static String utf8Str(Object obj) - { - return str(obj, CharsetKit.CHARSET_UTF_8); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆<br> - * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁� 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @param charsetName 瀛楃闆� - * @return 瀛楃涓� - */ - public static String str(Object obj, String charsetName) - { - return str(obj, Charset.forName(charsetName)); - } - - /** - * 灏嗗璞¤浆涓哄瓧绗︿覆<br> - * 1銆丅yte鏁扮粍鍜孊yteBuffer浼氳杞崲涓哄搴斿瓧绗︿覆鐨勬暟缁� 2銆佸璞℃暟缁勪細璋冪敤Arrays.toString鏂规硶 - * - * @param obj 瀵硅薄 - * @param charset 瀛楃闆� - * @return 瀛楃涓� - */ - public static String str(Object obj, Charset charset) - { - if (null == obj) - { - return null; - } - - if (obj instanceof String) - { - return (String) obj; - } - else if (obj instanceof byte[]) - { - return str((byte[]) obj, charset); - } - else if (obj instanceof Byte[]) - { - byte[] bytes = ArrayUtils.toPrimitive((Byte[]) obj); - return str(bytes, charset); - } - else if (obj instanceof ByteBuffer) - { - return str((ByteBuffer) obj, charset); - } - return obj.toString(); - } - - /** - * 灏哹yte鏁扮粍杞负瀛楃涓� - * - * @param bytes byte鏁扮粍 - * @param charset 瀛楃闆� - * @return 瀛楃涓� - */ - public static String str(byte[] bytes, String charset) - { - return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); - } - - /** - * 瑙g爜瀛楄妭鐮� - * - * @param data 瀛楃涓� - * @param charset 瀛楃闆嗭紝濡傛灉姝ゅ瓧娈典负绌猴紝鍒欒В鐮佺殑缁撴灉鍙栧喅浜庡钩鍙� - * @return 瑙g爜鍚庣殑瀛楃涓� - */ - public static String str(byte[] data, Charset charset) - { - if (data == null) - { - return null; - } - - if (null == charset) - { - return new String(data); - } - return new String(data, charset); - } - - /** - * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 - * - * @param data 鏁版嵁 - * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆� - * @return 瀛楃涓� - */ - public static String str(ByteBuffer data, String charset) - { - if (data == null) - { - return null; - } - - return str(data, Charset.forName(charset)); - } - - /** - * 灏嗙紪鐮佺殑byteBuffer鏁版嵁杞崲涓哄瓧绗︿覆 - * - * @param data 鏁版嵁 - * @param charset 瀛楃闆嗭紝濡傛灉涓虹┖浣跨敤褰撳墠绯荤粺瀛楃闆� - * @return 瀛楃涓� - */ - public static String str(ByteBuffer data, Charset charset) - { - if (null == charset) - { - charset = Charset.defaultCharset(); - } - return charset.decode(data).toString(); - } - - // ----------------------------------------------------------------------- 鍏ㄨ鍗婅杞崲 - /** - * 鍗婅杞叏瑙� - * - * @param input String. - * @return 鍏ㄨ瀛楃涓�. - */ - public static String toSBC(String input) - { - return toSBC(input, null); - } - - /** - * 鍗婅杞叏瑙� - * - * @param input String - * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 - * @return 鍏ㄨ瀛楃涓�. - */ - public static String toSBC(String input, Set<Character> notConvertSet) - { - char c[] = input.toCharArray(); - for (int i = 0; i < c.length; i++) - { - if (null != notConvertSet && notConvertSet.contains(c[i])) - { - // 璺宠繃涓嶆浛鎹㈢殑瀛楃 - continue; - } - - if (c[i] == ' ') - { - c[i] = '\u3000'; - } - else if (c[i] < '\177') - { - c[i] = (char) (c[i] + 65248); - - } - } - return new String(c); - } - - /** - * 鍏ㄨ杞崐瑙� - * - * @param input String. - * @return 鍗婅瀛楃涓� - */ - public static String toDBC(String input) - { - return toDBC(input, null); - } - - /** - * 鏇挎崲鍏ㄨ涓哄崐瑙� - * - * @param text 鏂囨湰 - * @param notConvertSet 涓嶆浛鎹㈢殑瀛楃闆嗗悎 - * @return 鏇挎崲鍚庣殑瀛楃 - */ - public static String toDBC(String text, Set<Character> notConvertSet) - { - char c[] = text.toCharArray(); - for (int i = 0; i < c.length; i++) - { - if (null != notConvertSet && notConvertSet.contains(c[i])) - { - // 璺宠繃涓嶆浛鎹㈢殑瀛楃 - continue; - } - - if (c[i] == '\u3000') - { - c[i] = ' '; - } - else if (c[i] > '\uFF00' && c[i] < '\uFF5F') - { - c[i] = (char) (c[i] - 65248); - } - } - String returnString = new String(c); - - return returnString; - } - - /** - * 鏁板瓧閲戦澶у啓杞崲 鍏堝啓涓畬鏁寸殑鐒跺悗灏嗗闆舵嬀鏇挎崲鎴愰浂 - * - * @param n 鏁板瓧 - * @return 涓枃澶у啓鏁板瓧 - */ - public static String digitUppercase(double n) - { - String[] fraction = { "瑙�", "鍒�" }; - String[] digit = { "闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�", "鎹�", "鐜�" }; - String[][] unit = { { "鍏�", "涓�", "浜�" }, { "", "鎷�", "浣�", "浠�" } }; - - String head = n < 0 ? "璐�" : ""; - n = Math.abs(n); - - String s = ""; - for (int i = 0; i < fraction.length; i++) - { - s += (digit[(int) (Math.floor(n * 10 * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(闆�.)+", ""); - } - if (s.length() < 1) - { - s = "鏁�"; - } - int integerPart = (int) Math.floor(n); - - for (int i = 0; i < unit[0].length && integerPart > 0; i++) - { - String p = ""; - for (int j = 0; j < unit[1].length && n > 0; j++) - { - p = digit[integerPart % 10] + unit[1][j] + p; - integerPart = integerPart / 10; - } - s = p.replaceAll("(闆�.)*闆�$", "").replaceAll("^$", "闆�") + unit[0][i] + s; - } - return head + s.replaceAll("(闆�.)*闆跺厓", "鍏�").replaceFirst("(闆�.)+", "").replaceAll("(闆�.)+", "闆�").replaceAll("^鏁�$", "闆跺厓鏁�"); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java deleted file mode 100644 index c78ac77..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.ruoyi.common.core.text; - -import com.ruoyi.common.utils.StringUtils; - -/** - * 瀛楃涓叉牸寮忓寲 - * - * @author ruoyi - */ -public class StrFormatter -{ - public static final String EMPTY_JSON = "{}"; - public static final char C_BACKSLASH = '\\'; - public static final char C_DELIM_START = '{'; - public static final char C_DELIM_END = '}'; - - /** - * 鏍煎紡鍖栧瓧绗︿覆<br> - * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗� {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁�<br> - * 濡傛灉鎯宠緭鍑� {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨� \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲<br> - * 渚嬶細<br> - * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b<br> - * 杞箟{}锛� format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> - * 杞箟\锛� format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> - * - * @param strPattern 瀛楃涓叉ā鏉� - * @param argArray 鍙傛暟鍒楄〃 - * @return 缁撴灉 - */ - public static String format(final String strPattern, final Object... argArray) - { - if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) - { - return strPattern; - } - final int strPatternLength = strPattern.length(); - - // 鍒濆鍖栧畾涔夊ソ鐨勯暱搴︿互鑾峰緱鏇村ソ鐨勬�ц兘 - StringBuilder sbuf = new StringBuilder(strPatternLength + 50); - - int handledPosition = 0; - int delimIndex;// 鍗犱綅绗︽墍鍦ㄤ綅缃� - for (int argIndex = 0; argIndex < argArray.length; argIndex++) - { - delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); - if (delimIndex == -1) - { - if (handledPosition == 0) - { - return strPattern; - } - else - { // 瀛楃涓叉ā鏉垮墿浣欓儴鍒嗕笉鍐嶅寘鍚崰浣嶇锛屽姞鍏ュ墿浣欓儴鍒嗗悗杩斿洖缁撴灉 - sbuf.append(strPattern, handledPosition, strPatternLength); - return sbuf.toString(); - } - } - else - { - if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) - { - if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) - { - // 杞箟绗︿箣鍓嶈繕鏈変竴涓浆涔夌锛屽崰浣嶇渚濇棫鏈夋晥 - sbuf.append(strPattern, handledPosition, delimIndex - 1); - sbuf.append(Convert.utf8Str(argArray[argIndex])); - handledPosition = delimIndex + 2; - } - else - { - // 鍗犱綅绗﹁杞箟 - argIndex--; - sbuf.append(strPattern, handledPosition, delimIndex - 1); - sbuf.append(C_DELIM_START); - handledPosition = delimIndex + 1; - } - } - else - { - // 姝e父鍗犱綅绗� - sbuf.append(strPattern, handledPosition, delimIndex); - sbuf.append(Convert.utf8Str(argArray[argIndex])); - handledPosition = delimIndex + 2; - } - } - } - // 鍔犲叆鏈�鍚庝竴涓崰浣嶇鍚庢墍鏈夌殑瀛楃 - sbuf.append(strPattern, handledPosition, strPattern.length()); - - return sbuf.toString(); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/BaseException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/BaseException.java index 92d6ae2..026cc0a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/exception/BaseException.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/BaseException.java @@ -1,7 +1,7 @@ package com.ruoyi.common.exception; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.utils.MessageUtils; -import com.ruoyi.common.utils.StringUtils; /** * 鍩虹寮傚父 @@ -64,7 +64,7 @@ public String getMessage() { String message = null; - if (!StringUtils.isEmpty(code)) + if (!Validator.isEmpty(code)) { message = MessageUtils.message(code, args); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java index 3698c75..abc9c6b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java @@ -1,15 +1,11 @@ package com.ruoyi.common.filter; -import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; +import cn.hutool.core.util.StrUtil; import org.springframework.http.MediaType; -import com.ruoyi.common.utils.StringUtils; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; /** * Repeatable 杩囨护鍣� @@ -30,7 +26,7 @@ { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest - && StringUtils.equalsAnyIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE)) + && StrUtil.equalsAnyIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE)) { requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java index b3df122..86fcd2e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java @@ -1,19 +1,15 @@ package com.ruoyi.common.filter; +import cn.hutool.core.util.StrUtil; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import com.ruoyi.common.utils.StringUtils; /** * 闃叉XSS鏀诲嚮鐨勮繃婊ゅ櫒 @@ -37,7 +33,7 @@ { String tempExcludes = filterConfig.getInitParameter("excludes"); String tempEnabled = filterConfig.getInitParameter("enabled"); - if (StringUtils.isNotEmpty(tempExcludes)) + if (StrUtil.isNotEmpty(tempExcludes)) { String[] url = tempExcludes.split(","); for (int i = 0; url != null && i < url.length; i++) @@ -45,7 +41,7 @@ excludes.add(url[i]); } } - if (StringUtils.isNotEmpty(tempEnabled)) + if (StrUtil.isNotEmpty(tempEnabled)) { enabled = Boolean.valueOf(tempEnabled); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java index 3c9efb2..0548934 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java @@ -1,16 +1,17 @@ package com.ruoyi.common.filter; -import java.io.ByteArrayInputStream; -import java.io.IOException; +import cn.hutool.core.lang.Validator; +import cn.hutool.http.HtmlUtil; +import org.apache.commons.io.IOUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; + import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; -import org.apache.commons.io.IOUtils; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.html.EscapeUtil; +import java.io.ByteArrayInputStream; +import java.io.IOException; /** * XSS杩囨护澶勭悊 @@ -38,7 +39,7 @@ for (int i = 0; i < length; i++) { // 闃瞲ss鏀诲嚮鍜岃繃婊ゅ墠鍚庣┖鏍� - escapseValues[i] = EscapeUtil.clean(values[i]).trim(); + escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim(); } return escapseValues; } @@ -56,13 +57,13 @@ // 涓虹┖锛岀洿鎺ヨ繑鍥� String json = IOUtils.toString(super.getInputStream(), "utf-8"); - if (StringUtils.isEmpty(json)) + if (Validator.isEmpty(json)) { return super.getInputStream(); } // xss杩囨护 - json = EscapeUtil.clean(json).trim(); + json = HtmlUtil.cleanHtmlTag(json).trim(); final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8")); return new ServletInputStream() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java index 0d3a23d..34b89b3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java @@ -2,6 +2,9 @@ import java.util.Collection; import java.util.List; + +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.redis.RedisCache; @@ -39,9 +42,9 @@ public static List<SysDictData> getDictCache(String key) { Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(cacheObj)) + if (Validator.isNotNull(cacheObj)) { - List<SysDictData> dictDatas = StringUtils.cast(cacheObj); + List<SysDictData> dictDatas = (List<SysDictData>)cacheObj; return dictDatas; } return null; @@ -84,7 +87,7 @@ StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); - if (StringUtils.containsAny(separator, dictValue) && StringUtils.isNotEmpty(datas)) + if (StrUtil.containsAny(separator, dictValue) && Validator.isNotEmpty(datas)) { for (SysDictData dict : datas) { @@ -108,7 +111,7 @@ } } } - return StringUtils.stripEnd(propertyString.toString(), separator); + return StrUtil.strip(propertyString.toString(), null, separator); } /** @@ -124,7 +127,7 @@ StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); - if (StringUtils.containsAny(separator, dictLabel) && StringUtils.isNotEmpty(datas)) + if (StrUtil.containsAny(separator, dictLabel) && Validator.isNotEmpty(datas)) { for (SysDictData dict : datas) { @@ -148,7 +151,7 @@ } } } - return StringUtils.stripEnd(propertyString.toString(), separator); + return StrUtil.strip(propertyString.toString(), null, separator); } /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java deleted file mode 100644 index 4ca5283..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ruoyi.common.utils; - -import java.io.PrintWriter; -import java.io.StringWriter; -import org.apache.commons.lang3.exception.ExceptionUtils; - -/** - * 閿欒淇℃伅澶勭悊绫汇�� - * - * @author ruoyi - */ -public class ExceptionUtil -{ - /** - * 鑾峰彇exception鐨勮缁嗛敊璇俊鎭�� - */ - public static String getExceptionMessage(Throwable e) - { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw, true)); - String str = sw.toString(); - return str; - } - - public static String getRootErrorMseeage(Exception e) - { - Throwable root = ExceptionUtils.getRootCause(e); - root = (root == null ? e : root); - if (root == null) - { - return ""; - } - String msg = root.getMessage(); - if (msg == null) - { - return "null"; - } - return StringUtils.defaultString(msg); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java deleted file mode 100644 index 0de30c6..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.common.utils; - -/** - * 澶勭悊骞惰褰曟棩蹇楁枃浠� - * - * @author ruoyi - */ -public class LogUtils -{ - public static String getBlock(Object msg) - { - if (msg == null) - { - msg = ""; - } - return "[" + msg.toString() + "]"; - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index aec5776..bdcc9eb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -1,9 +1,9 @@ package com.ruoyi.common.utils; +import cn.hutool.http.HttpStatus; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.CustomException; @@ -25,7 +25,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇鐢ㄦ埛璐︽埛寮傚父", HttpStatus.UNAUTHORIZED); + throw new CustomException("鑾峰彇鐢ㄦ埛璐︽埛寮傚父", HttpStatus.HTTP_UNAUTHORIZED); } } @@ -40,7 +40,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇鐢ㄦ埛淇℃伅寮傚父", HttpStatus.UNAUTHORIZED); + throw new CustomException("鑾峰彇鐢ㄦ埛淇℃伅寮傚父", HttpStatus.HTTP_UNAUTHORIZED); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java index ab9ebcf..0535cf2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java @@ -1,13 +1,15 @@ package com.ruoyi.common.utils; -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.ruoyi.common.core.text.Convert; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; /** * 瀹㈡埛绔伐鍏风被 @@ -121,13 +123,13 @@ } String uri = request.getRequestURI(); - if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) + if (StrUtil.equalsAnyIgnoreCase(uri, ".json", ".xml")) { return true; } String ajax = request.getParameter("__ajax"); - if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) + if (StrUtil.equalsAnyIgnoreCase(ajax, "json", "xml")) { return true; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java deleted file mode 100644 index 7e3969f..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ /dev/null @@ -1,459 +0,0 @@ -package com.ruoyi.common.utils; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import com.ruoyi.common.core.text.StrFormatter; - -/** - * 瀛楃涓插伐鍏风被 - * - * @author ruoyi - */ -public class StringUtils extends org.apache.commons.lang3.StringUtils -{ - /** 绌哄瓧绗︿覆 */ - private static final String NULLSTR = ""; - - /** 涓嬪垝绾� */ - private static final char SEPARATOR = '_'; - - /** - * 鑾峰彇鍙傛暟涓嶄负绌哄�� - * - * @param value defaultValue 瑕佸垽鏂殑value - * @return value 杩斿洖鍊� - */ - public static <T> T nvl(T value, T defaultValue) - { - return value != null ? value : defaultValue; - } - - /** - * * 鍒ゆ柇涓�涓狢ollection鏄惁涓虹┖锛� 鍖呭惈List锛孲et锛孮ueue - * - * @param coll 瑕佸垽鏂殑Collection - * @return true锛氫负绌� false锛氶潪绌� - */ - public static boolean isEmpty(Collection<?> coll) - { - return isNull(coll) || coll.isEmpty(); - } - - /** - * * 鍒ゆ柇涓�涓狢ollection鏄惁闈炵┖锛屽寘鍚獿ist锛孲et锛孮ueue - * - * @param coll 瑕佸垽鏂殑Collection - * @return true锛氶潪绌� false锛氱┖ - */ - public static boolean isNotEmpty(Collection<?> coll) - { - return !isEmpty(coll); - } - - /** - * * 鍒ゆ柇涓�涓璞℃暟缁勬槸鍚︿负绌� - * - * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 - ** @return true锛氫负绌� false锛氶潪绌� - */ - public static boolean isEmpty(Object[] objects) - { - return isNull(objects) || (objects.length == 0); - } - - /** - * * 鍒ゆ柇涓�涓璞℃暟缁勬槸鍚﹂潪绌� - * - * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 - * @return true锛氶潪绌� false锛氱┖ - */ - public static boolean isNotEmpty(Object[] objects) - { - return !isEmpty(objects); - } - - /** - * * 鍒ゆ柇涓�涓狹ap鏄惁涓虹┖ - * - * @param map 瑕佸垽鏂殑Map - * @return true锛氫负绌� false锛氶潪绌� - */ - public static boolean isEmpty(Map<?, ?> map) - { - return isNull(map) || map.isEmpty(); - } - - /** - * * 鍒ゆ柇涓�涓狹ap鏄惁涓虹┖ - * - * @param map 瑕佸垽鏂殑Map - * @return true锛氶潪绌� false锛氱┖ - */ - public static boolean isNotEmpty(Map<?, ?> map) - { - return !isEmpty(map); - } - - /** - * * 鍒ゆ柇涓�涓瓧绗︿覆鏄惁涓虹┖涓� - * - * @param str String - * @return true锛氫负绌� false锛氶潪绌� - */ - public static boolean isEmpty(String str) - { - return isNull(str) || NULLSTR.equals(str.trim()); - } - - /** - * * 鍒ゆ柇涓�涓瓧绗︿覆鏄惁涓洪潪绌轰覆 - * - * @param str String - * @return true锛氶潪绌轰覆 false锛氱┖涓� - */ - public static boolean isNotEmpty(String str) - { - return !isEmpty(str); - } - - /** - * * 鍒ゆ柇涓�涓璞℃槸鍚︿负绌� - * - * @param object Object - * @return true锛氫负绌� false锛氶潪绌� - */ - public static boolean isNull(Object object) - { - return object == null; - } - - /** - * * 鍒ゆ柇涓�涓璞℃槸鍚﹂潪绌� - * - * @param object Object - * @return true锛氶潪绌� false锛氱┖ - */ - public static boolean isNotNull(Object object) - { - return !isNull(object); - } - - /** - * * 鍒ゆ柇涓�涓璞℃槸鍚︽槸鏁扮粍绫诲瀷锛圝ava鍩烘湰鍨嬪埆鐨勬暟缁勶級 - * - * @param object 瀵硅薄 - * @return true锛氭槸鏁扮粍 false锛氫笉鏄暟缁� - */ - public static boolean isArray(Object object) - { - return isNotNull(object) && object.getClass().isArray(); - } - - /** - * 鍘荤┖鏍� - */ - public static String trim(String str) - { - return (str == null ? "" : str.trim()); - } - - /** - * 鎴彇瀛楃涓� - * - * @param str 瀛楃涓� - * @param start 寮�濮� - * @return 缁撴灉 - */ - public static String substring(final String str, int start) - { - if (str == null) - { - return NULLSTR; - } - - if (start < 0) - { - start = str.length() + start; - } - - if (start < 0) - { - start = 0; - } - if (start > str.length()) - { - return NULLSTR; - } - - return str.substring(start); - } - - /** - * 鎴彇瀛楃涓� - * - * @param str 瀛楃涓� - * @param start 寮�濮� - * @param end 缁撴潫 - * @return 缁撴灉 - */ - public static String substring(final String str, int start, int end) - { - if (str == null) - { - return NULLSTR; - } - - if (end < 0) - { - end = str.length() + end; - } - if (start < 0) - { - start = str.length() + start; - } - - if (end > str.length()) - { - end = str.length(); - } - - if (start > end) - { - return NULLSTR; - } - - if (start < 0) - { - start = 0; - } - if (end < 0) - { - end = 0; - } - - return str.substring(start, end); - } - - /** - * 鏍煎紡鍖栨枃鏈�, {} 琛ㄧず鍗犱綅绗�<br> - * 姝ゆ柟娉曞彧鏄畝鍗曞皢鍗犱綅绗� {} 鎸夌収椤哄簭鏇挎崲涓哄弬鏁�<br> - * 濡傛灉鎯宠緭鍑� {} 浣跨敤 \\杞箟 { 鍗冲彲锛屽鏋滄兂杈撳嚭 {} 涔嬪墠鐨� \ 浣跨敤鍙岃浆涔夌 \\\\ 鍗冲彲<br> - * 渚嬶細<br> - * 閫氬父浣跨敤锛歠ormat("this is {} for {}", "a", "b") -> this is a for b<br> - * 杞箟{}锛� format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> - * 杞箟\锛� format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> - * - * @param template 鏂囨湰妯℃澘锛岃鏇挎崲鐨勯儴鍒嗙敤 {} 琛ㄧず - * @param params 鍙傛暟鍊� - * @return 鏍煎紡鍖栧悗鐨勬枃鏈� - */ - public static String format(String template, Object... params) - { - if (isEmpty(params) || isEmpty(template)) - { - return template; - } - return StrFormatter.format(template, params); - } - - /** - * 瀛楃涓茶浆set - * - * @param str 瀛楃涓� - * @param sep 鍒嗛殧绗� - * @return set闆嗗悎 - */ - public static final Set<String> str2Set(String str, String sep) - { - return new HashSet<String>(str2List(str, sep, true, false)); - } - - /** - * 瀛楃涓茶浆list - * - * @param str 瀛楃涓� - * @param sep 鍒嗛殧绗� - * @param filterBlank 杩囨护绾┖鐧� - * @param trim 鍘绘帀棣栧熬绌虹櫧 - * @return list闆嗗悎 - */ - public static final List<String> str2List(String str, String sep, boolean filterBlank, boolean trim) - { - List<String> list = new ArrayList<String>(); - if (StringUtils.isEmpty(str)) - { - return list; - } - - // 杩囨护绌虹櫧瀛楃涓� - if (filterBlank && StringUtils.isBlank(str)) - { - return list; - } - String[] split = str.split(sep); - for (String string : split) - { - if (filterBlank && StringUtils.isBlank(string)) - { - continue; - } - if (trim) - { - string = string.trim(); - } - list.add(string); - } - - return list; - } - - /** - * 涓嬪垝绾胯浆椹煎嘲鍛藉悕 - */ - public static String toUnderScoreCase(String str) - { - if (str == null) - { - return null; - } - StringBuilder sb = new StringBuilder(); - // 鍓嶇疆瀛楃鏄惁澶у啓 - boolean preCharIsUpperCase = true; - // 褰撳墠瀛楃鏄惁澶у啓 - boolean curreCharIsUpperCase = true; - // 涓嬩竴瀛楃鏄惁澶у啓 - boolean nexteCharIsUpperCase = true; - for (int i = 0; i < str.length(); i++) - { - char c = str.charAt(i); - if (i > 0) - { - preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); - } - else - { - preCharIsUpperCase = false; - } - - curreCharIsUpperCase = Character.isUpperCase(c); - - if (i < (str.length() - 1)) - { - nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); - } - - if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) - { - sb.append(SEPARATOR); - } - else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) - { - sb.append(SEPARATOR); - } - sb.append(Character.toLowerCase(c)); - } - - return sb.toString(); - } - - /** - * 鏄惁鍖呭惈瀛楃涓� - * - * @param str 楠岃瘉瀛楃涓� - * @param strs 瀛楃涓茬粍 - * @return 鍖呭惈杩斿洖true - */ - public static boolean inStringIgnoreCase(String str, String... strs) - { - if (str != null && strs != null) - { - for (String s : strs) - { - if (str.equalsIgnoreCase(trim(s))) - { - return true; - } - } - } - return false; - } - - /** - * 灏嗕笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆杞崲涓洪┘宄板紡銆傚鏋滆浆鎹㈠墠鐨勪笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆涓虹┖锛屽垯杩斿洖绌哄瓧绗︿覆銆� 渚嬪锛欻ELLO_WORLD->HelloWorld - * - * @param name 杞崲鍓嶇殑涓嬪垝绾垮ぇ鍐欐柟寮忓懡鍚嶇殑瀛楃涓� - * @return 杞崲鍚庣殑椹煎嘲寮忓懡鍚嶇殑瀛楃涓� - */ - public static String convertToCamelCase(String name) - { - StringBuilder result = new StringBuilder(); - // 蹇�熸鏌� - if (name == null || name.isEmpty()) - { - // 娌″繀瑕佽浆鎹� - return ""; - } - else if (!name.contains("_")) - { - // 涓嶅惈涓嬪垝绾匡紝浠呭皢棣栧瓧姣嶅ぇ鍐� - return name.substring(0, 1).toUpperCase() + name.substring(1); - } - // 鐢ㄤ笅鍒掔嚎灏嗗師濮嬪瓧绗︿覆鍒嗗壊 - String[] camels = name.split("_"); - for (String camel : camels) - { - // 璺宠繃鍘熷瀛楃涓蹭腑寮�澶淬�佺粨灏剧殑涓嬫崲绾挎垨鍙岄噸涓嬪垝绾� - if (camel.isEmpty()) - { - continue; - } - // 棣栧瓧姣嶅ぇ鍐� - result.append(camel.substring(0, 1).toUpperCase()); - result.append(camel.substring(1).toLowerCase()); - } - return result.toString(); - } - - /** - * 椹煎嘲寮忓懡鍚嶆硶 渚嬪锛歶ser_name->userName - */ - public static String toCamelCase(String s) - { - if (s == null) - { - return null; - } - s = s.toLowerCase(); - StringBuilder sb = new StringBuilder(s.length()); - boolean upperCase = false; - for (int i = 0; i < s.length(); i++) - { - char c = s.charAt(i); - - if (c == SEPARATOR) - { - upperCase = true; - } - else if (upperCase) - { - sb.append(Character.toUpperCase(c)); - upperCase = false; - } - else - { - sb.append(c); - } - } - return sb.toString(); - } - - @SuppressWarnings("unchecked") - public static <T> T cast(Object obj) - { - return (T) obj; - } -} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java deleted file mode 100644 index 51cdc2f..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.ruoyi.common.utils.bean; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Bean 宸ュ叿绫� - * - * @author ruoyi - */ -public class BeanUtils extends org.springframework.beans.BeanUtils -{ - /** Bean鏂规硶鍚嶄腑灞炴�у悕寮�濮嬬殑涓嬫爣 */ - private static final int BEAN_METHOD_PROP_INDEX = 3; - - /** * 鍖归厤getter鏂规硶鐨勬鍒欒〃杈惧紡 */ - private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); - - /** * 鍖归厤setter鏂规硶鐨勬鍒欒〃杈惧紡 */ - private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); - - /** - * Bean灞炴�у鍒跺伐鍏锋柟娉曘�� - * - * @param dest 鐩爣瀵硅薄 - * @param src 婧愬璞� - */ - public static void copyBeanProp(Object dest, Object src) - { - try - { - copyProperties(src, dest); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - /** - * 鑾峰彇瀵硅薄鐨剆etter鏂规硶銆� - * - * @param obj 瀵硅薄 - * @return 瀵硅薄鐨剆etter鏂规硶鍒楄〃 - */ - public static List<Method> getSetterMethods(Object obj) - { - // setter鏂规硶鍒楄〃 - List<Method> setterMethods = new ArrayList<Method>(); - - // 鑾峰彇鎵�鏈夋柟娉� - Method[] methods = obj.getClass().getMethods(); - - // 鏌ユ壘setter鏂规硶 - - for (Method method : methods) - { - Matcher m = SET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 1)) - { - setterMethods.add(method); - } - } - // 杩斿洖setter鏂规硶鍒楄〃 - return setterMethods; - } - - /** - * 鑾峰彇瀵硅薄鐨刧etter鏂规硶銆� - * - * @param obj 瀵硅薄 - * @return 瀵硅薄鐨刧etter鏂规硶鍒楄〃 - */ - - public static List<Method> getGetterMethods(Object obj) - { - // getter鏂规硶鍒楄〃 - List<Method> getterMethods = new ArrayList<Method>(); - // 鑾峰彇鎵�鏈夋柟娉� - Method[] methods = obj.getClass().getMethods(); - // 鏌ユ壘getter鏂规硶 - for (Method method : methods) - { - Matcher m = GET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 0)) - { - getterMethods.add(method); - } - } - // 杩斿洖getter鏂规硶鍒楄〃 - return getterMethods; - } - - /** - * 妫�鏌ean鏂规硶鍚嶄腑鐨勫睘鎬у悕鏄惁鐩哥瓑銆�<br> - * 濡俫etName()鍜宻etName()灞炴�у悕涓�鏍凤紝getName()鍜宻etAge()灞炴�у悕涓嶄竴鏍枫�� - * - * @param m1 鏂规硶鍚�1 - * @param m2 鏂规硶鍚�2 - * @return 灞炴�у悕涓�鏍疯繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse - */ - - public static boolean isMethodPropEquals(String m1, String m2) - { - return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java index 2d1bc95..672c023 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -1,18 +1,19 @@ package com.ruoyi.common.utils.file; -import java.io.File; -import java.io.IOException; - +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.IdUtil; -import org.apache.commons.io.FilenameUtils; -import org.springframework.web.multipart.MultipartFile; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException; import com.ruoyi.common.exception.file.FileSizeLimitExceededException; import com.ruoyi.common.exception.file.InvalidExtensionException; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.StringUtils; +import org.apache.commons.io.FilenameUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; /** * 鏂囦欢涓婁紶宸ュ叿绫� @@ -147,7 +148,7 @@ private static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = RuoYiConfig.getProfile().length() + 1; - String currentDir = StringUtils.substring(uploadDir, dirLastIndex); + String currentDir = StrUtil.subSuf(uploadDir, dirLastIndex); String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; return pathFileName; } @@ -224,7 +225,7 @@ public static final String getExtension(MultipartFile file) { String extension = FilenameUtils.getExtension(file.getOriginalFilename()); - if (StringUtils.isEmpty(extension)) + if (Validator.isEmpty(extension)) { extension = MimeTypeUtils.getExtension(file.getContentType()); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index 66c9f24..587b2bf 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -1,17 +1,13 @@ package com.ruoyi.common.utils.file; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.ArrayUtils; -import com.ruoyi.common.utils.StringUtils; +import java.io.*; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; /** * 鏂囦欢澶勭悊宸ュ叿绫� @@ -117,13 +113,13 @@ public static boolean checkAllowDownload(String resource) { // 绂佹鐩綍涓婅烦绾у埆 - if (StringUtils.contains(resource, "..")) + if (StrUtil.contains(resource, "..")) { return false; } // 妫�鏌ュ厑璁镐笅杞界殑鏂囦欢瑙勫垯 - if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) + if (ArrayUtil.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) { return true; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java index 411ef15..d918a48 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -1,5 +1,12 @@ package com.ruoyi.common.utils.file; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import org.apache.poi.util.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; @@ -7,12 +14,6 @@ import java.net.URL; import java.net.URLConnection; import java.util.Arrays; -import org.apache.poi.util.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.utils.StringUtils; /** * 鍥剧墖澶勭悊宸ュ叿绫� @@ -82,7 +83,7 @@ { // 鏈満鍦板潃 String localPath = RuoYiConfig.getProfile(); - String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); + String downloadPath = localPath + StrUtil.subAfter(url, Constants.RESOURCE_PREFIX,false); in = new FileInputStream(downloadPath); } return IOUtils.toByteArray(in); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java deleted file mode 100644 index bf9980a..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.ruoyi.common.utils.html; - -import com.ruoyi.common.utils.StringUtils; - -/** - * 杞箟鍜屽弽杞箟宸ュ叿绫� - * - * @author ruoyi - */ -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 }; - } - - // special HTML characters - TEXT['\''] = "'".toCharArray(); // 鍗曞紩鍙� - TEXT['"'] = """.toCharArray(); // 鍗曞紩鍙� - TEXT['&'] = "&".toCharArray(); // &绗� - TEXT['<'] = "<".toCharArray(); // 灏忎簬鍙� - TEXT['>'] = ">".toCharArray(); // 澶т簬鍙� - } - - /** - * 杞箟鏂囨湰涓殑HTML瀛楃涓哄畨鍏ㄧ殑瀛楃 - * - * @param text 琚浆涔夌殑鏂囨湰 - * @return 杞箟鍚庣殑鏂囨湰 - */ - public static String escape(String text) - { - return encode(text); - } - - /** - * 杩樺師琚浆涔夌殑HTML鐗规畩瀛楃 - * - * @param content 鍖呭惈杞箟绗︾殑HTML鍐呭 - * @return 杞崲鍚庣殑瀛楃涓� - */ - public static String unescape(String content) - { - return decode(content); - } - - /** - * 娓呴櫎鎵�鏈塇TML鏍囩锛屼絾鏄笉鍒犻櫎鏍囩鍐呯殑鍐呭 - * - * @param content 鏂囨湰 - * @return 娓呴櫎鏍囩鍚庣殑鏂囨湰 - */ - public static String clean(String content) - { - return new HTMLFilter().filter(content); - } - - /** - * Escape缂栫爜 - * - * @param text 琚紪鐮佺殑鏂囨湰 - * @return 缂栫爜鍚庣殑瀛楃 - */ - private static String encode(String text) - { - int len; - if ((text == null) || ((len = text.length()) == 0)) - { - return StringUtils.EMPTY; - } - StringBuilder buffer = new StringBuilder(len + (len >> 2)); - char c; - for (int i = 0; i < len; i++) - { - c = text.charAt(i); - if (c < 64) - { - buffer.append(TEXT[c]); - } - else - { - buffer.append(c); - } - } - return buffer.toString(); - } - - /** - * Escape瑙g爜 - * - * @param content 琚浆涔夌殑鍐呭 - * @return 瑙g爜鍚庣殑瀛楃涓� - */ - public static String decode(String content) - { - if (StringUtils.isEmpty(content)) - { - return content; - } - - StringBuilder tmp = new StringBuilder(content.length()); - int lastPos = 0, pos = 0; - char ch; - while (lastPos < content.length()) - { - pos = content.indexOf("%", lastPos); - if (pos == lastPos) - { - if (content.charAt(pos + 1) == 'u') - { - ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16); - tmp.append(ch); - lastPos = pos + 6; - } - else - { - ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); - tmp.append(ch); - lastPos = pos + 3; - } - } - else - { - if (pos == -1) - { - tmp.append(content.substring(lastPos)); - lastPos = content.length(); - } - else - { - tmp.append(content.substring(lastPos, pos)); - lastPos = pos; - } - } - } - return tmp.toString(); - } - - public static void main(String[] args) - { - String html = "<script>alert(1);</script>"; - // String html = "<scr<script>ipt>alert(\"XSS\")</scr<script>ipt>"; - // String html = "<123"; - // String html = "123>"; - System.out.println(EscapeUtil.clean(html)); - System.out.println(EscapeUtil.escape(html)); - System.out.println(EscapeUtil.unescape(html)); - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java deleted file mode 100644 index 3de26bb..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java +++ /dev/null @@ -1,570 +0,0 @@ -package com.ruoyi.common.utils.html; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * HTML杩囨护鍣紝鐢ㄤ簬鍘婚櫎XSS婕忔礊闅愭偅銆� - * - * @author ruoyi - */ -public final class HTMLFilter -{ - /** - * regex flag union representing /si modifiers in php - **/ - private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL; - private static final Pattern P_COMMENTS = Pattern.compile("<!--(.*?)-->", Pattern.DOTALL); - private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI); - private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL); - private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI); - private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI); - private static final Pattern P_QUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI); - private static final Pattern P_UNQUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI); - private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI); - private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?"); - private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?"); - private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?"); - private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))"); - private static final Pattern P_VALID_QUOTES = Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL); - private static final Pattern P_END_ARROW = Pattern.compile("^>"); - private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)"); - private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)"); - private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)"); - private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)"); - private static final Pattern P_AMP = Pattern.compile("&"); - private static final Pattern P_QUOTE = Pattern.compile("\""); - private static final Pattern P_LEFT_ARROW = Pattern.compile("<"); - private static final Pattern P_RIGHT_ARROW = Pattern.compile(">"); - private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>"); - - // @xxx could grow large... maybe use sesat's ReferenceMap - private static final ConcurrentMap<String, Pattern> P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>(); - private static final ConcurrentMap<String, Pattern> P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>(); - - /** - * set of allowed html elements, along with allowed attributes for each element - **/ - private final Map<String, List<String>> vAllowed; - /** - * counts of open tags for each (allowable) html element - **/ - private final Map<String, Integer> vTagCounts = new HashMap<>(); - - /** - * html elements which must always be self-closing (e.g. "<img />") - **/ - private final String[] vSelfClosingTags; - /** - * html elements which must always have separate opening and closing tags (e.g. "<b></b>") - **/ - private final String[] vNeedClosingTags; - /** - * set of disallowed html elements - **/ - private final String[] vDisallowed; - /** - * attributes which should be checked for valid protocols - **/ - private final String[] vProtocolAtts; - /** - * allowed protocols - **/ - private final String[] vAllowedProtocols; - /** - * tags which should be removed if they contain no content (e.g. "<b></b>" or "<b />") - **/ - private final String[] vRemoveBlanks; - /** - * entities allowed within html markup - **/ - private final String[] vAllowedEntities; - /** - * flag determining whether comments are allowed in input String. - */ - private final boolean stripComment; - private final boolean encodeQuotes; - /** - * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>" - * becomes "<b> text </b>"). If set to false, unbalanced angle brackets will be html escaped. - */ - private final boolean alwaysMakeTags; - - /** - * Default constructor. - */ - public HTMLFilter() - { - vAllowed = new HashMap<>(); - - final ArrayList<String> a_atts = new ArrayList<>(); - a_atts.add("href"); - a_atts.add("target"); - vAllowed.put("a", a_atts); - - final ArrayList<String> img_atts = new ArrayList<>(); - img_atts.add("src"); - img_atts.add("width"); - img_atts.add("height"); - img_atts.add("alt"); - vAllowed.put("img", img_atts); - - final ArrayList<String> no_atts = new ArrayList<>(); - vAllowed.put("b", no_atts); - vAllowed.put("strong", no_atts); - vAllowed.put("i", no_atts); - vAllowed.put("em", no_atts); - - vSelfClosingTags = new String[] { "img" }; - vNeedClosingTags = new String[] { "a", "b", "strong", "i", "em" }; - vDisallowed = new String[] {}; - vAllowedProtocols = new String[] { "http", "mailto", "https" }; // no ftp. - vProtocolAtts = new String[] { "src", "href" }; - vRemoveBlanks = new String[] { "a", "b", "strong", "i", "em" }; - vAllowedEntities = new String[] { "amp", "gt", "lt", "quot" }; - stripComment = true; - encodeQuotes = true; - alwaysMakeTags = false; - } - - /** - * Map-parameter configurable constructor. - * - * @param conf map containing configuration. keys match field names. - */ - @SuppressWarnings("unchecked") - public HTMLFilter(final Map<String, Object> conf) - { - - assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; - assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; - assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags"; - assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed"; - assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols"; - assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts"; - assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks"; - assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities"; - - vAllowed = Collections.unmodifiableMap((HashMap<String, List<String>>) conf.get("vAllowed")); - vSelfClosingTags = (String[]) conf.get("vSelfClosingTags"); - vNeedClosingTags = (String[]) conf.get("vNeedClosingTags"); - vDisallowed = (String[]) conf.get("vDisallowed"); - vAllowedProtocols = (String[]) conf.get("vAllowedProtocols"); - vProtocolAtts = (String[]) conf.get("vProtocolAtts"); - vRemoveBlanks = (String[]) conf.get("vRemoveBlanks"); - vAllowedEntities = (String[]) conf.get("vAllowedEntities"); - stripComment = conf.containsKey("stripComment") ? (Boolean) conf.get("stripComment") : true; - encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean) conf.get("encodeQuotes") : true; - alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; - } - - private void reset() - { - vTagCounts.clear(); - } - - // --------------------------------------------------------------- - // my versions of some PHP library functions - public static String chr(final int decimal) - { - return String.valueOf((char) decimal); - } - - public static String htmlSpecialChars(final String s) - { - String result = s; - result = regexReplace(P_AMP, "&", result); - result = regexReplace(P_QUOTE, """, result); - result = regexReplace(P_LEFT_ARROW, "<", result); - result = regexReplace(P_RIGHT_ARROW, ">", result); - return result; - } - - // --------------------------------------------------------------- - - /** - * given a user submitted input String, filter out any invalid or restricted html. - * - * @param input text (i.e. submitted by a user) than may contain html - * @return "clean" version of input, with only valid, whitelisted html elements allowed - */ - public String filter(final String input) - { - reset(); - String s = input; - - s = escapeComments(s); - - s = balanceHTML(s); - - s = checkTags(s); - - s = processRemoveBlanks(s); - - // s = validateEntities(s); - - return s; - } - - public boolean isAlwaysMakeTags() - { - return alwaysMakeTags; - } - - public boolean isStripComments() - { - return stripComment; - } - - private String escapeComments(final String s) - { - final Matcher m = P_COMMENTS.matcher(s); - final StringBuffer buf = new StringBuffer(); - if (m.find()) - { - final String match = m.group(1); // (.*?) - m.appendReplacement(buf, Matcher.quoteReplacement("<!--" + htmlSpecialChars(match) + "-->")); - } - m.appendTail(buf); - - return buf.toString(); - } - - private String balanceHTML(String s) - { - if (alwaysMakeTags) - { - // - // try and form html - // - s = regexReplace(P_END_ARROW, "", s); - // 涓嶈拷鍔犵粨鏉熸爣绛� - s = regexReplace(P_BODY_TO_END, "<$1>", s); - s = regexReplace(P_XML_CONTENT, "$1<$2", s); - - } - else - { - // - // escape stray brackets - // - s = regexReplace(P_STRAY_LEFT_ARROW, "<$1", s); - s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s); - - // - // the last regexp causes '<>' entities to appear - // (we need to do a lookahead assertion so that the last bracket can - // be used in the next pass of the regexp) - // - s = regexReplace(P_BOTH_ARROWS, "", s); - } - - return s; - } - - private String checkTags(String s) - { - Matcher m = P_TAGS.matcher(s); - - final StringBuffer buf = new StringBuffer(); - while (m.find()) - { - String replaceStr = m.group(1); - replaceStr = processTag(replaceStr); - m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); - } - m.appendTail(buf); - - // these get tallied in processTag - // (remember to reset before subsequent calls to filter method) - final StringBuilder sBuilder = new StringBuilder(buf.toString()); - for (String key : vTagCounts.keySet()) - { - for (int ii = 0; ii < vTagCounts.get(key); ii++) - { - sBuilder.append("</").append(key).append(">"); - } - } - s = sBuilder.toString(); - - return s; - } - - private String processRemoveBlanks(final String s) - { - String result = s; - for (String tag : vRemoveBlanks) - { - if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) - { - P_REMOVE_PAIR_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?></" + tag + ">")); - } - result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result); - if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) - { - P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>")); - } - result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result); - } - - return result; - } - - private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) - { - Matcher m = regex_pattern.matcher(s); - return m.replaceAll(replacement); - } - - private String processTag(final String s) - { - // ending tags - Matcher m = P_END_TAG.matcher(s); - if (m.find()) - { - final String name = m.group(1).toLowerCase(); - if (allowed(name)) - { - if (false == inArray(name, vSelfClosingTags)) - { - if (vTagCounts.containsKey(name)) - { - vTagCounts.put(name, vTagCounts.get(name) - 1); - return "</" + name + ">"; - } - } - } - } - - // starting tags - m = P_START_TAG.matcher(s); - if (m.find()) - { - final String name = m.group(1).toLowerCase(); - final String body = m.group(2); - String ending = m.group(3); - - // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" ); - if (allowed(name)) - { - final StringBuilder params = new StringBuilder(); - - final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body); - final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body); - final List<String> paramNames = new ArrayList<>(); - final List<String> paramValues = new ArrayList<>(); - while (m2.find()) - { - paramNames.add(m2.group(1)); // ([a-z0-9]+) - paramValues.add(m2.group(3)); // (.*?) - } - while (m3.find()) - { - paramNames.add(m3.group(1)); // ([a-z0-9]+) - paramValues.add(m3.group(3)); // ([^\"\\s']+) - } - - String paramName, paramValue; - for (int ii = 0; ii < paramNames.size(); ii++) - { - paramName = paramNames.get(ii).toLowerCase(); - paramValue = paramValues.get(ii); - - // debug( "paramName='" + paramName + "'" ); - // debug( "paramValue='" + paramValue + "'" ); - // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); - - if (allowedAttribute(name, paramName)) - { - if (inArray(paramName, vProtocolAtts)) - { - paramValue = processParamProtocol(paramValue); - } - params.append(' ').append(paramName).append("=\"").append(paramValue).append("\""); - } - } - - if (inArray(name, vSelfClosingTags)) - { - ending = " /"; - } - - if (inArray(name, vNeedClosingTags)) - { - ending = ""; - } - - if (ending == null || ending.length() < 1) - { - if (vTagCounts.containsKey(name)) - { - vTagCounts.put(name, vTagCounts.get(name) + 1); - } - else - { - vTagCounts.put(name, 1); - } - } - else - { - ending = " /"; - } - return "<" + name + params + ending + ">"; - } - else - { - return ""; - } - } - - // comments - m = P_COMMENT.matcher(s); - if (!stripComment && m.find()) - { - return "<" + m.group() + ">"; - } - - return ""; - } - - private String processParamProtocol(String s) - { - s = decodeEntities(s); - final Matcher m = P_PROTOCOL.matcher(s); - if (m.find()) - { - final String protocol = m.group(1); - if (!inArray(protocol, vAllowedProtocols)) - { - // bad protocol, turn into local anchor link instead - s = "#" + s.substring(protocol.length() + 1); - if (s.startsWith("#//")) - { - s = "#" + s.substring(3); - } - } - } - - return s; - } - - private String decodeEntities(String s) - { - StringBuffer buf = new StringBuffer(); - - Matcher m = P_ENTITY.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.decode(match).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); - } - m.appendTail(buf); - s = buf.toString(); - - buf = new StringBuffer(); - m = P_ENTITY_UNICODE.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.valueOf(match, 16).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); - } - m.appendTail(buf); - s = buf.toString(); - - buf = new StringBuffer(); - m = P_ENCODE.matcher(s); - while (m.find()) - { - final String match = m.group(1); - final int decimal = Integer.valueOf(match, 16).intValue(); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); - } - m.appendTail(buf); - s = buf.toString(); - - s = validateEntities(s); - return s; - } - - private String validateEntities(final String s) - { - StringBuffer buf = new StringBuffer(); - - // validate entities throughout the string - Matcher m = P_VALID_ENTITIES.matcher(s); - while (m.find()) - { - final String one = m.group(1); // ([^&;]*) - final String two = m.group(2); // (?=(;|&|$)) - m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); - } - m.appendTail(buf); - - return encodeQuotes(buf.toString()); - } - - private String encodeQuotes(final String s) - { - if (encodeQuotes) - { - StringBuffer buf = new StringBuffer(); - Matcher m = P_VALID_QUOTES.matcher(s); - while (m.find()) - { - final String one = m.group(1); // (>|^) - final String two = m.group(2); // ([^<]+?) - final String three = m.group(3); // (<|$) - // 涓嶆浛鎹㈠弻寮曞彿涓�"锛岄槻姝son鏍煎紡鏃犳晥 regexReplace(P_QUOTE, """, two) - m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three)); - } - m.appendTail(buf); - return buf.toString(); - } - else - { - return s; - } - } - - private String checkEntity(final String preamble, final String term) - { - - return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&" + preamble; - } - - private boolean isValidEntity(final String entity) - { - return inArray(entity, vAllowedEntities); - } - - private static boolean inArray(final String s, final String[] array) - { - for (String item : array) - { - if (item != null && item.equals(s)) - { - return true; - } - } - return false; - } - - private boolean allowed(final String name) - { - return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); - } - - private boolean allowedAttribute(final String name, final String paramName) - { - return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); - } -} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java index e34fa5a..430daf8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java @@ -1,14 +1,15 @@ package com.ruoyi.common.utils.http; +import cn.hutool.core.exceptions.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; -import javax.servlet.ServletRequest; -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * 閫氱敤http宸ュ叿灏佽 @@ -46,7 +47,7 @@ } catch (IOException e) { - LOGGER.error(ExceptionUtils.getMessage(e)); + LOGGER.error(ExceptionUtil.getMessage(e)); } } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java index 01c24fc..4805d25 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java @@ -1,12 +1,12 @@ package com.ruoyi.common.utils.ip; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 鑾峰彇鍦板潃绫� @@ -36,7 +36,7 @@ try { String rspStr = HttpUtils.sendGet(IP_URL, "ip=" + ip + "&json=true", Constants.GBK); - if (StringUtils.isEmpty(rspStr)) + if (StrUtil.isEmpty(rspStr)) { log.error("鑾峰彇鍦扮悊浣嶇疆寮傚父 {}", ip); return UNKNOWN; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java index 1b3f42b..c46c69b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java @@ -1,10 +1,11 @@ package com.ruoyi.common.utils.ip; +import cn.hutool.core.lang.Validator; +import cn.hutool.http.HtmlUtil; + +import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; -import javax.servlet.http.HttpServletRequest; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.html.EscapeUtil; /** * 鑾峰彇IP鏂规硶 @@ -41,7 +42,7 @@ { ip = request.getRemoteAddr(); } - return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : EscapeUtil.clean(ip); + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip); } public static boolean internalIp(String ip) @@ -52,7 +53,7 @@ private static boolean internalIp(byte[] addr) { - if (StringUtils.isNull(addr) || addr.length < 2) + if (Validator.isNull(addr) || addr.length < 2) { return true; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index dcba68e..c1a7ca8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -1,62 +1,34 @@ package com.ruoyi.common.utils.poi; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.reflect.Field; -import java.math.BigDecimal; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; -import org.apache.poi.ss.usermodel.BorderStyle; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.CellStyle; -import org.apache.poi.ss.usermodel.CellType; -import org.apache.poi.ss.usermodel.ClientAnchor; -import org.apache.poi.ss.usermodel.DataValidation; -import org.apache.poi.ss.usermodel.DataValidationConstraint; -import org.apache.poi.ss.usermodel.DataValidationHelper; -import org.apache.poi.ss.usermodel.DateUtil; -import org.apache.poi.ss.usermodel.Drawing; -import org.apache.poi.ss.usermodel.FillPatternType; -import org.apache.poi.ss.usermodel.Font; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.IndexedColors; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.ss.usermodel.WorkbookFactory; -import org.apache.poi.ss.util.CellRangeAddressList; -import org.apache.poi.xssf.streaming.SXSSFWorkbook; -import org.apache.poi.xssf.usermodel.XSSFClientAnchor; -import org.apache.poi.xssf.usermodel.XSSFDataValidation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.annotation.Excel.Type; import com.ruoyi.common.annotation.Excels; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileTypeUtils; import com.ruoyi.common.utils.file.ImageUtils; import com.ruoyi.common.utils.reflect.ReflectUtils; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFClientAnchor; +import org.apache.poi.xssf.usermodel.XSSFDataValidation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.*; +import java.util.stream.Collectors; /** * Excel鐩稿叧澶勭悊 @@ -153,7 +125,7 @@ */ public List<T> importExcel(InputStream is) throws Exception { - return importExcel(StringUtils.EMPTY, is); + return importExcel(StrUtil.EMPTY, is); } /** @@ -169,7 +141,7 @@ this.wb = WorkbookFactory.create(is); List<T> list = new ArrayList<T>(); Sheet sheet = null; - if (StringUtils.isNotEmpty(sheetName)) + if (Validator.isNotEmpty(sheetName)) { // 濡傛灉鎸囧畾sheet鍚�,鍒欏彇鎸囧畾sheet涓殑鍐呭. sheet = wb.getSheet(sheetName); @@ -196,7 +168,7 @@ for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { Cell cell = heard.getCell(i); - if (StringUtils.isNotNull(cell)) + if (Validator.isNotNull(cell)) { String value = this.getCellValue(heard, i).toString(); cellMap.put(value, i); @@ -243,14 +215,14 @@ if (String.class == fieldType) { String s = Convert.toStr(val); - if (StringUtils.endsWith(s, ".0")) + if (StrUtil.endWith(s, ".0")) { - val = StringUtils.substringBefore(s, ".0"); + val = StrUtil.subBefore(s, ".0",false); } else { String dateFormat = field.getAnnotation(Excel.class).dateFormat(); - if (StringUtils.isNotEmpty(dateFormat)) + if (Validator.isNotEmpty(dateFormat)) { val = DateUtils.parseDateToStr(dateFormat, (Date) val); } @@ -260,7 +232,7 @@ } } } - else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) + else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && Validator.isNumber(Convert.toStr(val))) { val = Convert.toInt(val); } @@ -295,19 +267,19 @@ { val = Convert.toBool(val, false); } - if (StringUtils.isNotNull(fieldType)) + if (Validator.isNotNull(fieldType)) { Excel attr = field.getAnnotation(Excel.class); String propertyName = field.getName(); - if (StringUtils.isNotEmpty(attr.targetAttr())) + if (Validator.isNotEmpty(attr.targetAttr())) { propertyName = field.getName() + "." + attr.targetAttr(); } - else if (StringUtils.isNotEmpty(attr.readConverterExp())) + else if (Validator.isNotEmpty(attr.readConverterExp())) { val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); } - else if (StringUtils.isNotEmpty(attr.dictType())) + else if (Validator.isNotEmpty(attr.dictType())) { val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); } @@ -533,18 +505,18 @@ { if (ColumnType.STRING == attr.cellType()) { - cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix()); + cell.setCellValue(Validator.isNull(value) ? attr.defaultValue() : value + attr.suffix()); } else if (ColumnType.NUMERIC == attr.cellType()) { - cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); + cell.setCellValue(StrUtil.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); } else if (ColumnType.IMAGE == attr.cellType()) { ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1); String imagePath = Convert.toStr(value); - if (StringUtils.isNotEmpty(imagePath)) + if (Validator.isNotEmpty(imagePath)) { byte[] data = ImageUtils.getImage(imagePath); getDrawingPatriarch(cell.getSheet()).createPicture(anchor, @@ -597,7 +569,7 @@ sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); } // 濡傛灉璁剧疆浜嗘彁绀轰俊鎭垯榧犳爣鏀句笂鍘绘彁绀�. - if (StringUtils.isNotEmpty(attr.prompt())) + if (Validator.isNotEmpty(attr.prompt())) { // 杩欓噷榛樿璁句簡2-101鍒楁彁绀�. setXSSFPrompt(sheet, "", attr.prompt(), 1, 100, column, column); @@ -634,15 +606,15 @@ String readConverterExp = attr.readConverterExp(); String separator = attr.separator(); String dictType = attr.dictType(); - if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) + if (Validator.isNotEmpty(dateFormat) && Validator.isNotNull(value)) { cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); } - else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) + else if (Validator.isNotEmpty(readConverterExp) && Validator.isNotNull(value)) { cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); } - else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) + else if (Validator.isNotEmpty(dictType) && Validator.isNotNull(value)) { cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator)); } @@ -737,7 +709,7 @@ for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) + if (StrUtil.containsAny(separator, propertyValue)) { for (String value : propertyValue.split(separator)) { @@ -756,7 +728,7 @@ } } } - return StringUtils.stripEnd(propertyString.toString(), separator); + return StrUtil.strip(propertyString.toString(), null,separator); } /** @@ -774,7 +746,7 @@ for (String item : convertSource) { String[] itemArray = item.split("="); - if (StringUtils.containsAny(separator, propertyValue)) + if (StrUtil.containsAny(separator, propertyValue)) { for (String value : propertyValue.split(separator)) { @@ -793,7 +765,7 @@ } } } - return StringUtils.stripEnd(propertyString.toString(), separator); + return StrUtil.strip(propertyString.toString(), null,separator); } /** @@ -906,10 +878,10 @@ private Object getTargetValue(T vo, Field field, Excel excel) throws Exception { Object o = field.get(vo); - if (StringUtils.isNotEmpty(excel.targetAttr())) + if (Validator.isNotEmpty(excel.targetAttr())) { String target = excel.targetAttr(); - if (target.indexOf(".") > -1) + if (target.contains(".")) { String[] targets = target.split("[.]"); for (String name : targets) @@ -935,7 +907,7 @@ */ private Object getValue(Object o, String name) throws Exception { - if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) + if (Validator.isNotNull(o) && Validator.isNotEmpty(name)) { Class<?> clazz = o.getClass(); Field field = clazz.getDeclaredField(name); @@ -1048,7 +1020,7 @@ try { Cell cell = row.getCell(column); - if (StringUtils.isNotNull(cell)) + if (Validator.isNotNull(cell)) { if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java index 9befe41..a3b3a76 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java @@ -1,19 +1,15 @@ package com.ruoyi.common.utils.reflect; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.Date; +import cn.hutool.core.convert.Convert; +import com.ruoyi.common.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.poi.ss.usermodel.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.utils.DateUtils; + +import java.lang.reflect.*; +import java.util.Date; /** * 鍙嶅皠宸ュ叿绫�. 鎻愪緵璋冪敤getter/setter鏂规硶, 璁块棶绉佹湁鍙橀噺, 璋冪敤绉佹湁鏂规硶, 鑾峰彇娉涘瀷绫诲瀷Class, 琚獳OP杩囩殑鐪熷疄绫荤瓑宸ュ叿鍑芥暟. diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java deleted file mode 100644 index ca1cd92..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java +++ /dev/null @@ -1,291 +0,0 @@ -package com.ruoyi.common.utils.sign; - -/** - * Base64宸ュ叿绫� - * - * @author ruoyi - */ -public final class Base64 -{ - static private final int BASELENGTH = 128; - static private final int LOOKUPLENGTH = 64; - static private final int TWENTYFOURBITGROUP = 24; - static private final int EIGHTBIT = 8; - static private final int SIXTEENBIT = 16; - static private final int FOURBYTE = 4; - static private final int SIGN = -128; - static private final char PAD = '='; - static final private byte[] base64Alphabet = new byte[BASELENGTH]; - static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; - - static - { - for (int i = 0; i < BASELENGTH; ++i) - { - base64Alphabet[i] = -1; - } - for (int i = 'Z'; i >= 'A'; i--) - { - base64Alphabet[i] = (byte) (i - 'A'); - } - for (int i = 'z'; i >= 'a'; i--) - { - base64Alphabet[i] = (byte) (i - 'a' + 26); - } - - for (int i = '9'; i >= '0'; i--) - { - base64Alphabet[i] = (byte) (i - '0' + 52); - } - - base64Alphabet['+'] = 62; - base64Alphabet['/'] = 63; - - for (int i = 0; i <= 25; i++) - { - lookUpBase64Alphabet[i] = (char) ('A' + i); - } - - 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++) - { - lookUpBase64Alphabet[i] = (char) ('0' + j); - } - lookUpBase64Alphabet[62] = (char) '+'; - lookUpBase64Alphabet[63] = (char) '/'; - } - - private static boolean isWhiteSpace(char octect) - { - return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); - } - - private static boolean isPad(char octect) - { - return (octect == PAD); - } - - private static boolean isData(char octect) - { - return (octect < BASELENGTH && base64Alphabet[octect] != -1); - } - - /** - * Encodes hex octects into Base64 - * - * @param binaryData Array containing binaryData - * @return Encoded Base64 array - */ - public static String encode(byte[] binaryData) - { - if (binaryData == null) - { - return null; - } - - int lengthDataBits = binaryData.length * EIGHTBIT; - if (lengthDataBits == 0) - { - return ""; - } - - int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; - int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; - int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets; - char encodedData[] = null; - - encodedData = new char[numberQuartet * 4]; - - byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; - - int encodedIndex = 0; - int dataIndex = 0; - - for (int i = 0; i < numberTriplets; i++) - { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; - - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); - byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc); - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; - } - - // form integral number of 6-bit groups - if (fewerThan24bits == EIGHTBIT) - { - b1 = binaryData[dataIndex]; - k = (byte) (b1 & 0x03); - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = PAD; - encodedData[encodedIndex++] = PAD; - } - else if (fewerThan24bits == SIXTEENBIT) - { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (byte) (b2 & 0x0f); - k = (byte) (b1 & 0x03); - - byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); - byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); - - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = PAD; - } - return new String(encodedData); - } - - /** - * Decodes Base64 data into octects - * - * @param encoded string containing Base64 data - * @return Array containind decoded data. - */ - public static byte[] decode(String encoded) - { - if (encoded == null) - { - return null; - } - - char[] base64Data = encoded.toCharArray(); - // remove white spaces - int len = removeWhiteSpace(base64Data); - - if (len % FOURBYTE != 0) - { - return null;// should be divisible by four - } - - int numberQuadruple = (len / FOURBYTE); - - if (numberQuadruple == 0) - { - return new byte[0]; - } - - byte decodedData[] = null; - byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; - char d1 = 0, d2 = 0, d3 = 0, d4 = 0; - - int i = 0; - int encodedIndex = 0; - int dataIndex = 0; - decodedData = new byte[(numberQuadruple) * 3]; - - for (; i < numberQuadruple - 1; i++) - { - - if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++])) - || !isData((d3 = base64Data[dataIndex++])) || !isData((d4 = base64Data[dataIndex++]))) - { - return null; - } // if found "no data" just return null - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - } - - if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) - { - return null;// if found "no data" just return null - } - - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (!isData((d3)) || !isData((d4))) - {// Check if they are PAD characters - if (isPad(d3) && isPad(d4)) - { - if ((b2 & 0xf) != 0)// last 4 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 1]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); - return tmp; - } - else if (!isPad(d3) && isPad(d4)) - { - b3 = base64Alphabet[d3]; - if ((b3 & 0x3) != 0)// last 2 bits should be zero - { - return null; - } - byte[] tmp = new byte[i * 3 + 2]; - System.arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - return tmp; - } - else - { - return null; - } - } - else - { // No PAD e.g 3cQl - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); - decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); - decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); - - } - return decodedData; - } - - /** - * remove WhiteSpace from MIME containing encoded Base64 data. - * - * @param data the byte array of base64 data (with WS) - * @return the new length - */ - private static int removeWhiteSpace(char[] data) - { - if (data == null) - { - return 0; - } - - // count characters that's not whitespace - int newSize = 0; - int len = data.length; - for (int i = 0; i < len; i++) - { - if (!isWhiteSpace(data[i])) - { - data[newSize++] = data[i]; - } - } - return newSize; - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java index 9993b98..8e98c50 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.utils.spring; +import cn.hutool.core.lang.Validator; import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; @@ -8,7 +9,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; -import com.ruoyi.common.utils.StringUtils; /** * spring宸ュ叿绫� 鏂逛究鍦ㄩ潪spring绠$悊鐜涓幏鍙朾ean @@ -141,6 +141,6 @@ public static String getActiveProfile() { final String[] activeProfiles = getActiveProfiles(); - return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; + return Validator.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index 0b06dd9..a37268a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -1,7 +1,7 @@ package com.ruoyi.common.utils.sql; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.exception.BaseException; -import com.ruoyi.common.utils.StringUtils; /** * sql鎿嶄綔宸ュ叿绫� @@ -20,7 +20,7 @@ */ public static String escapeOrderBySql(String value) { - if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) + if (Validator.isNotEmpty(value) && !isValidOrderBySql(value)) { throw new BaseException("鍙傛暟涓嶇鍚堣鑼冿紝涓嶈兘杩涜鏌ヨ"); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 45d939b..ffd4718 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -1,6 +1,15 @@ package com.ruoyi.framework.aspectj; -import java.lang.reflect.Method; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.framework.web.service.TokenService; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Aspect; @@ -8,15 +17,8 @@ import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; -import com.ruoyi.common.annotation.DataScope; -import com.ruoyi.common.core.domain.BaseEntity; -import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.framework.web.service.TokenService; + +import java.lang.reflect.Method; /** * 鏁版嵁杩囨护澶勭悊 @@ -79,11 +81,11 @@ } // 鑾峰彇褰撳墠鐨勭敤鎴� LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNotNull(loginUser)) + if (Validator.isNotNull(loginUser)) { SysUser currentUser = loginUser.getUser(); // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹� - if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) + if (Validator.isNotNull(currentUser) && !currentUser.isAdmin()) { dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), controllerDataScope.userAlias()); @@ -112,25 +114,25 @@ } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { - sqlString.append(StringUtils.format( + sqlString.append(StrUtil.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); } else if (DATA_SCOPE_DEPT.equals(dataScope)) { - sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + sqlString.append(StrUtil.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { - sqlString.append(StringUtils.format( + sqlString.append(StrUtil.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)) + if (StrUtil.isNotBlank(userAlias)) { - sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + sqlString.append(StrUtil.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); } else { @@ -140,10 +142,10 @@ } } - if (StringUtils.isNotBlank(sqlString.toString())) + if (StrUtil.isNotBlank(sqlString.toString())) { Object params = joinPoint.getArgs()[0]; - if (StringUtils.isNotNull(params) && params instanceof BaseEntity) + if (Validator.isNotNull(params) && params instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) params; baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java index 8c2c9f4..f92a964 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java @@ -1,6 +1,8 @@ package com.ruoyi.framework.aspectj; -import java.util.Objects; +import cn.hutool.core.lang.Validator; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -11,9 +13,8 @@ import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; -import com.ruoyi.common.annotation.DataSource; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder; + +import java.util.Objects; /** * 澶氭暟鎹簮澶勭悊 @@ -39,7 +40,7 @@ { DataSource dataSource = getDataSource(point); - if (StringUtils.isNotNull(dataSource)) + if (Validator.isNotNull(dataSource)) { DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name()); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 7e180ab..e73fc9e 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -1,11 +1,18 @@ package com.ruoyi.framework.aspectj; -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.BusinessStatus; +import com.ruoyi.common.enums.HttpMethod; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.domain.SysOperLog; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.AfterReturning; @@ -18,19 +25,13 @@ import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.HandlerMapping; -import com.alibaba.fastjson.JSON; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.enums.BusinessStatus; -import com.ruoyi.common.enums.HttpMethod; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.ip.IpUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.framework.manager.AsyncManager; -import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.domain.SysOperLog; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; /** * 鎿嶄綔鏃ュ織璁板綍澶勭悊 @@ -104,7 +105,7 @@ if (e != null) { operLog.setStatus(BusinessStatus.FAIL.ordinal()); - operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); + operLog.setErrorMsg(StrUtil.sub(e.getMessage(), 0, 2000)); } // 璁剧疆鏂规硶鍚嶇О String className = joinPoint.getTarget().getClass().getName(); @@ -161,12 +162,12 @@ if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) { String params = argsArrayToString(joinPoint.getArgs()); - operLog.setOperParam(StringUtils.substring(params, 0, 2000)); + operLog.setOperParam(StrUtil.sub(params, 0, 2000)); } else { Map<?, ?> paramsMap = (Map<?, ?>) ServletUtils.getRequest().getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); - operLog.setOperParam(StringUtils.substring(paramsMap.toString(), 0, 2000)); + operLog.setOperParam(StrUtil.sub(paramsMap.toString(), 0, 2000)); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java index b5f03ec..4626aa1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java @@ -1,15 +1,16 @@ package com.ruoyi.framework.config; -import java.util.HashMap; -import java.util.Map; -import javax.servlet.DispatcherType; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.filter.RepeatableFilter; +import com.ruoyi.common.filter.XssFilter; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.ruoyi.common.filter.RepeatableFilter; -import com.ruoyi.common.filter.XssFilter; -import com.ruoyi.common.utils.StringUtils; + +import javax.servlet.DispatcherType; +import java.util.HashMap; +import java.util.Map; /** * Filter閰嶇疆 @@ -35,7 +36,7 @@ FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setDispatcherTypes(DispatcherType.REQUEST); registration.setFilter(new XssFilter()); - registration.addUrlPatterns(StringUtils.split(urlPatterns, ",")); + registration.addUrlPatterns(StrUtil.split(urlPatterns, ",")); registration.setName("xssFilter"); registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); Map<String, String> initParameters = new HashMap<String, String>(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java index e3864c7..e3c7ee5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java @@ -1,19 +1,20 @@ package com.ruoyi.framework.interceptor.impl; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import javax.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; +import cn.hutool.core.lang.Validator; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.filter.RepeatedlyRequestWrapper; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpHelper; import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; /** * 鍒ゆ柇璇锋眰url鍜屾暟鎹槸鍚﹀拰涓婁竴娆$浉鍚岋紝 @@ -59,7 +60,7 @@ } // body鍙傛暟涓虹┖锛岃幏鍙朠arameter鐨勬暟鎹� - if (StringUtils.isEmpty(nowParams)) + if (Validator.isEmpty(nowParams)) { nowParams = JSONObject.toJSONString(request.getParameterMap()); } @@ -72,7 +73,7 @@ // 鍞竴鍊硷紙娌℃湁娑堟伅澶村垯浣跨敤璇锋眰鍦板潃锛� String submitKey = request.getHeader(header); - if (StringUtils.isEmpty(submitKey)) + if (Validator.isEmpty(submitKey)) { submitKey = url; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java index 17a8f40..c8f15f5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java @@ -1,10 +1,6 @@ package com.ruoyi.framework.manager.factory; -import java.util.TimerTask; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.utils.LogUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.ip.IpUtils; @@ -14,6 +10,10 @@ import com.ruoyi.system.service.ISysLogininforService; import com.ruoyi.system.service.ISysOperLogService; import eu.bitwalker.useragentutils.UserAgent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.TimerTask; /** * 寮傛宸ュ巶锛堜骇鐢熶换鍔$敤锛� @@ -45,11 +45,11 @@ { String address = AddressUtils.getRealAddressByIP(ip); StringBuilder s = new StringBuilder(); - s.append(LogUtils.getBlock(ip)); + s.append(getBlock(ip)); s.append(address); - s.append(LogUtils.getBlock(username)); - s.append(LogUtils.getBlock(status)); - s.append(LogUtils.getBlock(message)); + s.append(getBlock(username)); + s.append(getBlock(status)); + s.append(getBlock(message)); // 鎵撳嵃淇℃伅鍒版棩蹇� sys_user_logger.info(s.toString(), args); // 鑾峰彇瀹㈡埛绔搷浣滅郴缁� @@ -98,4 +98,13 @@ } }; } + + public static String getBlock(Object msg) + { + if (msg == null) + { + msg = ""; + } + return "[" + msg.toString() + "]"; + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java index 3eb2495..fb2cdaa 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java @@ -1,20 +1,21 @@ package com.ruoyi.framework.security.filter; -import java.io.IOException; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.lang.Validator; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.web.service.TokenService; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; /** * token杩囨护鍣� 楠岃瘉token鏈夋晥鎬� @@ -32,7 +33,7 @@ throws ServletException, IOException { LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) + if (Validator.isNotNull(loginUser) && Validator.isNull(SecurityUtils.getAuthentication())) { tokenService.verifyToken(loginUser); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities()); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java index c22dd32..0ff60e2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java @@ -1,17 +1,18 @@ package com.ruoyi.framework.security.handle; -import java.io.IOException; -import java.io.Serializable; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.ServletUtils; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; -import com.alibaba.fastjson.JSON; -import com.ruoyi.common.constant.HttpStatus; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.Serializable; /** * 璁よ瘉澶辫触澶勭悊绫� 杩斿洖鏈巿鏉� @@ -27,8 +28,8 @@ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException { - int code = HttpStatus.UNAUTHORIZED; - String msg = StringUtils.format("璇锋眰璁块棶锛歿}锛岃璇佸け璐ワ紝鏃犳硶璁块棶绯荤粺璧勬簮", request.getRequestURI()); + int code = HttpStatus.HTTP_UNAUTHORIZED; + String msg = StrUtil.format("璇锋眰璁块棶锛歿}锛岃璇佸け璐ワ紝鏃犳硶璁块棶绯荤粺璧勬簮", request.getRequestURI()); ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg))); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java index e5fc11d..e79f468 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java @@ -1,23 +1,24 @@ package com.ruoyi.framework.security.handle; -import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.lang.Validator; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.framework.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; -import com.alibaba.fastjson.JSON; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.HttpStatus; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.manager.AsyncManager; -import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.framework.web.service.TokenService; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; /** * 鑷畾涔夐��鍑哄鐞嗙被 杩斿洖鎴愬姛 @@ -40,7 +41,7 @@ throws IOException, ServletException { LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser)) + if (Validator.isNotNull(loginUser)) { String userName = loginUser.getUsername(); // 鍒犻櫎鐢ㄦ埛缂撳瓨璁板綍 @@ -48,6 +49,6 @@ // 璁板綍鐢ㄦ埛閫�鍑烘棩蹇� AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "閫�鍑烘垚鍔�")); } - ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.SUCCESS, "閫�鍑烘垚鍔�"))); + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.HTTP_OK, "閫�鍑烘垚鍔�"))); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index cd497cc..9614a8d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -1,5 +1,11 @@ package com.ruoyi.framework.web.exception; +import cn.hutool.core.lang.Validator; +import cn.hutool.http.HttpStatus; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.exception.BaseException; +import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.exception.DemoModeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; @@ -10,12 +16,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.NoHandlerFoundException; -import com.ruoyi.common.constant.HttpStatus; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.exception.BaseException; -import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.exception.DemoModeException; -import com.ruoyi.common.utils.StringUtils; import javax.validation.ConstraintViolationException; @@ -44,7 +44,7 @@ @ExceptionHandler(CustomException.class) public AjaxResult businessException(CustomException e) { - if (StringUtils.isNull(e.getCode())) + if (Validator.isNull(e.getCode())) { return AjaxResult.error(e.getMessage()); } @@ -55,14 +55,14 @@ public AjaxResult handlerNoFoundException(Exception e) { log.error(e.getMessage(), e); - return AjaxResult.error(HttpStatus.NOT_FOUND, "璺緞涓嶅瓨鍦紝璇锋鏌ヨ矾寰勬槸鍚︽纭�"); + return AjaxResult.error(HttpStatus.HTTP_NOT_FOUND, "璺緞涓嶅瓨鍦紝璇锋鏌ヨ矾寰勬槸鍚︽纭�"); } @ExceptionHandler(AccessDeniedException.class) public AjaxResult handleAuthorizationException(AccessDeniedException e) { log.error(e.getMessage()); - return AjaxResult.error(HttpStatus.FORBIDDEN, "娌℃湁鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉�"); + return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "娌℃湁鏉冮檺锛岃鑱旂郴绠$悊鍛樻巿鏉�"); } @ExceptionHandler(AccountExpiredException.class) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java index 277e4b9..064efa5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java @@ -1,13 +1,14 @@ package com.ruoyi.framework.web.service; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Set; /** * RuoYi棣栧垱 鑷畾涔夋潈闄愬疄鐜帮紝ss鍙栬嚜SpringSecurity棣栧瓧姣� @@ -38,12 +39,12 @@ */ public boolean hasPermi(String permission) { - if (StringUtils.isEmpty(permission)) + if (Validator.isEmpty(permission)) { return false; } LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) + if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getPermissions())) { return false; } @@ -69,12 +70,12 @@ */ public boolean hasAnyPermi(String permissions) { - if (StringUtils.isEmpty(permissions)) + if (Validator.isEmpty(permissions)) { return false; } LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) + if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getPermissions())) { return false; } @@ -97,19 +98,19 @@ */ public boolean hasRole(String role) { - if (StringUtils.isEmpty(role)) + if (Validator.isEmpty(role)) { return false; } LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) + if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getUser().getRoles())) { return false; } for (SysRole sysRole : loginUser.getUser().getRoles()) { String roleKey = sysRole.getRoleKey(); - if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role))) + if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StrUtil.trim(role))) { return true; } @@ -136,12 +137,12 @@ */ public boolean hasAnyRoles(String roles) { - if (StringUtils.isEmpty(roles)) + if (Validator.isEmpty(roles)) { return false; } LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); - if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) + if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getUser().getRoles())) { return false; } @@ -164,6 +165,6 @@ */ private boolean hasPermissions(Set<String> permissions, String permission) { - return permissions.contains(ALL_PERMISSION) || permissions.contains(StringUtils.trim(permission)); + return permissions.contains(ALL_PERMISSION) || permissions.contains(StrUtil.trim(permission)); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java index 89a81ad..23ea862 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -1,25 +1,25 @@ package com.ruoyi.framework.web.service; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import javax.servlet.http.HttpServletRequest; - +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.IdUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.ip.IpUtils; import eu.bitwalker.useragentutils.UserAgent; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; /** * token楠岃瘉澶勭悊 @@ -59,7 +59,7 @@ { // 鑾峰彇璇锋眰鎼哄甫鐨勪护鐗� String token = getToken(request); - if (StringUtils.isNotEmpty(token)) + if (Validator.isNotEmpty(token)) { Claims claims = parseToken(token); // 瑙f瀽瀵瑰簲鐨勬潈闄愪互鍙婄敤鎴蜂俊鎭� @@ -76,7 +76,7 @@ */ public void setLoginUser(LoginUser loginUser) { - if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) + if (Validator.isNotNull(loginUser) && Validator.isNotEmpty(loginUser.getToken())) { refreshToken(loginUser); } @@ -87,7 +87,7 @@ */ public void delLoginUser(String token) { - if (StringUtils.isNotEmpty(token)) + if (Validator.isNotEmpty(token)) { String userKey = getTokenKey(token); redisCache.deleteObject(userKey); @@ -206,7 +206,7 @@ private String getToken(HttpServletRequest request) { String token = request.getHeader(header); - if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) + if (Validator.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) { token = token.replace(Constants.TOKEN_PREFIX, ""); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java index 35fd05e..46b96ba 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java @@ -1,5 +1,11 @@ package com.ruoyi.framework.web.service; +import cn.hutool.core.lang.Validator; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.UserStatus; +import com.ruoyi.common.exception.BaseException; +import com.ruoyi.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -7,12 +13,6 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.enums.UserStatus; -import com.ruoyi.common.exception.BaseException; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.service.ISysUserService; /** * 鐢ㄦ埛楠岃瘉澶勭悊 @@ -34,7 +34,7 @@ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { SysUser user = userService.selectUserByUserName(username); - if (StringUtils.isNull(user)) + if (Validator.isNull(user)) { log.info("鐧诲綍鐢ㄦ埛锛歿} 涓嶅瓨鍦�.", username); throw new UsernameNotFoundException("鐧诲綍鐢ㄦ埛锛�" + username + " 涓嶅瓨鍦�"); diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java index 8195206..d6f2a43 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -21,7 +21,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.text.Convert; +import cn.hutool.core.convert.Convert; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java index 269779c..5c559b4 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java @@ -1,12 +1,13 @@ package com.ruoyi.generator.domain; -import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; -import org.apache.commons.lang3.ArrayUtils; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.core.domain.BaseEntity; -import com.ruoyi.common.utils.StringUtils; +import org.apache.commons.lang3.ArrayUtils; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.util.List; /** * 涓氬姟琛� gen_table @@ -332,7 +333,7 @@ public static boolean isSub(String tplCategory) { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); + return tplCategory != null && StrUtil.equals(GenConstants.TPL_SUB, tplCategory); } public boolean isTree() @@ -342,7 +343,7 @@ public static boolean isTree(String tplCategory) { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); + return tplCategory != null && StrUtil.equals(GenConstants.TPL_TREE, tplCategory); } public boolean isCrud() @@ -352,7 +353,7 @@ public static boolean isCrud(String tplCategory) { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); + return tplCategory != null && StrUtil.equals(GenConstants.TPL_CRUD, tplCategory); } public boolean isSuperColumn(String javaField) @@ -364,9 +365,9 @@ { if (isTree(tplCategory)) { - return StringUtils.equalsAnyIgnoreCase(javaField, + return StrUtil.equalsAnyIgnoreCase(javaField, ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); } - return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); + return StrUtil.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); } } \ No newline at end of file diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java index d1733b6..0b9ffb9 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java @@ -1,8 +1,9 @@ package com.ruoyi.generator.domain; -import javax.validation.constraints.NotBlank; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.domain.BaseEntity; -import com.ruoyi.common.utils.StringUtils; + +import javax.validation.constraints.NotBlank; /** * 浠g爜鐢熸垚涓氬姟瀛楁琛� gen_table_column @@ -140,7 +141,7 @@ public String getCapJavaField() { - return StringUtils.capitalize(javaField); + return StrUtil.upperFirst(javaField); } public void setIsPk(String isPk) @@ -160,7 +161,7 @@ public boolean isPk(String isPk) { - return isPk != null && StringUtils.equals("1", isPk); + return isPk != null && StrUtil.equals("1", isPk); } public String getIsIncrement() @@ -180,7 +181,7 @@ public boolean isIncrement(String isIncrement) { - return isIncrement != null && StringUtils.equals("1", isIncrement); + return isIncrement != null && StrUtil.equals("1", isIncrement); } public void setIsRequired(String isRequired) @@ -200,7 +201,7 @@ public boolean isRequired(String isRequired) { - return isRequired != null && StringUtils.equals("1", isRequired); + return isRequired != null && StrUtil.equals("1", isRequired); } public void setIsInsert(String isInsert) @@ -220,7 +221,7 @@ public boolean isInsert(String isInsert) { - return isInsert != null && StringUtils.equals("1", isInsert); + return isInsert != null && StrUtil.equals("1", isInsert); } public void setIsEdit(String isEdit) @@ -240,7 +241,7 @@ public boolean isEdit(String isEdit) { - return isEdit != null && StringUtils.equals("1", isEdit); + return isEdit != null && StrUtil.equals("1", isEdit); } public void setIsList(String isList) @@ -260,7 +261,7 @@ public boolean isList(String isList) { - return isList != null && StringUtils.equals("1", isList); + return isList != null && StrUtil.equals("1", isList); } public void setIsQuery(String isQuery) @@ -280,7 +281,7 @@ public boolean isQuery(String isQuery) { - return isQuery != null && StringUtils.equals("1", isQuery); + return isQuery != null && StrUtil.equals("1", isQuery); } public void setQueryType(String queryType) @@ -330,7 +331,7 @@ public static boolean isSuperColumn(String javaField) { - return StringUtils.equalsAnyIgnoreCase(javaField, + return StrUtil.equalsAnyIgnoreCase(javaField, // BaseEntity "createBy", "createTime", "updateBy", "updateTime", "remark", // TreeEntity @@ -345,18 +346,18 @@ public static boolean isUsableColumn(String javaField) { // isSuperColumn()涓殑鍚嶅崟鐢ㄤ簬閬垮厤鐢熸垚澶氫綑Domain灞炴�э紝鑻ユ煇浜涘睘鎬у湪鐢熸垚椤甸潰鏃堕渶瑕佺敤鍒颁笉鑳藉拷鐣ワ紝鍒欐斁鍦ㄦ澶勭櫧鍚嶅崟 - return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); + return StrUtil.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); } public String readConverterExp() { - String remarks = StringUtils.substringBetween(this.columnComment, "锛�", "锛�"); + String remarks = StrUtil.subBetween(this.columnComment, "锛�", "锛�"); StringBuffer sb = new StringBuffer(); - if (StringUtils.isNotEmpty(remarks)) + if (StrUtil.isNotEmpty(remarks)) { for (String value : remarks.split(" ")) { - if (StringUtils.isNotEmpty(value)) + if (StrUtil.isNotEmpty(value)) { Object startStr = value.subSequence(0, 1); String endStr = value.substring(1); diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java index 0679689..e11687f 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java @@ -3,7 +3,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.common.core.text.Convert; +import cn.hutool.core.convert.Convert; import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.mapper.GenTableColumnMapper; diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 796b545..1e75832 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -1,5 +1,31 @@ package com.ruoyi.generator.service; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.mapper.GenTableColumnMapper; +import com.ruoyi.generator.mapper.GenTableMapper; +import com.ruoyi.generator.util.GenUtils; +import com.ruoyi.generator.util.VelocityInitializer; +import com.ruoyi.generator.util.VelocityUtils; +import org.apache.commons.io.IOUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -10,31 +36,6 @@ import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import org.apache.commons.io.IOUtils; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.Velocity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.GenConstants; -import com.ruoyi.common.core.text.CharsetKit; -import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.generator.domain.GenTable; -import com.ruoyi.generator.domain.GenTableColumn; -import com.ruoyi.generator.mapper.GenTableColumnMapper; -import com.ruoyi.generator.mapper.GenTableMapper; -import com.ruoyi.generator.util.GenUtils; -import com.ruoyi.generator.util.VelocityInitializer; -import com.ruoyi.generator.util.VelocityUtils; /** * 涓氬姟 鏈嶅姟灞傚疄鐜� @@ -256,7 +257,7 @@ List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); for (String template : templates) { - if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) + if (!StrUtil.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) { // 娓叉煋妯℃澘 StringWriter sw = new StringWriter(); @@ -265,7 +266,7 @@ try { String path = getGenPath(table, template); - FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8); + FileUtils.writeStringToFile(new File(path), sw.toString(), Constants.UTF8); } catch (IOException e) { @@ -289,7 +290,7 @@ List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); - if (StringUtils.isEmpty(dbTableColumns)) + if (Validator.isEmpty(dbTableColumns)) { throw new CustomException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪"); } @@ -304,7 +305,7 @@ }); List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); - if (StringUtils.isNotEmpty(delColumns)) + if (Validator.isNotEmpty(delColumns)) { genTableColumnMapper.deleteGenTableColumns(delColumns); } @@ -381,25 +382,25 @@ { String options = JSON.toJSONString(genTable.getParams()); JSONObject paramsObj = JSONObject.parseObject(options); - if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) + if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) { throw new CustomException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌�"); } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) + else if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) { throw new CustomException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖"); } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) + else if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) { throw new CustomException("鏍戝悕绉板瓧娈典笉鑳戒负绌�"); } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { - if (StringUtils.isEmpty(genTable.getSubTableName())) + if (Validator.isEmpty(genTable.getSubTableName())) { throw new CustomException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌�"); } - else if (StringUtils.isEmpty(genTable.getSubTableFkName())) + else if (Validator.isEmpty(genTable.getSubTableFkName())) { throw new CustomException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖"); } @@ -422,7 +423,7 @@ break; } } - if (StringUtils.isNull(table.getPkColumn())) + if (Validator.isNull(table.getPkColumn())) { table.setPkColumn(table.getColumns().get(0)); } @@ -436,7 +437,7 @@ break; } } - if (StringUtils.isNull(table.getSubTable().getPkColumn())) + if (Validator.isNull(table.getSubTable().getPkColumn())) { table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); } @@ -451,7 +452,7 @@ public void setSubTable(GenTable table) { String subTableName = table.getSubTableName(); - if (StringUtils.isNotEmpty(subTableName)) + if (Validator.isNotEmpty(subTableName)) { table.setSubTable(genTableMapper.selectGenTableByName(subTableName)); } @@ -465,7 +466,7 @@ public void setTableFromOptions(GenTable genTable) { JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions()); - if (StringUtils.isNotNull(paramsObj)) + if (Validator.isNotNull(paramsObj)) { String treeCode = paramsObj.getString(GenConstants.TREE_CODE); String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); @@ -491,7 +492,7 @@ public static String getGenPath(GenTable table, String template) { String genPath = table.getGenPath(); - if (StringUtils.equals(genPath, "/")) + if (StrUtil.equals(genPath, "/")) { return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index 06c6821..718feaa 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -1,12 +1,13 @@ package com.ruoyi.generator.util; -import java.util.Arrays; -import org.apache.commons.lang3.RegExUtils; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.constant.GenConstants; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.generator.config.GenConfig; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; +import org.apache.commons.lang3.RegExUtils; + +import java.util.Arrays; /** * 浠g爜鐢熸垚鍣� 宸ュ叿绫� @@ -39,7 +40,7 @@ column.setTableId(table.getTableId()); column.setCreateBy(table.getCreateBy()); // 璁剧疆java瀛楁鍚� - column.setJavaField(StringUtils.toCamelCase(columnName)); + column.setJavaField(StrUtil.toCamelCase(columnName)); // 璁剧疆榛樿绫诲瀷 column.setJavaType(GenConstants.TYPE_STRING); @@ -60,7 +61,7 @@ column.setHtmlType(GenConstants.HTML_INPUT); // 濡傛灉鏄诞鐐瑰瀷 缁熶竴鐢˙igDecimal - String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); + String[] str = StrUtil.split(StrUtil.subBetween(column.getColumnType(), "(", ")"), ","); if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) { column.setJavaType(GenConstants.TYPE_BIGDECIMAL); @@ -97,33 +98,33 @@ } // 鏌ヨ瀛楁绫诲瀷 - if (StringUtils.endsWithIgnoreCase(columnName, "name")) + if (StrUtil.endWithIgnoreCase(columnName, "name")) { column.setQueryType(GenConstants.QUERY_LIKE); } // 鐘舵�佸瓧娈佃缃崟閫夋 - if (StringUtils.endsWithIgnoreCase(columnName, "status")) + if (StrUtil.endWithIgnoreCase(columnName, "status")) { column.setHtmlType(GenConstants.HTML_RADIO); } // 绫诲瀷&鎬у埆瀛楁璁剧疆涓嬫媺妗� - else if (StringUtils.endsWithIgnoreCase(columnName, "type") - || StringUtils.endsWithIgnoreCase(columnName, "sex")) + else if (StrUtil.endWithIgnoreCase(columnName, "type") + || StrUtil.endWithIgnoreCase(columnName, "sex")) { column.setHtmlType(GenConstants.HTML_SELECT); } // 鍥剧墖瀛楁璁剧疆鍥剧墖涓婁紶鎺т欢 - else if (StringUtils.endsWithIgnoreCase(columnName, "image")) + else if (StrUtil.endWithIgnoreCase(columnName, "image")) { column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); } // 鏂囦欢瀛楁璁剧疆鏂囦欢涓婁紶鎺т欢 - else if (StringUtils.endsWithIgnoreCase(columnName, "file")) + else if (StrUtil.endWithIgnoreCase(columnName, "file")) { column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); } // 鍐呭瀛楁璁剧疆瀵屾枃鏈帶浠� - else if (StringUtils.endsWithIgnoreCase(columnName, "content")) + else if (StrUtil.endWithIgnoreCase(columnName, "content")) { column.setHtmlType(GenConstants.HTML_EDITOR); } @@ -151,7 +152,7 @@ { int lastIndex = packageName.lastIndexOf("."); int nameLength = packageName.length(); - String moduleName = StringUtils.substring(packageName, lastIndex + 1, nameLength); + String moduleName = StrUtil.sub(packageName, lastIndex + 1, nameLength); return moduleName; } @@ -165,7 +166,7 @@ { int lastIndex = tableName.lastIndexOf("_"); int nameLength = tableName.length(); - String businessName = StringUtils.substring(tableName, lastIndex + 1, nameLength); + String businessName = StrUtil.sub(tableName, lastIndex + 1, nameLength); return businessName; } @@ -179,12 +180,12 @@ { boolean autoRemovePre = GenConfig.getAutoRemovePre(); String tablePrefix = GenConfig.getTablePrefix(); - if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) + if (autoRemovePre && StrUtil.isNotEmpty(tablePrefix)) { - String[] searchList = StringUtils.split(tablePrefix, ","); + String[] searchList = StrUtil.split(tablePrefix, ","); tableName = replaceFirst(tableName, searchList); } - return StringUtils.convertToCamelCase(tableName); + return StrUtil.toCamelCase(tableName); } /** @@ -227,9 +228,9 @@ */ public static String getDbType(String columnType) { - if (StringUtils.indexOf(columnType, "(") > 0) + if (StrUtil.indexOf(columnType, '(') > 0) { - return StringUtils.substringBefore(columnType, "("); + return StrUtil.subBefore(columnType, "(",false); } else { @@ -245,9 +246,9 @@ */ public static Integer getColumnLength(String columnType) { - if (StringUtils.indexOf(columnType, "(") > 0) + if (StrUtil.indexOf(columnType, '(') > 0) { - String length = StringUtils.substringBetween(columnType, "(", ")"); + String length = StrUtil.subBetween(columnType, "(", ")"); return Integer.valueOf(length); } else diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java index 12702b7..81d0d47 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -1,15 +1,17 @@ package com.ruoyi.generator.util; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import org.apache.velocity.VelocityContext; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; +import org.apache.velocity.VelocityContext; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; /** * 妯℃澘澶勭悊宸ュ叿绫� @@ -43,11 +45,11 @@ VelocityContext velocityContext = new VelocityContext(); velocityContext.put("tplCategory", genTable.getTplCategory()); velocityContext.put("tableName", genTable.getTableName()); - velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "銆愯濉啓鍔熻兘鍚嶇О銆�"); + velocityContext.put("functionName", StrUtil.isNotEmpty(functionName) ? functionName : "銆愯濉啓鍔熻兘鍚嶇О銆�"); velocityContext.put("ClassName", genTable.getClassName()); - velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); + velocityContext.put("className", StrUtil.lowerFirst(genTable.getClassName())); velocityContext.put("moduleName", genTable.getModuleName()); - velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); + velocityContext.put("BusinessName", StrUtil.upperFirst(genTable.getBusinessName())); velocityContext.put("businessName", genTable.getBusinessName()); velocityContext.put("basePackage", getPackagePrefix(packageName)); velocityContext.put("packageName", packageName); @@ -106,15 +108,15 @@ String subTableName = genTable.getSubTableName(); String subTableFkName = genTable.getSubTableFkName(); String subClassName = genTable.getSubTable().getClassName(); - String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); + String subTableFkClassName = StrUtil.toCamelCase(subTableFkName); context.put("subTable", subTable); context.put("subTableName", subTableName); context.put("subTableFkName", subTableFkName); context.put("subTableFkClassName", subTableFkClassName); - context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); + context.put("subTableFkclassName", StrUtil.lowerFirst(subTableFkClassName)); context.put("subClassName", subClassName); - context.put("subclassName", StringUtils.uncapitalize(subClassName)); + context.put("subclassName", StrUtil.lowerFirst(subClassName)); context.put("subImportList", getImportList(genTable.getSubTable())); } @@ -166,37 +168,37 @@ // 涓氬姟鍚嶇О String businessName = genTable.getBusinessName(); - String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); + String javaPath = PROJECT_PATH + "/" + StrUtil.replace(packageName, ".", "/"); String mybatisPath = MYBATIS_PATH + "/" + moduleName; String vuePath = "vue"; if (template.contains("domain.java.vm")) { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); + fileName = StrUtil.format("{}/domain/{}.java", javaPath, className); } - if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) + if (template.contains("sub-domain.java.vm") && StrUtil.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); + fileName = StrUtil.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); } else if (template.contains("mapper.java.vm")) { - fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); + fileName = StrUtil.format("{}/mapper/{}Mapper.java", javaPath, className); } else if (template.contains("service.java.vm")) { - fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); + fileName = StrUtil.format("{}/service/I{}Service.java", javaPath, className); } else if (template.contains("serviceImpl.java.vm")) { - fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); + fileName = StrUtil.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); } else if (template.contains("controller.java.vm")) { - fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); + fileName = StrUtil.format("{}/controller/{}Controller.java", javaPath, className); } else if (template.contains("mapper.xml.vm")) { - fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); + fileName = StrUtil.format("{}/{}Mapper.xml", mybatisPath, className); } else if (template.contains("sql.vm")) { @@ -204,15 +206,15 @@ } else if (template.contains("api.js.vm")) { - fileName = StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); + fileName = StrUtil.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); } else if (template.contains("index.vue.vm")) { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + fileName = StrUtil.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); } else if (template.contains("index-tree.vue.vm")) { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + fileName = StrUtil.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); } return fileName; } @@ -226,7 +228,7 @@ public static String getPackagePrefix(String packageName) { int lastIndex = packageName.lastIndexOf("."); - String basePackage = StringUtils.substring(packageName, 0, lastIndex); + String basePackage = StrUtil.sub(packageName, 0, lastIndex); return basePackage; } @@ -241,7 +243,7 @@ List<GenTableColumn> columns = genTable.getColumns(); GenTable subGenTable = genTable.getSubTable(); HashSet<String> importList = new HashSet<String>(); - if (StringUtils.isNotNull(subGenTable)) + if (Validator.isNotNull(subGenTable)) { importList.add("java.util.List"); } @@ -269,7 +271,7 @@ */ public static String getPermissionPrefix(String moduleName, String businessName) { - return StringUtils.format("{}:{}", moduleName, businessName); + return StrUtil.format("{}:{}", moduleName, businessName); } /** @@ -280,7 +282,7 @@ */ public static String getParentMenuId(JSONObject paramsObj) { - if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID)) + if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID)) { return paramsObj.getString(GenConstants.PARENT_MENU_ID); } @@ -297,9 +299,9 @@ { if (paramsObj.containsKey(GenConstants.TREE_CODE)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); + return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); } - return StringUtils.EMPTY; + return StrUtil.EMPTY; } /** @@ -312,9 +314,9 @@ { if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); } - return StringUtils.EMPTY; + return StrUtil.EMPTY; } /** @@ -327,9 +329,9 @@ { if (paramsObj.containsKey(GenConstants.TREE_NAME)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); + return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); } - return StringUtils.EMPTY; + return StrUtil.EMPTY; } /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java index e9b8071..939bfa0 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java @@ -1,18 +1,19 @@ package com.ruoyi.quartz.domain; -import java.io.Serializable; -import java.util.Date; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; +import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.constant.ScheduleConstants; import com.ruoyi.common.core.domain.BaseEntity; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.quartz.util.CronUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.util.Date; /** * 瀹氭椂浠诲姟璋冨害琛� sys_job @@ -114,7 +115,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getNextValidTime() { - if (StringUtils.isNotEmpty(cronExpression)) + if (StrUtil.isNotEmpty(cronExpression)) { return CronUtils.getNextExecution(cronExpression); } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index 25d1ddd..7f88a58 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -1,7 +1,8 @@ package com.ruoyi.quartz.task; +import cn.hutool.core.lang.Console; +import cn.hutool.core.util.StrUtil; import org.springframework.stereotype.Component; -import com.ruoyi.common.utils.StringUtils; /** * 瀹氭椂浠诲姟璋冨害娴嬭瘯 @@ -13,16 +14,16 @@ { public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { - System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i)); + Console.log(StrUtil.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i)); } public void ryParams(String params) { - System.out.println("鎵ц鏈夊弬鏂规硶锛�" + params); + Console.log("鎵ц鏈夊弬鏂规硶锛�" + params); } public void ryNoParams() { - System.out.println("鎵ц鏃犲弬鏂规硶"); + Console.log("鎵ц鏃犲弬鏂规硶"); } } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java index fd652d6..9394e2a 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java @@ -1,20 +1,22 @@ package com.ruoyi.quartz.util; -import java.util.Date; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.ScheduleConstants; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.service.ISysJobLogService; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.ScheduleConstants; -import com.ruoyi.common.utils.ExceptionUtil; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.quartz.domain.SysJob; -import com.ruoyi.quartz.domain.SysJobLog; -import com.ruoyi.quartz.service.ISysJobLogService; + +import java.util.Date; /** * 鎶借薄quartz璋冪敤 @@ -34,11 +36,11 @@ public void execute(JobExecutionContext context) throws JobExecutionException { SysJob sysJob = new SysJob(); - BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); + BeanUtil.copyProperties(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); try { before(context, sysJob); - if (sysJob != null) + if (Validator.isNotNull(sysJob)) { doExecute(context, sysJob); } @@ -84,7 +86,7 @@ if (e != null) { sysJobLog.setStatus(Constants.FAIL); - String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); + String errorMsg = StrUtil.sub(ExceptionUtil.stacktraceToString(e), 0, 2000); sysJobLog.setExceptionInfo(errorMsg); } else diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java index 5519c67..f017e1b 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java @@ -1,12 +1,14 @@ package com.ruoyi.quartz.util; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.quartz.domain.SysJob; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.quartz.domain.SysJob; /** * 浠诲姟鎵ц宸ュ叿 @@ -50,7 +52,7 @@ throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) + if (Validator.isNotNull(methodParams) && methodParams.size() > 0) { Method method = bean.getClass().getDeclaredMethod(methodName, getMethodParamsType(methodParams)); method.invoke(bean, getMethodParamsValue(methodParams)); @@ -70,7 +72,7 @@ */ public static boolean isValidClassName(String invokeTarget) { - return StringUtils.countMatches(invokeTarget, ".") > 1; + return StrUtil.count(invokeTarget, ".") > 1; } /** @@ -81,8 +83,8 @@ */ public static String getBeanName(String invokeTarget) { - String beanName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringBeforeLast(beanName, "."); + String beanName = StrUtil.subBefore(invokeTarget, "(",false); + return StrUtil.subBefore(beanName, ".",true); } /** @@ -93,8 +95,8 @@ */ public static String getMethodName(String invokeTarget) { - String methodName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringAfterLast(methodName, "."); + String methodName = StrUtil.subBefore(invokeTarget, "(",false); + return StrUtil.subAfter(methodName, ".",true); } /** @@ -105,8 +107,8 @@ */ public static List<Object[]> getMethodParams(String invokeTarget) { - String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")"); - if (StringUtils.isEmpty(methodStr)) + String methodStr = StrUtil.subBetween(invokeTarget, "(", ")"); + if (StrUtil.isEmpty(methodStr)) { return null; } @@ -114,26 +116,26 @@ List<Object[]> classs = new LinkedList<>(); for (int i = 0; i < methodParams.length; i++) { - String str = StringUtils.trimToEmpty(methodParams[i]); + String str = StrUtil.trimToEmpty(methodParams[i]); // String瀛楃涓茬被鍨嬶紝鍖呭惈' - if (StringUtils.contains(str, "'")) + if (StrUtil.contains(str, "'")) { - classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class }); + classs.add(new Object[] { StrUtil.replace(str, "'", ""), String.class }); } // boolean甯冨皵绫诲瀷锛岀瓑浜巘rue鎴栬�協alse - else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false")) + else if (StrUtil.equals(str, "true") || StrUtil.equalsIgnoreCase(str, "false")) { classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); } // long闀挎暣褰紝鍖呭惈L - else if (StringUtils.containsIgnoreCase(str, "L")) + else if (StrUtil.containsIgnoreCase(str, "L")) { - classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class }); + classs.add(new Object[] { Long.valueOf(StrUtil.replaceIgnoreCase(str, "L", "")), Long.class }); } // double娴偣绫诲瀷锛屽寘鍚獶 - else if (StringUtils.containsIgnoreCase(str, "D")) + else if (StrUtil.containsIgnoreCase(str, "D")) { - classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class }); + classs.add(new Object[] { Double.valueOf(StrUtil.replaceIgnoreCase(str, "D", "")), Double.class }); } // 鍏朵粬绫诲瀷褰掔被涓烘暣褰� else diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index 9cd51de..2497f1d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -1,21 +1,23 @@ package com.ruoyi.system.service.impl; -import java.util.Collection; -import java.util.List; -import javax.annotation.PostConstruct; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.enums.DataSourceType; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.util.Collection; +import java.util.List; /** * 鍙傛暟閰嶇疆 鏈嶅姟灞傚疄鐜� @@ -69,19 +71,19 @@ public String selectConfigByKey(String configKey) { String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey))); - if (StringUtils.isNotEmpty(configValue)) + if (Validator.isNotEmpty(configValue)) { return configValue; } SysConfig config = new SysConfig(); config.setConfigKey(configKey); SysConfig retConfig = configMapper.selectConfig(config); - if (StringUtils.isNotNull(retConfig)) + if (Validator.isNotNull(retConfig)) { redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); return retConfig.getConfigValue(); } - return StringUtils.EMPTY; + return StrUtil.EMPTY; } /** @@ -142,7 +144,7 @@ for (Long configId : configIds) { SysConfig config = selectConfigById(configId); - if (StringUtils.equals(UserConstants.YES, config.getConfigType())) + if (StrUtil.equals(UserConstants.YES, config.getConfigType())) { throw new CustomException(String.format("鍐呯疆鍙傛暟銆�%1$s銆戜笉鑳藉垹闄� ", config.getConfigKey())); } @@ -175,9 +177,9 @@ @Override public String checkConfigKeyUnique(SysConfig config) { - Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); + Long configId = Validator.isNull(config.getConfigId()) ? -1L : config.getConfigId(); SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); - if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) + if (Validator.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 7d6984d..3b481b6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,21 +1,22 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.service.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; /** * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇 @@ -161,9 +162,9 @@ @Override public String checkDeptNameUnique(SysDept dept) { - Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); + Long deptId = Validator.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); - if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) + if (Validator.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -200,7 +201,7 @@ { SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); - if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) + if (Validator.isNotNull(newParentDept) && Validator.isNotNull(oldDept)) { String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); String oldAncestors = oldDept.getAncestors(); @@ -288,7 +289,7 @@ while (it.hasNext()) { SysDept n = (SysDept) it.next(); - if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) + if (Validator.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) { tlist.add(n); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 48ba3c6..2c9f655 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -1,19 +1,20 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import javax.annotation.PostConstruct; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysDictType; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.DictUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.mapper.SysDictTypeMapper; import com.ruoyi.system.service.ISysDictTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; +import java.util.List; /** * 瀛楀吀 涓氬姟灞傚鐞� @@ -76,12 +77,12 @@ public List<SysDictData> selectDictDataByType(String dictType) { List<SysDictData> dictDatas = DictUtils.getDictCache(dictType); - if (StringUtils.isNotEmpty(dictDatas)) + if (Validator.isNotEmpty(dictDatas)) { return dictDatas; } dictDatas = dictDataMapper.selectDictDataByType(dictType); - if (StringUtils.isNotEmpty(dictDatas)) + if (Validator.isNotEmpty(dictDatas)) { DictUtils.setDictCache(dictType, dictDatas); return dictDatas; @@ -193,9 +194,9 @@ @Override public String checkDictTypeUnique(SysDictType dict) { - Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); + Long dictId = Validator.isNull(dict.getDictId()) ? -1L : dict.getDictId(); SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); - if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) + if (Validator.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 09748eb..c013928 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -1,28 +1,24 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.service.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; /** * 鑿滃崟 涓氬姟灞傚鐞� @@ -91,7 +87,7 @@ Set<String> permsSet = new HashSet<>(); for (String perm : perms) { - if (StringUtils.isNotEmpty(perm)) + if (Validator.isNotEmpty(perm)) { permsSet.addAll(Arrays.asList(perm.trim().split(","))); } @@ -150,7 +146,7 @@ router.setName(getRouteName(menu)); router.setPath(getRouterPath(menu)); router.setComponent(getComponent(menu)); - router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()))); + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StrUtil.equals("1", menu.getIsCache()))); List<SysMenu> cMenus = menu.getChildren(); if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { @@ -164,8 +160,8 @@ RouterVo children = new RouterVo(); children.setPath(menu.getPath()); children.setComponent(menu.getComponent()); - children.setName(StringUtils.capitalize(menu.getPath())); - children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()))); + children.setName(StrUtil.upperFirst(menu.getPath())); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StrUtil.equals("1", menu.getIsCache()))); childrenList.add(children); router.setChildren(childrenList); } @@ -302,9 +298,9 @@ @Override public String checkMenuNameUnique(SysMenu menu) { - Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); + Long menuId = Validator.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); - if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) + if (Validator.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -319,11 +315,11 @@ */ public String getRouteName(SysMenu menu) { - String routerName = StringUtils.capitalize(menu.getPath()); + String routerName = StrUtil.upperFirst(menu.getPath()); // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 if (isMeunFrame(menu)) { - routerName = StringUtils.EMPTY; + routerName = StrUtil.EMPTY; } return routerName; } @@ -360,11 +356,11 @@ public String getComponent(SysMenu menu) { String component = UserConstants.LAYOUT; - if (StringUtils.isNotEmpty(menu.getComponent()) && !isMeunFrame(menu)) + if (StrUtil.isNotEmpty(menu.getComponent()) && !isMeunFrame(menu)) { component = menu.getComponent(); } - else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) + else if (StrUtil.isEmpty(menu.getComponent()) && isParentView(menu)) { component = UserConstants.PARENT_VIEW; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java index c0da6d4..6697f31 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -1,15 +1,16 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.mapper.SysPostMapper; import com.ruoyi.system.mapper.SysUserPostMapper; import com.ruoyi.system.service.ISysPostService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; /** * 宀椾綅淇℃伅 鏈嶅姟灞傚鐞� @@ -81,9 +82,9 @@ @Override public String checkPostNameUnique(SysPost post) { - Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId(); SysPost info = postMapper.checkPostNameUnique(post.getPostName()); - if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) + if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -99,9 +100,9 @@ @Override public String checkPostCodeUnique(SysPost post) { - Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId(); SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); - if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) + if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 2271472..7375691 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,18 +1,10 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.domain.SysRoleMenu; @@ -21,6 +13,11 @@ import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysRoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; /** * 瑙掕壊 涓氬姟灞傚鐞� @@ -68,7 +65,7 @@ Set<String> permsSet = new HashSet<>(); for (SysRole perm : perms) { - if (StringUtils.isNotNull(perm)) + if (Validator.isNotNull(perm)) { permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); } @@ -120,9 +117,9 @@ @Override public String checkRoleNameUnique(SysRole role) { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + Long roleId = Validator.isNull(role.getRoleId()) ? -1L : role.getRoleId(); SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + if (Validator.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -138,9 +135,9 @@ @Override public String checkRoleKeyUnique(SysRole role) { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + Long roleId = Validator.isNull(role.getRoleId()) ? -1L : role.getRoleId(); SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + if (Validator.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -155,7 +152,7 @@ @Override public void checkRoleAllowed(SysRole role) { - if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) + if (Validator.isNotNull(role.getRoleId()) && role.isAdmin()) { throw new CustomException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java index f80a877..dda0dab 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java @@ -1,10 +1,11 @@ package com.ruoyi.system.service.impl; -import org.springframework.stereotype.Service; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysUserOnline; import com.ruoyi.system.service.ISysUserOnlineService; +import org.springframework.stereotype.Service; /** * 鍦ㄧ嚎鐢ㄦ埛 鏈嶅姟灞傚鐞� @@ -24,7 +25,7 @@ @Override public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) { - if (StringUtils.equals(ipaddr, user.getIpaddr())) + if (StrUtil.equals(ipaddr, user.getIpaddr())) { return loginUserToUserOnline(user); } @@ -41,7 +42,7 @@ @Override public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) { - if (StringUtils.equals(userName, user.getUsername())) + if (StrUtil.equals(userName, user.getUsername())) { return loginUserToUserOnline(user); } @@ -59,7 +60,7 @@ @Override public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) { - if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) + if (StrUtil.equals(ipaddr, user.getIpaddr()) && StrUtil.equals(userName, user.getUsername())) { return loginUserToUserOnline(user); } @@ -75,7 +76,7 @@ @Override public SysUserOnline loginUserToUserOnline(LoginUser user) { - if (StringUtils.isNull(user) || StringUtils.isNull(user.getUser())) + if (Validator.isNull(user) || Validator.isNull(user.getUser())) { return null; } @@ -87,7 +88,7 @@ sysUserOnline.setBrowser(user.getBrowser()); sysUserOnline.setOs(user.getOs()); sysUserOnline.setLoginTime(user.getLoginTime()); - if (StringUtils.isNotNull(user.getUser().getDept())) + if (Validator.isNotNull(user.getUser().getDept())) { sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index b48a7de..86b36b6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,29 +1,26 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.mapper.SysPostMapper; -import com.ruoyi.system.mapper.SysRoleMapper; -import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.system.mapper.SysUserPostMapper; -import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; /** * 鐢ㄦ埛 涓氬姟灞傚鐞� @@ -105,7 +102,7 @@ { idsStr.append(role.getRoleName()).append(","); } - if (StringUtils.isNotEmpty(idsStr.toString())) + if (Validator.isNotEmpty(idsStr.toString())) { return idsStr.substring(0, idsStr.length() - 1); } @@ -127,7 +124,7 @@ { idsStr.append(post.getPostName()).append(","); } - if (StringUtils.isNotEmpty(idsStr.toString())) + if (Validator.isNotEmpty(idsStr.toString())) { return idsStr.substring(0, idsStr.length() - 1); } @@ -160,9 +157,9 @@ @Override public String checkPhoneUnique(SysUser user) { - Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + Long userId = Validator.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + if (Validator.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -178,9 +175,9 @@ @Override public String checkEmailUnique(SysUser user) { - Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + Long userId = Validator.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + if (Validator.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -195,7 +192,7 @@ @Override public void checkUserAllowed(SysUser user) { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) + if (Validator.isNotNull(user.getUserId()) && user.isAdmin()) { throw new CustomException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); } @@ -312,7 +309,7 @@ public void insertUserRole(SysUser user) { Long[] roles = user.getRoleIds(); - if (StringUtils.isNotNull(roles)) + if (Validator.isNotNull(roles)) { // 鏂板鐢ㄦ埛涓庤鑹茬鐞� List<SysUserRole> list = new ArrayList<SysUserRole>(); @@ -338,7 +335,7 @@ public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotNull(posts)) + if (Validator.isNotNull(posts)) { // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� List<SysUserPost> list = new ArrayList<SysUserPost>(); @@ -405,7 +402,7 @@ @Override public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) { - if (StringUtils.isNull(userList) || userList.size() == 0) + if (Validator.isNull(userList) || userList.size() == 0) { throw new CustomException("瀵煎叆鐢ㄦ埛鏁版嵁涓嶈兘涓虹┖锛�"); } @@ -420,7 +417,7 @@ { // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) + if (Validator.isNull(u)) { user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); -- Gitblit v1.9.3