From 3ccf5c0e502d26f3e6418a123f7e3be676dd9cc7 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 22 Jun 2022 17:57:33 +0800 Subject: [PATCH 001/299] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E7=BC=96=E7=A0=81/=E8=A7=A3=E7=A0=81=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E9=9B=86=E6=88=90=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/ServletUtils.java | 40 +++++++++++++++++++ .../common/utils/file/FileUploadUtils.java | 1 - 2 files changed, 40 insertions(+), 1 deletion(-) 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 d67b24635..1cbf72f00 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,12 +1,16 @@ package com.ruoyi.common.utils; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; 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.constant.Constants; import com.ruoyi.common.core.text.Convert; /** @@ -143,4 +147,40 @@ public class ServletUtils String ajax = request.getParameter("__ajax"); return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); } + + /** + * 内容编码 + * + * @param str 内容 + * @return 编码后的内容 + */ + public static String urlEncode(String str) + { + try + { + return URLEncoder.encode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return StringUtils.EMPTY; + } + } + + /** + * 内容解码 + * + * @param str 内容 + * @return 解码后的内容 + */ + public static String urlDecode(String str) + { + try + { + return URLDecoder.decode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return StringUtils.EMPTY; + } + } } 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 79bf64716..4652a2985 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 @@ -193,7 +193,6 @@ public class FileUploadUtils throw new InvalidExtensionException(allowedExtension, extension, fileName); } } - } /** From aaedafff5245583d5a9e40245286f525f888a267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=83=81=E9=94=AE?= Date: Thu, 23 Jun 2022 14:42:10 +0800 Subject: [PATCH 002/299] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E7=8A=B6=E6=80=81=E7=A0=81=E4=B8=BA200,?= =?UTF-8?q?=E4=B8=8E=E5=85=A8=E5=B1=80=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 4ce56f150..207c59890 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -12,7 +12,7 @@ public class R implements Serializable private static final long serialVersionUID = 1L; /** 成功 */ - public static final int SUCCESS = 0; + public static final int SUCCESS = 200; /** 失败 */ public static final int FAIL = 500; From abb88d622ae10d95212054b1589dc3e15614cdc8 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Fri, 24 Jun 2022 09:22:05 +0800 Subject: [PATCH 003/299] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E7=8A=B6=E6=80=81=E7=A0=81=E4=B8=8E=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/core/domain/R.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 207c59890..c3df6aefe 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,6 +1,7 @@ package com.ruoyi.common.core.domain; import java.io.Serializable; +import com.ruoyi.common.constant.HttpStatus; /** * 响应信息主体 @@ -12,10 +13,10 @@ public class R implements Serializable private static final long serialVersionUID = 1L; /** 成功 */ - public static final int SUCCESS = 200; + public static final int SUCCESS = HttpStatus.SUCCESS; /** 失败 */ - public static final int FAIL = 500; + public static final int FAIL = HttpStatus.ERROR; private int code; From 9d7e32fb073842eb9d346878b49ce5bacfa3b51c Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 25 Jun 2022 09:39:39 +0800 Subject: [PATCH 004/299] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=8F=9C=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/CaptchaController.java | 5 +- .../controller/monitor/CacheController.java | 66 +++++ .../monitor/SysUserOnlineController.java | 6 +- .../ruoyi/common/annotation/RateLimiter.java | 4 +- .../ruoyi/common/constant/CacheConstants.java | 39 +++ .../com/ruoyi/common/constant/Constants.java | 32 +-- .../com/ruoyi/common/utils/DictUtils.java | 6 +- .../impl/SameUrlDataInterceptor.java | 4 +- .../web/service/SysLoginService.java | 5 +- .../web/service/SysRegisterService.java | 3 +- .../framework/web/service/TokenService.java | 3 +- .../com/ruoyi/system/domain/SysCache.java | 81 ++++++ .../service/impl/SysConfigServiceImpl.java | 16 +- ruoyi-ui/src/api/monitor/cache.js | 48 ++++ ruoyi-ui/src/assets/icons/svg/redis-list.svg | 2 + ruoyi-ui/src/views/monitor/cache/index.vue | 22 +- ruoyi-ui/src/views/monitor/cache/list.vue | 241 ++++++++++++++++++ sql/{ry_20220613.sql => ry_20220625.sql} | 8 +- 18 files changed, 522 insertions(+), 69 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java create mode 100644 ruoyi-ui/src/assets/icons/svg/redis-list.svg create mode 100644 ruoyi-ui/src/views/monitor/cache/list.vue rename sql/{ry_20220613.sql => ry_20220625.sql} (99%) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 955c78436..e8800b948 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -6,12 +6,13 @@ import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; -import com.ruoyi.common.config.RuoYiConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.google.code.kaptcha.Producer; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; @@ -54,7 +55,7 @@ public class CaptchaController // 保存验证码信息 String uuid = IdUtils.simpleUUID(); - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; String capStr = null, code = null; BufferedImage image = null; 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 fa9c623f2..cbd20619c 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,19 +1,25 @@ package com.ruoyi.web.controller.monitor; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; 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 com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysCache; /** * 缓存监控 @@ -27,6 +33,16 @@ public class CacheController @Autowired private RedisTemplate redisTemplate; + private final static List caches = new ArrayList(); + { + caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息")); + caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息")); + caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典")); + caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码")); + caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); + caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); + } + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping() public AjaxResult getInfo() throws Exception @@ -50,4 +66,54 @@ public class CacheController result.put("commandStats", pieList); return AjaxResult.success(result); } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getNames") + public AjaxResult cache() + { + return AjaxResult.success(caches); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getKeys/{cacheName}") + public AjaxResult getCacheKeys(@PathVariable String cacheName) + { + Set cacheKyes = redisTemplate.keys(cacheName + "*"); + return AjaxResult.success(cacheKyes); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping("/getValue/{cacheName}/{cacheKey}") + public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) + { + String cacheValue = redisTemplate.opsForValue().get(cacheKey); + SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); + return AjaxResult.success(sysCache); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheName/{cacheName}") + public AjaxResult clearCacheName(@PathVariable String cacheName) + { + Collection cacheKeys = redisTemplate.keys(cacheName + "*"); + redisTemplate.delete(cacheKeys); + return AjaxResult.success(); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheKey/{cacheKey}") + public AjaxResult clearCacheKey(@PathVariable String cacheKey) + { + redisTemplate.delete(cacheKey); + return AjaxResult.success(); + } + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @DeleteMapping("/clearCacheAll") + public AjaxResult clearCacheAll() + { + Collection cacheKeys = redisTemplate.keys("*"); + redisTemplate.delete(cacheKeys); + return AjaxResult.success(); + } } 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 4ca306d70..6c2b3bef6 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 @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginUser; @@ -42,7 +42,7 @@ public class SysUserOnlineController extends BaseController @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { - Collection keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*"); + Collection keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); List userOnlineList = new ArrayList(); for (String key : keys) { @@ -86,7 +86,7 @@ public class SysUserOnlineController extends BaseController @DeleteMapping("/{tokenId}") public AjaxResult forceLogout(@PathVariable String tokenId) { - redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + tokenId); + redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); return AjaxResult.success(); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java index 564203861..050ac2d11 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java @@ -5,7 +5,7 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.enums.LimitType; /** @@ -21,7 +21,7 @@ public @interface RateLimiter /** * 限流key */ - public String key() default Constants.RATE_LIMIT_KEY; + public String key() default CacheConstants.RATE_LIMIT_KEY; /** * 限流时间,单位秒 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java new file mode 100644 index 000000000..7ea15aaad --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -0,0 +1,39 @@ +package com.ruoyi.common.constant; + +/** + * 缓存的key 常量 + * + * @author ruoyi + */ +public class CacheConstants +{ + /** + * 登录用户 redis key + */ + public static final String LOGIN_TOKEN_KEY = "login_tokens:"; + + /** + * 验证码 redis key + */ + public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; + + /** + * 参数管理 cache key + */ + public static final String SYS_CONFIG_KEY = "sys_config:"; + + /** + * 字典管理 cache key + */ + public static final String SYS_DICT_KEY = "sys_dict:"; + + /** + * 防重提交 redis key + */ + public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; + + /** + * 限流 redis key + */ + public static final String RATE_LIMIT_KEY = "rate_limit:"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 6deff23bb..2dbdbe648 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -58,27 +58,7 @@ public class Constants * 登录失败 */ public static final String LOGIN_FAIL = "Error"; - - /** - * 验证码 redis key - */ - public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; - - /** - * 登录用户 redis key - */ - public static final String LOGIN_TOKEN_KEY = "login_tokens:"; - - /** - * 防重提交 redis key - */ - public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; - - /** - * 限流 redis key - */ - public static final String RATE_LIMIT_KEY = "rate_limit:"; - + /** * 验证码有效期(分钟) */ @@ -124,16 +104,6 @@ public class Constants */ public static final String JWT_AUTHORITIES = "authorities"; - /** - * 参数管理 cache key - */ - public static final String SYS_CONFIG_KEY = "sys_config:"; - - /** - * 字典管理 cache key - */ - public static final String SYS_DICT_KEY = "sys_dict:"; - /** * 资源映射路径 前缀 */ 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 5a8554b44..39ad84a6b 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 @@ -3,7 +3,7 @@ package com.ruoyi.common.utils; import java.util.Collection; import java.util.List; import com.alibaba.fastjson2.JSONArray; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.spring.SpringUtils; @@ -169,7 +169,7 @@ public class DictUtils */ public static void clearDictCache() { - Collection keys = SpringUtils.getBean(RedisCache.class).keys(Constants.SYS_DICT_KEY + "*"); + Collection keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.SYS_DICT_KEY + "*"); SpringUtils.getBean(RedisCache.class).deleteObject(keys); } @@ -181,6 +181,6 @@ public class DictUtils */ public static String getCacheKey(String configKey) { - return Constants.SYS_DICT_KEY + configKey; + return CacheConstants.SYS_DICT_KEY + configKey; } } 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 0c5a40d11..316a370c1 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 @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.RepeatSubmit; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.filter.RepeatedlyRequestWrapper; import com.ruoyi.common.utils.StringUtils; @@ -63,7 +63,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor String submitKey = StringUtils.trimToEmpty(request.getHeader(header)); // 唯一标识(指定key + url + 消息头) - String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + url + submitKey; + String cacheRepeatKey = CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey; Object sessionObj = redisCache.getCacheObject(cacheRepeatKey); if (sessionObj != null) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 6f8b9aa5c..5776c5222 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -7,6 +7,7 @@ import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; @@ -17,8 +18,8 @@ import com.ruoyi.common.exception.user.CaptchaExpireException; import com.ruoyi.common.exception.user.UserPasswordNotMatchException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.MessageUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.IpUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; @@ -103,7 +104,7 @@ public class SysLoginService */ public void validateCaptcha(String username, String code, String uuid) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); redisCache.deleteObject(verifyKey); if (captcha == null) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java index c7de444ee..43b1ce3c1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -2,6 +2,7 @@ package com.ruoyi.framework.web.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -100,7 +101,7 @@ public class SysRegisterService */ public void validateCaptcha(String username, String code, String uuid) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); redisCache.deleteObject(verifyKey); if (captcha == null) 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 5b4c41466..cadeb4e37 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 @@ -7,6 +7,7 @@ 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 com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; @@ -220,6 +221,6 @@ public class TokenService private String getTokenKey(String uuid) { - return Constants.LOGIN_TOKEN_KEY + uuid; + return CacheConstants.LOGIN_TOKEN_KEY + uuid; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java new file mode 100644 index 000000000..2ee821203 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java @@ -0,0 +1,81 @@ +package com.ruoyi.system.domain; + +import com.ruoyi.common.utils.StringUtils; + +/** + * 缓存信息 + * + * @author ruoyi + */ +public class SysCache +{ + /** 缓存名称 */ + private String cacheName = ""; + + /** 缓存键名 */ + private String cacheKey = ""; + + /** 缓存内容 */ + private String cacheValue = ""; + + /** 备注 */ + private String remark = ""; + + public SysCache() + { + + } + + public SysCache(String cacheName, String remark) + { + this.cacheName = cacheName; + this.remark = remark; + } + + public SysCache(String cacheName, String cacheKey, String cacheValue) + { + this.cacheName = StringUtils.replace(cacheName, ":", ""); + this.cacheKey = StringUtils.replace(cacheKey, cacheName, ""); + this.cacheValue = cacheValue; + } + + public String getCacheName() + { + return cacheName; + } + + public void setCacheName(String cacheName) + { + this.cacheName = cacheName; + } + + public String getCacheKey() + { + return cacheKey; + } + + public void setCacheKey(String cacheKey) + { + this.cacheKey = cacheKey; + } + + public String getCacheValue() + { + return cacheValue; + } + + public void setCacheValue(String cacheValue) + { + this.cacheValue = cacheValue; + } + + public String getRemark() + { + return remark; + } + + public void setRemark(String remark) + { + this.remark = remark; + } +} 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 c258a4887..1017d23fa 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,7 +1,12 @@ package com.ruoyi.system.service.impl; +import java.util.Collection; +import java.util.List; +import javax.annotation.PostConstruct; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import com.ruoyi.common.annotation.DataSource; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.text.Convert; @@ -11,11 +16,6 @@ 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; /** * 参数配置 服务层实现 @@ -181,7 +181,7 @@ public class SysConfigServiceImpl implements ISysConfigService @Override public void clearConfigCache() { - Collection keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); + Collection keys = redisCache.keys(CacheConstants.SYS_CONFIG_KEY + "*"); redisCache.deleteObject(keys); } @@ -221,6 +221,6 @@ public class SysConfigServiceImpl implements ISysConfigService */ private String getCacheKey(String configKey) { - return Constants.SYS_CONFIG_KEY + configKey; + return CacheConstants.SYS_CONFIG_KEY + configKey; } } diff --git a/ruoyi-ui/src/api/monitor/cache.js b/ruoyi-ui/src/api/monitor/cache.js index 2ffaf7a3f..e1f2c878c 100644 --- a/ruoyi-ui/src/api/monitor/cache.js +++ b/ruoyi-ui/src/api/monitor/cache.js @@ -7,3 +7,51 @@ export function getCache() { method: 'get' }) } + +// 查询缓存名称列表 +export function listCacheName() { + return request({ + url: '/monitor/cache/getNames', + method: 'get' + }) +} + +// 查询缓存键名列表 +export function listCacheKey(cacheName) { + return request({ + url: '/monitor/cache/getKeys/' + cacheName, + method: 'get' + }) +} + +// 查询缓存内容 +export function getCacheValue(cacheName, cacheKey) { + return request({ + url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, + method: 'get' + }) +} + +// 清理指定名称缓存 +export function clearCacheName(cacheName) { + return request({ + url: '/monitor/cache/clearCacheName/' + cacheName, + method: 'delete' + }) +} + +// 清理指定键名缓存 +export function clearCacheKey(cacheKey) { + return request({ + url: '/monitor/cache/clearCacheKey/' + cacheKey, + method: 'delete' + }) +} + +// 清理全部缓存 +export function clearCacheAll() { + return request({ + url: '/monitor/cache/clearCacheAll', + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/assets/icons/svg/redis-list.svg b/ruoyi-ui/src/assets/icons/svg/redis-list.svg new file mode 100644 index 000000000..98a15b2a6 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/redis-list.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/views/monitor/cache/index.vue b/ruoyi-ui/src/views/monitor/cache/index.vue index cafa28cfb..cfef20d96 100644 --- a/ruoyi-ui/src/views/monitor/cache/index.vue +++ b/ruoyi-ui/src/views/monitor/cache/index.vue @@ -71,7 +71,7 @@ import { getCache } from "@/api/monitor/cache"; import echarts from "echarts"; export default { - name: "Server", + name: "Cache", data() { return { // 统计命令信息 @@ -79,8 +79,8 @@ export default { // 使用内存 usedmemory: null, // cache信息 - cache: [], - }; + cache: [] + } }, created() { this.getList(); @@ -109,8 +109,8 @@ export default { data: response.data.commandStats, animationEasing: "cubicInOut", animationDuration: 1000, - }, - ], + } + ] }); this.usedmemory = echarts.init(this.$refs.usedmemory, "macarons"); this.usedmemory.setOption({ @@ -130,17 +130,17 @@ export default { { value: parseFloat(this.cache.info.used_memory_human), name: "内存消耗", - }, - ], - }, - ], + } + ] + } + ] }); }); }, // 打开加载层 openLoading() { this.$modal.loading("正在加载缓存监控数据,请稍候!"); - }, - }, + } + } }; diff --git a/ruoyi-ui/src/views/monitor/cache/list.vue b/ruoyi-ui/src/views/monitor/cache/list.vue new file mode 100644 index 000000000..4e52b318c --- /dev/null +++ b/ruoyi-ui/src/views/monitor/cache/list.vue @@ -0,0 +1,241 @@ + + + diff --git a/sql/ry_20220613.sql b/sql/ry_20220625.sql similarity index 99% rename from sql/ry_20220613.sql rename to sql/ry_20220625.sql index 36ba93658..e9e6580a8 100644 --- a/sql/ry_20220613.sql +++ b/sql/ry_20220625.sql @@ -176,9 +176,10 @@ insert into sys_menu values('110', '定时任务', '2', '2', 'job', 'm insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate(), '', null, '数据监控菜单'); insert into sys_menu values('112', '服务监控', '2', '4', 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单'); insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单'); -insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); -insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); -insert into sys_menu values('116', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); +insert into sys_menu values('114', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); +insert into sys_menu values('115', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); +insert into sys_menu values('116', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); +insert into sys_menu values('117', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); -- 三级菜单 insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单'); insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单'); @@ -308,6 +309,7 @@ insert into sys_role_menu values ('2', '113'); insert into sys_role_menu values ('2', '114'); insert into sys_role_menu values ('2', '115'); insert into sys_role_menu values ('2', '116'); +insert into sys_role_menu values ('2', '117'); insert into sys_role_menu values ('2', '500'); insert into sys_role_menu values ('2', '501'); insert into sys_role_menu values ('2', '1000'); From 89eb44afbc1805ea4afd9b03f3a16cf8460cdeee Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 26 Jun 2022 08:53:15 +0800 Subject: [PATCH 005/299] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9B=9E=E6=98=BE=E6=A0=B7=E5=BC=8F=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E6=A1=86=E6=98=BE=E7=A4=BA=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/system/dict/data.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index 1d0be70a5..a68a6012b 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -163,7 +163,7 @@ From 8c956d681b3522bb880d6f0f6b5186d20a0b1149 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 26 Jun 2022 08:53:56 +0800 Subject: [PATCH 006/299] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E5=8E=8B=E7=BC=A9=E6=96=87=E4=BB=B6=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E9=98=B2=E6=AD=A2node=5Fmodules=E8=BF=87=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/vue.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 1a9e913df..2506c93a2 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -61,6 +61,7 @@ module.exports = { plugins: [ // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 new CompressionPlugin({ + cache: false, // 不启用文件缓存 test: /\.(js|css|html)?$/i, // 压缩文件格式 filename: '[path].gz[query]', // 压缩后的文件名 algorithm: 'gzip', // 使用gzip压缩 From ef31a0de420a623c3ed6a4eb7159d965ed9c7b62 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 26 Jun 2022 10:37:45 +0800 Subject: [PATCH 007/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7fastjson=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=882.0.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1cf3c11c..0d5ed92e3 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 2.3.2 2.2.2 1.4.1 - 2.0.7 + 2.0.8 6.1.6 2.11.0 1.4 From 47b8daf69cba3d6306510bbb67b04914dd349fb0 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 26 Jun 2022 13:10:44 +0800 Subject: [PATCH 008/299] =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84mapper=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java index 81bc78090..132a72ed6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java @@ -1,7 +1,6 @@ package com.ruoyi.system.mapper; import java.util.List; -import org.apache.ibatis.annotations.Mapper; import com.ruoyi.common.core.domain.entity.SysDictType; /** @@ -9,7 +8,6 @@ import com.ruoyi.common.core.domain.entity.SysDictType; * * @author ruoyi */ -@Mapper public interface SysDictTypeMapper { /** From 2ae41df23b73cdfbb2f8c32b1ef019ed6a06ea27 Mon Sep 17 00:00:00 2001 From: zbk <540064991@qq.com> Date: Sun, 26 Jun 2022 12:51:55 +0000 Subject: [PATCH 009/299] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8F=98=E9=87=8F=E5=90=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=AF=BC=E8=87=B4=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/monitor/cache/list.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-ui/src/views/monitor/cache/list.vue b/ruoyi-ui/src/views/monitor/cache/list.vue index 4e52b318c..64dd91893 100644 --- a/ruoyi-ui/src/views/monitor/cache/list.vue +++ b/ruoyi-ui/src/views/monitor/cache/list.vue @@ -121,7 +121,7 @@ >清理全部 - + From 6f48fc3c581338addc1c9012149ffeb68b0e7815 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 27 Jun 2022 08:23:47 +0800 Subject: [PATCH 010/299] =?UTF-8?q?=E8=8B=A5=E4=BE=9D=203.8.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- pom.xml | 4 +- ruoyi-admin/pom.xml | 2 +- .../src/main/resources/application.yml | 2 +- ruoyi-common/pom.xml | 2 +- ruoyi-framework/pom.xml | 2 +- ruoyi-generator/pom.xml | 2 +- ruoyi-quartz/pom.xml | 2 +- ruoyi-system/pom.xml | 2 +- ruoyi-ui/package.json | 2 +- ruoyi-ui/src/views/index.vue | 40 ++++++++++++++++++- 11 files changed, 51 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 20ea55b87..b934ad53f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@

logo

-

RuoYi v3.8.2

+

RuoYi v3.8.3

基于SpringBoot+Vue前后端分离的Java快速开发框架

- +

diff --git a/pom.xml b/pom.xml index 0d5ed92e3..b7a16b201 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,14 @@ com.ruoyi ruoyi - 3.8.2 + 3.8.3 ruoyi http://www.ruoyi.vip 若依管理系统 - 3.8.2 + 3.8.3 UTF-8 UTF-8 1.8 diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index ba3cab482..68a922262 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 jar diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 5fa30a4e8..da9c74757 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -3,7 +3,7 @@ ruoyi: # 名称 name: RuoYi # 版本 - version: 3.8.2 + version: 3.8.3 # 版权年份 copyrightYear: 2022 # 实例演示开关 diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 0e687a7da..31486d7d1 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 39b2d88cf..105f38298 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index 426bc2c8c..d7a1cafad 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml index ea2b8ef5b..4d94d1cf8 100644 --- a/ruoyi-quartz/pom.xml +++ b/ruoyi-quartz/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index cdd5bb637..ac27bdb6b 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -5,7 +5,7 @@ ruoyi com.ruoyi - 3.8.2 + 3.8.3 4.0.0 diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 50377539c..b4fb1b68f 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi", - "version": "3.8.2", + "version": "3.8.3", "description": "若依管理系统", "author": "若依", "license": "MIT", diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 08eb055ee..3d9111d7e 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -147,6 +147,44 @@ 更新日志 + +
    +
  1. 新增缓存列表菜单功能
  2. +
  3. 代码生成树表新增(展开/折叠)
  4. +
  5. Excel注解支持color字体颜色
  6. +
  7. 新增Anonymous匿名访问不鉴权注解
  8. +
  9. 用户头像上传限制只能为图片格式
  10. +
  11. 接口使用泛型使其看到响应属性字段
  12. +
  13. 检查定时任务bean所在包名是否为白名单配置
  14. +
  15. 添加页签openPage支持传递参数
  16. +
  17. 用户缓存信息添加部门ancestors祖级列表
  18. +
  19. 升级element-ui到最新版本2.15.8
  20. +
  21. 升级oshi到最新版本6.1.6
  22. +
  23. 升级druid到最新版本1.2.11
  24. +
  25. 升级fastjson到最新版2.0.8
  26. +
  27. 升级spring-boot到最新版本2.5.14
  28. +
  29. 降级jsencrypt版本兼容IE浏览器
  30. +
  31. 删除多余的salt字段
  32. +
  33. 新增获取不带后缀文件名称方法
  34. +
  35. 新增获取配置文件中的属性值方法
  36. +
  37. 新增内容编码/解码方便插件集成使用
  38. +
  39. 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)
  40. +
  41. 优化设置分页参数默认值
  42. +
  43. 优化对空字符串参数处理的过滤
  44. +
  45. 优化显示顺序orderNum类型为整型
  46. +
  47. 优化表单构建按钮不显示正则校验
  48. +
  49. 优化字典数据回显样式下拉框显示值
  50. +
  51. 优化R响应成功状态码与全局保持一致
  52. +
  53. 优化druid开启wall过滤器出现的异常问题
  54. +
  55. 优化用户管理左侧树型组件增加选中高亮保持
  56. +
  57. 优化新增用户与角色信息&用户与岗位信息逻辑
  58. +
  59. 优化默认不启用压缩文件缓存防止node_modules过大
  60. +
  61. 修复字典数据显示不全问题
  62. +
  63. 修复操作日志查询类型条件为0时会查到所有数据
  64. +
  65. 修复Excel注解prompt/combo同时使用不生效问题
  66. +
  67. 其他细节优化
  68. +
+
  1. 前端支持设置是否需要防止数据重复提交
  2. @@ -797,7 +835,7 @@ export default { data() { return { // 版本号 - version: "3.8.2", + version: "3.8.3", }; }, methods: { From ea3d66fda39612fb0d87638b30f1b949a08f0d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 29 Jun 2022 12:43:32 +0800 Subject: [PATCH 011/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20SensitiveService=20=E7=A9=BA=E9=97=AE=E9=A2=98=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A9=BA=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/jackson/SensitiveJsonSerializer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/jackson/SensitiveJsonSerializer.java b/ruoyi-common/src/main/java/com/ruoyi/common/jackson/SensitiveJsonSerializer.java index 404f393fe..b29d9c6ed 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/jackson/SensitiveJsonSerializer.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/jackson/SensitiveJsonSerializer.java @@ -1,5 +1,6 @@ package com.ruoyi.common.jackson; +import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; @@ -26,7 +27,7 @@ public class SensitiveJsonSerializer extends JsonSerializer implements C @Override public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { SensitiveService sensitiveService = SpringUtils.getBean(SensitiveService.class); - if (sensitiveService.isSensitive()) { + if (ObjectUtil.isNotNull(sensitiveService) && sensitiveService.isSensitive()) { gen.writeString(strategy.desensitizer().apply(value)); } else { gen.writeString(value); From 2bd6ad99637fc245f35c871fe936c26961a76fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 29 Jun 2022 15:25:40 +0800 Subject: [PATCH 012/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E6=9B=B4?= =?UTF-8?q?=E6=AD=A3=E9=94=99=E8=AF=AF=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/nginx/nginx.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/docker/nginx/nginx.conf b/script/docker/nginx/nginx.conf index daa2acf49..014b10e7d 100644 --- a/script/docker/nginx/nginx.conf +++ b/script/docker/nginx/nginx.conf @@ -23,16 +23,16 @@ http { upstream server { ip_hash; - server 127.0.0.1:8080; - server 127.0.0.1:8080; + server 172.31.0.60:8080; + server 172.31.0.61:8080; } upstream monitor-admin { - server 127.0.0.1:9090; + server 172.31.0.90:9090; } upstream xxljob-admin { - server 127.0.0.1:9100; + server 172.31.0.92:9100; } server { From b73324e80025787dda0ab1d0e6a13de9ebe68e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 29 Jun 2022 15:28:24 +0800 Subject: [PATCH 013/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E6=9B=B4?= =?UTF-8?q?=E6=AD=A3=E9=94=99=E8=AF=AF=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/nginx/nginx.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/docker/nginx/nginx.conf b/script/docker/nginx/nginx.conf index 014b10e7d..ecf71955f 100644 --- a/script/docker/nginx/nginx.conf +++ b/script/docker/nginx/nginx.conf @@ -23,16 +23,16 @@ http { upstream server { ip_hash; - server 172.31.0.60:8080; - server 172.31.0.61:8080; + server 172.30.0.60:8080; + server 172.30.0.61:8080; } upstream monitor-admin { - server 172.31.0.90:9090; + server 172.30.0.90:9090; } upstream xxljob-admin { - server 172.31.0.92:9100; + server 172.30.0.92:9100; } server { From c6b0e61f4447099060ccd881e72d5d35edac2c97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=8B=E6=9D=B0?= <273666957@qq.com> Date: Thu, 30 Jun 2022 05:41:03 +0000 Subject: [PATCH 014/299] =?UTF-8?q?update=20ruoyi-generator/src/main/java/?= =?UTF-8?q?com/ruoyi/generator/domain/GenTableColumn.java.=20bug-=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E9=A6=96=E5=AD=97?= =?UTF-8?q?=E6=AF=8D=E5=A4=A7=E5=86=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/generator/domain/GenTableColumn.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1ea991796..280204b55 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 @@ -124,7 +124,7 @@ public class GenTableColumn extends BaseEntity { private Integer sort; public String getCapJavaField() { - return StringUtils.uncapitalize(javaField); + return StringUtils.capitalize(javaField); } public boolean isPk() { From 8a97d2717b29d969d79706850f5cb57972153eef Mon Sep 17 00:00:00 2001 From: zendwang Date: Thu, 30 Jun 2022 15:19:26 +0800 Subject: [PATCH 015/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=87=BA=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/system/SysLoginController.java | 9 +-------- .../com/ruoyi/system/service/SysLoginService.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 11 deletions(-) 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 cdb1d6cd6..9c4057898 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,7 +1,5 @@ package com.ruoyi.web.controller.system; -import cn.dev33.satoken.exception.NotLoginException; -import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.R; @@ -102,12 +100,7 @@ public class SysLoginController { @ApiOperation("登出方法") @PostMapping("/logout") public R logout() { - try { - String username = LoginHelper.getUsername(); - StpUtil.logout(); - loginService.logout(username); - } catch (NotLoginException e) { - } + loginService.logout(); return R.ok("退出成功"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java index 1a672e59c..540708f4b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service; +import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; @@ -113,9 +114,16 @@ public class SysLoginService { return StpUtil.getTokenValue(); } - - public void logout(String loginName) { - asyncService.recordLogininfor(loginName, Constants.LOGOUT, MessageUtils.message("user.logout.success"), ServletUtils.getRequest()); + /** + * 退出登录 + */ + public void logout() { + try { + String username = LoginHelper.getUsername(); + StpUtil.logout(); + asyncService.recordLogininfor(username, Constants.LOGOUT, MessageUtils.message("user.logout.success"), ServletUtils.getRequest()); + } catch (NotLoginException e) { + } } /** From ec45cf04af967f46195bc59b8703b34fec137dc3 Mon Sep 17 00:00:00 2001 From: SG <462682667@qq.com> Date: Fri, 1 Jul 2022 13:56:44 +0000 Subject: [PATCH 016/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E5=8F=98=E9=87=8F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/web/controller/monitor/CacheController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 cbd20619c..3ed9f2e57 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 @@ -78,8 +78,8 @@ public class CacheController @GetMapping("/getKeys/{cacheName}") public AjaxResult getCacheKeys(@PathVariable String cacheName) { - Set cacheKyes = redisTemplate.keys(cacheName + "*"); - return AjaxResult.success(cacheKyes); + Set cacheKeys = redisTemplate.keys(cacheName + "*"); + return AjaxResult.success(cacheKeys); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") From 686068c8ed0137cc937a4894f3e110c58ed5b8c8 Mon Sep 17 00:00:00 2001 From: zendwang Date: Mon, 4 Jul 2022 11:30:43 +0800 Subject: [PATCH 017/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=AD=94?= =?UTF-8?q?=E6=B3=95=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/filter/RepeatedlyRequestWrapper.java | 5 +++-- .../src/main/java/com/ruoyi/common/filter/XssFilter.java | 3 ++- .../ruoyi/common/filter/XssHttpServletRequestWrapper.java | 3 +-- .../src/main/java/com/ruoyi/common/utils/ServletUtils.java | 2 +- .../main/java/com/xxl/job/admin/core/util/JacksonUtil.java | 4 ++-- .../framework/interceptor/PlusWebInvokeTimeInterceptor.java | 6 ++++-- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java index b6fd0b65a..ca76e76cc 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java @@ -1,6 +1,7 @@ package com.ruoyi.common.filter; import cn.hutool.core.io.IoUtil; +import com.ruoyi.common.constant.Constants; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; @@ -23,8 +24,8 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper { public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException { super(request); - request.setCharacterEncoding("UTF-8"); - response.setCharacterEncoding("UTF-8"); + request.setCharacterEncoding(Constants.UTF8); + response.setCharacterEncoding(Constants.UTF8); body = IoUtil.readUtf8(request.getInputStream()).getBytes(StandardCharsets.UTF_8); } 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 72a8f2740..7494e87b4 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,5 +1,6 @@ package com.ruoyi.common.filter; +import cn.hutool.extra.servlet.ServletUtil; import com.ruoyi.common.utils.StringUtils; import javax.servlet.*; @@ -48,7 +49,7 @@ public class XssFilter implements Filter { String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE 不过滤 - if (method == null || method.matches("GET") || method.matches("DELETE")) { + if (method == null || method.matches(ServletUtil.METHOD_GET) || method.matches(ServletUtil.METHOD_DELETE)) { return true; } return StringUtils.matches(url, excludes); 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 a8ffd66cc..f1b51315a 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 @@ -89,10 +89,9 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { /** * 是否是Json请求 * - * @param request */ public boolean isJsonRequest() { String header = super.getHeader(HttpHeaders.CONTENT_TYPE); return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); } -} \ No newline at end of file +} 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 6408c8944..84079c4b6 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 @@ -117,7 +117,7 @@ public class ServletUtils extends ServletUtil { public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); - if (accept != null && accept.contains("application/json")) { + if (accept != null && accept.contains(MediaType.APPLICATION_JSON_VALUE)) { return true; } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java index a75595683..0312b7479 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java @@ -21,10 +21,10 @@ import java.io.IOException; public class JacksonUtil { private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class); - private final static ObjectMapper objectMapper = new ObjectMapper(); + private final static ObjectMapper OBJECT_MAPPER = new ObjectMapper(); public static ObjectMapper getInstance() { - return objectMapper; + return OBJECT_MAPPER; } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java index 9ba4cff8e..734ca1aaa 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java @@ -28,11 +28,13 @@ import java.util.Map; @Slf4j public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { + public static final String PROD_PROFILE = "prod"; + private final TransmittableThreadLocal invokeTimeTL = new TransmittableThreadLocal<>(); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!"prod".equals(SpringUtils.getActiveProfile())) { + if (!PROD_PROFILE.equals(SpringUtils.getActiveProfile())) { String url = request.getMethod() + " " + request.getRequestURI(); // 打印请求参数 @@ -67,7 +69,7 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - if (!"prod".equals(SpringUtils.getActiveProfile())) { + if (!PROD_PROFILE.equals(SpringUtils.getActiveProfile())) { StopWatch stopWatch = invokeTimeTL.get(); stopWatch.stop(); log.debug("[PLUS]结束请求 => URL[{}],耗时:[{}]毫秒", request.getMethod() + " " + request.getRequestURI(), stopWatch.getTime()); From 765deae84d167ac40e962914a99b636fb70a3bd7 Mon Sep 17 00:00:00 2001 From: zendwang Date: Mon, 4 Jul 2022 13:06:18 +0800 Subject: [PATCH 018/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=AD=94?= =?UTF-8?q?=E6=B3=95=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/filter/XssFilter.java | 3 ++- .../framework/interceptor/PlusWebInvokeTimeInterceptor.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) 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 7494e87b4..fe84879d1 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,6 +1,7 @@ package com.ruoyi.common.filter; import cn.hutool.extra.servlet.ServletUtil; +import com.ruoyi.common.enums.HttpMethod; import com.ruoyi.common.utils.StringUtils; import javax.servlet.*; @@ -49,7 +50,7 @@ public class XssFilter implements Filter { String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE 不过滤 - if (method == null || method.matches(ServletUtil.METHOD_GET) || method.matches(ServletUtil.METHOD_DELETE)) { + if (method == null || method.matches(HttpMethod.GET.name()) || method.matches(HttpMethod.DELETE.name())) { return true; } return StringUtils.matches(url, excludes); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java index 734ca1aaa..34e4d4558 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java @@ -28,7 +28,7 @@ import java.util.Map; @Slf4j public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { - public static final String PROD_PROFILE = "prod"; + private static final String PROD_PROFILE = "prod"; private final TransmittableThreadLocal invokeTimeTL = new TransmittableThreadLocal<>(); From d1f8b2ed17b5290bc67b5fb757dde1a381a88907 Mon Sep 17 00:00:00 2001 From: zendwang Date: Mon, 4 Jul 2022 13:07:07 +0800 Subject: [PATCH 019/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=AD=94?= =?UTF-8?q?=E6=B3=95=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/filter/XssFilter.java | 1 - 1 file changed, 1 deletion(-) 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 fe84879d1..e7b70c8e0 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,6 +1,5 @@ package com.ruoyi.common.filter; -import cn.hutool.extra.servlet.ServletUtil; import com.ruoyi.common.enums.HttpMethod; import com.ruoyi.common.utils.StringUtils; From a0a09c23da11996139b785c94756b0ddcbfe3383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 09:59:18 +0800 Subject: [PATCH 020/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20pr194=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/filter/XssFilter.java | 2 +- .../framework/interceptor/PlusWebInvokeTimeInterceptor.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 e7b70c8e0..5a0879472 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 @@ -49,7 +49,7 @@ public class XssFilter implements Filter { String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE 不过滤 - if (method == null || method.matches(HttpMethod.GET.name()) || method.matches(HttpMethod.DELETE.name())) { + if (method == null || HttpMethod.GET.matches(method) || HttpMethod.DELETE.matches(method)) { return true; } return StringUtils.matches(url, excludes); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java index 34e4d4558..78bffab4f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java @@ -28,13 +28,13 @@ import java.util.Map; @Slf4j public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { - private static final String PROD_PROFILE = "prod"; + private final String prodProfile = "prod"; private final TransmittableThreadLocal invokeTimeTL = new TransmittableThreadLocal<>(); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!PROD_PROFILE.equals(SpringUtils.getActiveProfile())) { + if (!prodProfile.equals(SpringUtils.getActiveProfile())) { String url = request.getMethod() + " " + request.getRequestURI(); // 打印请求参数 @@ -69,7 +69,7 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - if (!PROD_PROFILE.equals(SpringUtils.getActiveProfile())) { + if (!prodProfile.equals(SpringUtils.getActiveProfile())) { StopWatch stopWatch = invokeTimeTL.get(); stopWatch.stop(); log.debug("[PLUS]结束请求 => URL[{}],耗时:[{}]毫秒", request.getMethod() + " " + request.getRequestURI(), stopWatch.getTime()); From 0a893d196e907a335cfec5d3d5b13e1f8ecd15ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 02:06:31 +0000 Subject: [PATCH 021/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=AD=94?= =?UTF-8?q?=E6=B3=95=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/filter/RepeatedlyRequestWrapper.java | 7 ++++--- .../src/main/java/com/ruoyi/common/filter/XssFilter.java | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java index caacba632..ca822edec 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java @@ -10,6 +10,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import com.ruoyi.common.utils.http.HttpHelper; +import com.ruoyi.common.constant.Constants; /** * 构建可重复读取inputStream的request @@ -23,10 +24,10 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException { super(request); - request.setCharacterEncoding("UTF-8"); - response.setCharacterEncoding("UTF-8"); + request.setCharacterEncoding(Constants.UTF8); + response.setCharacterEncoding(Constants.UTF8); - body = HttpHelper.getBodyString(request).getBytes("UTF-8"); + body = HttpHelper.getBodyString(request).getBytes(Constants.UTF8); } @Override 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 703ce9aca..23a76fe1d 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 @@ -12,6 +12,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.enums.HttpMethod; /** * 防止XSS攻击的过滤器 @@ -59,7 +60,7 @@ public class XssFilter implements Filter String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE 不过滤 - if (method == null || method.matches("GET") || method.matches("DELETE")) + if (method == null || HttpMethod.GET.matches(method) || HttpMethod.DELETE.matches(method)) { return true; } From 6b57a8161c4ecff398136518fe0246c20e00496f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 11:00:27 +0800 Subject: [PATCH 022/299] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=20StreamUtils?= =?UTF-8?q?=20=E6=B5=81=E5=B7=A5=E5=85=B7=20=E7=AE=80=E5=8C=96=20stream=20?= =?UTF-8?q?=E6=B5=81=E6=93=8D=E7=BA=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/StreamUtils.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java new file mode 100644 index 000000000..dbb6f21e3 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java @@ -0,0 +1,34 @@ +package com.ruoyi.common.utils; + +import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.collection.CollUtil; + +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +public class StreamUtils extends CollStreamUtil { + + public static List filter(Collection collection, Predicate function) { + if (CollUtil.isEmpty(collection)) { + return Collections.emptyList(); + } + return collection.stream().filter(function).collect(Collectors.toList()); + } + + public static String join(Collection collection, Function function) { + return join(collection, function, ","); + } + + public static String join(Collection collection, Function function, CharSequence delimiter) { + if (CollUtil.isEmpty(collection)) { + return StringUtils.EMPTY; + } + return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter)); + } + + public static List sorted(Collection collection, Comparator comparing) { + return collection.stream().sorted(comparing).collect(Collectors.toList()); + } +} From 0d8510b8b37c08092958e01f2f06f079343d38fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 11:02:04 +0800 Subject: [PATCH 023/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20StreamUtils=20=E7=AE=80=E5=8C=96=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=B5=81=E6=93=8D=E7=BA=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/SysUserOnlineController.java | 16 ++++++++-------- .../web/controller/system/SysUserController.java | 8 ++++---- .../ruoyi/common/excel/DefaultExcelListener.java | 6 ++---- .../com/ruoyi/common/utils/BeanCopyUtils.java | 5 ++--- .../web/exception/GlobalExceptionHandler.java | 10 +++------- .../generator/service/GenTableServiceImpl.java | 12 +++++------- .../service/impl/SysDataScopeServiceImpl.java | 8 ++++---- .../service/impl/SysDictTypeServiceImpl.java | 8 +++----- .../service/impl/SysOssConfigServiceImpl.java | 2 +- .../system/service/impl/SysUserServiceImpl.java | 8 ++++---- 10 files changed, 36 insertions(+), 47 deletions(-) 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 2ad51e315..82fdf88dc 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 @@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.dto.UserOnlineDTO; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.domain.SysUserOnline; @@ -22,7 +23,6 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * 在线用户监控 @@ -51,18 +51,18 @@ public class SysUserOnlineController extends BaseController { userOnlineDTOList.add(RedisUtils.getCacheObject(Constants.ONLINE_TOKEN_KEY + token)); } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { - userOnlineDTOList = userOnlineDTOList.stream().filter(userOnline -> + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> StringUtils.equals(ipaddr, userOnline.getIpaddr()) && StringUtils.equals(userName, userOnline.getUserName()) - ).collect(Collectors.toList()); + ); } else if (StringUtils.isNotEmpty(ipaddr)) { - userOnlineDTOList = userOnlineDTOList.stream().filter(userOnline -> - StringUtils.equals(ipaddr, userOnline.getIpaddr())) - .collect(Collectors.toList()); + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> + StringUtils.equals(ipaddr, userOnline.getIpaddr()) + ); } else if (StringUtils.isNotEmpty(userName)) { - userOnlineDTOList = userOnlineDTOList.stream().filter(userOnline -> + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> StringUtils.equals(userName, userOnline.getUserName()) - ).collect(Collectors.toList()); + ); } Collections.reverse(userOnlineDTOList); userOnlineDTOList.removeAll(Collections.singleton(null)); 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 07553d7aa..e618655ef 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 @@ -17,6 +17,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.excel.ExcelResult; import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.vo.SysUserExportVo; @@ -36,7 +37,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 用户信息 @@ -110,13 +110,13 @@ public class SysUserController extends BaseController { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); List roles = roleService.selectRoleAll(); - ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())); ajax.put("posts", postService.selectPostAll()); if (ObjectUtil.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); ajax.put("user", sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); + ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId)); } return R.ok(ajax); } @@ -214,7 +214,7 @@ public class SysUserController extends BaseController { List roles = roleService.selectRolesByUserId(userId); Map ajax = new HashMap<>(); ajax.put("user", user); - ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())); return R.ok(ajax); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java index 9936f6762..6cd6d2816 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java @@ -6,6 +6,7 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelDataConvertException; import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.ValidatorUtils; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -14,7 +15,6 @@ import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; /** * Excel 导入监听 @@ -69,9 +69,7 @@ public class DefaultExcelListener extends AnalysisEventListener implements if (exception instanceof ConstraintViolationException) { ConstraintViolationException constraintViolationException = (ConstraintViolationException) exception; Set> constraintViolations = constraintViolationException.getConstraintViolations(); - String constraintViolationsMsg = constraintViolations.stream() - .map(ConstraintViolation::getMessage) - .collect(Collectors.joining(", ")); + String constraintViolationsMsg = StreamUtils.join(constraintViolations, ConstraintViolation::getMessage, ", "); errMsg = StrUtil.format("第{}行数据校验异常: {}", context.readRowHolder().getRowIndex() + 1, constraintViolationsMsg); if (log.isDebugEnabled()) { log.error(errMsg); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java index 93906046d..88161daac 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java @@ -14,7 +14,6 @@ import org.springframework.cglib.core.Converter; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * bean深拷贝工具(基于 cglib 性能优异) @@ -79,11 +78,11 @@ public class BeanCopyUtils { if (CollUtil.isEmpty(sourceList)) { return CollUtil.newArrayList(); } - return sourceList.stream().map(source -> { + return StreamUtils.toList(sourceList, source -> { V target = ReflectUtil.newInstanceIfPossible(desc); copy(source, target); return target; - }).collect(Collectors.toList()); + }); } /** 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 326c96a7b..e04d528ad 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 @@ -8,6 +8,7 @@ import cn.hutool.http.HttpStatus; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.DemoModeException; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StreamUtils; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.context.support.DefaultMessageSourceResolvable; @@ -21,7 +22,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.servlet.http.HttpServletRequest; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; -import java.util.stream.Collectors; /** * 全局异常处理器 @@ -134,9 +134,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(BindException.class) public R handleBindException(BindException e) { log.error(e.getMessage(), e); - String message = e.getAllErrors().stream() - .map(DefaultMessageSourceResolvable::getDefaultMessage) - .collect(Collectors.joining(", ")); + String message = StreamUtils.join(e.getAllErrors(), DefaultMessageSourceResolvable::getDefaultMessage, ", "); return R.fail(message); } @@ -146,9 +144,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(ConstraintViolationException.class) public R constraintViolationException(ConstraintViolationException e) { log.error(e.getMessage(), e); - String message = e.getConstraintViolations().stream() - .map(ConstraintViolation::getMessage) - .collect(Collectors.joining(", ")); + String message = StreamUtils.join(e.getConstraintViolations(), ConstraintViolation::getMessage, ", "); return R.fail(message); } 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 2a99a2e65..7a80229b1 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 @@ -18,6 +18,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.generator.domain.GenTable; @@ -41,8 +42,6 @@ import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -293,13 +292,13 @@ public class GenTableServiceImpl implements IGenTableService { public void synchDb(String tableName) { GenTable table = baseMapper.selectGenTableByName(tableName); List tableColumns = table.getColumns(); - Map tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); + Map tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName); List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); if (CollUtil.isEmpty(dbTableColumns)) { throw new ServiceException("同步数据失败,原表结构不存在"); } - List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + List dbTableColumnNames = StreamUtils.toList(dbTableColumns, GenTableColumn::getColumnName); List saveColumns = new ArrayList<>(); dbTableColumns.forEach(column -> { @@ -327,10 +326,9 @@ public class GenTableServiceImpl implements IGenTableService { if (CollUtil.isNotEmpty(saveColumns)) { genTableColumnMapper.insertBatch(saveColumns); } - - List delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); + List delColumns = StreamUtils.filter(tableColumns, column -> !dbTableColumnNames.contains(column.getColumnName())); if (CollUtil.isNotEmpty(delColumns)) { - List ids = delColumns.stream().map(GenTableColumn::getColumnId).collect(Collectors.toList()); + List ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId); genTableColumnMapper.deleteBatchIds(ids); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java index d2c5d5cb0..44f8625ec 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.helper.DataBaseHelper; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleDeptMapper; @@ -13,7 +14,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; -import java.util.stream.Collectors; /** * 数据权限 实现 @@ -37,7 +37,7 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService { .select(SysRoleDept::getDeptId) .eq(SysRoleDept::getRoleId, roleId)); if (CollUtil.isNotEmpty(list)) { - return list.stream().map(rd -> Convert.toStr(rd.getDeptId())).collect(Collectors.joining(",")); + return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId())); } return null; } @@ -47,13 +47,13 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService { List deptList = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .apply(DataBaseHelper.findInSet(deptId, "ancestors"))); - List ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); ids.add(deptId); List list = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .in(SysDept::getDeptId, ids)); if (CollUtil.isNotEmpty(list)) { - return list.stream().map(d -> Convert.toStr(d.getDeptId())).collect(Collectors.joining(",")); + return StreamUtils.join(list, d -> Convert.toStr(d.getDeptId())); } return null; } 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 61d178865..187778036 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 @@ -13,6 +13,7 @@ import com.ruoyi.common.core.domain.entity.SysDictType; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.service.DictService; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.mapper.SysDictDataMapper; @@ -23,7 +24,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; /** * 字典 业务层处理 @@ -144,12 +144,10 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService public void loadingDictCache() { List dictDataList = dictDataMapper.selectList( new LambdaQueryWrapper().eq(SysDictData::getStatus, UserConstants.DICT_NORMAL)); - Map> dictDataMap = dictDataList.stream().collect(Collectors.groupingBy(SysDictData::getDictType)); + Map> dictDataMap = StreamUtils.groupByKey(dictDataList, SysDictData::getDictType); dictDataMap.forEach((k,v) -> { String dictKey = getCacheKey(k); - List dictList = v.stream() - .sorted(Comparator.comparing(SysDictData::getDictSort)) - .collect(Collectors.toList()); + List dictList = StreamUtils.sorted(v, Comparator.comparing(SysDictData::getDictSort)); RedisUtils.setCacheObject(dictKey, dictList); }); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java index 015c156ab..98306f4fb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java @@ -127,7 +127,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { } boolean flag = baseMapper.deleteBatchIds(ids) > 0; if (flag) { - list.stream().forEach(sysOssConfig -> { + list.forEach(sysOssConfig -> { RedisUtils.deleteObject(getCacheKey(sysOssConfig.getConfigKey())); }); } 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 ed24ab4e9..39ad7273f 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 @@ -18,6 +18,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.DataBaseHelper; import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; @@ -33,7 +34,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -83,7 +83,7 @@ public class SysUserServiceImpl implements ISysUserService { List deptList = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors"))); - List ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); ids.add(user.getDeptId()); w.in("u.dept_id", ids); }); @@ -172,7 +172,7 @@ public class SysUserServiceImpl implements ISysUserService { if (CollUtil.isEmpty(list)) { return StringUtils.EMPTY; } - return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); + return StreamUtils.join(list, SysRole::getRoleName); } /** @@ -187,7 +187,7 @@ public class SysUserServiceImpl implements ISysUserService { if (CollUtil.isEmpty(list)) { return StringUtils.EMPTY; } - return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); + return StreamUtils.join(list, SysPost::getPostName); } /** From 9cd4f0c332143e996fd6c33aec3c9d3ab2ea8a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 11:03:28 +0800 Subject: [PATCH 024/299] =?UTF-8?q?update=20=E8=A1=A5=E5=85=A8=20StreamUti?= =?UTF-8?q?ls=20=E7=B1=BB=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/utils/StreamUtils.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java index dbb6f21e3..0c598098f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java @@ -2,12 +2,20 @@ package com.ruoyi.common.utils; import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.*; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +/** + * stream 流工具类 + * + * @author Lion Li + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class StreamUtils extends CollStreamUtil { public static List filter(Collection collection, Predicate function) { From 1bb1b3886ba37c10e807629796bd00c21d619c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 15:20:32 +0800 Subject: [PATCH 025/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20minio=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E5=9B=9E=E6=98=BE=E8=B7=AF=E5=BE=84=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/oss/core/OssClient.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java index 6f6be8f8c..03c839625 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java @@ -120,16 +120,19 @@ public class OssClient { public String getUrl() { String domain = properties.getDomain(); - if (StringUtils.isNotBlank(domain)) { - return domain; - } String endpoint = properties.getEndpoint(); String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://"; // 云服务商直接返回 if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){ + if (StringUtils.isNotBlank(domain)) { + return domain; + } return header + properties.getBucketName() + "." + endpoint; } // minio 单独处理 + if (StringUtils.isNotBlank(domain)) { + return domain + "/" + properties.getBucketName(); + } return header + endpoint + "/" + properties.getBucketName(); } From 9315417935ef1b84efc1fe8f49d8b284042a3f19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 15:31:48 +0800 Subject: [PATCH 026/299] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=20oss=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=20=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8https=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E6=8E=A7=E5=88=B6=E5=8D=8F=E8=AE=AE=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java index 03c839625..f255f15b3 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java @@ -125,13 +125,13 @@ public class OssClient { // 云服务商直接返回 if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){ if (StringUtils.isNotBlank(domain)) { - return domain; + return header + domain; } return header + properties.getBucketName() + "." + endpoint; } // minio 单独处理 if (StringUtils.isNotBlank(domain)) { - return domain + "/" + properties.getBucketName(); + return header + domain + "/" + properties.getBucketName(); } return header + endpoint + "/" + properties.getBucketName(); } From 4eb8809a8aa8ae7d680e39da44f2afe0d8658fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=96=E5=B0=91=E6=AF=85?= Date: Tue, 5 Jul 2022 16:43:55 +0800 Subject: [PATCH 027/299] =?UTF-8?q?=E8=B0=83=E5=A2=9E=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=A3=B0=E6=98=8E=EF=BC=8Crandom=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E8=BD=AC=E6=8D=A2=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/core/text/Convert.java | 4 ++-- .../java/com/ruoyi/framework/config/KaptchaTextCreator.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) 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 index 165f40acf..4578a04a7 100644 --- 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 @@ -894,7 +894,7 @@ public class Convert */ public static String toSBC(String input, Set notConvertSet) { - char c[] = input.toCharArray(); + char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) @@ -936,7 +936,7 @@ public class Convert */ public static String toDBC(String text, Set notConvertSet) { - char c[] = text.toCharArray(); + char[] c = text.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java index 3e7458003..976a46a18 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java @@ -5,7 +5,7 @@ import com.google.code.kaptcha.text.impl.DefaultTextCreator; /** * 验证码文本生成器 - * + * * @author ruoyi */ public class KaptchaTextCreator extends DefaultTextCreator @@ -20,7 +20,7 @@ public class KaptchaTextCreator extends DefaultTextCreator int x = random.nextInt(10); int y = random.nextInt(10); StringBuilder suChinese = new StringBuilder(); - int randomoperands = (int) Math.round(Math.random() * 2); + int randomoperands = random.nextInt(3); if (randomoperands == 0) { result = x * y; @@ -30,7 +30,7 @@ public class KaptchaTextCreator extends DefaultTextCreator } else if (randomoperands == 1) { - if (!(x == 0) && y % x == 0) + if ((x != 0) && y % x == 0) { result = y / x; suChinese.append(CNUMBERS[y]); From 0ee5fd1ac07005876e7bc2223f578c22096fc638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 5 Jul 2022 19:00:10 +0800 Subject: [PATCH 028/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20hutool=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E8=BF=94=E5=9B=9E=E4=B8=8D=E5=8F=AF=E6=93=8D?= =?UTF-8?q?=E7=BA=B5=E7=B1=BB=E5=9E=8B=20=E5=AF=BC=E8=87=B4=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/StreamUtils.java | 219 +++++++++++++++++- 1 file changed, 214 insertions(+), 5 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java index 0c598098f..0de2784a0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java @@ -1,11 +1,12 @@ package com.ruoyi.common.utils; -import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; import lombok.AccessLevel; import lombok.NoArgsConstructor; import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -16,27 +17,235 @@ import java.util.stream.Collectors; * @author Lion Li */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -public class StreamUtils extends CollStreamUtil { +public class StreamUtils { + /** + * 将collection过滤 + * + * @param collection 需要转化的集合 + * @param function 过滤方法 + * @return 过滤后的list + */ public static List filter(Collection collection, Predicate function) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyList(); + return CollUtil.newArrayList(); } return collection.stream().filter(function).collect(Collectors.toList()); } - public static String join(Collection collection, Function function) { + /** + * 将collection拼接 + * + * @param collection 需要转化的集合 + * @param function 拼接方法 + * @return 拼接后的list + */ + public static String join(Collection collection, Function function) { return join(collection, function, ","); } - public static String join(Collection collection, Function function, CharSequence delimiter) { + /** + * 将collection拼接 + * + * @param collection 需要转化的集合 + * @param function 拼接方法 + * @param delimiter 拼接符 + * @return 拼接后的list + */ + public static String join(Collection collection, Function function, CharSequence delimiter) { if (CollUtil.isEmpty(collection)) { return StringUtils.EMPTY; } return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter)); } + /** + * 将collection排序 + * + * @param collection 需要转化的集合 + * @param comparing 排序方法 + * @return 排序后的list + */ public static List sorted(Collection collection, Comparator comparing) { + if (CollUtil.isEmpty(collection)) { + return CollUtil.newArrayList(); + } return collection.stream().sorted(comparing).collect(Collectors.toList()); } + + /** + * 将collection转化为类型不变的map
    + * {@code Collection ----> Map} + * + * @param collection 需要转化的集合 + * @param key V类型转化为K类型的lambda方法 + * @param collection中的泛型 + * @param map中的key类型 + * @return 转化后的map + */ + public static Map toIdentityMap(Collection collection, Function key) { + if (CollUtil.isEmpty(collection)) { + return MapUtil.newHashMap(); + } + return collection.stream().collect(Collectors.toMap(key, Function.identity(), (l, r) -> l)); + } + + /** + * 将Collection转化为map(value类型与collection的泛型不同)
    + * {@code Collection -----> Map } + * + * @param collection 需要转化的集合 + * @param key E类型转化为K类型的lambda方法 + * @param value E类型转化为V类型的lambda方法 + * @param collection中的泛型 + * @param map中的key类型 + * @param map中的value类型 + * @return 转化后的map + */ + public static Map toMap(Collection collection, Function key, Function value) { + if (CollUtil.isEmpty(collection)) { + return MapUtil.newHashMap(); + } + return collection.stream().collect(Collectors.toMap(key, value, (l, r) -> l)); + } + + /** + * 将collection按照规则(比如有相同的班级id)分类成map
    + * {@code Collection -------> Map> } + * + * @param collection 需要分类的集合 + * @param key 分类的规则 + * @param collection中的泛型 + * @param map中的key类型 + * @return 分类后的map + */ + public static Map> groupByKey(Collection collection, Function key) { + if (CollUtil.isEmpty(collection)) { + return MapUtil.newHashMap(); + } + return collection + .stream() + .collect(Collectors.groupingBy(key, Collectors.toList())); + } + + /** + * 将collection按照两个规则(比如有相同的年级id,班级id)分类成双层map
    + * {@code Collection ---> Map>> } + * + * @param collection 需要分类的集合 + * @param key1 第一个分类的规则 + * @param key2 第二个分类的规则 + * @param 集合元素类型 + * @param 第一个map中的key类型 + * @param 第二个map中的key类型 + * @return 分类后的map + */ + public static Map>> groupBy2Key(Collection collection, Function key1, Function key2) { + if (CollUtil.isEmpty(collection)) { + return MapUtil.newHashMap(); + } + return collection + .stream() + .collect(Collectors.groupingBy(key1, Collectors.groupingBy(key2, Collectors.toList()))); + } + + /** + * 将collection按照两个规则(比如有相同的年级id,班级id)分类成双层map
    + * {@code Collection ---> Map> } + * + * @param collection 需要分类的集合 + * @param key1 第一个分类的规则 + * @param key2 第二个分类的规则 + * @param 第一个map中的key类型 + * @param 第二个map中的key类型 + * @param collection中的泛型 + * @return 分类后的map + */ + public static Map> group2Map(Collection collection, Function key1, Function key2) { + if (CollUtil.isEmpty(collection) || key1 == null || key2 == null) { + return MapUtil.newHashMap(); + } + return collection + .stream() + .collect(Collectors.groupingBy(key1, Collectors.toMap(key2, Function.identity(), (l, r) -> l))); + } + + /** + * 将collection转化为List集合,但是两者的泛型不同
    + * {@code Collection ------> List } + * + * @param collection 需要转化的集合 + * @param function collection中的泛型转化为list泛型的lambda表达式 + * @param collection中的泛型 + * @param List中的泛型 + * @return 转化后的list + */ + public static List toList(Collection collection, Function function) { + if (CollUtil.isEmpty(collection)) { + return CollUtil.newArrayList(); + } + return collection + .stream() + .map(function) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + + /** + * 将collection转化为Set集合,但是两者的泛型不同
    + * {@code Collection ------> Set } + * + * @param collection 需要转化的集合 + * @param function collection中的泛型转化为set泛型的lambda表达式 + * @param collection中的泛型 + * @param Set中的泛型 + * @return 转化后的Set + */ + public static Set toSet(Collection collection, Function function) { + if (CollUtil.isEmpty(collection) || function == null) { + return CollUtil.newHashSet(); + } + return collection + .stream() + .map(function) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + } + + + /** + * 合并两个相同key类型的map + * + * @param map1 第一个需要合并的 map + * @param map2 第二个需要合并的 map + * @param merge 合并的lambda,将key value1 value2合并成最终的类型,注意value可能为空的情况 + * @param map中的key类型 + * @param 第一个 map的value类型 + * @param 第二个 map的value类型 + * @param 最终map的value类型 + * @return 合并后的map + */ + public static Map merge(Map map1, Map map2, BiFunction merge) { + if (MapUtil.isEmpty(map1) && MapUtil.isEmpty(map2)) { + return MapUtil.newHashMap(); + } else if (MapUtil.isEmpty(map1)) { + map1 = MapUtil.newHashMap(); + } else if (MapUtil.isEmpty(map2)) { + map2 = MapUtil.newHashMap(); + } + Set key = new HashSet<>(); + key.addAll(map1.keySet()); + key.addAll(map2.keySet()); + Map map = new HashMap<>(); + for (K t : key) { + X x = map1.get(t); + Y y = map2.get(t); + V z = merge.apply(x, y); + if (z != null) { + map.put(t, z); + } + } + return map; + } + } From c33aa5c9698d9b3e15660fa4719bc5583b07dd49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 6 Jul 2022 14:20:58 +0800 Subject: [PATCH 029/299] =?UTF-8?q?add=20=E5=90=8C=E6=AD=A5ruoyi=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BC=93=E5=AD=98=E5=88=97=E8=A1=A8=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/CaptchaController.java | 5 +- .../controller/monitor/CacheController.java | 70 ++++- .../monitor/SysUserOnlineController.java | 6 +- .../ruoyi/common/annotation/RateLimiter.java | 72 +++--- .../ruoyi/common/constant/CacheConstants.java | 49 ++++ .../com/ruoyi/common/constant/Constants.java | 45 ---- .../com/ruoyi/common/utils/ServletUtils.java | 32 +++ .../framework/aspectj/RepeatSubmitAspect.java | 4 +- .../listener/UserActionListener.java | 10 +- .../com/ruoyi/system/domain/SysCache.java | 54 ++++ .../ruoyi/system/service/SysLoginService.java | 7 +- .../system/service/SysRegisterService.java | 3 +- .../service/impl/SysConfigServiceImpl.java | 6 +- .../service/impl/SysDictDataServiceImpl.java | 4 +- .../service/impl/SysDictTypeServiceImpl.java | 6 +- ruoyi-ui/src/api/monitor/cache.js | 48 ++++ ruoyi-ui/src/assets/icons/svg/redis-list.svg | 2 + ruoyi-ui/src/views/monitor/cache/index.vue | 22 +- ruoyi-ui/src/views/monitor/cache/list.vue | 241 ++++++++++++++++++ ruoyi-ui/src/views/system/dict/data.vue | 3 +- ruoyi-ui/vue.config.js | 1 + script/sql/oracle/oracle_ry_vue_4.X.sql | 1 + script/sql/postgres/postgres_ry_vue_4.X.sql | 1 + script/sql/ry_vue_4.X.sql | 1 + script/sql/sqlserver/sqlserver_ry_vue_4.X.sql | 2 + script/sql/update/oracle/update-4.2-4.3.sql | 1 + script/sql/update/postgres/update-4.2-4.3.sql | 1 + .../sql/update/sqlserver/update-4.1-4.2.sql | 27 +- .../sql/update/sqlserver/update-4.2-4.3.sql | 1 + script/sql/update/update-4.2-4.3.sql | 2 + sql/ry_20220613.sql | 0 31 files changed, 581 insertions(+), 146 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java create mode 100644 ruoyi-ui/src/assets/icons/svg/redis-list.svg create mode 100644 ruoyi-ui/src/views/monitor/cache/list.vue create mode 100644 script/sql/update/oracle/update-4.2-4.3.sql create mode 100644 script/sql/update/postgres/update-4.2-4.3.sql create mode 100644 script/sql/update/sqlserver/update-4.2-4.3.sql create mode 100644 script/sql/update/update-4.2-4.3.sql create mode 100644 sql/ry_20220613.sql diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 0889aabc7..3bfe35a85 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -6,6 +6,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.CaptchaType; @@ -60,7 +61,7 @@ public class CaptchaController { if (smsProperties.getEnabled()) { R.fail("当前系统没有开启短信功能!"); } - String key = Constants.CAPTCHA_CODE_KEY + phonenumber; + String key = CacheConstants.CAPTCHA_CODE_KEY + phonenumber; String code = RandomUtil.randomNumbers(4); RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); // 验证码模板id 自行处理 (查数据库或写死均可) @@ -90,7 +91,7 @@ public class CaptchaController { } // 保存验证码信息 String uuid = IdUtil.simpleUUID(); - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; // 生成验证码 CaptchaType captchaType = captchaProperties.getType(); boolean isMath = CaptchaType.MATH == captchaType; 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 21fbd201f..e84f60dff 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,17 +1,17 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysCache; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.connection.RedisServerCommands; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.*; @@ -28,6 +28,19 @@ public class CacheController { private final RedisTemplate redisTemplate; + private final static List CACHES = new ArrayList<>(); + + static { + CACHES.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息")); + CACHES.add(new SysCache(CacheConstants.ONLINE_TOKEN_KEY, "在线用户")); + CACHES.add(new SysCache(CacheConstants.LOGIN_ERROR, "登陆错误")); + CACHES.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息")); + CACHES.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典")); + CACHES.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码")); + CACHES.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); + CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); + } + @ApiOperation("获取缓存监控详细信息") @SaCheckPermission("monitor:cache:list") @GetMapping() @@ -53,4 +66,55 @@ public class CacheController { result.put("commandStats", pieList); return R.ok(result); } + + @ApiOperation("获取缓存名称列表") + @SaCheckPermission("monitor:cache:list") + @GetMapping("/getNames") + public R> cache() { + return R.ok(CACHES); + } + + @ApiOperation("获取KEYS基于缓存名") + @SaCheckPermission("monitor:cache:list") + @GetMapping("/getKeys/{cacheName}") + public R> getCacheKeys(@PathVariable String cacheName) { + Set cacheKyes = redisTemplate.keys(cacheName + "*"); + return R.ok(cacheKyes); + } + + @ApiOperation("获取值基于缓存名与KEY") + @SaCheckPermission("monitor:cache:list") + @GetMapping("/getValue/{cacheName}/{cacheKey}") + public R getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { + String cacheValue = redisTemplate.opsForValue().get(cacheKey); + SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); + return R.ok(sysCache); + } + + @ApiOperation("清空缓存名") + @SaCheckPermission("monitor:cache:list") + @DeleteMapping("/clearCacheName/{cacheName}") + public R clearCacheName(@PathVariable String cacheName) { + Collection cacheKeys = redisTemplate.keys(cacheName + "*"); + redisTemplate.delete(cacheKeys); + return R.ok(); + } + + @ApiOperation("清空缓存KEY") + @SaCheckPermission("monitor:cache:list") + @DeleteMapping("/clearCacheKey/{cacheKey}") + public R clearCacheKey(@PathVariable String cacheKey) { + redisTemplate.delete(cacheKey); + return R.ok(); + } + + @ApiOperation("清空所有缓存") + @SaCheckPermission("monitor:cache:list") + @DeleteMapping("/clearCacheAll") + public R clearCacheAll() { + Collection cacheKeys = redisTemplate.keys("*"); + redisTemplate.delete(cacheKeys); + return R.ok(); + } + } 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 82fdf88dc..a1ea81f1f 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 @@ -5,7 +5,7 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.dto.UserOnlineDTO; @@ -43,12 +43,12 @@ public class SysUserOnlineController extends BaseController { List keys = StpUtil.searchTokenValue("", -1, 0); List userOnlineDTOList = new ArrayList<>(); for (String key : keys) { - String token = key.replace(Constants.LOGIN_TOKEN_KEY, ""); + String token = key.replace(CacheConstants.LOGIN_TOKEN_KEY, ""); // 如果已经过期则踢下线 if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(token) < 0) { continue; } - userOnlineDTOList.add(RedisUtils.getCacheObject(Constants.ONLINE_TOKEN_KEY + token)); + userOnlineDTOList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)); } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java index 90db9d776..2e3ff7a82 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java @@ -1,36 +1,36 @@ -package com.ruoyi.common.annotation; - -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.enums.LimitType; - -import java.lang.annotation.*; - -/** - * 限流注解 - * - * @author Lion Li - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface RateLimiter { - /** - * 限流key - */ - String key() default Constants.RATE_LIMIT_KEY; - - /** - * 限流时间,单位秒 - */ - int time() default 60; - - /** - * 限流次数 - */ - int count() default 100; - - /** - * 限流类型 - */ - LimitType limitType() default LimitType.DEFAULT; -} +package com.ruoyi.common.annotation; + +import com.ruoyi.common.constant.CacheConstants; +import com.ruoyi.common.enums.LimitType; + +import java.lang.annotation.*; + +/** + * 限流注解 + * + * @author Lion Li + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface RateLimiter { + /** + * 限流key + */ + String key() default CacheConstants.RATE_LIMIT_KEY; + + /** + * 限流时间,单位秒 + */ + int time() default 60; + + /** + * 限流次数 + */ + int count() default 100; + + /** + * 限流类型 + */ + LimitType limitType() default LimitType.DEFAULT; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java new file mode 100644 index 000000000..478887d00 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -0,0 +1,49 @@ +package com.ruoyi.common.constant; + +/** + * 缓存的key 常量 + * + * @author ruoyi + */ +public interface CacheConstants { + + /** + * 登录用户 redis key + */ + String LOGIN_TOKEN_KEY = "Authorization:login:token:"; + + /** + * 在线用户 redis key + */ + String ONLINE_TOKEN_KEY = "online_tokens:"; + + /** + * 登陆错误 redis key + */ + String LOGIN_ERROR = "login_error:"; + + /** + * 验证码 redis key + */ + String CAPTCHA_CODE_KEY = "captcha_codes:"; + + /** + * 参数管理 cache key + */ + String SYS_CONFIG_KEY = "sys_config:"; + + /** + * 字典管理 cache key + */ + String SYS_DICT_KEY = "sys_dict:"; + + /** + * 防重提交 redis key + */ + String REPEAT_SUBMIT_KEY = "repeat_submit:"; + + /** + * 限流 redis key + */ + String RATE_LIMIT_KEY = "rate_limit:"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index e2ffebdc0..8c3b13c22 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -57,41 +57,11 @@ public interface Constants { */ String LOGIN_FAIL = "Error"; - /** - * 验证码 redis key - */ - String CAPTCHA_CODE_KEY = "captcha_codes:"; - - /** - * 登录用户 redis key - */ - String LOGIN_TOKEN_KEY = "Authorization:login:token:"; - - /** - * 在线用户 redis key - */ - String ONLINE_TOKEN_KEY = "online_tokens:"; - - /** - * 防重提交 redis key - */ - String REPEAT_SUBMIT_KEY = "repeat_submit:"; - - /** - * 限流 redis key - */ - String RATE_LIMIT_KEY = "rate_limit:"; - /** * 验证码有效期(分钟) */ Integer CAPTCHA_EXPIRATION = 2; - /** - * 登陆错误 redis key - */ - String LOGIN_ERROR = "login_error:"; - /** * 登录错误次数 */ @@ -107,20 +77,5 @@ public interface Constants { */ String TOKEN = "token"; - /** - * 令牌前缀 - */ - String LOGIN_USER_KEY = "login_user_key"; - - /** - * 参数管理 cache key - */ - String SYS_CONFIG_KEY = "sys_config:"; - - /** - * 字典管理 cache key - */ - String SYS_DICT_KEY = "sys_dict:"; - } 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 84079c4b6..7012a01f9 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 @@ -3,6 +3,7 @@ package com.ruoyi.common.utils; import cn.hutool.core.convert.Convert; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.http.HttpStatus; +import com.ruoyi.common.constant.Constants; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.http.MediaType; @@ -14,6 +15,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; /** @@ -139,4 +143,32 @@ public class ServletUtils extends ServletUtil { return getClientIP(getRequest()); } + /** + * 内容编码 + * + * @param str 内容 + * @return 编码后的内容 + */ + public static String urlEncode(String str) { + try { + return URLEncoder.encode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } + + /** + * 内容解码 + * + * @param str 内容 + * @return 解码后的内容 + */ + public static String urlDecode(String str) { + try { + return URLDecoder.decode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java index b77acb40e..66827cbdf 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java @@ -4,7 +4,7 @@ import cn.dev33.satoken.SaManager; import cn.hutool.core.util.ObjectUtil; import cn.hutool.crypto.SecureUtil; import com.ruoyi.common.annotation.RepeatSubmit; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.JsonUtils; @@ -63,7 +63,7 @@ public class RepeatSubmitAspect { submitKey = SecureUtil.md5(submitKey + ":" + nowParams); // 唯一标识(指定key + url + 消息头) - String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + url + submitKey; + String cacheRepeatKey = CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey; String key = RedisUtils.getCacheObject(cacheRepeatKey); if (key == null) { RedisUtils.setCacheObject(cacheRepeatKey, "", Duration.ofMillis(interval)); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java index dcb9b1996..1e3c22c35 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java @@ -5,7 +5,7 @@ import cn.dev33.satoken.listener.SaTokenListener; import cn.dev33.satoken.stp.SaLoginModel; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.dto.UserOnlineDTO; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserType; @@ -50,7 +50,7 @@ public class UserActionListener implements SaTokenListener { dto.setTokenId(tokenValue); dto.setUserName(user.getUsername()); dto.setDeptName(user.getDeptName()); - RedisUtils.setCacheObject(Constants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(tokenConfig.getTimeout())); + RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(tokenConfig.getTimeout())); log.info("user doLogin, userId:{}, token:{}", loginId, tokenValue); } else if (userType == UserType.APP_USER) { // app端 自行根据业务编写 @@ -62,7 +62,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doLogout(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(Constants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doLogout, userId:{}, token:{}", loginId, tokenValue); } @@ -71,7 +71,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doKickout(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(Constants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doLogoutByLoginId, userId:{}, token:{}", loginId, tokenValue); } @@ -80,7 +80,7 @@ public class UserActionListener implements SaTokenListener { */ @Override public void doReplaced(String loginType, Object loginId, String tokenValue) { - RedisUtils.deleteObject(Constants.ONLINE_TOKEN_KEY + tokenValue); + RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue); log.info("user doReplaced, userId:{}, token:{}", loginId, tokenValue); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java new file mode 100644 index 000000000..632c71ad8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java @@ -0,0 +1,54 @@ +package com.ruoyi.system.domain; + +import com.ruoyi.common.utils.StringUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 缓存信息 + * + * @author Lion Li + */ +@Data +@NoArgsConstructor +@ApiModel("缓存信息") +public class SysCache { + + /** + * 缓存名称 + */ + @ApiModelProperty(value = "缓存名称") + private String cacheName = ""; + + /** + * 缓存键名 + */ + @ApiModelProperty(value = "缓存键名") + private String cacheKey = ""; + + /** + * 缓存内容 + */ + @ApiModelProperty(value = "缓存内容") + private String cacheValue = ""; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remark = ""; + + public SysCache(String cacheName, String remark) { + this.cacheName = cacheName; + this.remark = remark; + } + + public SysCache(String cacheName, String cacheKey, String cacheValue) { + this.cacheName = StringUtils.replace(cacheName, ":", ""); + this.cacheKey = StringUtils.replace(cacheKey, cacheName, ""); + this.cacheValue = cacheValue; + } + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java index 540708f4b..5a43203bf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java @@ -5,6 +5,7 @@ import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.dto.RoleDTO; import com.ruoyi.common.core.domain.entity.SysUser; @@ -130,7 +131,7 @@ public class SysLoginService { * 校验短信验证码 */ private boolean validateSmsCode(String phonenumber, String smsCode, HttpServletRequest request) { - String code = RedisUtils.getCacheObject(Constants.CAPTCHA_CODE_KEY + phonenumber); + String code = RedisUtils.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + phonenumber); if (StringUtils.isBlank(code)) { asyncService.recordLogininfor(phonenumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request); throw new CaptchaExpireException(); @@ -146,7 +147,7 @@ public class SysLoginService { * @param uuid 唯一标识 */ public void validateCaptcha(String username, String code, String uuid, HttpServletRequest request) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); String captcha = RedisUtils.getCacheObject(verifyKey); RedisUtils.deleteObject(verifyKey); if (captcha == null) { @@ -242,7 +243,7 @@ public class SysLoginService { */ private void checkLogin(LoginType loginType, String username, Supplier supplier) { HttpServletRequest request = ServletUtils.getRequest(); - String errorKey = Constants.LOGIN_ERROR + username; + String errorKey = CacheConstants.LOGIN_ERROR + username; Integer errorLimitTime = Constants.LOGIN_ERROR_LIMIT_TIME; Integer setErrorNumber = Constants.LOGIN_ERROR_NUMBER; String loginFail = Constants.LOGIN_FAIL; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java index 8c7274ef8..cefe4f75e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service; import cn.dev33.satoken.secure.BCrypt; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -72,7 +73,7 @@ public class SysRegisterService { * @return 结果 */ public void validateCaptcha(String username, String code, String uuid, HttpServletRequest request) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); String captcha = RedisUtils.getCacheObject(verifyKey); RedisUtils.deleteObject(verifyKey); if (captcha == null) { 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 070d1daed..ab6a826a7 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 @@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; @@ -182,7 +182,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { */ @Override public void clearConfigCache() { - Collection keys = RedisUtils.keys(Constants.SYS_CONFIG_KEY + "*"); + Collection keys = RedisUtils.keys(CacheConstants.SYS_CONFIG_KEY + "*"); RedisUtils.deleteObject(keys); } @@ -234,6 +234,6 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { * @return 缓存键key */ private String getCacheKey(String configKey) { - return Constants.SYS_CONFIG_KEY + configKey; + return CacheConstants.SYS_CONFIG_KEY + configKey; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java index 03de7c5e4..71a83052a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.page.TableDataInfo; @@ -133,6 +133,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService { * @return 缓存键key */ String getCacheKey(String configKey) { - return Constants.SYS_DICT_KEY + configKey; + return CacheConstants.SYS_DICT_KEY + configKey; } } 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 187778036..04e4f4ecf 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 @@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDictData; @@ -157,7 +157,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService */ @Override public void clearDictCache() { - Collection keys = RedisUtils.keys(Constants.SYS_DICT_KEY + "*"); + Collection keys = RedisUtils.keys(CacheConstants.SYS_DICT_KEY + "*"); RedisUtils.deleteObject(keys); } @@ -294,6 +294,6 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService * @return 缓存键key */ String getCacheKey(String configKey) { - return Constants.SYS_DICT_KEY + configKey; + return CacheConstants.SYS_DICT_KEY + configKey; } } diff --git a/ruoyi-ui/src/api/monitor/cache.js b/ruoyi-ui/src/api/monitor/cache.js index 2ffaf7a3f..e1f2c878c 100644 --- a/ruoyi-ui/src/api/monitor/cache.js +++ b/ruoyi-ui/src/api/monitor/cache.js @@ -7,3 +7,51 @@ export function getCache() { method: 'get' }) } + +// 查询缓存名称列表 +export function listCacheName() { + return request({ + url: '/monitor/cache/getNames', + method: 'get' + }) +} + +// 查询缓存键名列表 +export function listCacheKey(cacheName) { + return request({ + url: '/monitor/cache/getKeys/' + cacheName, + method: 'get' + }) +} + +// 查询缓存内容 +export function getCacheValue(cacheName, cacheKey) { + return request({ + url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, + method: 'get' + }) +} + +// 清理指定名称缓存 +export function clearCacheName(cacheName) { + return request({ + url: '/monitor/cache/clearCacheName/' + cacheName, + method: 'delete' + }) +} + +// 清理指定键名缓存 +export function clearCacheKey(cacheKey) { + return request({ + url: '/monitor/cache/clearCacheKey/' + cacheKey, + method: 'delete' + }) +} + +// 清理全部缓存 +export function clearCacheAll() { + return request({ + url: '/monitor/cache/clearCacheAll', + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/assets/icons/svg/redis-list.svg b/ruoyi-ui/src/assets/icons/svg/redis-list.svg new file mode 100644 index 000000000..98a15b2a6 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/redis-list.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/views/monitor/cache/index.vue b/ruoyi-ui/src/views/monitor/cache/index.vue index cafa28cfb..cfef20d96 100644 --- a/ruoyi-ui/src/views/monitor/cache/index.vue +++ b/ruoyi-ui/src/views/monitor/cache/index.vue @@ -71,7 +71,7 @@ import { getCache } from "@/api/monitor/cache"; import echarts from "echarts"; export default { - name: "Server", + name: "Cache", data() { return { // 统计命令信息 @@ -79,8 +79,8 @@ export default { // 使用内存 usedmemory: null, // cache信息 - cache: [], - }; + cache: [] + } }, created() { this.getList(); @@ -109,8 +109,8 @@ export default { data: response.data.commandStats, animationEasing: "cubicInOut", animationDuration: 1000, - }, - ], + } + ] }); this.usedmemory = echarts.init(this.$refs.usedmemory, "macarons"); this.usedmemory.setOption({ @@ -130,17 +130,17 @@ export default { { value: parseFloat(this.cache.info.used_memory_human), name: "内存消耗", - }, - ], - }, - ], + } + ] + } + ] }); }); }, // 打开加载层 openLoading() { this.$modal.loading("正在加载缓存监控数据,请稍候!"); - }, - }, + } + } }; diff --git a/ruoyi-ui/src/views/monitor/cache/list.vue b/ruoyi-ui/src/views/monitor/cache/list.vue new file mode 100644 index 000000000..a1e795522 --- /dev/null +++ b/ruoyi-ui/src/views/monitor/cache/list.vue @@ -0,0 +1,241 @@ + + + diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index bdd095234..985781f5b 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -163,7 +163,7 @@ @@ -397,3 +397,4 @@ export default { } }; + diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index a96dff046..0921752b2 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -61,6 +61,7 @@ module.exports = { plugins: [ // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 new CompressionPlugin({ + cache: false, // 不启用文件缓存 test: /\.(js|css|html)?$/i, // 压缩文件格式 filename: '[path].gz[query]', // 压缩后的文件名 algorithm: 'gzip', // 使用gzip压缩 diff --git a/script/sql/oracle/oracle_ry_vue_4.X.sql b/script/sql/oracle/oracle_ry_vue_4.X.sql index eabf91910..f53ca82b5 100644 --- a/script/sql/oracle/oracle_ry_vue_4.X.sql +++ b/script/sql/oracle/oracle_ry_vue_4.X.sql @@ -258,6 +258,7 @@ insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 's insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate, '', null, '日志管理菜单'); insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate, '', null, '在线用户菜单'); insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate, '', null, '数据监控菜单'); +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate, '', null, '缓存列表菜单'); insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate, '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate, '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate, '', null, '代码生成菜单'); diff --git a/script/sql/postgres/postgres_ry_vue_4.X.sql b/script/sql/postgres/postgres_ry_vue_4.X.sql index 316d3bbd5..ad49672ec 100644 --- a/script/sql/postgres/postgres_ry_vue_4.X.sql +++ b/script/sql/postgres/postgres_ry_vue_4.X.sql @@ -261,6 +261,7 @@ insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 's insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', '1', '0', 'M', '0', '0', '', 'log', 'admin', now(), '', null, '日志管理菜单'); insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', '1', '0', 'C', '0', '0', 'monitor:online:list', 'online', 'admin', now(), '', null, '在线用户菜单'); insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', '1', '0', 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', now(), '', null, '数据监控菜单'); +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', now(), '', null, '缓存列表菜单'); insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', now(), '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', '1', '0', 'C', '0', '0', 'tool:build:list', 'build', 'admin', now(), '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', '1', '0', 'C', '0', '0', 'tool:gen:list', 'code', 'admin', now(), '', null, '代码生成菜单'); diff --git a/script/sql/ry_vue_4.X.sql b/script/sql/ry_vue_4.X.sql index 560f3fc53..b10eacbe0 100644 --- a/script/sql/ry_vue_4.X.sql +++ b/script/sql/ry_vue_4.X.sql @@ -173,6 +173,7 @@ insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 's insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单'); insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单'); insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate(), '', null, '数据监控菜单'); +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); diff --git a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql index 97b8be1cd..9d8e1eedc 100644 --- a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql +++ b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql @@ -1078,6 +1078,8 @@ INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [co GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (111, N'数据监控', 2, 3, N'druid', N'monitor/druid/index', N'', 1, 0, N'C', N'0', N'0', N'monitor:druid:list', N'druid', N'admin', getdate(), N'', NULL, N'数据监控菜单') GO +INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (112, N'缓存列表', 2, 6, N'cacheList', N'monitor/cache/list', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis-list', N'admin', getdate(), N'', NULL, N'缓存列表菜单') +GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (113, N'缓存监控', 2, 5, N'cache', N'monitor/cache/index', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis', N'admin', getdate(), N'', NULL, N'缓存监控菜单') GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (114, N'表单构建', 3, 1, N'build', N'tool/build/index', N'', 1, 0, N'C', N'0', N'0', N'tool:build:list', N'build', N'admin', getdate(), N'', NULL, N'表单构建菜单') diff --git a/script/sql/update/oracle/update-4.2-4.3.sql b/script/sql/update/oracle/update-4.2-4.3.sql new file mode 100644 index 000000000..a995acce3 --- /dev/null +++ b/script/sql/update/oracle/update-4.2-4.3.sql @@ -0,0 +1 @@ +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate, '', null, '缓存列表菜单'); diff --git a/script/sql/update/postgres/update-4.2-4.3.sql b/script/sql/update/postgres/update-4.2-4.3.sql new file mode 100644 index 000000000..9a3c41b28 --- /dev/null +++ b/script/sql/update/postgres/update-4.2-4.3.sql @@ -0,0 +1 @@ +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', now(), '', null, '缓存列表菜单'); diff --git a/script/sql/update/sqlserver/update-4.1-4.2.sql b/script/sql/update/sqlserver/update-4.1-4.2.sql index 9e217ec7b..fd4223886 100644 --- a/script/sql/update/sqlserver/update-4.1-4.2.sql +++ b/script/sql/update/sqlserver/update-4.1-4.2.sql @@ -1,27 +1,2 @@ -ALTER TABLE [sys_oss_config] ADD [domain] nvarchar(255) DEFAULT '' NULL -GO - -EXEC sp_addextendedproperty -'MS_Description', N'自定义域名', -'SCHEMA', N'dbo', -'TABLE', N'sys_oss_config', -'COLUMN', N'domain' -GO - -UPDATE [sys_oss_config] SET [access_key] = N'ruoyi', [secret_key] = N'ruoyi123', [endpoint] = N'127.0.0.1:9000' WHERE [oss_config_id] = 1 -GO - -UPDATE [sys_oss_config] SET [endpoint] = N's3-cn-north-1.qiniucs.com' WHERE [oss_config_id] = 2 -GO - -UPDATE [sys_oss_config] SET [endpoint] = N'oss-cn-beijing.aliyuncs.com' WHERE [oss_config_id] = 3 -GO - -UPDATE [sys_oss_config] SET [endpoint] = N'cos.ap-beijing.myqcloud.com' WHERE [oss_config_id] = 4 -GO - -INSERT INTO [sys_oss_config] ([oss_config_id], [config_key], [access_key], [secret_key], [bucket_name], [prefix], [endpoint], [domain], [is_https], [region], [status], [ext1], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (N'5', N'image', N'ruoyi', N'ruoyi123', N'ruoyi', N'image', N'127.0.0.1:9000', N'',N'N', N'', N'1', N'', N'admin', getdate(), N'admin', getdate(), NULL) -GO - -ALTER TABLE [gen_table_column] ALTER COLUMN [table_id] bigint NULL +INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (112, N'缓存列表', 2, 6, N'cacheList', N'monitor/cache/list', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis-list', N'admin', getdate(), N'', NULL, N'缓存列表菜单') GO diff --git a/script/sql/update/sqlserver/update-4.2-4.3.sql b/script/sql/update/sqlserver/update-4.2-4.3.sql new file mode 100644 index 000000000..9a3c41b28 --- /dev/null +++ b/script/sql/update/sqlserver/update-4.2-4.3.sql @@ -0,0 +1 @@ +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', now(), '', null, '缓存列表菜单'); diff --git a/script/sql/update/update-4.2-4.3.sql b/script/sql/update/update-4.2-4.3.sql new file mode 100644 index 000000000..8486c380a --- /dev/null +++ b/script/sql/update/update-4.2-4.3.sql @@ -0,0 +1,2 @@ +insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); + diff --git a/sql/ry_20220613.sql b/sql/ry_20220613.sql new file mode 100644 index 000000000..e69de29bb From 84f00e7cad5e924c9b55d9039cd20ae665f6a9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 6 Jul 2022 15:46:56 +0800 Subject: [PATCH 030/299] =?UTF-8?q?=E5=90=8C=E6=AD=A5ruoyi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/ry_20220625.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sql/ry_20220625.sql diff --git a/sql/ry_20220625.sql b/sql/ry_20220625.sql deleted file mode 100644 index e69de29bb..000000000 From 48cb0a1bb1d3cb3f23a31adcf83173365c86f4f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 6 Jul 2022 16:13:42 +0800 Subject: [PATCH 031/299] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E8=BF=87?= =?UTF-8?q?=E6=97=B6=E9=85=8D=E7=BD=AE=20WebSecurityConfigurerAdapter=20?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20bean=20=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/admin/config/SecurityConfig.java | 46 ++++++++++--------- .../src/main/resources/application.yml | 2 + 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java index 2b04f712f..627fa835a 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java @@ -1,10 +1,10 @@ package com.ruoyi.monitor.admin.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; -import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; /** @@ -12,9 +12,8 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti * * @author Lion Li */ -@Configuration @EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { +public class SecurityConfig { private final String adminContextPath; @@ -22,27 +21,30 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { this.adminContextPath = adminServerProperties.getContextPath(); } - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("redirectTo"); successHandler.setDefaultTargetUrl(adminContextPath + "/"); - // admin监控 用户鉴权 - httpSecurity.authorizeRequests() - //授予对所有静态资产和登录页面的公共访问权限。 - .antMatchers(adminContextPath + "/assets/**").permitAll() - .antMatchers(adminContextPath + "/login").permitAll() - .antMatchers("/actuator").permitAll() - .antMatchers("/actuator/**").permitAll() - //必须对每个其他请求进行身份验证 - .anyRequest().authenticated().and() - //配置登录和注销 - .formLogin().loginPage(adminContextPath + "/login") - .successHandler(successHandler).and() - .logout().logoutUrl(adminContextPath + "/logout").and() - //启用HTTP-Basic支持。这是Spring Boot Admin Client注册所必需的 - .httpBasic().and().csrf().disable() - .headers().frameOptions().disable(); + + return httpSecurity + .headers().frameOptions().disable() + .and().authorizeRequests() + .antMatchers(adminContextPath + "/assets/**" + , adminContextPath + "/login" + , "/actuator" + , "/actuator/**" + ).permitAll() + .anyRequest().authenticated() + .and() + .formLogin().loginPage(adminContextPath + "/login") + .successHandler(successHandler).and() + .logout().logoutUrl(adminContextPath + "/logout") + .and() + .httpBasic().and() + .csrf() + .disable() + .build(); } } diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml index bf0db5620..128a6f989 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml @@ -14,6 +14,8 @@ spring: password: 123456 boot: admin: + ui: + title: RuoYi-Vue-Plus服务监控中心 context-path: /admin --- # Actuator 监控端点的配置项 From 0b077806196ceb8a68af93f00880ccc70aee50c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 7 Jul 2022 18:08:14 +0800 Subject: [PATCH 032/299] =?UTF-8?q?add=20=E6=95=B4=E5=90=88=20springdoc=20?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=20knife4j?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 18 +- .../controller/common/CaptchaController.java | 14 +- .../controller/monitor/CacheController.java | 20 +-- .../monitor/SysLogininforController.java | 16 +- .../monitor/SysOperlogController.java | 16 +- .../monitor/SysUserOnlineController.java | 10 +- .../system/SysConfigController.java | 34 ++-- .../controller/system/SysDeptController.java | 32 ++-- .../system/SysDictDataController.java | 30 ++-- .../system/SysDictTypeController.java | 30 ++-- .../controller/system/SysIndexController.java | 8 +- .../controller/system/SysLoginController.java | 18 +- .../controller/system/SysMenuController.java | 28 +-- .../system/SysNoticeController.java | 24 +-- .../system/SysOssConfigController.java | 26 +-- .../controller/system/SysOssController.java | 29 +-- .../controller/system/SysPostController.java | 28 +-- .../system/SysProfileController.java | 30 ++-- .../system/SysRegisterController.java | 8 +- .../controller/system/SysRoleController.java | 54 +++--- .../controller/system/SysUserController.java | 48 ++--- .../src/main/resources/application.yml | 82 +++++---- ruoyi-common/pom.xml | 9 +- .../ruoyi/common/core/domain/BaseEntity.java | 14 +- .../ruoyi/common/core/domain/PageQuery.java | 10 +- .../java/com/ruoyi/common/core/domain/R.java | 11 +- .../ruoyi/common/core/domain/TreeEntity.java | 8 +- .../common/core/domain/entity/SysDept.java | 23 ++- .../core/domain/entity/SysDictData.java | 25 ++- .../core/domain/entity/SysDictType.java | 16 +- .../common/core/domain/entity/SysMenu.java | 33 ++-- .../common/core/domain/entity/SysRole.java | 30 ++-- .../common/core/domain/entity/SysUser.java | 49 +++--- .../common/core/domain/model/LoginBody.java | 13 +- .../core/domain/model/RegisterBody.java | 7 +- .../core/domain/model/SmsLoginBody.java | 9 +- .../ruoyi/common/core/page/TableDataInfo.java | 14 +- .../ruoyi/demo/controller/MailController.java | 26 +-- .../demo/controller/RedisCacheController.java | 14 +- .../demo/controller/RedisLockController.java | 10 +- .../controller/RedisPubSubController.java | 16 +- .../RedisRateLimiterController.java | 12 +- .../ruoyi/demo/controller/SmsController.java | 20 +-- .../controller/Swagger3DemoController.java | 19 +- .../demo/controller/TestBatchController.java | 12 +- .../demo/controller/TestDemoController.java | 35 ++-- .../demo/controller/TestExcelController.java | 10 +- .../demo/controller/TestI18nController.java | 16 +- .../controller/TestSensitiveController.java | 8 +- .../demo/controller/TestTreeController.java | 24 +-- .../queue/BoundedQueueController.java | 22 +-- .../queue/DelayedQueueController.java | 30 ++-- .../queue/PriorityQueueController.java | 24 +-- .../com/ruoyi/demo/domain/bo/TestDemoBo.java | 17 +- .../demo/domain/bo/TestDemoImportVo.java | 15 +- .../com/ruoyi/demo/domain/bo/TestTreeBo.java | 13 +- .../com/ruoyi/demo/domain/vo/TestDemoVo.java | 25 ++- .../com/ruoyi/demo/domain/vo/TestTreeVo.java | 17 +- .../ruoyi/framework/config/SwaggerConfig.java | 165 +++--------------- .../config/properties/SwaggerProperties.java | 77 ++++---- .../generator/controller/GenController.java | 30 ++-- .../src/main/resources/vm/java/bo.java.vm | 6 +- .../main/resources/vm/java/controller.java.vm | 23 ++- .../src/main/resources/vm/java/vo.java.vm | 4 +- .../com/ruoyi/system/domain/SysCache.java | 13 +- .../com/ruoyi/system/domain/SysConfig.java | 17 +- .../ruoyi/system/domain/SysLogininfor.java | 25 ++- .../com/ruoyi/system/domain/SysNotice.java | 14 +- .../com/ruoyi/system/domain/SysOperLog.java | 41 +++-- .../java/com/ruoyi/system/domain/SysPost.java | 19 +- .../com/ruoyi/system/domain/SysRoleDept.java | 9 +- .../com/ruoyi/system/domain/SysRoleMenu.java | 9 +- .../ruoyi/system/domain/SysUserOnline.java | 21 ++- .../com/ruoyi/system/domain/SysUserPost.java | 9 +- .../com/ruoyi/system/domain/SysUserRole.java | 9 +- .../com/ruoyi/system/domain/bo/SysOssBo.java | 15 +- .../system/domain/bo/SysOssConfigBo.java | 31 ++-- .../com/ruoyi/system/domain/vo/MetaVo.java | 13 +- .../com/ruoyi/system/domain/vo/RouterVo.java | 23 ++- .../system/domain/vo/SysOssConfigVo.java | 31 ++-- .../com/ruoyi/system/domain/vo/SysOssVo.java | 21 ++- .../service/impl/SysOssConfigServiceImpl.java | 3 +- 82 files changed, 873 insertions(+), 1014 deletions(-) diff --git a/pom.xml b/pom.xml index 9f1963baf..9aa357eec 100644 --- a/pom.xml +++ b/pom.xml @@ -85,21 +85,9 @@ - com.github.xiaoymin - knife4j-spring-boot-starter - ${knife4j.version} - - - swagger-annotations - io.swagger - - - - - - io.swagger - swagger-annotations - ${swagger-annotations.version} + org.springdoc + springdoc-openapi-ui + 1.6.9 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 3bfe35a85..6865d162f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -19,9 +19,9 @@ import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; import com.ruoyi.sms.entity.SmsResult; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -41,7 +41,7 @@ import java.util.Map; @Anonymous @Slf4j @Validated -@Api(value = "验证码操作处理", tags = {"验证码管理"}) +@Tag(name ="验证码操作处理", description = "验证码管理") @RequiredArgsConstructor @RestController public class CaptchaController { @@ -53,9 +53,9 @@ public class CaptchaController { /** * 短信验证码 */ - @ApiOperation("短信验证码") + @Operation(summary = "短信验证码") @GetMapping("/captchaSms") - public R smsCaptcha(@ApiParam("用户手机号") + public R smsCaptcha(@Parameter(name = "用户手机号") @NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { if (smsProperties.getEnabled()) { @@ -80,7 +80,7 @@ public class CaptchaController { /** * 生成验证码 */ - @ApiOperation("生成验证码") + @Operation(summary = "生成验证码") @GetMapping("/captchaImage") public R> getCode() { Map ajax = new HashMap<>(); 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 e84f60dff..e0dad9f8b 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 @@ -5,8 +5,8 @@ import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysCache; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.connection.RedisServerCommands; import org.springframework.data.redis.core.RedisCallback; @@ -20,7 +20,7 @@ import java.util.*; * * @author Lion Li */ -@Api(value = "缓存监控", tags = {"缓存监控管理"}) +@Tag(name ="缓存监控", description = "缓存监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/cache") @@ -41,7 +41,7 @@ public class CacheController { CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); } - @ApiOperation("获取缓存监控详细信息") + @Operation(summary = "获取缓存监控详细信息") @SaCheckPermission("monitor:cache:list") @GetMapping() public R> getInfo() throws Exception { @@ -67,14 +67,14 @@ public class CacheController { return R.ok(result); } - @ApiOperation("获取缓存名称列表") + @Operation(summary = "获取缓存名称列表") @SaCheckPermission("monitor:cache:list") @GetMapping("/getNames") public R> cache() { return R.ok(CACHES); } - @ApiOperation("获取KEYS基于缓存名") + @Operation(summary = "获取KEYS基于缓存名") @SaCheckPermission("monitor:cache:list") @GetMapping("/getKeys/{cacheName}") public R> getCacheKeys(@PathVariable String cacheName) { @@ -82,7 +82,7 @@ public class CacheController { return R.ok(cacheKyes); } - @ApiOperation("获取值基于缓存名与KEY") + @Operation(summary = "获取值基于缓存名与KEY") @SaCheckPermission("monitor:cache:list") @GetMapping("/getValue/{cacheName}/{cacheKey}") public R getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { @@ -91,7 +91,7 @@ public class CacheController { return R.ok(sysCache); } - @ApiOperation("清空缓存名") + @Operation(summary = "清空缓存名") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheName/{cacheName}") public R clearCacheName(@PathVariable String cacheName) { @@ -100,7 +100,7 @@ public class CacheController { return R.ok(); } - @ApiOperation("清空缓存KEY") + @Operation(summary = "清空缓存KEY") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheKey/{cacheKey}") public R clearCacheKey(@PathVariable String cacheKey) { @@ -108,7 +108,7 @@ public class CacheController { return R.ok(); } - @ApiOperation("清空所有缓存") + @Operation(summary = "清空所有缓存") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheAll") public R clearCacheAll() { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 5bec15169..6e2eaae66 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -3,15 +3,15 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -25,7 +25,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "系统访问记录", tags = {"系统访问记录管理"}) +@Tag(name ="系统访问记录", description = "系统访问记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/logininfor") @@ -33,14 +33,14 @@ public class SysLogininforController extends BaseController { private final ISysLogininforService logininforService; - @ApiOperation("查询系统访问记录列表") + @Operation(summary = "查询系统访问记录列表") @SaCheckPermission("monitor:logininfor:list") @GetMapping("/list") public TableDataInfo list(SysLogininfor logininfor, PageQuery pageQuery) { return logininforService.selectPageLogininforList(logininfor, pageQuery); } - @ApiOperation("导出系统访问记录列表") + @Operation(summary = "导出系统访问记录列表") @Log(title = "登录日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:logininfor:export") @PostMapping("/export") @@ -49,7 +49,7 @@ public class SysLogininforController extends BaseController { ExcelUtil.exportExcel(list, "登录日志", SysLogininfor.class, response); } - @ApiOperation("删除系统访问记录") + @Operation(summary = "删除系统访问记录") @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") @@ -57,7 +57,7 @@ public class SysLogininforController extends BaseController { return toAjax(logininforService.deleteLogininforByIds(infoIds)); } - @ApiOperation("清空系统访问记录") + @Operation(summary = "清空系统访问记录") @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 8145bc66e..290c6e4a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -3,15 +3,15 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -25,7 +25,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "操作日志记录", tags = {"操作日志记录管理"}) +@Tag(name ="操作日志记录", description = "操作日志记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/operlog") @@ -33,14 +33,14 @@ public class SysOperlogController extends BaseController { private final ISysOperLogService operLogService; - @ApiOperation("查询操作日志记录列表") + @Operation(summary = "查询操作日志记录列表") @SaCheckPermission("monitor:operlog:list") @GetMapping("/list") public TableDataInfo list(SysOperLog operLog, PageQuery pageQuery) { return operLogService.selectPageOperLogList(operLog, pageQuery); } - @ApiOperation("导出操作日志记录列表") + @Operation(summary = "导出操作日志记录列表") @Log(title = "操作日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:operlog:export") @PostMapping("/export") @@ -49,7 +49,7 @@ public class SysOperlogController extends BaseController { ExcelUtil.exportExcel(list, "操作日志", SysOperLog.class, response); } - @ApiOperation("删除操作日志记录") + @Operation(summary = "删除操作日志记录") @Log(title = "操作日志", businessType = BusinessType.DELETE) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/{operIds}") @@ -57,7 +57,7 @@ public class SysOperlogController extends BaseController { return toAjax(operLogService.deleteOperLogByIds(operIds)); } - @ApiOperation("清空操作日志记录") + @Operation(summary = "清空操作日志记录") @Log(title = "操作日志", businessType = BusinessType.CLEAN) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/clean") 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 a1ea81f1f..d5bcc1364 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 @@ -15,8 +15,8 @@ import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.domain.SysUserOnline; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -29,13 +29,13 @@ import java.util.List; * * @author Lion Li */ -@Api(value = "在线用户监控", tags = {"在线用户监控管理"}) +@Tag(name ="在线用户监控", description = "在线用户监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/online") public class SysUserOnlineController extends BaseController { - @ApiOperation("在线用户列表") + @Operation(summary = "在线用户列表") @SaCheckPermission("monitor:online:list") @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { @@ -73,7 +73,7 @@ public class SysUserOnlineController extends BaseController { /** * 强退用户 */ - @ApiOperation("强退用户") + @Operation(summary = "强退用户") @SaCheckPermission("monitor:online:forceLogout") @Log(title = "在线用户", businessType = BusinessType.FORCE) @DeleteMapping("/{tokenId}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index 2dcb84375..ce73439eb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -4,16 +4,16 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -27,7 +27,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "参数配置控制器", tags = {"参数配置管理"}) +@Tag(name ="参数配置控制器", description = "参数配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/config") @@ -38,14 +38,14 @@ public class SysConfigController extends BaseController { /** * 获取参数配置列表 */ - @ApiOperation("获取参数配置列表") + @Operation(summary = "获取参数配置列表") @SaCheckPermission("system:config:list") @GetMapping("/list") public TableDataInfo list(SysConfig config, PageQuery pageQuery) { return configService.selectPageConfigList(config, pageQuery); } - @ApiOperation("导出参数配置列表") + @Operation(summary = "导出参数配置列表") @Log(title = "参数管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:config:export") @PostMapping("/export") @@ -57,26 +57,26 @@ public class SysConfigController extends BaseController { /** * 根据参数编号获取详细信息 */ - @ApiOperation("根据参数编号获取详细信息") + @Operation(summary = "根据参数编号获取详细信息") @SaCheckPermission("system:config:query") @GetMapping(value = "/{configId}") - public R getInfo(@ApiParam("参数ID") @PathVariable Long configId) { + public R getInfo(@Parameter(name = "参数ID") @PathVariable Long configId) { return R.ok(configService.selectConfigById(configId)); } /** * 根据参数键名查询参数值 */ - @ApiOperation("根据参数键名查询参数值") + @Operation(summary = "根据参数键名查询参数值") @GetMapping(value = "/configKey/{configKey}") - public R getConfigKey(@ApiParam("参数Key") @PathVariable String configKey) { + public R getConfigKey(@Parameter(name = "参数Key") @PathVariable String configKey) { return R.ok(configService.selectConfigByKey(configKey)); } /** * 新增参数配置 */ - @ApiOperation("新增参数配置") + @Operation(summary = "新增参数配置") @SaCheckPermission("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping @@ -90,7 +90,7 @@ public class SysConfigController extends BaseController { /** * 修改参数配置 */ - @ApiOperation("修改参数配置") + @Operation(summary = "修改参数配置") @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping @@ -104,7 +104,7 @@ public class SysConfigController extends BaseController { /** * 根据参数键名修改参数配置 */ - @ApiOperation("根据参数键名修改参数配置") + @Operation(summary = "根据参数键名修改参数配置") @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping("/updateByKey") @@ -115,11 +115,11 @@ public class SysConfigController extends BaseController { /** * 删除参数配置 */ - @ApiOperation("删除参数配置") + @Operation(summary = "删除参数配置") @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") - public R remove(@ApiParam("参数ID串") @PathVariable Long[] configIds) { + public R remove(@Parameter(name = "参数ID串") @PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return R.ok(); } @@ -127,7 +127,7 @@ public class SysConfigController extends BaseController { /** * 刷新参数缓存 */ - @ApiOperation("刷新参数缓存") + @Operation(summary = "刷新参数缓存") @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") 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 475cdb7e4..e99e330dc 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 @@ -11,9 +11,9 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -28,7 +28,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "部门控制器", tags = {"部门管理"}) +@Tag(name ="部门控制器", description = "部门管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dept") @@ -39,7 +39,7 @@ public class SysDeptController extends BaseController { /** * 获取部门列表 */ - @ApiOperation("获取部门列表") + @Operation(summary = "获取部门列表") @SaCheckPermission("system:dept:list") @GetMapping("/list") public R> list(SysDept dept) { @@ -50,10 +50,10 @@ public class SysDeptController extends BaseController { /** * 查询部门列表(排除节点) */ - @ApiOperation("查询部门列表(排除节点)") + @Operation(summary = "查询部门列表(排除节点)") @SaCheckPermission("system:dept:list") @GetMapping("/list/exclude/{deptId}") - public R> excludeChild(@ApiParam("部门ID") @PathVariable(value = "deptId", required = false) Long deptId) { + public R> excludeChild(@Parameter(name = "部门ID") @PathVariable(value = "deptId", required = false) Long deptId) { List depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().equals(deptId) || ArrayUtil.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); @@ -63,10 +63,10 @@ public class SysDeptController extends BaseController { /** * 根据部门编号获取详细信息 */ - @ApiOperation("根据部门编号获取详细信息") + @Operation(summary = "根据部门编号获取详细信息") @SaCheckPermission("system:dept:query") @GetMapping(value = "/{deptId}") - public R getInfo(@ApiParam("部门ID") @PathVariable Long deptId) { + public R getInfo(@Parameter(name = "部门ID") @PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); return R.ok(deptService.selectDeptById(deptId)); } @@ -74,7 +74,7 @@ public class SysDeptController extends BaseController { /** * 获取部门下拉树列表 */ - @ApiOperation("获取部门下拉树列表") + @Operation(summary = "获取部门下拉树列表") @GetMapping("/treeselect") public R>> treeselect(SysDept dept) { List depts = deptService.selectDeptList(dept); @@ -84,9 +84,9 @@ public class SysDeptController extends BaseController { /** * 加载对应角色部门列表树 */ - @ApiOperation("加载对应角色部门列表树") + @Operation(summary = "加载对应角色部门列表树") @GetMapping(value = "/roleDeptTreeselect/{roleId}") - public R> roleDeptTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { + public R> roleDeptTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { List depts = deptService.selectDeptList(new SysDept()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); @@ -97,7 +97,7 @@ public class SysDeptController extends BaseController { /** * 新增部门 */ - @ApiOperation("新增部门") + @Operation(summary = "新增部门") @SaCheckPermission("system:dept:add") @Log(title = "部门管理", businessType = BusinessType.INSERT) @PostMapping @@ -111,7 +111,7 @@ public class SysDeptController extends BaseController { /** * 修改部门 */ - @ApiOperation("修改部门") + @Operation(summary = "修改部门") @SaCheckPermission("system:dept:edit") @Log(title = "部门管理", businessType = BusinessType.UPDATE) @PutMapping @@ -132,11 +132,11 @@ public class SysDeptController extends BaseController { /** * 删除部门 */ - @ApiOperation("删除部门") + @Operation(summary = "删除部门") @SaCheckPermission("system:dept:remove") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") - public R remove(@ApiParam("部门ID串") @PathVariable Long deptId) { + public R remove(@Parameter(name = "部门ID串") @PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) { return R.fail("存在下级部门,不允许删除"); } 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 060e980e4..a6ef304f1 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 @@ -4,17 +4,17 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -29,7 +29,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "数据字典信息控制器", tags = {"数据字典信息管理"}) +@Tag(name ="数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/data") @@ -38,14 +38,14 @@ public class SysDictDataController extends BaseController { private final ISysDictDataService dictDataService; private final ISysDictTypeService dictTypeService; - @ApiOperation("查询字典数据列表") + @Operation(summary = "查询字典数据列表") @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictData dictData, PageQuery pageQuery) { return dictDataService.selectPageDictDataList(dictData, pageQuery); } - @ApiOperation("导出字典数据列表") + @Operation(summary = "导出字典数据列表") @Log(title = "字典数据", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -57,19 +57,19 @@ public class SysDictDataController extends BaseController { /** * 查询字典数据详细 */ - @ApiOperation("查询字典数据详细") + @Operation(summary = "查询字典数据详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictCode}") - public R getInfo(@ApiParam("字典code") @PathVariable Long dictCode) { + public R getInfo(@Parameter(name = "字典code") @PathVariable Long dictCode) { return R.ok(dictDataService.selectDictDataById(dictCode)); } /** * 根据字典类型查询字典数据信息 */ - @ApiOperation("根据字典类型查询字典数据信息") + @Operation(summary = "根据字典类型查询字典数据信息") @GetMapping(value = "/type/{dictType}") - public R> dictType(@ApiParam("字典类型") @PathVariable String dictType) { + public R> dictType(@Parameter(name = "字典类型") @PathVariable String dictType) { List data = dictTypeService.selectDictDataByType(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); @@ -80,7 +80,7 @@ public class SysDictDataController extends BaseController { /** * 新增字典类型 */ - @ApiOperation("新增字典类型") + @Operation(summary = "新增字典类型") @SaCheckPermission("system:dict:add") @Log(title = "字典数据", businessType = BusinessType.INSERT) @PostMapping @@ -91,7 +91,7 @@ public class SysDictDataController extends BaseController { /** * 修改保存字典类型 */ - @ApiOperation("修改保存字典类型") + @Operation(summary = "修改保存字典类型") @SaCheckPermission("system:dict:edit") @Log(title = "字典数据", businessType = BusinessType.UPDATE) @PutMapping @@ -102,11 +102,11 @@ public class SysDictDataController extends BaseController { /** * 删除字典类型 */ - @ApiOperation("删除字典类型") + @Operation(summary = "删除字典类型") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") - public R remove(@ApiParam("字典code串") @PathVariable Long[] dictCodes) { + public R remove(@Parameter(name = "字典code串") @PathVariable Long[] dictCodes) { dictDataService.deleteDictDataByIds(dictCodes); return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index c8ebd49be..b5b28f25d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -4,16 +4,16 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysDictType; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -27,7 +27,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "数据字典信息控制器", tags = {"数据字典信息管理"}) +@Tag(name ="数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/type") @@ -35,14 +35,14 @@ public class SysDictTypeController extends BaseController { private final ISysDictTypeService dictTypeService; - @ApiOperation("查询字典类型列表") + @Operation(summary = "查询字典类型列表") @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictType dictType, PageQuery pageQuery) { return dictTypeService.selectPageDictTypeList(dictType, pageQuery); } - @ApiOperation("导出字典类型列表") + @Operation(summary = "导出字典类型列表") @Log(title = "字典类型", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -54,17 +54,17 @@ public class SysDictTypeController extends BaseController { /** * 查询字典类型详细 */ - @ApiOperation("查询字典类型详细") + @Operation(summary = "查询字典类型详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictId}") - public R getInfo(@ApiParam("字典ID") @PathVariable Long dictId) { + public R getInfo(@Parameter(name = "字典ID") @PathVariable Long dictId) { return R.ok(dictTypeService.selectDictTypeById(dictId)); } /** * 新增字典类型 */ - @ApiOperation("新增字典类型") + @Operation(summary = "新增字典类型") @SaCheckPermission("system:dict:add") @Log(title = "字典类型", businessType = BusinessType.INSERT) @PostMapping @@ -78,7 +78,7 @@ public class SysDictTypeController extends BaseController { /** * 修改字典类型 */ - @ApiOperation("修改字典类型") + @Operation(summary = "修改字典类型") @SaCheckPermission("system:dict:edit") @Log(title = "字典类型", businessType = BusinessType.UPDATE) @PutMapping @@ -92,11 +92,11 @@ public class SysDictTypeController extends BaseController { /** * 删除字典类型 */ - @ApiOperation("删除字典类型") + @Operation(summary = "删除字典类型") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") - public R remove(@ApiParam("字典ID串") @PathVariable Long[] dictIds) { + public R remove(@Parameter(name = "字典ID串") @PathVariable Long[] dictIds) { dictTypeService.deleteDictTypeByIds(dictIds); return R.ok(); } @@ -104,7 +104,7 @@ public class SysDictTypeController extends BaseController { /** * 刷新字典缓存 */ - @ApiOperation("刷新字典缓存") + @Operation(summary = "刷新字典缓存") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") @@ -116,7 +116,7 @@ public class SysDictTypeController extends BaseController { /** * 获取字典选择框列表 */ - @ApiOperation("获取字典选择框列表") + @Operation(summary = "获取字典选择框列表") @GetMapping("/optionselect") public R> optionselect() { List dictTypes = dictTypeService.selectDictTypeAll(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index c68891997..db2c7ae6a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -2,8 +2,8 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.StringUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Api(value = "首页控制器", tags = {"首页管理"}) +@Tag(name ="首页控制器", description = "首页管理") @RequiredArgsConstructor @RestController public class SysIndexController { @@ -26,7 +26,7 @@ public class SysIndexController { /** * 访问首页,提示语 */ - @ApiOperation("访问首页,提示语") + @Operation(summary = "访问首页,提示语") @GetMapping("/") public String index() { return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); 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 9c4057898..d0b3152db 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 @@ -13,8 +13,8 @@ import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysLoginService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -34,7 +34,7 @@ import java.util.Set; * @author Lion Li */ @Validated -@Api(value = "登录验证控制器", tags = {"登录验证管理"}) +@Tag(name ="登录验证控制器", description = "登录验证管理") @RequiredArgsConstructor @RestController public class SysLoginController { @@ -51,7 +51,7 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @ApiOperation("登录方法") + @Operation(summary = "登录方法") @PostMapping("/login") public R> login(@Validated @RequestBody LoginBody loginBody) { Map ajax = new HashMap<>(); @@ -69,7 +69,7 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @ApiOperation("短信登录(示例)") + @Operation(summary = "短信登录(示例)") @PostMapping("/smsLogin") public R> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) { Map ajax = new HashMap<>(); @@ -86,7 +86,7 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @ApiOperation("小程序登录(示例)") + @Operation(summary = "小程序登录(示例)") @PostMapping("/xcxLogin") public R> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) { Map ajax = new HashMap<>(); @@ -97,7 +97,7 @@ public class SysLoginController { } @Anonymous - @ApiOperation("登出方法") + @Operation(summary = "登出方法") @PostMapping("/logout") public R logout() { loginService.logout(); @@ -109,7 +109,7 @@ public class SysLoginController { * * @return 用户信息 */ - @ApiOperation("获取用户信息") + @Operation(summary = "获取用户信息") @GetMapping("getInfo") public R> getInfo() { SysUser user = userService.selectUserById(LoginHelper.getUserId()); @@ -129,7 +129,7 @@ public class SysLoginController { * * @return 路由信息 */ - @ApiOperation("获取路由信息") + @Operation(summary = "获取路由信息") @GetMapping("getRouters") public R> getRouters() { Long userId = LoginHelper.getUserId(); 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 030363e00..40c03d1aa 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 @@ -10,9 +10,9 @@ import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysMenuService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -27,7 +27,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "菜单信息控制器", tags = {"菜单信息管理"}) +@Tag(name ="菜单信息控制器", description = "菜单信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/menu") @@ -38,7 +38,7 @@ public class SysMenuController extends BaseController { /** * 获取菜单列表 */ - @ApiOperation("获取菜单列表") + @Operation(summary = "获取菜单列表") @SaCheckPermission("system:menu:list") @GetMapping("/list") public R> list(SysMenu menu) { @@ -49,17 +49,17 @@ public class SysMenuController extends BaseController { /** * 根据菜单编号获取详细信息 */ - @ApiOperation("根据菜单编号获取详细信息") + @Operation(summary = "根据菜单编号获取详细信息") @SaCheckPermission("system:menu:query") @GetMapping(value = "/{menuId}") - public R getInfo(@ApiParam("菜单ID") @PathVariable Long menuId) { + public R getInfo(@Parameter(name = "菜单ID") @PathVariable Long menuId) { return R.ok(menuService.selectMenuById(menuId)); } /** * 获取菜单下拉树列表 */ - @ApiOperation("获取菜单下拉树列表") + @Operation(summary = "获取菜单下拉树列表") @GetMapping("/treeselect") public R>> treeselect(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); @@ -69,9 +69,9 @@ public class SysMenuController extends BaseController { /** * 加载对应角色菜单列表树 */ - @ApiOperation("加载对应角色菜单列表树") + @Operation(summary = "加载对应角色菜单列表树") @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public R> roleMenuTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { + public R> roleMenuTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { List menus = menuService.selectMenuList(getUserId()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); @@ -82,7 +82,7 @@ public class SysMenuController extends BaseController { /** * 新增菜单 */ - @ApiOperation("新增菜单") + @Operation(summary = "新增菜单") @SaCheckPermission("system:menu:add") @Log(title = "菜单管理", businessType = BusinessType.INSERT) @PostMapping @@ -98,7 +98,7 @@ public class SysMenuController extends BaseController { /** * 修改菜单 */ - @ApiOperation("修改菜单") + @Operation(summary = "修改菜单") @SaCheckPermission("system:menu:edit") @Log(title = "菜单管理", businessType = BusinessType.UPDATE) @PutMapping @@ -116,11 +116,11 @@ public class SysMenuController extends BaseController { /** * 删除菜单 */ - @ApiOperation("删除菜单") + @Operation(summary = "删除菜单") @SaCheckPermission("system:menu:remove") @Log(title = "菜单管理", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") - public R remove(@ApiParam("菜单ID") @PathVariable("menuId") Long menuId) { + public R remove(@Parameter(name = "菜单ID") @PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { return R.fail("存在子菜单,不允许删除"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 6febd3e3f..de804cf80 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -3,15 +3,15 @@ package com.ruoyi.web.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.service.ISysNoticeService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.*; * @author Lion Li */ @Validated -@Api(value = "公告信息控制器", tags = {"公告信息管理"}) +@Tag(name ="公告信息控制器", description = "公告信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/notice") @@ -33,7 +33,7 @@ public class SysNoticeController extends BaseController { /** * 获取通知公告列表 */ - @ApiOperation("获取通知公告列表") + @Operation(summary = "获取通知公告列表") @SaCheckPermission("system:notice:list") @GetMapping("/list") public TableDataInfo list(SysNotice notice, PageQuery pageQuery) { @@ -43,17 +43,17 @@ public class SysNoticeController extends BaseController { /** * 根据通知公告编号获取详细信息 */ - @ApiOperation("根据通知公告编号获取详细信息") + @Operation(summary = "根据通知公告编号获取详细信息") @SaCheckPermission("system:notice:query") @GetMapping(value = "/{noticeId}") - public R getInfo(@ApiParam("公告ID") @PathVariable Long noticeId) { + public R getInfo(@Parameter(name = "公告ID") @PathVariable Long noticeId) { return R.ok(noticeService.selectNoticeById(noticeId)); } /** * 新增通知公告 */ - @ApiOperation("新增通知公告") + @Operation(summary = "新增通知公告") @SaCheckPermission("system:notice:add") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping @@ -64,7 +64,7 @@ public class SysNoticeController extends BaseController { /** * 修改通知公告 */ - @ApiOperation("修改通知公告") + @Operation(summary = "修改通知公告") @SaCheckPermission("system:notice:edit") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PutMapping @@ -75,11 +75,11 @@ public class SysNoticeController extends BaseController { /** * 删除通知公告 */ - @ApiOperation("删除通知公告") + @Operation(summary = "删除通知公告") @SaCheckPermission("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @DeleteMapping("/{noticeIds}") - public R remove(@ApiParam("公告ID串") @PathVariable Long[] noticeIds) { + public R remove(@Parameter(name = "公告ID串") @PathVariable Long[] noticeIds) { return toAjax(noticeService.deleteNoticeByIds(noticeIds)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index cf2fd1178..bb27c8469 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -4,8 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; @@ -14,9 +14,9 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.service.ISysOssConfigService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -33,7 +33,7 @@ import java.util.Arrays; * @date 2021-08-13 */ @Validated -@Api(value = "对象存储配置控制器", tags = {"对象存储配置管理"}) +@Tag(name ="对象存储配置控制器", description = "对象存储配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss/config") @@ -44,7 +44,7 @@ public class SysOssConfigController extends BaseController { /** * 查询对象存储配置列表 */ - @ApiOperation("查询对象存储配置列表") + @Operation(summary = "查询对象存储配置列表") @SaCheckPermission("system:oss:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) SysOssConfigBo bo, PageQuery pageQuery) { @@ -54,10 +54,10 @@ public class SysOssConfigController extends BaseController { /** * 获取对象存储配置详细信息 */ - @ApiOperation("获取对象存储配置详细信息") + @Operation(summary = "获取对象存储配置详细信息") @SaCheckPermission("system:oss:query") @GetMapping("/{ossConfigId}") - public R getInfo(@ApiParam("OSS配置ID") + public R getInfo(@Parameter(name = "OSS配置ID") @NotNull(message = "主键不能为空") @PathVariable("ossConfigId") Long ossConfigId) { return R.ok(iSysOssConfigService.queryById(ossConfigId)); @@ -66,7 +66,7 @@ public class SysOssConfigController extends BaseController { /** * 新增对象存储配置 */ - @ApiOperation("新增对象存储配置") + @Operation(summary = "新增对象存储配置") @SaCheckPermission("system:oss:add") @Log(title = "对象存储配置", businessType = BusinessType.INSERT) @RepeatSubmit() @@ -78,7 +78,7 @@ public class SysOssConfigController extends BaseController { /** * 修改对象存储配置 */ - @ApiOperation("修改对象存储配置") + @Operation(summary = "修改对象存储配置") @SaCheckPermission("system:oss:edit") @Log(title = "对象存储配置", businessType = BusinessType.UPDATE) @RepeatSubmit() @@ -90,11 +90,11 @@ public class SysOssConfigController extends BaseController { /** * 删除对象存储配置 */ - @ApiOperation("删除对象存储配置") + @Operation(summary = "删除对象存储配置") @SaCheckPermission("system:oss:remove") @Log(title = "对象存储配置", businessType = BusinessType.DELETE) @DeleteMapping("/{ossConfigIds}") - public R remove(@ApiParam("OSS配置ID串") + public R remove(@Parameter(name = "OSS配置ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ossConfigIds) { return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0); @@ -103,7 +103,7 @@ public class SysOssConfigController extends BaseController { /** * 状态修改 */ - @ApiOperation("状态修改") + @Operation(summary = "状态修改") @SaCheckPermission("system:oss:edit") @Log(title = "对象存储状态修改", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index d4e52acc6..e71ef9f87 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -19,7 +19,11 @@ import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; import com.ruoyi.system.service.ISysOssService; -import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; @@ -28,7 +32,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotEmpty; -import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; @@ -41,7 +44,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "对象存储控制器", tags = {"对象存储管理"}) +@Tag(name ="对象存储控制器", description = "对象存储管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss") @@ -52,7 +55,7 @@ public class SysOssController extends BaseController { /** * 查询OSS对象存储列表 */ - @ApiOperation("查询OSS对象存储列表") + @Operation(summary = "查询OSS对象存储列表") @SaCheckPermission("system:oss:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) { @@ -62,10 +65,10 @@ public class SysOssController extends BaseController { /** * 查询OSS对象基于id串 */ - @ApiOperation("查询OSS对象基于ID") + @Operation(summary = "查询OSS对象基于ID") @SaCheckPermission("system:oss:list") @GetMapping("/listByIds/{ossIds}") - public R> listByIds(@ApiParam("OSS对象ID串") + public R> listByIds(@Parameter(name = "OSS对象ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) { List list = iSysOssService.listByIds(Arrays.asList(ossIds)); @@ -75,9 +78,9 @@ public class SysOssController extends BaseController { /** * 上传OSS对象存储 */ - @ApiOperation("上传OSS对象存储") - @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "文件", paramType = "query", dataTypeClass = File.class, required = true) + @Operation(summary = "上传OSS对象存储") + @Parameters({ + @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) }) @SaCheckPermission("system:oss:upload") @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) @@ -94,10 +97,10 @@ public class SysOssController extends BaseController { return R.ok(map); } - @ApiOperation("下载OSS对象存储") + @Operation(summary = "下载OSS对象存储") @SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") - public void download(@ApiParam("OSS对象ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException { + public void download(@Parameter(name = "OSS对象ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException { SysOss sysOss = iSysOssService.getById(ossId); if (ObjectUtil.isNull(sysOss)) { throw new ServiceException("文件数据不存在!"); @@ -121,11 +124,11 @@ public class SysOssController extends BaseController { /** * 删除OSS对象存储 */ - @ApiOperation("删除OSS对象存储") + @Operation(summary = "删除OSS对象存储") @SaCheckPermission("system:oss:remove") @Log(title = "OSS对象存储", businessType = BusinessType.DELETE) @DeleteMapping("/{ossIds}") - public R remove(@ApiParam("OSS对象ID串") + public R remove(@Parameter(name = "OSS对象ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) { return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index 7e08698f9..559e6cacf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -4,16 +4,16 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -27,7 +27,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "岗位信息控制器", tags = {"岗位信息管理"}) +@Tag(name ="岗位信息控制器", description = "岗位信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/post") @@ -38,14 +38,14 @@ public class SysPostController extends BaseController { /** * 获取岗位列表 */ - @ApiOperation("获取岗位列表") + @Operation(summary = "获取岗位列表") @SaCheckPermission("system:post:list") @GetMapping("/list") public TableDataInfo list(SysPost post, PageQuery pageQuery) { return postService.selectPagePostList(post, pageQuery); } - @ApiOperation("导出岗位列表") + @Operation(summary = "导出岗位列表") @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:post:export") @PostMapping("/export") @@ -57,17 +57,17 @@ public class SysPostController extends BaseController { /** * 根据岗位编号获取详细信息 */ - @ApiOperation("根据岗位编号获取详细信息") + @Operation(summary = "根据岗位编号获取详细信息") @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") - public R getInfo(@ApiParam("岗位ID") @PathVariable Long postId) { + public R getInfo(@Parameter(name = "岗位ID") @PathVariable Long postId) { return R.ok(postService.selectPostById(postId)); } /** * 新增岗位 */ - @ApiOperation("新增岗位") + @Operation(summary = "新增岗位") @SaCheckPermission("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping @@ -83,7 +83,7 @@ public class SysPostController extends BaseController { /** * 修改岗位 */ - @ApiOperation("修改岗位") + @Operation(summary = "修改岗位") @SaCheckPermission("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping @@ -99,18 +99,18 @@ public class SysPostController extends BaseController { /** * 删除岗位 */ - @ApiOperation("删除岗位") + @Operation(summary = "删除岗位") @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") - public R remove(@ApiParam("岗位ID串") @PathVariable Long[] postIds) { + public R remove(@Parameter(name = "岗位ID串") @PathVariable Long[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } /** * 获取岗位选择框列表 */ - @ApiOperation("获取岗位选择框列表") + @Operation(summary = "获取岗位选择框列表") @GetMapping("/optionselect") public R> optionselect() { List posts = postService.selectPostAll(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 22b506f36..0710e8b51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -14,16 +14,16 @@ import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -34,7 +34,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "个人信息控制器", tags = {"个人信息管理"}) +@Tag(name ="个人信息控制器", description = "个人信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user/profile") @@ -46,7 +46,7 @@ public class SysProfileController extends BaseController { /** * 个人信息 */ - @ApiOperation("个人信息") + @Operation(summary = "个人信息") @GetMapping public R> profile() { SysUser user = userService.selectUserById(getUserId()); @@ -60,7 +60,7 @@ public class SysProfileController extends BaseController { /** * 修改用户 */ - @ApiOperation("修改用户") + @Operation(summary = "修改用户") @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping public R updateProfile(@RequestBody SysUser user) { @@ -84,10 +84,10 @@ public class SysProfileController extends BaseController { /** * 重置密码 */ - @ApiOperation("重置密码") - @ApiImplicitParams({ - @ApiImplicitParam(name = "oldPassword", value = "旧密码", paramType = "query", dataTypeClass = String.class), - @ApiImplicitParam(name = "newPassword", value = "新密码", paramType = "query", dataTypeClass = String.class) + @Operation(summary = "重置密码") + @Parameters({ + @Parameter(name = "oldPassword", description = "旧密码", in = ParameterIn.QUERY), + @Parameter(name = "newPassword", description = "新密码", in = ParameterIn.QUERY) }) @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") @@ -111,9 +111,9 @@ public class SysProfileController extends BaseController { /** * 头像上传 */ - @ApiOperation("头像上传") - @ApiImplicitParams({ - @ApiImplicitParam(name = "avatarfile", value = "用户头像", paramType = "query", dataTypeClass = File.class, required = true) + @Operation(summary = "头像上传") + @Parameters({ + @Parameter(name = "avatarfile", description = "用户头像", in = ParameterIn.QUERY, required = true) }) @Log(title = "用户头像", businessType = BusinessType.UPDATE) @PostMapping("/avatar") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index b8cedd67a..5e90ebd84 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -6,8 +6,8 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.SysRegisterService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController; * @author Lion Li */ @Validated -@Api(value = "注册验证控制器", tags = {"注册验证管理"}) +@Tag(name ="注册验证控制器", description = "注册验证管理") @RequiredArgsConstructor @RestController public class SysRegisterController extends BaseController { @@ -29,7 +29,7 @@ public class SysRegisterController extends BaseController { private final ISysConfigService configService; @Anonymous - @ApiOperation("用户注册") + @Operation(summary = "用户注册") @PostMapping("/register") public R register(@Validated @RequestBody RegisterBody user) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { 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 9b7cb268b..967635e43 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 @@ -5,8 +5,8 @@ import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; @@ -18,7 +18,11 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -32,7 +36,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Api(value = "角色信息控制器", tags = {"角色信息管理"}) +@Tag(name ="角色信息控制器", description = "角色信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/role") @@ -42,14 +46,14 @@ public class SysRoleController extends BaseController { private final ISysUserService userService; private final SysPermissionService permissionService; - @ApiOperation("查询角色信息列表") + @Operation(summary = "查询角色信息列表") @SaCheckPermission("system:role:list") @GetMapping("/list") public TableDataInfo list(SysRole role, PageQuery pageQuery) { return roleService.selectPageRoleList(role, pageQuery); } - @ApiOperation("导出角色信息列表") + @Operation(summary = "导出角色信息列表") @Log(title = "角色管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:role:export") @PostMapping("/export") @@ -61,10 +65,10 @@ public class SysRoleController extends BaseController { /** * 根据角色编号获取详细信息 */ - @ApiOperation("根据角色编号获取详细信息") + @Operation(summary = "根据角色编号获取详细信息") @SaCheckPermission("system:role:query") @GetMapping(value = "/{roleId}") - public R getInfo(@ApiParam("角色ID") @PathVariable Long roleId) { + public R getInfo(@Parameter(name = "角色ID") @PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); return R.ok(roleService.selectRoleById(roleId)); } @@ -72,7 +76,7 @@ public class SysRoleController extends BaseController { /** * 新增角色 */ - @ApiOperation("新增角色") + @Operation(summary = "新增角色") @SaCheckPermission("system:role:add") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping @@ -89,7 +93,7 @@ public class SysRoleController extends BaseController { /** * 修改保存角色 */ - @ApiOperation("修改保存角色") + @Operation(summary = "修改保存角色") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping @@ -118,7 +122,7 @@ public class SysRoleController extends BaseController { /** * 修改保存数据权限 */ - @ApiOperation("修改保存数据权限") + @Operation(summary = "修改保存数据权限") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") @@ -131,7 +135,7 @@ public class SysRoleController extends BaseController { /** * 状态修改 */ - @ApiOperation("状态修改") + @Operation(summary = "状态修改") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") @@ -144,18 +148,18 @@ public class SysRoleController extends BaseController { /** * 删除角色 */ - @ApiOperation("删除角色") + @Operation(summary = "删除角色") @SaCheckPermission("system:role:remove") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") - public R remove(@ApiParam("角色ID串") @PathVariable Long[] roleIds) { + public R remove(@Parameter(name = "角色ID串") @PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); } /** * 获取角色选择框列表 */ - @ApiOperation("获取角色选择框列表") + @Operation(summary = "获取角色选择框列表") @SaCheckPermission("system:role:query") @GetMapping("/optionselect") public R> optionselect() { @@ -165,7 +169,7 @@ public class SysRoleController extends BaseController { /** * 查询已分配用户角色列表 */ - @ApiOperation("查询已分配用户角色列表") + @Operation(summary = "查询已分配用户角色列表") @SaCheckPermission("system:role:list") @GetMapping("/authUser/allocatedList") public TableDataInfo allocatedList(SysUser user, PageQuery pageQuery) { @@ -175,7 +179,7 @@ public class SysRoleController extends BaseController { /** * 查询未分配用户角色列表 */ - @ApiOperation("查询未分配用户角色列表") + @Operation(summary = "查询未分配用户角色列表") @SaCheckPermission("system:role:list") @GetMapping("/authUser/unallocatedList") public TableDataInfo unallocatedList(SysUser user, PageQuery pageQuery) { @@ -185,7 +189,7 @@ public class SysRoleController extends BaseController { /** * 取消授权用户 */ - @ApiOperation("取消授权用户") + @Operation(summary = "取消授权用户") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancel") @@ -196,10 +200,10 @@ public class SysRoleController extends BaseController { /** * 批量取消授权用户 */ - @ApiOperation("批量取消授权用户") - @ApiImplicitParams({ - @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "query", dataTypeClass = String.class), - @ApiImplicitParam(name = "userIds", value = "用户ID串", paramType = "query", dataTypeClass = String.class) + @Operation(summary = "批量取消授权用户") + @Parameters({ + @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), + @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) }) @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @@ -211,10 +215,10 @@ public class SysRoleController extends BaseController { /** * 批量选择用户授权 */ - @ApiOperation("批量选择用户授权") - @ApiImplicitParams({ - @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "query", dataTypeClass = String.class), - @ApiImplicitParam(name = "userIds", value = "用户ID串", paramType = "query", dataTypeClass = String.class) + @Operation(summary = "批量选择用户授权") + @Parameters({ + @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), + @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) }) @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) 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 e618655ef..f40c65924 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 @@ -26,7 +26,11 @@ import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -44,7 +48,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "用户信息控制器", tags = {"用户信息管理"}) +@Tag(name ="用户信息控制器", description = "用户信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user") @@ -57,14 +61,14 @@ public class SysUserController extends BaseController { /** * 获取用户列表 */ - @ApiOperation("获取用户列表") + @Operation(summary = "获取用户列表") @SaCheckPermission("system:user:list") @GetMapping("/list") public TableDataInfo list(SysUser user, PageQuery pageQuery) { return userService.selectPageUserList(user, pageQuery); } - @ApiOperation("导出用户列表") + @Operation(summary = "导出用户列表") @Log(title = "用户管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:user:export") @PostMapping("/export") @@ -82,9 +86,9 @@ public class SysUserController extends BaseController { ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); } - @ApiOperation("导入用户列表") - @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "导入文件", dataType = "java.io.File", required = true), + @Operation(summary = "导入用户列表") + @Parameters({ + @Parameter(name = "file", description = "导入文件", required = true), }) @Log(title = "用户管理", businessType = BusinessType.IMPORT) @SaCheckPermission("system:user:import") @@ -94,7 +98,7 @@ public class SysUserController extends BaseController { return R.ok(result.getAnalysis()); } - @ApiOperation("下载导入模板") + @Operation(summary = "下载导入模板") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); @@ -103,10 +107,10 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取详细信息 */ - @ApiOperation("根据用户编号获取详细信息") + @Operation(summary = "根据用户编号获取详细信息") @SaCheckPermission("system:user:query") @GetMapping(value = {"/", "/{userId}"}) - public R> getInfo(@ApiParam("用户ID") @PathVariable(value = "userId", required = false) Long userId) { + public R> getInfo(@Parameter(name = "用户ID") @PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); List roles = roleService.selectRoleAll(); @@ -124,7 +128,7 @@ public class SysUserController extends BaseController { /** * 新增用户 */ - @ApiOperation("新增用户") + @Operation(summary = "新增用户") @SaCheckPermission("system:user:add") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping @@ -145,7 +149,7 @@ public class SysUserController extends BaseController { /** * 修改用户 */ - @ApiOperation("修改用户") + @Operation(summary = "修改用户") @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping @@ -165,11 +169,11 @@ public class SysUserController extends BaseController { /** * 删除用户 */ - @ApiOperation("删除用户") + @Operation(summary = "删除用户") @SaCheckPermission("system:user:remove") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public R remove(@ApiParam("角色ID串") @PathVariable Long[] userIds) { + public R remove(@Parameter(name = "角色ID串") @PathVariable Long[] userIds) { if (ArrayUtil.contains(userIds, getUserId())) { return R.fail("当前用户不能删除"); } @@ -179,7 +183,7 @@ public class SysUserController extends BaseController { /** * 重置密码 */ - @ApiOperation("重置密码") + @Operation(summary = "重置密码") @SaCheckPermission("system:user:resetPwd") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") @@ -193,7 +197,7 @@ public class SysUserController extends BaseController { /** * 状态修改 */ - @ApiOperation("状态修改") + @Operation(summary = "状态修改") @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") @@ -206,10 +210,10 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取授权角色 */ - @ApiOperation("根据用户编号获取授权角色") + @Operation(summary = "根据用户编号获取授权角色") @SaCheckPermission("system:user:query") @GetMapping("/authRole/{userId}") - public R> authRole(@ApiParam("用户ID") @PathVariable("userId") Long userId) { + public R> authRole(@Parameter(name = "用户ID") @PathVariable("userId") Long userId) { SysUser user = userService.selectUserById(userId); List roles = roleService.selectRolesByUserId(userId); Map ajax = new HashMap<>(); @@ -221,10 +225,10 @@ public class SysUserController extends BaseController { /** * 用户授权角色 */ - @ApiOperation("用户授权角色") - @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "用户Id", paramType = "query", dataTypeClass = String.class), - @ApiImplicitParam(name = "roleIds", value = "角色ID串", paramType = "query", dataTypeClass = String.class) + @Operation(summary = "用户授权角色") + @Parameters({ + @Parameter(name = "userId", description = "用户Id", in = ParameterIn.QUERY), + @Parameter(name = "roleIds", description = "角色ID串", in = ParameterIn.QUERY) }) @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.GRANT) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index ceaaf9561..017b5dff4 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -126,9 +126,8 @@ security: # swagger 文档配置 - /favicon.ico - /doc.html - - /swagger-resources/** - - /webjars/** - - /*/api-docs + - /swagger-ui/** + - /*/api-docs/** # druid 监控配置 - /druid/** # actuator 监控配置 @@ -183,46 +182,45 @@ mybatis-plus: swagger: # 是否开启swagger enabled: true - # 请求前缀 - pathMapping: /dev-api - # 标题 - title: '标题:${ruoyi.name}后台管理系统_接口文档' - # 描述 - description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' - # 版本 - version: '版本号: ${ruoyi-vue-plus.version}' - # 作者信息 - contact: - name: Lion Li - email: crazylionli@163.com - url: https://gitee.com/JavaLionLi/RuoYi-Vue-Plus - groups: - - name: 1.演示案例 - basePackage: com.ruoyi.demo - - name: 2.系统模块 - basePackage: com.ruoyi.web - - name: 3.代码生成模块 - basePackage: com.ruoyi.generator + info: + # 标题 + title: '标题:${ruoyi.name}后台管理系统_接口文档' + # 描述 + description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' + # 版本 + version: '版本号: ${ruoyi-vue-plus.version}' + # 作者信息 + contact: + name: Lion Li + email: crazylionli@163.com + url: https://gitee.com/JavaLionLi/RuoYi-Vue-Plus + components: + # 鉴权方式配置 + security-schemes: + apiKey: + type: APIKEY + in: HEADER + name: ${sa-token.token-name} -knife4j: - # 是否开启Knife4j增强模式 - enable: true - # 是否开启生产环境保护策略 - production: @knife4j.production@ - basic: - enable: true - username: ruoyi - password: 123456 - # 前端Ui的个性化配置属性 - setting: - # 默认语言 - language: zh-CN - # 是否显示Footer - enableFooter: false - # 是否开启动态参数调试功能 - enableDynamicParameter: true - # 是否在每个Debug调试栏后显示刷新变量按钮 - enableReloadCacheParameter: true +springdoc: + swagger-ui: + # 修改Swagger UI路径 + path: /doc.html + # 开启Swagger UI界面 + enabled: true + api-docs: + # 修改api-docs路径 + path: /v3/api-docs + # 开启api-docs + enabled: true + #这里定义了两个分组,可定义多个,也可以不定义 + group-configs: + - group: 演示模块 + packages-to-scan: com.ruoyi.demo + - group: 系统模块 + packages-to-scan: com.ruoyi.web + - group: 代码生成模块 + packages-to-scan: com.ruoyi.generator # 防止XSS攻击 xss: diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 10fec546f..e55dc5094 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -126,13 +126,8 @@ - com.github.xiaoymin - knife4j-spring-boot-starter - - - - io.swagger - swagger-annotations + org.springdoc + springdoc-openapi-ui diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index d1ad296f6..1d12b4e5b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -2,7 +2,7 @@ package com.ruoyi.common.core.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,42 +24,42 @@ public class BaseEntity implements Serializable { /** * 搜索值 */ - @ApiModelProperty(value = "搜索值") + @Schema(name = "搜索值") @TableField(exist = false) private String searchValue; /** * 创建者 */ - @ApiModelProperty(value = "创建者") + @Schema(name = "创建者") @TableField(fill = FieldFill.INSERT) private String createBy; /** * 创建时间 */ - @ApiModelProperty(value = "创建时间") + @Schema(name = "创建时间") @TableField(fill = FieldFill.INSERT) private Date createTime; /** * 更新者 */ - @ApiModelProperty(value = "更新者") + @Schema(name = "更新者") @TableField(fill = FieldFill.INSERT_UPDATE) private String updateBy; /** * 更新时间 */ - @ApiModelProperty(value = "更新时间") + @Schema(name = "更新时间") @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** * 请求参数 */ - @ApiModelProperty(value = "请求参数") + @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java index 7a61237c9..533ca79ec 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,25 +24,25 @@ public class PageQuery implements Serializable { /** * 分页大小 */ - @ApiModelProperty("分页大小") + @Schema(name = "分页大小") private Integer pageSize; /** * 当前页数 */ - @ApiModelProperty("当前页数") + @Schema(name = "当前页数") private Integer pageNum; /** * 排序列 */ - @ApiModelProperty("排序列") + @Schema(name = "排序列") private String orderByColumn; /** * 排序的方向desc或者asc */ - @ApiModelProperty(value = "排序的方向", example = "asc,desc") + @Schema(name = "排序的方向", example = "asc,desc") private String isAsc; /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 7a2420238..999974d7b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -14,7 +13,7 @@ import java.io.Serializable; */ @Data @NoArgsConstructor -@ApiModel("请求响应对象") +@Schema(name = "请求响应对象") public class R implements Serializable { private static final long serialVersionUID = 1L; @@ -28,13 +27,13 @@ public class R implements Serializable { */ public static final int FAIL = 500; - @ApiModelProperty("消息状态码") + @Schema(name = "消息状态码") private int code; - @ApiModelProperty("消息内容") + @Schema(name = "消息内容") private String msg; - @ApiModelProperty("数据对象") + @Schema(name = "数据对象") private T data; public static R ok() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java index f44eacd49..0d28291aa 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java @@ -1,7 +1,7 @@ package com.ruoyi.common.core.domain; import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,20 +24,20 @@ public class TreeEntity extends BaseEntity { * 父菜单名称 */ @TableField(exist = false) - @ApiModelProperty(value = "父菜单名称") + @Schema(name = "父菜单名称") private String parentName; /** * 父菜单ID */ - @ApiModelProperty(value = "父菜单ID") + @Schema(name = "父菜单ID") private Long parentId; /** * 子部门 */ @TableField(exist = false) - @ApiModelProperty(value = "子部门") + @Schema(name = "子部门") private List children = new ArrayList<>(); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 2dc3bdc40..fcf2e4a65 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.TreeEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -23,21 +22,21 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_dept") -@ApiModel("部门业务对象") +@Schema(name = "部门业务对象") public class SysDept extends TreeEntity { private static final long serialVersionUID = 1L; /** * 部门ID */ - @ApiModelProperty(value = "部门id") + @Schema(name = "部门id") @TableId(value = "dept_id") private Long deptId; /** * 部门名称 */ - @ApiModelProperty(value = "部门名称") + @Schema(name = "部门名称") @NotBlank(message = "部门名称不能为空") @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符") private String deptName; @@ -45,27 +44,27 @@ public class SysDept extends TreeEntity { /** * 显示顺序 */ - @ApiModelProperty(value = "显示顺序") + @Schema(name = "显示顺序") @NotNull(message = "显示顺序不能为空") private Integer orderNum; /** * 负责人 */ - @ApiModelProperty(value = "负责人") + @Schema(name = "负责人") private String leader; /** * 联系电话 */ - @ApiModelProperty(value = "联系电话") + @Schema(name = "联系电话") @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符") private String phone; /** * 邮箱 */ - @ApiModelProperty(value = "邮箱") + @Schema(name = "邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") private String email; @@ -73,20 +72,20 @@ public class SysDept extends TreeEntity { /** * 部门状态:0正常,1停用 */ - @ApiModelProperty(value = "部门状态:0正常,1停用") + @Schema(name = "部门状态:0正常,1停用") private String status; /** * 删除标志(0代表存在 2代表删除) */ - @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)") + @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 祖级列表 */ - @ApiModelProperty(value = "祖级列表") + @Schema(name = "祖级列表") private String ancestors; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java index c61c91726..4b0213848 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java @@ -8,8 +8,7 @@ import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,13 +25,13 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_data") @ExcelIgnoreUnannotated -@ApiModel("字典数据业务对象") +@Schema(name = "字典数据业务对象") public class SysDictData extends BaseEntity { /** * 字典编码 */ - @ApiModelProperty(value = "字典编码") + @Schema(name = "字典编码") @ExcelProperty(value = "字典编码") @TableId(value = "dict_code") private Long dictCode; @@ -40,14 +39,14 @@ public class SysDictData extends BaseEntity { /** * 字典排序 */ - @ApiModelProperty(value = "字典排序") + @Schema(name = "字典排序") @ExcelProperty(value = "字典排序") private Integer dictSort; /** * 字典标签 */ - @ApiModelProperty(value = "字典标签") + @Schema(name = "字典标签") @ExcelProperty(value = "字典标签") @NotBlank(message = "字典标签不能为空") @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") @@ -56,7 +55,7 @@ public class SysDictData extends BaseEntity { /** * 字典键值 */ - @ApiModelProperty(value = "字典键值") + @Schema(name = "字典键值") @ExcelProperty(value = "字典键值") @NotBlank(message = "字典键值不能为空") @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") @@ -65,7 +64,7 @@ public class SysDictData extends BaseEntity { /** * 字典类型 */ - @ApiModelProperty(value = "字典类型") + @Schema(name = "字典类型") @ExcelProperty(value = "字典类型") @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") @@ -74,20 +73,20 @@ public class SysDictData extends BaseEntity { /** * 样式属性(其他样式扩展) */ - @ApiModelProperty(value = "样式属性(其他样式扩展)") + @Schema(name = "样式属性(其他样式扩展)") @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") private String cssClass; /** * 表格字典样式 */ - @ApiModelProperty(value = "表格字典样式") + @Schema(name = "表格字典样式") private String listClass; /** * 是否默认(Y是 N否) */ - @ApiModelProperty(value = "是否默认(Y是 N否)") + @Schema(name = "是否默认(Y是 N否)") @ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_yes_no") private String isDefault; @@ -95,7 +94,7 @@ public class SysDictData extends BaseEntity { /** * 状态(0正常 1停用) */ - @ApiModelProperty(value = "状态(0正常 1停用)") + @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_normal_disable") private String status; @@ -103,7 +102,7 @@ public class SysDictData extends BaseEntity { /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; public boolean getDefault() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java index 942c2f97b..095aba037 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java @@ -7,11 +7,9 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; @@ -27,13 +25,13 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_type") @ExcelIgnoreUnannotated -@ApiModel("字典类型业务对象") +@Schema(name = "字典类型业务对象") public class SysDictType extends BaseEntity { /** * 字典主键 */ - @ApiModelProperty(value = "字典主键") + @Schema(name = "字典主键") @ExcelProperty(value = "字典主键") @TableId(value = "dict_id") private Long dictId; @@ -41,7 +39,7 @@ public class SysDictType extends BaseEntity { /** * 字典名称 */ - @ApiModelProperty(value = "字典名称") + @Schema(name = "字典名称") @ExcelProperty(value = "字典名称") @NotBlank(message = "字典名称不能为空") @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") @@ -50,7 +48,7 @@ public class SysDictType extends BaseEntity { /** * 字典类型 */ - @ApiModelProperty(value = "字典类型") + @Schema(name = "字典类型") @ExcelProperty(value = "字典类型") @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") @@ -60,7 +58,7 @@ public class SysDictType extends BaseEntity { /** * 状态(0正常 1停用) */ - @ApiModelProperty(value = "状态(0正常 1停用)") + @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_normal_disable") private String status; @@ -68,7 +66,7 @@ public class SysDictType extends BaseEntity { /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index cf337fbeb..554bc3a5f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.core.domain.TreeEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,20 +21,20 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_menu") -@ApiModel("菜单权限业务对象") +@Schema(name = "菜单权限业务对象") public class SysMenu extends TreeEntity { /** * 菜单ID */ - @ApiModelProperty(value = "菜单ID") + @Schema(name = "菜单ID") @TableId(value = "menu_id") private Long menuId; /** * 菜单名称 */ - @ApiModelProperty(value = "菜单名称") + @Schema(name = "菜单名称") @NotBlank(message = "菜单名称不能为空") @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符") private String menuName; @@ -43,65 +42,65 @@ public class SysMenu extends TreeEntity { /** * 显示顺序 */ - @ApiModelProperty(value = "显示顺序") + @Schema(name = "显示顺序") @NotNull(message = "显示顺序不能为空") private Integer orderNum; /** * 路由地址 */ - @ApiModelProperty(value = "路由地址") + @Schema(name = "路由地址") @Size(min = 0, max = 200, message = "路由地址不能超过200个字符") private String path; /** * 组件路径 */ - @ApiModelProperty(value = "组件路径") + @Schema(name = "组件路径") @Size(min = 0, max = 200, message = "组件路径不能超过255个字符") private String component; /** * 路由参数 */ - @ApiModelProperty(value = "路由参数") + @Schema(name = "路由参数") private String queryParam; /** * 是否为外链(0是 1否) */ - @ApiModelProperty(value = "是否为外链(0是 1否)") + @Schema(name = "是否为外链(0是 1否)") private String isFrame; /** * 是否缓存(0缓存 1不缓存) */ - @ApiModelProperty(value = "是否缓存(0缓存 1不缓存)") + @Schema(name = "是否缓存(0缓存 1不缓存)") private String isCache; /** * 类型(M目录 C菜单 F按钮) */ - @ApiModelProperty(value = "类型(M目录 C菜单 F按钮)") + @Schema(name = "类型(M目录 C菜单 F按钮)") @NotBlank(message = "菜单类型不能为空") private String menuType; /** * 显示状态(0显示 1隐藏) */ - @ApiModelProperty(value = "显示状态(0显示 1隐藏)") + @Schema(name = "显示状态(0显示 1隐藏)") private String visible; /** * 菜单状态(0显示 1隐藏) */ - @ApiModelProperty(value = "菜单状态(0显示 1隐藏)") + @Schema(name = "菜单状态(0显示 1隐藏)") private String status; /** * 权限字符串 */ - @ApiModelProperty(value = "权限字符串") + @Schema(name = "权限字符串") @JsonInclude(JsonInclude.Include.NON_NULL) @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符") private String perms; @@ -109,13 +108,13 @@ public class SysMenu extends TreeEntity { /** * 菜单图标 */ - @ApiModelProperty(value = "菜单图标") + @Schema(name = "菜单图标") private String icon; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java index 804815738..3955a59f6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java @@ -10,7 +10,7 @@ import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -35,7 +35,7 @@ public class SysRole extends BaseEntity { /** * 角色ID */ - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") @ExcelProperty(value = "角色序号") @TableId(value = "role_id") private Long roleId; @@ -43,7 +43,7 @@ public class SysRole extends BaseEntity { /** * 角色名称 */ - @ApiModelProperty(value = "角色名称") + @Schema(name = "角色名称") @ExcelProperty(value = "角色名称") @NotBlank(message = "角色名称不能为空") @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") @@ -52,7 +52,7 @@ public class SysRole extends BaseEntity { /** * 角色权限 */ - @ApiModelProperty(value = "角色权限") + @Schema(name = "角色权限") @ExcelProperty(value = "角色权限") @NotBlank(message = "权限字符不能为空") @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") @@ -61,7 +61,7 @@ public class SysRole extends BaseEntity { /** * 角色排序 */ - @ApiModelProperty(value = "角色排序") + @Schema(name = "角色排序") @ExcelProperty(value = "角色排序") @NotNull(message = "显示顺序不能为空") private Integer roleSort; @@ -69,7 +69,7 @@ public class SysRole extends BaseEntity { /** * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ - @ApiModelProperty(value = "数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)") + @Schema(name = "数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)") @ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") private String dataScope; @@ -77,19 +77,19 @@ public class SysRole extends BaseEntity { /** * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ - @ApiModelProperty(value = "菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)") + @Schema(name = "菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)") private Boolean menuCheckStrictly; /** * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ - @ApiModelProperty(value = "部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )") + @Schema(name = "部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )") private Boolean deptCheckStrictly; /** * 角色状态(0正常 1停用) */ - @ApiModelProperty(value = "角色状态(0正常 1停用)") + @Schema(name = "角色状态(0正常 1停用)") @ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -97,34 +97,34 @@ public class SysRole extends BaseEntity { /** * 删除标志(0代表存在 2代表删除) */ - @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)") + @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; /** * 用户是否存在此角色标识 默认不存在 */ - @ApiModelProperty(value = "用户是否存在此角色标识 默认不存在") + @Schema(name = "用户是否存在此角色标识 默认不存在") @TableField(exist = false) private boolean flag = false; /** * 菜单组 */ - @ApiModelProperty(value = "菜单组") + @Schema(name = "菜单组") @TableField(exist = false) private Long[] menuIds; /** * 部门组(数据权限) */ - @ApiModelProperty(value = "部门组(数据权限)") + @Schema(name = "部门组(数据权限)") @TableField(exist = false) private Long[] deptIds; @@ -132,7 +132,7 @@ public class SysRole extends BaseEntity { this.roleId = roleId; } - @ApiModelProperty(value = "是否管理员") + @Schema(name = "是否管理员") public boolean isAdmin() { return UserConstants.ADMIN_ID.equals(this.roleId); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 9aa75f7a4..3a35916f5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -1,15 +1,12 @@ package com.ruoyi.common.core.domain.entity; import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.enums.SensitiveStrategy; import com.ruoyi.common.xss.Xss; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -30,26 +27,26 @@ import java.util.List; @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName("sys_user") -@ApiModel("用户信息业务对象") +@Schema(name = "用户信息业务对象") public class SysUser extends BaseEntity { /** * 用户ID */ - @ApiModelProperty(value = "用户ID") + @Schema(name = "用户ID") @TableId(value = "user_id") private Long userId; /** * 部门ID */ - @ApiModelProperty(value = "部门ID") + @Schema(name = "部门ID") private Long deptId; /** * 用户账号 */ - @ApiModelProperty(value = "用户账号") + @Schema(name = "用户账号") @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") @@ -58,7 +55,7 @@ public class SysUser extends BaseEntity { /** * 用户昵称 */ - @ApiModelProperty(value = "用户昵称") + @Schema(name = "用户昵称") @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") private String nickName; @@ -66,14 +63,14 @@ public class SysUser extends BaseEntity { /** * 用户类型(sys_user系统用户) */ - @ApiModelProperty(value = "用户类型") + @Schema(name = "用户类型") private String userType; /** * 用户邮箱 */ @Sensitive(strategy = SensitiveStrategy.EMAIL) - @ApiModelProperty(value = "用户邮箱") + @Schema(name = "用户邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") private String email; @@ -82,25 +79,25 @@ public class SysUser extends BaseEntity { * 手机号码 */ @Sensitive(strategy = SensitiveStrategy.PHONE) - @ApiModelProperty(value = "手机号码") + @Schema(name = "手机号码") private String phonenumber; /** * 用户性别 */ - @ApiModelProperty(value = "用户性别") + @Schema(name = "用户性别") private String sex; /** * 用户头像 */ - @ApiModelProperty(value = "用户头像") + @Schema(name = "用户头像") private String avatar; /** * 密码 */ - @ApiModelProperty(value = "密码") + @Schema(name = "密码") @TableField( insertStrategy = FieldStrategy.NOT_EMPTY, updateStrategy = FieldStrategy.NOT_EMPTY, @@ -111,66 +108,66 @@ public class SysUser extends BaseEntity { /** * 帐号状态(0正常 1停用) */ - @ApiModelProperty(value = "帐号状态(0正常 1停用)") + @Schema(name = "帐号状态(0正常 1停用)") private String status; /** * 删除标志(0代表存在 2代表删除) */ - @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)") + @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 最后登录IP */ - @ApiModelProperty(value = "最后登录IP") + @Schema(name = "最后登录IP") private String loginIp; /** * 最后登录时间 */ - @ApiModelProperty(value = "最后登录时间") + @Schema(name = "最后登录时间") private Date loginDate; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; /** * 部门对象 */ - @ApiModelProperty(value = "部门对象") + @Schema(name = "部门对象") @TableField(exist = false) private SysDept dept; /** * 角色对象 */ - @ApiModelProperty(value = "角色对象") + @Schema(name = "角色对象") @TableField(exist = false) private List roles; /** * 角色组 */ - @ApiModelProperty(value = "角色组") + @Schema(name = "角色组") @TableField(exist = false) private Long[] roleIds; /** * 岗位组 */ - @ApiModelProperty(value = "岗位组") + @Schema(name = "岗位组") @TableField(exist = false) private Long[] postIds; /** * 数据权限 当前角色ID */ - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") @TableField(exist = false) private Long roleId; @@ -178,7 +175,7 @@ public class SysUser extends BaseEntity { this.userId = userId; } - @ApiModelProperty(value = "是否管理员") + @Schema(name = "是否管理员") public boolean isAdmin() { return UserConstants.ADMIN_ID.equals(this.userId); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java index f13de9711..18c37a9b3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java @@ -1,8 +1,7 @@ package com.ruoyi.common.core.domain.model; import com.ruoyi.common.constant.UserConstants; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -15,7 +14,7 @@ import javax.validation.constraints.NotBlank; */ @Data -@ApiModel("用户登录对象") +@Schema(name = "用户登录对象") public class LoginBody { /** @@ -23,7 +22,7 @@ public class LoginBody { */ @NotBlank(message = "{user.username.not.blank}") @Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}") - @ApiModelProperty(value = "用户名") + @Schema(name = "用户名") private String username; /** @@ -31,19 +30,19 @@ public class LoginBody { */ @NotBlank(message = "{user.password.not.blank}") @Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}") - @ApiModelProperty(value = "用户密码") + @Schema(name = "用户密码") private String password; /** * 验证码 */ - @ApiModelProperty(value = "验证码") + @Schema(name = "验证码") private String code; /** * 唯一标识 */ - @ApiModelProperty(value = "唯一标识") + @Schema(name = "唯一标识") private String uuid; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java index bd9b84cca..37f52a767 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain.model; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,10 +11,10 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("用户注册对象") +@Schema(name = "用户注册对象") public class RegisterBody extends LoginBody { - @ApiModelProperty(value = "用户类型") + @Schema(name = "用户类型") private String userType; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java index f3ef445c5..d89a8c15b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain.model; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -13,21 +12,21 @@ import javax.validation.constraints.NotBlank; */ @Data -@ApiModel("短信登录对象") +@Schema(name = "短信登录对象") public class SmsLoginBody { /** * 用户名 */ @NotBlank(message = "{user.phonenumber.not.blank}") - @ApiModelProperty(value = "用户手机号") + @Schema(name = "用户手机号") private String phonenumber; /** * 用户密码 */ @NotBlank(message = "{sms.code.not.blank}") - @ApiModelProperty(value = "短信验证码") + @Schema(name = "短信验证码") private String smsCode; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java index 48353e3e7..b44175ac7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java @@ -2,11 +2,9 @@ package com.ruoyi.common.core.page; import cn.hutool.http.HttpStatus; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.List; @@ -19,32 +17,32 @@ import java.util.List; @Data @NoArgsConstructor -@ApiModel("分页响应对象") +@Schema(name = "分页响应对象") public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 总记录数 */ - @ApiModelProperty("总记录数") + @Schema(name = "总记录数") private long total; /** * 列表数据 */ - @ApiModelProperty("列表数据") + @Schema(name = "列表数据") private List rows; /** * 消息状态码 */ - @ApiModelProperty("消息状态码") + @Schema(name = "消息状态码") private int code; /** * 消息内容 */ - @ApiModelProperty("消息内容") + @Schema(name = "消息内容") private String msg; /** diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java index 6dabe5132..c88baecd7 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java @@ -2,9 +2,9 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.email.MailUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -20,27 +20,27 @@ import java.io.File; * @author Michelle.Chung */ @Validated -@Api(value = "邮件发送案例", tags = {"邮件发送案例"}) +@Tag(name ="邮件发送案例", description = "邮件发送案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/mail") public class MailController { - @ApiOperation("发送邮件") + @Operation(summary = "发送邮件") @GetMapping("/sendSimpleMessage") - public R sendSimpleMessage(@ApiParam("接收人") String to, - @ApiParam("标题") String subject, - @ApiParam("内容") String text) { + public R sendSimpleMessage(@Parameter(name = "接收人") String to, + @Parameter(name = "标题") String subject, + @Parameter(name = "内容") String text) { MailUtils.sendText(to, subject, text); return R.ok(); } - @ApiOperation("发送邮件(带附件)") + @Operation(summary = "发送邮件(带附件)") @GetMapping("/sendMessageWithAttachment") - public R sendMessageWithAttachment(@ApiParam("接收人") String to, - @ApiParam("标题") String subject, - @ApiParam("内容") String text, - @ApiParam("附件路径") String filePath) { + public R sendMessageWithAttachment(@Parameter(name = "接收人") String to, + @Parameter(name = "标题") String subject, + @Parameter(name = "内容") String text, + @Parameter(name = "附件路径") String filePath) { MailUtils.sendText(to, subject, text, new File(filePath)); return R.ok(); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java index 9fc93074f..b80a9a8cd 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java @@ -2,8 +2,8 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; @@ -21,7 +21,7 @@ import java.time.Duration; */ // 类级别 缓存统一配置 //@CacheConfig(cacheNames = "redissonCacheMap") -@Api(value = "spring-cache 演示案例", tags = {"spring-cache 演示案例"}) +@Tag(name ="spring-cache 演示案例", description = "spring-cache 演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/cache") @@ -41,7 +41,7 @@ public class RedisCacheController { *

    * cacheNames 为配置文件内 groupId */ - @ApiOperation("测试 @Cacheable") + @Operation(summary = "测试 @Cacheable") @Cacheable(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test1") public R test1(String key, String value) { @@ -56,7 +56,7 @@ public class RedisCacheController { *

    * cacheNames 为 配置文件内 groupId */ - @ApiOperation("测试 @CachePut") + @Operation(summary = "测试 @CachePut") @CachePut(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test2") public R test2(String key, String value) { @@ -71,7 +71,7 @@ public class RedisCacheController { *

    * cacheNames 为 配置文件内 groupId */ - @ApiOperation("测试 @CacheEvict") + @Operation(summary = "测试 @CacheEvict") @CacheEvict(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test3") public R test3(String key, String value) { @@ -83,7 +83,7 @@ public class RedisCacheController { * 手动设置过期时间10秒 * 11秒后获取 判断是否相等 */ - @ApiOperation("测试设置过期时间") + @Operation(summary = "测试设置过期时间") @GetMapping("/test6") public R test6(String key, String value) { RedisUtils.setCacheObject(key, value); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java index c31925a57..f9803c601 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java @@ -5,8 +5,8 @@ import com.baomidou.lock.LockTemplate; import com.baomidou.lock.annotation.Lock4j; import com.baomidou.lock.executor.RedissonLockExecutor; import com.ruoyi.common.core.domain.R; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -21,7 +21,7 @@ import java.time.LocalTime; * * @author shenxinquan */ -@Api(value = "测试分布式锁的样例", tags = {"测试分布式锁的样例"}) +@Tag(name ="测试分布式锁的样例", description = "测试分布式锁的样例") @Slf4j @RestController @RequestMapping("/demo/redisLock") @@ -33,7 +33,7 @@ public class RedisLockController { /** * 测试lock4j 注解 */ - @ApiOperation("测试lock4j 注解") + @Operation(summary = "测试lock4j 注解") @Lock4j(keys = {"#key"}) @GetMapping("/testLock4j") public R testLock4j(String key, String value) { @@ -50,7 +50,7 @@ public class RedisLockController { /** * 测试lock4j 工具 */ - @ApiOperation("测试lock4j 工具") + @Operation(summary = "测试lock4j 工具") @GetMapping("/testLock4jLockTemplate") public R testLock4jLockTemplate(String key, String value) { final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java index 99c3131b4..da8522b5a 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -2,9 +2,9 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -15,24 +15,24 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Api(value = "Redis发布订阅 演示案例", tags = {"Redis发布订阅"}) +@Tag(name ="Redis发布订阅 演示案例", description = "Redis发布订阅") @RequiredArgsConstructor @RestController @RequestMapping("/demo/redis/pubsub") public class RedisPubSubController { - @ApiOperation("发布消息") + @Operation(summary = "发布消息") @GetMapping("/pub") - public R pub(@ApiParam("通道Key") String key, @ApiParam("发送内容") String value) { + public R pub(@Parameter(name = "通道Key") String key, @Parameter(name = "发送内容") String value) { RedisUtils.publish(key, value, consumer -> { System.out.println("发布通道 => " + key + ", 发送值 => " + value); }); return R.ok("操作成功"); } - @ApiOperation("订阅消息") + @Operation(summary = "订阅消息") @GetMapping("/sub") - public R sub(@ApiParam("通道Key") String key) { + public R sub(@Parameter(name = "通道Key") String key) { RedisUtils.subscribe(key, String.class, msg -> { System.out.println("订阅通道 => " + key + ", 接收值 => " + msg); }); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java index c7f48e519..80cf07325 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java @@ -3,8 +3,8 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.RateLimiter; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.LimitType; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Api(value = "测试分布式限流样例", tags = {"测试分布式限流样例"}) +@Tag(name ="测试分布式限流样例", description = "测试分布式限流样例") @Slf4j @RestController @RequestMapping("/demo/rateLimiter") @@ -26,7 +26,7 @@ public class RedisRateLimiterController { * 测试全局限流 * 全局影响 */ - @ApiOperation("测试全局限流") + @Operation(summary = "测试全局限流") @RateLimiter(count = 2, time = 10) @GetMapping("/test") public R test(String value) { @@ -37,7 +37,7 @@ public class RedisRateLimiterController { * 测试请求IP限流 * 同一IP请求受影响 */ - @ApiOperation("测试请求IP限流") + @Operation(summary = "测试请求IP限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.IP) @GetMapping("/testip") public R testip(String value) { @@ -48,7 +48,7 @@ public class RedisRateLimiterController { * 测试集群实例限流 * 启动两个后端服务互不影响 */ - @ApiOperation("测试集群实例限流") + @Operation(summary = "测试集群实例限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.CLUSTER) @GetMapping("/testcluster") public R testcluster(String value) { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java index b92078624..c9e51b1ff 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java @@ -4,9 +4,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -24,7 +24,7 @@ import java.util.Map; * @version 4.2.0 */ @Validated -@Api(value = "短信演示案例", tags = {"短信演示案例"}) +@Tag(name ="短信演示案例", description = "短信演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/sms") @@ -34,10 +34,10 @@ public class SmsController { // private final SmsTemplate smsTemplate; // 可以使用spring注入 // private final AliyunSmsTemplate smsTemplate; // 也可以注入某个厂家的模板工具 - @ApiOperation("发送短信Aliyun") + @Operation(summary = "发送短信Aliyun") @GetMapping("/sendAliyun") - public R sendAliyun(@ApiParam("电话号") String phones, - @ApiParam("模板ID") String templateId) { + public R sendAliyun(@Parameter(name = "电话号") String phones, + @Parameter(name = "模板ID") String templateId) { if (!smsProperties.getEnabled()) { return R.fail("当前系统没有开启短信功能!"); } @@ -51,10 +51,10 @@ public class SmsController { return R.ok(send); } - @ApiOperation("发送短信Tencent") + @Operation(summary = "发送短信Tencent") @GetMapping("/sendTencent") - public R sendTencent(@ApiParam("电话号") String phones, - @ApiParam("模板ID") String templateId) { + public R sendTencent(@Parameter(name = "电话号") String phones, + @Parameter(name = "模板ID") String templateId) { if (!smsProperties.getEnabled()) { return R.fail("当前系统没有开启短信功能!"); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java index e50ce03a5..c538e2c9a 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java @@ -1,24 +1,23 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import java.io.File; - /** * swagger3 用法示例 * * @author Lion Li */ -@Api(value = "演示swagger3控制器", tags = {"演示swagger3接口"}) +@Tag(name ="演示swagger3控制器", description = "演示swagger3接口") @RestController @RequestMapping("/swagger/demo") public class Swagger3DemoController { @@ -27,9 +26,9 @@ public class Swagger3DemoController { * 上传请求 * 必须使用 @RequestPart 注解标注为文件 */ - @ApiOperation(value = "通用上传请求") - @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "文件", paramType = "query", dataTypeClass = File.class, required = true) + @Operation(summary = "通用上传请求") + @Parameters({ + @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) }) @PostMapping(value = "/upload") public R upload(@RequestPart("file") MultipartFile file) { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index aa1f064a0..1824ae409 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -5,8 +5,8 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.mapper.TestDemoMapper; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -22,7 +22,7 @@ import java.util.List; * @author Lion Li * @date 2021-05-30 */ -@Api(value = "测试批量方法", tags = {"测试批量方法"}) +@Tag(name ="测试批量方法", description = "测试批量方法") @RequiredArgsConstructor @RestController @RequestMapping("/demo/batch") @@ -38,7 +38,7 @@ public class TestBatchController extends BaseController { *

    * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 */ - @ApiOperation(value = "新增批量方法") + @Operation(summary = "新增批量方法") @PostMapping("/add") // @DS("slave") public R add() { @@ -58,7 +58,7 @@ public class TestBatchController extends BaseController { *

    * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 */ - @ApiOperation(value = "新增或更新批量方法") + @Operation(summary = "新增或更新批量方法") @PostMapping("/addOrUpdate") // @DS("slave") public R addOrUpdate() { @@ -84,7 +84,7 @@ public class TestBatchController extends BaseController { /** * 删除批量方法 */ - @ApiOperation(value = "删除批量方法") + @Operation(summary = "删除批量方法") @DeleteMapping() // @DS("slave") public R remove() { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index 9f00c0770..d63c31719 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -5,8 +5,8 @@ import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; @@ -20,7 +20,11 @@ import com.ruoyi.demo.domain.bo.TestDemoBo; import com.ruoyi.demo.domain.bo.TestDemoImportVo; import com.ruoyi.demo.domain.vo.TestDemoVo; import com.ruoyi.demo.service.ITestDemoService; -import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -29,7 +33,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -import java.io.File; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; @@ -41,7 +44,7 @@ import java.util.concurrent.TimeUnit; * @date 2021-07-26 */ @Validated -@Api(value = "测试单表控制器", tags = {"测试单表管理"}) +@Tag(name ="测试单表控制器", description = "测试单表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/demo") @@ -52,7 +55,7 @@ public class TestDemoController extends BaseController { /** * 查询测试单表列表 */ - @ApiOperation("查询测试单表列表") + @Operation(summary = "查询测试单表列表") @SaCheckPermission("demo:demo:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { @@ -62,16 +65,16 @@ public class TestDemoController extends BaseController { /** * 自定义分页查询 */ - @ApiOperation("自定义分页查询") + @Operation(summary = "自定义分页查询") @SaCheckPermission("demo:demo:list") @GetMapping("/page") public TableDataInfo page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { return iTestDemoService.customPageList(bo, pageQuery); } - @ApiOperation("导入测试-校验") - @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "导入文件", paramType = "query", dataTypeClass = File.class, required = true), + @Operation(summary = "导入测试-校验") + @Parameters({ + @Parameter(name = "file", description = "导入文件", in = ParameterIn.QUERY, required = true), }) @Log(title = "测试单表", businessType = BusinessType.IMPORT) @SaCheckPermission("demo:demo:import") @@ -87,7 +90,7 @@ public class TestDemoController extends BaseController { /** * 导出测试单表列表 */ - @ApiOperation("导出测试单表列表") + @Operation(summary = "导出测试单表列表") @SaCheckPermission("demo:demo:export") @Log(title = "测试单表", businessType = BusinessType.EXPORT) @PostMapping("/export") @@ -103,10 +106,10 @@ public class TestDemoController extends BaseController { /** * 获取测试单表详细信息 */ - @ApiOperation("获取测试单表详细信息") + @Operation(summary = "获取测试单表详细信息") @SaCheckPermission("demo:demo:query") @GetMapping("/{id}") - public R getInfo(@ApiParam("测试ID") + public R getInfo(@Parameter(name = "测试ID") @NotNull(message = "主键不能为空") @PathVariable("id") Long id) { return R.ok(iTestDemoService.queryById(id)); @@ -115,7 +118,7 @@ public class TestDemoController extends BaseController { /** * 新增测试单表 */ - @ApiOperation("新增测试单表") + @Operation(summary = "新增测试单表") @SaCheckPermission("demo:demo:add") @Log(title = "测试单表", businessType = BusinessType.INSERT) @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}") @@ -130,7 +133,7 @@ public class TestDemoController extends BaseController { /** * 修改测试单表 */ - @ApiOperation("修改测试单表") + @Operation(summary = "修改测试单表") @SaCheckPermission("demo:demo:edit") @Log(title = "测试单表", businessType = BusinessType.UPDATE) @RepeatSubmit @@ -142,11 +145,11 @@ public class TestDemoController extends BaseController { /** * 删除测试单表 */ - @ApiOperation("删除测试单表") + @Operation(summary = "删除测试单表") @SaCheckPermission("demo:demo:remove") @Log(title = "测试单表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public R remove(@ApiParam("测试ID串") + public R remove(@Parameter(name = "测试ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java index a318b4658..cc67ca46b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java @@ -2,8 +2,8 @@ package com.ruoyi.demo.controller; import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.utils.poi.ExcelUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Data; import org.springframework.web.bind.annotation.GetMapping; @@ -21,7 +21,7 @@ import java.util.Map; * * @author Lion Li */ -@Api(value = "测试Excel功能", tags = {"测试Excel功能"}) +@Tag(name ="测试Excel功能", description = "测试Excel功能") @RestController @RequestMapping("/demo/excel") public class TestExcelController { @@ -29,7 +29,7 @@ public class TestExcelController { /** * 单列表多数据 */ - @ApiOperation(value = "单列表多数据") + @Operation(summary = "单列表多数据") @GetMapping("/exportTemplateOne") public void exportTemplateOne(HttpServletResponse response) { Map map = new HashMap<>(); @@ -49,7 +49,7 @@ public class TestExcelController { /** * 多列表多数据 */ - @ApiOperation(value = "多列表多数据") + @Operation(summary = "多列表多数据") @GetMapping("/exportTemplateMuliti") public void exportTemplateMuliti(HttpServletResponse response) { Map map = new HashMap<>(); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index 9b3bffc09..6c7686686 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -2,9 +2,9 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.MessageUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.hibernate.validator.constraints.Range; import org.springframework.validation.annotation.Validated; @@ -22,7 +22,7 @@ import javax.validation.constraints.NotNull; * @author Lion Li */ @Validated -@Api(value = "测试国际化控制器", tags = {"测试国际化管理"}) +@Tag(name ="测试国际化控制器", description = "测试国际化管理") @RestController @RequestMapping("/demo/i18n") public class TestI18nController { @@ -33,9 +33,9 @@ public class TestI18nController { *

    * 测试使用 user.register.success */ - @ApiOperation("通过code获取国际化内容") + @Operation(summary = "通过code获取国际化内容") @GetMapping() - public R get(@ApiParam("国际化code") String code) { + public R get(@Parameter(name = "国际化code") String code) { return R.ok(MessageUtils.message(code)); } @@ -45,7 +45,7 @@ public class TestI18nController { *

    * 测试使用 not.null */ - @ApiOperation("Validator 校验国际化") + @Operation(summary = "Validator 校验国际化") @GetMapping("/test1") public R test1(@NotBlank(message = "{not.null}") String str) { return R.ok(str); @@ -57,7 +57,7 @@ public class TestI18nController { *

    * 测试使用 not.null */ - @ApiOperation("Bean 校验国际化") + @Operation(summary = "Bean 校验国际化") @GetMapping("/test2") public R test2(@Validated TestI18nBo bo) { return R.ok(bo); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java index 1f34f9cf4..54a1913fa 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java @@ -4,8 +4,8 @@ import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.SensitiveStrategy; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 * @see com.ruoyi.common.core.service.SensitiveService */ -@Api(value = "测试数据脱敏控制器", tags = {"测试数据脱敏管理"}) +@Tag(name ="测试数据脱敏控制器", description = "测试数据脱敏管理") @RestController @RequestMapping("/demo/sensitive") public class TestSensitiveController extends BaseController { @@ -29,7 +29,7 @@ public class TestSensitiveController extends BaseController { /** * 测试数据脱敏 */ - @ApiOperation("查询测试单表列表") + @Operation(summary = "查询测试单表列表") @GetMapping("/test") public R test() { TestSensitive testSensitive = new TestSensitive(); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index 64f36c941..4f0b4af99 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -13,9 +13,9 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.demo.domain.bo.TestTreeBo; import com.ruoyi.demo.domain.vo.TestTreeVo; import com.ruoyi.demo.service.ITestTreeService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -33,7 +33,7 @@ import java.util.List; * @date 2021-07-26 */ @Validated -@Api(value = "测试树表控制器", tags = {"测试树表管理"}) +@Tag(name ="测试树表控制器", description = "测试树表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/tree") @@ -44,7 +44,7 @@ public class TestTreeController extends BaseController { /** * 查询测试树表列表 */ - @ApiOperation("查询测试树表列表") + @Operation(summary = "查询测试树表列表") @SaCheckPermission("demo:tree:list") @GetMapping("/list") public R> list(@Validated(QueryGroup.class) TestTreeBo bo) { @@ -55,7 +55,7 @@ public class TestTreeController extends BaseController { /** * 导出测试树表列表 */ - @ApiOperation("导出测试树表列表") + @Operation(summary = "导出测试树表列表") @SaCheckPermission("demo:tree:export") @Log(title = "测试树表", businessType = BusinessType.EXPORT) @GetMapping("/export") @@ -67,10 +67,10 @@ public class TestTreeController extends BaseController { /** * 获取测试树表详细信息 */ - @ApiOperation("获取测试树表详细信息") + @Operation(summary = "获取测试树表详细信息") @SaCheckPermission("demo:tree:query") @GetMapping("/{id}") - public R getInfo(@ApiParam("测试树ID") + public R getInfo(@Parameter(name = "测试树ID") @NotNull(message = "主键不能为空") @PathVariable("id") Long id) { return R.ok(iTestTreeService.queryById(id)); @@ -79,7 +79,7 @@ public class TestTreeController extends BaseController { /** * 新增测试树表 */ - @ApiOperation("新增测试树表") + @Operation(summary = "新增测试树表") @SaCheckPermission("demo:tree:add") @Log(title = "测试树表", businessType = BusinessType.INSERT) @RepeatSubmit @@ -91,7 +91,7 @@ public class TestTreeController extends BaseController { /** * 修改测试树表 */ - @ApiOperation("修改测试树表") + @Operation(summary = "修改测试树表") @SaCheckPermission("demo:tree:edit") @Log(title = "测试树表", businessType = BusinessType.UPDATE) @RepeatSubmit @@ -103,11 +103,11 @@ public class TestTreeController extends BaseController { /** * 删除测试树表 */ - @ApiOperation("删除测试树表") + @Operation(summary = "删除测试树表") @SaCheckPermission("demo:tree:remove") @Log(title = "测试树表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public R remove(@ApiParam("测试树ID串") + public R remove(@Parameter(name = "测试树ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java index 532c499e1..d41f87e28 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java @@ -2,9 +2,9 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -23,17 +23,17 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Api(value = "有界队列 演示案例", tags = {"有界队列"}) +@Tag(name ="有界队列 演示案例", description = "有界队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/bounded") public class BoundedQueueController { - @ApiOperation("添加队列数据") + @Operation(summary = "添加队列数据") @GetMapping("/add") - public R add(@ApiParam("队列名") String queueName, - @ApiParam("容量") int capacity) { + public R add(@Parameter(name = "队列名") String queueName, + @Parameter(name = "容量") int capacity) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyBoundedQueueObject(queueName); log.info("通道: {} , 删除: {}", queueName, b); @@ -56,9 +56,9 @@ public class BoundedQueueController { return R.ok("操作成功"); } - @ApiOperation("删除队列数据") + @Operation(summary = "删除队列数据") @GetMapping("/remove") - public R remove(@ApiParam("队列名") String queueName) { + public R remove(@Parameter(name = "队列名") String queueName) { String data = "data-" + 5; if (QueueUtils.removeBoundedQueueObject(queueName, data)) { log.info("通道: {} , 删除数据: {}", queueName, data); @@ -68,9 +68,9 @@ public class BoundedQueueController { return R.ok("操作成功"); } - @ApiOperation("获取队列数据") + @Operation(summary = "获取队列数据") @GetMapping("/get") - public R get(@ApiParam("队列名") String queueName) { + public R get(@Parameter(name = "队列名") String queueName) { String data; do { data = QueueUtils.getBoundedQueueObject(queueName); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index f8777533c..5958824a6 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -2,9 +2,9 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -26,15 +26,15 @@ import java.util.concurrent.TimeUnit; * @version 3.6.0 */ @Slf4j -@Api(value = "延迟队列 演示案例", tags = {"延迟队列"}) +@Tag(name ="延迟队列 演示案例", description = "延迟队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/delayed") public class DelayedQueueController { - @ApiOperation("订阅队列") + @Operation(summary = "订阅队列") @GetMapping("/subscribe") - public R subscribe(@ApiParam("队列名") String queueName) { + public R subscribe(@Parameter(name = "队列名") String queueName) { log.info("通道: {} 监听中......", queueName); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { @@ -44,21 +44,21 @@ public class DelayedQueueController { return R.ok("操作成功"); } - @ApiOperation("添加队列数据") + @Operation(summary = "添加队列数据") @GetMapping("/add") - public R add(@ApiParam("队列名") String queueName, - @ApiParam("订单号") String orderNum, - @ApiParam("延迟时间(秒)") Long time) { + public R add(@Parameter(name = "队列名") String queueName, + @Parameter(name = "订单号") String orderNum, + @Parameter(name = "延迟时间(秒)") Long time) { QueueUtils.addDelayedQueueObject(queueName, orderNum, time, TimeUnit.SECONDS); // 观察发送时间 log.info("通道: {} , 发送数据: {}", queueName, orderNum); return R.ok("操作成功"); } - @ApiOperation("删除队列数据") + @Operation(summary = "删除队列数据") @GetMapping("/remove") - public R remove(@ApiParam("队列名") String queueName, - @ApiParam("订单号") String orderNum) { + public R remove(@Parameter(name = "队列名") String queueName, + @Parameter(name = "订单号") String orderNum) { if (QueueUtils.removeDelayedQueueObject(queueName, orderNum)) { log.info("通道: {} , 删除数据: {}", queueName, orderNum); } else { @@ -67,9 +67,9 @@ public class DelayedQueueController { return R.ok("操作成功"); } - @ApiOperation("销毁队列") + @Operation(summary = "销毁队列") @GetMapping("/destroy") - public R destroy(@ApiParam("队列名") String queueName) { + public R destroy(@Parameter(name = "队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 QueueUtils.destroyDelayedQueue(queueName); return R.ok("操作成功"); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java index baec18440..6d11e151f 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java @@ -3,9 +3,9 @@ package com.ruoyi.demo.controller.queue; import cn.hutool.core.util.RandomUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -24,15 +24,15 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Api(value = "优先队列 演示案例", tags = {"优先队列"}) +@Tag(name ="优先队列 演示案例", description = "优先队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/priority") public class PriorityQueueController { - @ApiOperation("添加队列数据") + @Operation(summary = "添加队列数据") @GetMapping("/add") - public R add(@ApiParam("队列名") String queueName) { + public R add(@Parameter(name = "队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyPriorityQueueObject(queueName); log.info("通道: {} , 删除: {}", queueName, b); @@ -58,11 +58,11 @@ public class PriorityQueueController { return R.ok("操作成功"); } - @ApiOperation("删除队列数据") + @Operation(summary = "删除队列数据") @GetMapping("/remove") - public R remove(@ApiParam("队列名") String queueName, - @ApiParam("对象名") String name, - @ApiParam("排序号") Integer orderNum) { + public R remove(@Parameter(name = "队列名") String queueName, + @Parameter(name = "对象名") String name, + @Parameter(name = "排序号") Integer orderNum) { PriorityDemo data = new PriorityDemo(); data.setName(name); data.setOrderNum(orderNum); @@ -74,9 +74,9 @@ public class PriorityQueueController { return R.ok("操作成功"); } - @ApiOperation("获取队列数据") + @Operation(summary = "获取队列数据") @GetMapping("/get") - public R get(@ApiParam("队列名") String queueName) { + public R get(@Parameter(name = "队列名") String queueName) { PriorityDemo data; do { data = QueueUtils.getPriorityQueueObject(queueName); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java index 61c10ab16..e569466bd 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java @@ -3,8 +3,7 @@ package com.ruoyi.demo.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,48 +19,48 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("测试单表业务对象") +@Schema(name = "测试单表业务对象") public class TestDemoBo extends BaseEntity { /** * 主键 */ - @ApiModelProperty("主键") + @Schema(name = "主键") @NotNull(message = "主键不能为空", groups = {EditGroup.class}) private Long id; /** * 部门id */ - @ApiModelProperty("部门id") + @Schema(name = "部门id") @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long deptId; /** * 用户id */ - @ApiModelProperty("用户id") + @Schema(name = "用户id") @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long userId; /** * 排序号 */ - @ApiModelProperty("排序号") + @Schema(name = "排序号") @NotNull(message = "排序号不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer orderNum; /** * key键 */ - @ApiModelProperty("key键") + @Schema(name = "key键") @NotBlank(message = "key键不能为空", groups = {AddGroup.class, EditGroup.class}) private String testKey; /** * 值 */ - @ApiModelProperty("值") + @Schema(name = "值") @NotBlank(message = "值不能为空", groups = {AddGroup.class, EditGroup.class}) private String value; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java index 7185514fd..269188a5a 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java @@ -1,8 +1,7 @@ package com.ruoyi.demo.domain.bo; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -15,13 +14,13 @@ import javax.validation.constraints.NotNull; * @date 2021-07-26 */ @Data -@ApiModel("测试单表业务对象") +@Schema(name = "测试单表业务对象") public class TestDemoImportVo { /** * 部门id */ - @ApiModelProperty("部门id") + @Schema(name = "部门id") @NotNull(message = "部门id不能为空") @ExcelProperty(value = "部门id") private Long deptId; @@ -29,7 +28,7 @@ public class TestDemoImportVo { /** * 用户id */ - @ApiModelProperty("用户id") + @Schema(name = "用户id") @NotNull(message = "用户id不能为空") @ExcelProperty(value = "用户id") private Long userId; @@ -37,7 +36,7 @@ public class TestDemoImportVo { /** * 排序号 */ - @ApiModelProperty("排序号") + @Schema(name = "排序号") @NotNull(message = "排序号不能为空") @ExcelProperty(value = "排序号") private Long orderNum; @@ -45,7 +44,7 @@ public class TestDemoImportVo { /** * key键 */ - @ApiModelProperty("key键") + @Schema(name = "key键") @NotBlank(message = "key键不能为空") @ExcelProperty(value = "key键") private String testKey; @@ -53,7 +52,7 @@ public class TestDemoImportVo { /** * 值 */ - @ApiModelProperty("值") + @Schema(name = "值") @NotBlank(message = "值不能为空") @ExcelProperty(value = "值") private String value; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java index 211a79f14..a4f914388 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java @@ -3,8 +3,7 @@ package com.ruoyi.demo.domain.bo; import com.ruoyi.common.core.domain.TreeEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,34 +19,34 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("测试树表业务对象") +@Schema(name = "测试树表业务对象") public class TestTreeBo extends TreeEntity { /** * 主键 */ - @ApiModelProperty("主键") + @Schema(name = "主键") @NotNull(message = "主键不能为空", groups = {EditGroup.class}) private Long id; /** * 部门id */ - @ApiModelProperty("部门id") + @Schema(name = "部门id") @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long deptId; /** * 用户id */ - @ApiModelProperty("用户id") + @Schema(name = "用户id") @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long userId; /** * 树节点名 */ - @ApiModelProperty("树节点名") + @Schema(name = "树节点名") @NotBlank(message = "树节点名不能为空", groups = {AddGroup.class, EditGroup.class}) private String treeName; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java index 1e896500d..561d208a5 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java @@ -2,8 +2,7 @@ package com.ruoyi.demo.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -16,7 +15,7 @@ import java.util.Date; * @date 2021-07-26 */ @Data -@ApiModel("测试单表视图对象") +@Schema(name = "测试单表视图对象") @ExcelIgnoreUnannotated public class TestDemoVo { @@ -26,70 +25,70 @@ public class TestDemoVo { * 主键 */ @ExcelProperty(value = "主键") - @ApiModelProperty("主键") + @Schema(name = "主键") private Long id; /** * 部门id */ @ExcelProperty(value = "部门id") - @ApiModelProperty("部门id") + @Schema(name = "部门id") private Long deptId; /** * 用户id */ @ExcelProperty(value = "用户id") - @ApiModelProperty("用户id") + @Schema(name = "用户id") private Long userId; /** * 排序号 */ @ExcelProperty(value = "排序号") - @ApiModelProperty("排序号") + @Schema(name = "排序号") private Integer orderNum; /** * key键 */ @ExcelProperty(value = "key键") - @ApiModelProperty("key键") + @Schema(name = "key键") private String testKey; /** * 值 */ @ExcelProperty(value = "值") - @ApiModelProperty("值") + @Schema(name = "值") private String value; /** * 创建时间 */ @ExcelProperty(value = "创建时间") - @ApiModelProperty("创建时间") + @Schema(name = "创建时间") private Date createTime; /** * 创建人 */ @ExcelProperty(value = "创建人") - @ApiModelProperty("创建人") + @Schema(name = "创建人") private String createBy; /** * 更新时间 */ @ExcelProperty(value = "更新时间") - @ApiModelProperty("更新时间") + @Schema(name = "更新时间") private Date updateTime; /** * 更新人 */ @ExcelProperty(value = "更新人") - @ApiModelProperty("更新人") + @Schema(name = "更新人") private String updateBy; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java index 309a0ae4e..f0eadfcdf 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java @@ -2,8 +2,7 @@ package com.ruoyi.demo.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -16,7 +15,7 @@ import java.util.Date; * @date 2021-07-26 */ @Data -@ApiModel("测试树表视图对象") +@Schema(name = "测试树表视图对象") @ExcelIgnoreUnannotated public class TestTreeVo { @@ -25,42 +24,42 @@ public class TestTreeVo { /** * 主键 */ - @ApiModelProperty("主键") + @Schema(name = "主键") private Long id; /** * 父id */ @ExcelProperty(value = "父id") - @ApiModelProperty("父id") + @Schema(name = "父id") private Long parentId; /** * 部门id */ @ExcelProperty(value = "部门id") - @ApiModelProperty("部门id") + @Schema(name = "部门id") private Long deptId; /** * 用户id */ @ExcelProperty(value = "用户id") - @ApiModelProperty("用户id") + @Schema(name = "用户id") private Long userId; /** * 树节点名 */ @ExcelProperty(value = "树节点名") - @ApiModelProperty("树节点名") + @Schema(name = "树节点名") private String treeName; /** * 创建时间 */ @ExcelProperty(value = "创建时间") - @ApiModelProperty("创建时间") + @Schema(name = "创建时间") private Date createTime; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java index 2424981c1..c677378a0 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java @@ -1,33 +1,15 @@ package com.ruoyi.framework.config; -import cn.dev33.satoken.config.SaTokenConfig; -import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; -import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.framework.config.properties.SwaggerProperties; -import io.swagger.models.auth.In; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springdoc.core.SpringDocConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import javax.annotation.PostConstruct; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; /** * Swagger 文档配置 @@ -36,125 +18,36 @@ import java.util.List; */ @RequiredArgsConstructor @Configuration -@EnableKnife4j +@AutoConfigureBefore(SpringDocConfiguration.class) +@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true", matchIfMissing = true) public class SwaggerConfig { private final SwaggerProperties swaggerProperties; - private final SaTokenConfig saTokenConfig; - private final OpenApiExtensionResolver openApiExtensionResolver; - /** - * 用于适配springboot 2.6 - */ @Bean - @SuppressWarnings("all") - public BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } + @ConditionalOnMissingBean(OpenAPI.class) + public OpenAPI openApi() { + OpenAPI openApi = new OpenAPI(); + // 文档基本信息 + SwaggerProperties.InfoProperties infoProperties = swaggerProperties.getInfo(); + Info info = convertInfo(infoProperties); + openApi.info(info); + // 扩展文档信息 + openApi.externalDocs(swaggerProperties.getExternalDocs()); + openApi.tags(swaggerProperties.getTags()); + openApi.paths(swaggerProperties.getPaths()); + openApi.components(swaggerProperties.getComponents()); - private void customizeSpringfoxHandlerMappings(List mappings) { - mappings.removeIf(mapping -> mapping.getPatternParser() != null); - } - - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; + return openApi; } - /** - * 创建API - */ - @PostConstruct - public void createRestApi() { - for (SwaggerProperties.Groups group : swaggerProperties.getGroups()) { - String basePackage = group.getBasePackage(); - Docket docket = new Docket(DocumentationType.OAS_30) - .enable(swaggerProperties.getEnabled()) - // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) - .apiInfo(apiInfo()) - // 设置哪些接口暴露给Swagger展示 - .select() - // 扫描所有有注解的api,用这种方式更灵活 - //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - // 扫描指定包中的swagger注解 - .apis(RequestHandlerSelectors.basePackage(basePackage)) - // 扫描所有 .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.any()) - .build() - .groupName(group.getName()) - // 设置安全模式,swagger可以设置访问token - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()) - .extensions(openApiExtensionResolver.buildExtensions(group.getName())) - .pathMapping(swaggerProperties.getPathMapping()); - String beanName = StringUtils.substringAfterLast(basePackage, ".") + "Docket"; - SpringUtils.registerBean(beanName, docket); - } - } - - /** - * 安全模式,这里指定token通过Authorization头请求头传递 - */ - private List securitySchemes() { - List apiKeyList = new ArrayList<>(); - String header = saTokenConfig.getTokenName(); - apiKeyList.add(new ApiKey(header, header, In.HEADER.toValue())); - return apiKeyList; - } - - /** - * 安全上下文 - */ - private List securityContexts() { - List securityContexts = new ArrayList<>(); - securityContexts.add( - SecurityContext.builder() - .securityReferences(defaultAuth()) - .operationSelector(o -> o.requestMappingPattern().matches("/.*")) - .build()); - return securityContexts; - } - - /** - * 默认的安全上引用 - */ - private List defaultAuth() { - AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); - AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; - authorizationScopes[0] = authorizationScope; - List securityReferences = new ArrayList<>(); - securityReferences.add(new SecurityReference(saTokenConfig.getTokenName(), authorizationScopes)); - return securityReferences; - } - - /** - * 添加摘要信息 - */ - private ApiInfo apiInfo() { - // 用ApiInfoBuilder进行定制 - SwaggerProperties.Contact contact = swaggerProperties.getContact(); - return new ApiInfoBuilder() - // 设置标题 - .title(swaggerProperties.getTitle()) - // 描述 - .description(swaggerProperties.getDescription()) - // 作者信息 - .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail())) - // 版本 - .version(swaggerProperties.getVersion()) - .build(); + private Info convertInfo(SwaggerProperties.InfoProperties infoProperties) { + Info info = new Info(); + info.setTitle(infoProperties.getTitle()); + info.setDescription(infoProperties.getDescription()); + info.setContact(infoProperties.getContact()); + info.setLicense(infoProperties.getLicense()); + info.setVersion(infoProperties.getVersion()); + return info; } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java index 7293e1e90..736d70a45 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SwaggerProperties.java @@ -1,8 +1,14 @@ package com.ruoyi.framework.config.properties; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.ExternalDocumentation; +import io.swagger.v3.oas.models.Paths; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.tags.Tag; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.stereotype.Component; import java.util.List; @@ -18,74 +24,77 @@ import java.util.List; public class SwaggerProperties { /** - * 文档开关 + * 是否开启 openApi 文档 */ - private Boolean enabled; + private Boolean enabled = true; /** - * 设置请求的统一前缀 + * 文档基本信息 */ - private String pathMapping; + @NestedConfigurationProperty + private InfoProperties info = new InfoProperties(); /** - * 标头 + * 扩展文档地址 */ - private String title; + @NestedConfigurationProperty + private ExternalDocumentation externalDocs; /** - * 描述 + * 标签 */ - private String description; + private List tags = null; /** - * 项目版本 + * 路径 */ - private String version; + @NestedConfigurationProperty + private Paths paths = null; /** - * 联系方式 + * 组件 */ - private Contact contact; + @NestedConfigurationProperty + private Components components = null; /** - * 组配置 + *

    + * 文档的基础属性信息 + *

    + * + * @see io.swagger.v3.oas.models.info.Info + * + * 为了 springboot 自动生产配置提示信息,所以这里复制一个类出来 */ - private List groups; - @Data - @NoArgsConstructor - public static class Contact { + public static class InfoProperties { /** - * 联系人 + * 标题 */ - private String name; + private String title = null; /** - * 联系人url + * 描述 */ - private String url; + private String description = null; /** - * 联系人email + * 联系人信息 */ - private String email; - - } - - @Data - @NoArgsConstructor - public static class Groups { + @NestedConfigurationProperty + private Contact contact = null; /** - * 组名 + * 许可证 */ - private String name; + @NestedConfigurationProperty + private License license = null; /** - * 基础包路径 + * 版本 */ - private String basePackage; + private String version = null; } 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 e9e61e72b..d003ca8fe 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 @@ -12,8 +12,8 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.service.IGenTableService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -30,7 +30,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Api(value = "代码生成", tags = {"代码生成管理"}) +@Tag(name = "代码生成", description = "代码生成管理") @RequiredArgsConstructor @RestController @RequestMapping("/tool/gen") @@ -41,7 +41,7 @@ public class GenController extends BaseController { /** * 查询代码生成列表 */ - @ApiOperation("查询代码生成列表") + @Operation(summary = "查询代码生成列表") @SaCheckPermission("tool:gen:list") @GetMapping("/list") public TableDataInfo genList(GenTable genTable, PageQuery pageQuery) { @@ -51,7 +51,7 @@ public class GenController extends BaseController { /** * 修改代码生成业务 */ - @ApiOperation("修改代码生成业务") + @Operation(summary = "修改代码生成业务") @SaCheckPermission("tool:gen:query") @GetMapping(value = "/{tableId}") public R> getInfo(@PathVariable Long tableId) { @@ -68,7 +68,7 @@ public class GenController extends BaseController { /** * 查询数据库列表 */ - @ApiOperation("查询数据库列表") + @Operation(summary = "查询数据库列表") @SaCheckPermission("tool:gen:list") @GetMapping("/db/list") public TableDataInfo dataList(GenTable genTable, PageQuery pageQuery) { @@ -78,7 +78,7 @@ public class GenController extends BaseController { /** * 查询数据表字段列表 */ - @ApiOperation("查询数据表字段列表") + @Operation(summary = "查询数据表字段列表") @SaCheckPermission("tool:gen:list") @GetMapping(value = "/column/{tableId}") public TableDataInfo columnList(Long tableId) { @@ -92,7 +92,7 @@ public class GenController extends BaseController { /** * 导入表结构(保存) */ - @ApiOperation("导入表结构(保存)") + @Operation(summary = "导入表结构(保存)") @SaCheckPermission("tool:gen:import") @Log(title = "代码生成", businessType = BusinessType.IMPORT) @PostMapping("/importTable") @@ -107,7 +107,7 @@ public class GenController extends BaseController { /** * 修改保存代码生成业务 */ - @ApiOperation("修改保存代码生成业务") + @Operation(summary = "修改保存代码生成业务") @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @PutMapping @@ -120,7 +120,7 @@ public class GenController extends BaseController { /** * 删除代码生成 */ - @ApiOperation("删除代码生成") + @Operation(summary = "删除代码生成") @SaCheckPermission("tool:gen:remove") @Log(title = "代码生成", businessType = BusinessType.DELETE) @DeleteMapping("/{tableIds}") @@ -132,7 +132,7 @@ public class GenController extends BaseController { /** * 预览代码 */ - @ApiOperation("预览代码") + @Operation(summary = "预览代码") @SaCheckPermission("tool:gen:preview") @GetMapping("/preview/{tableId}") public R> preview(@PathVariable("tableId") Long tableId) throws IOException { @@ -143,7 +143,7 @@ public class GenController extends BaseController { /** * 生成代码(下载方式) */ - @ApiOperation("生成代码(下载方式)") + @Operation(summary = "生成代码(下载方式)") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/download/{tableName}") @@ -155,7 +155,7 @@ public class GenController extends BaseController { /** * 生成代码(自定义路径) */ - @ApiOperation("生成代码(自定义路径)") + @Operation(summary = "生成代码(自定义路径)") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/genCode/{tableName}") @@ -167,7 +167,7 @@ public class GenController extends BaseController { /** * 同步数据库 */ - @ApiOperation("同步数据库") + @Operation(summary = "同步数据库") @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @GetMapping("/synchDb/{tableName}") @@ -179,7 +179,7 @@ public class GenController extends BaseController { /** * 批量生成代码 */ - @ApiOperation("批量生成代码") + @Operation(summary = "批量生成代码") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/batchGenCode") diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm index 13b987318..0d0af368b 100644 --- a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm @@ -33,7 +33,7 @@ import com.ruoyi.common.core.domain.TreeEntity; @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("${functionName}业务对象") +@Schema(name = "${functionName}业务对象") public class ${ClassName}Bo extends ${Entity} { #foreach ($column in $columns) @@ -49,14 +49,14 @@ public class ${ClassName}Bo extends ${Entity} { #set($Group="EditGroup.class") #end #if($column.isRequired == 1) - @ApiModelProperty(value = "$column.columnComment", required = true) + @Schema(name = "$column.columnComment", required = true) #if($column.javaType == 'String') @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) #else @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) #end #else - @ApiModelProperty(value = "$column.columnComment") + @Schema(name = "$column.columnComment") #end private $column.javaType $column.javaField; diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 6b2fc6582..9ea772fc3 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -27,9 +27,8 @@ import ${packageName}.service.I${ClassName}Service; import com.ruoyi.common.core.page.TableDataInfo; #elseif($table.tree) #end -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; /** * ${functionName}Controller @@ -38,7 +37,7 @@ import io.swagger.annotations.ApiOperation; * @date ${datetime} */ @Validated -@Api(value = "${functionName}控制器", tags = {"${functionName}管理"}) +@Tag(name ="${functionName}控制器", description = "${functionName}管理") @RequiredArgsConstructor @RestController @RequestMapping("/${moduleName}/${businessName}") @@ -49,7 +48,7 @@ public class ${ClassName}Controller extends BaseController { /** * 查询${functionName}列表 */ - @ApiOperation("查询${functionName}列表") + @Operation(summary = "查询${functionName}列表") @SaCheckPermission("${permissionPrefix}:list") @GetMapping("/list") #if($table.crud || $table.sub) @@ -66,7 +65,7 @@ public class ${ClassName}Controller extends BaseController { /** * 导出${functionName}列表 */ - @ApiOperation("导出${functionName}列表") + @Operation(summary = "导出${functionName}列表") @SaCheckPermission("${permissionPrefix}:export") @Log(title = "${functionName}", businessType = BusinessType.EXPORT) @PostMapping("/export") @@ -78,10 +77,10 @@ public class ${ClassName}Controller extends BaseController { /** * 获取${functionName}详细信息 */ - @ApiOperation("获取${functionName}详细信息") + @Operation(summary = "获取${functionName}详细信息") @SaCheckPermission("${permissionPrefix}:query") @GetMapping("/{${pkColumn.javaField}}") - public R<${ClassName}Vo> getInfo(@ApiParam("主键") + public R<${ClassName}Vo> getInfo(@Parameter(name = "主键") @NotNull(message = "主键不能为空") @PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { return R.ok(i${ClassName}Service.queryById(${pkColumn.javaField})); @@ -90,7 +89,7 @@ public class ${ClassName}Controller extends BaseController { /** * 新增${functionName} */ - @ApiOperation("新增${functionName}") + @Operation(summary = "新增${functionName}") @SaCheckPermission("${permissionPrefix}:add") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @RepeatSubmit() @@ -102,7 +101,7 @@ public class ${ClassName}Controller extends BaseController { /** * 修改${functionName} */ - @ApiOperation("修改${functionName}") + @Operation(summary = "修改${functionName}") @SaCheckPermission("${permissionPrefix}:edit") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @RepeatSubmit() @@ -114,11 +113,11 @@ public class ${ClassName}Controller extends BaseController { /** * 删除${functionName} */ - @ApiOperation("删除${functionName}") + @Operation(summary = "删除${functionName}") @SaCheckPermission("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") - public R remove(@ApiParam("主键串") + public R remove(@Parameter(name = "主键串") @NotEmpty(message = "主键不能为空") @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true) ? 1 : 0); diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index 216e90fc7..1fc974d20 100644 --- a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -21,7 +21,7 @@ import java.util.Date; * @date ${datetime} */ @Data -@ApiModel("${functionName}视图对象") +@Schema(name = "${functionName}视图对象") @ExcelIgnoreUnannotated public class ${ClassName}Vo { @@ -47,7 +47,7 @@ public class ${ClassName}Vo { #else @ExcelProperty(value = "${comment}") #end - @ApiModelProperty("$column.columnComment") + @Schema(name = "$column.columnComment") private $column.javaType $column.javaField; #end diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java index 632c71ad8..b42eb3dc4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java @@ -1,8 +1,7 @@ package com.ruoyi.system.domain; import com.ruoyi.common.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,31 +12,31 @@ import lombok.NoArgsConstructor; */ @Data @NoArgsConstructor -@ApiModel("缓存信息") +@Schema(name = "缓存信息") public class SysCache { /** * 缓存名称 */ - @ApiModelProperty(value = "缓存名称") + @Schema(name = "缓存名称") private String cacheName = ""; /** * 缓存键名 */ - @ApiModelProperty(value = "缓存键名") + @Schema(name = "缓存键名") private String cacheKey = ""; /** * 缓存内容 */ - @ApiModelProperty(value = "缓存内容") + @Schema(name = "缓存内容") private String cacheValue = ""; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark = ""; public SysCache(String cacheName, String remark) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index b1091b458..946255710 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -7,8 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,13 +24,13 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_config") @ExcelIgnoreUnannotated -@ApiModel("参数配置业务对象") +@Schema(name = "参数配置业务对象") public class SysConfig extends BaseEntity { /** * 参数主键 */ - @ApiModelProperty(value = "参数主键") + @Schema(name = "参数主键") @ExcelProperty(value = "参数主键") @TableId(value = "config_id") private Long configId; @@ -39,7 +38,7 @@ public class SysConfig extends BaseEntity { /** * 参数名称 */ - @ApiModelProperty(value = "参数名称") + @Schema(name = "参数名称") @ExcelProperty(value = "参数名称") @NotBlank(message = "参数名称不能为空") @Size(min = 0, max = 100, message = "参数名称不能超过100个字符") @@ -48,7 +47,7 @@ public class SysConfig extends BaseEntity { /** * 参数键名 */ - @ApiModelProperty(value = "参数键名") + @Schema(name = "参数键名") @ExcelProperty(value = "参数键名") @NotBlank(message = "参数键名长度不能为空") @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") @@ -57,7 +56,7 @@ public class SysConfig extends BaseEntity { /** * 参数键值 */ - @ApiModelProperty(value = "参数键值") + @Schema(name = "参数键值") @ExcelProperty(value = "参数键值") @NotBlank(message = "参数键值不能为空") @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") @@ -66,7 +65,7 @@ public class SysConfig extends BaseEntity { /** * 系统内置(Y是 N否) */ - @ApiModelProperty(value = "系统内置(Y是 N否)") + @Schema(name = "系统内置(Y是 N否)") @ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_yes_no") private String configType; @@ -74,7 +73,7 @@ public class SysConfig extends BaseEntity { /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java index de095ec38..d87800612 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java @@ -7,8 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -25,14 +24,14 @@ import java.util.Map; @Data @TableName("sys_logininfor") @ExcelIgnoreUnannotated -@ApiModel("系统访问记录业务对象") +@Schema(name = "系统访问记录业务对象") public class SysLogininfor implements Serializable { private static final long serialVersionUID = 1L; /** * ID */ - @ApiModelProperty(value = "访问ID") + @Schema(name = "访问ID") @ExcelProperty(value = "序号") @TableId(value = "info_id") private Long infoId; @@ -40,14 +39,14 @@ public class SysLogininfor implements Serializable { /** * 用户账号 */ - @ApiModelProperty(value = "用户账号") + @Schema(name = "用户账号") @ExcelProperty(value = "用户账号") private String userName; /** * 登录状态 0成功 1失败 */ - @ApiModelProperty(value = "登录状态 0成功 1失败") + @Schema(name = "登录状态 0成功 1失败") @ExcelProperty(value = "登录状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -55,49 +54,49 @@ public class SysLogininfor implements Serializable { /** * 登录IP地址 */ - @ApiModelProperty(value = "登录IP地址") + @Schema(name = "登录IP地址") @ExcelProperty(value = "登录地址") private String ipaddr; /** * 登录地点 */ - @ApiModelProperty(value = "登录地点") + @Schema(name = "登录地点") @ExcelProperty(value = "登录地点") private String loginLocation; /** * 浏览器类型 */ - @ApiModelProperty(value = "浏览器类型") + @Schema(name = "浏览器类型") @ExcelProperty(value = "浏览器") private String browser; /** * 操作系统 */ - @ApiModelProperty(value = "操作系统") + @Schema(name = "操作系统") @ExcelProperty(value = "操作系统") private String os; /** * 提示消息 */ - @ApiModelProperty(value = "提示消息") + @Schema(name = "提示消息") @ExcelProperty(value = "提示消息") private String msg; /** * 访问时间 */ - @ApiModelProperty(value = "访问时间") + @Schema(name = "访问时间") @ExcelProperty(value = "访问时间") private Date loginTime; /** * 请求参数 */ - @ApiModelProperty(value = "请求参数") + @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index 2371bb7e5..36177c82e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.xss.Xss; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +25,7 @@ public class SysNotice extends BaseEntity { /** * 公告ID */ - @ApiModelProperty(value = "公告ID") + @Schema(name = "公告ID") @TableId(value = "notice_id") private Long noticeId; @@ -33,7 +33,7 @@ public class SysNotice extends BaseEntity { * 公告标题 */ @Xss(message = "公告标题不能包含脚本字符") - @ApiModelProperty(value = "公告标题") + @Schema(name = "公告标题") @NotBlank(message = "公告标题不能为空") @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") private String noticeTitle; @@ -41,25 +41,25 @@ public class SysNotice extends BaseEntity { /** * 公告类型(1通知 2公告) */ - @ApiModelProperty(value = "公告类型(1通知 2公告)") + @Schema(name = "公告类型(1通知 2公告)") private String noticeType; /** * 公告内容 */ - @ApiModelProperty(value = "公告内容") + @Schema(name = "公告内容") private String noticeContent; /** * 公告状态(0正常 1关闭) */ - @ApiModelProperty(value = "公告状态(0正常 1关闭)") + @Schema(name = "公告状态(0正常 1关闭)") private String status; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java index f6f373776..ebb3a4b7c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java @@ -7,8 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -25,7 +24,7 @@ import java.util.Map; @Data @TableName("sys_oper_log") @ExcelIgnoreUnannotated -@ApiModel("操作日志记录业务对象") +@Schema(name = "操作日志记录业务对象") public class SysOperLog implements Serializable { private static final long serialVersionUID = 1L; @@ -33,7 +32,7 @@ public class SysOperLog implements Serializable { /** * 日志主键 */ - @ApiModelProperty(value = "日志主键") + @Schema(name = "日志主键") @ExcelProperty(value = "日志主键") @TableId(value = "oper_id") private Long operId; @@ -41,14 +40,14 @@ public class SysOperLog implements Serializable { /** * 操作模块 */ - @ApiModelProperty(value = "操作模块") + @Schema(name = "操作模块") @ExcelProperty(value = "操作模块") private String title; /** * 业务类型(0其它 1新增 2修改 3删除) */ - @ApiModelProperty(value = "业务类型(0其它 1新增 2修改 3删除)") + @Schema(name = "业务类型(0其它 1新增 2修改 3删除)") @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_oper_type") private Integer businessType; @@ -56,28 +55,28 @@ public class SysOperLog implements Serializable { /** * 业务类型数组 */ - @ApiModelProperty(value = "业务类型数组") + @Schema(name = "业务类型数组") @TableField(exist = false) private Integer[] businessTypes; /** * 请求方法 */ - @ApiModelProperty(value = "请求方法") + @Schema(name = "请求方法") @ExcelProperty(value = "请求方法") private String method; /** * 请求方式 */ - @ApiModelProperty(value = "请求方式") + @Schema(name = "请求方式") @ExcelProperty(value = "请求方式") private String requestMethod; /** * 操作类别(0其它 1后台用户 2手机端用户) */ - @ApiModelProperty(value = "操作类别(0其它 1后台用户 2手机端用户)") + @Schema(name = "操作类别(0其它 1后台用户 2手机端用户)") @ExcelProperty(value = "操作类别", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=其它,1=后台用户,2=手机端用户") private Integer operatorType; @@ -85,56 +84,56 @@ public class SysOperLog implements Serializable { /** * 操作人员 */ - @ApiModelProperty(value = "操作人员") + @Schema(name = "操作人员") @ExcelProperty(value = "操作人员") private String operName; /** * 部门名称 */ - @ApiModelProperty(value = "部门名称") + @Schema(name = "部门名称") @ExcelProperty(value = "部门名称") private String deptName; /** * 请求url */ - @ApiModelProperty(value = "请求url") + @Schema(name = "请求url") @ExcelProperty(value = "请求地址") private String operUrl; /** * 操作地址 */ - @ApiModelProperty(value = "操作地址") + @Schema(name = "操作地址") @ExcelProperty(value = "操作地址") private String operIp; /** * 操作地点 */ - @ApiModelProperty(value = "操作地点") + @Schema(name = "操作地点") @ExcelProperty(value = "操作地点") private String operLocation; /** * 请求参数 */ - @ApiModelProperty(value = "请求参数") + @Schema(name = "请求参数") @ExcelProperty(value = "请求参数") private String operParam; /** * 返回参数 */ - @ApiModelProperty(value = "返回参数") + @Schema(name = "返回参数") @ExcelProperty(value = "返回参数") private String jsonResult; /** * 操作状态(0正常 1异常) */ - @ApiModelProperty(value = "操作状态(0正常 1异常)") + @Schema(name = "操作状态(0正常 1异常)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private Integer status; @@ -142,21 +141,21 @@ public class SysOperLog implements Serializable { /** * 错误消息 */ - @ApiModelProperty(value = "错误消息") + @Schema(name = "错误消息") @ExcelProperty(value = "错误消息") private String errorMsg; /** * 操作时间 */ - @ApiModelProperty(value = "操作时间") + @Schema(name = "操作时间") @ExcelProperty(value = "操作时间") private Date operTime; /** * 请求参数 */ - @ApiModelProperty(value = "请求参数") + @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index d0c968e42..f479a881d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -8,8 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,13 +26,13 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_post") @ExcelIgnoreUnannotated -@ApiModel("岗位信息业务对象") +@Schema(name = "岗位信息业务对象") public class SysPost extends BaseEntity { /** * 岗位序号 */ - @ApiModelProperty(value = "岗位序号") + @Schema(name = "岗位序号") @ExcelProperty(value = "岗位序号") @TableId(value = "post_id") private Long postId; @@ -41,7 +40,7 @@ public class SysPost extends BaseEntity { /** * 岗位编码 */ - @ApiModelProperty(value = "岗位编码") + @Schema(name = "岗位编码") @ExcelProperty(value = "岗位编码") @NotBlank(message = "岗位编码不能为空") @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符") @@ -50,7 +49,7 @@ public class SysPost extends BaseEntity { /** * 岗位名称 */ - @ApiModelProperty(value = "岗位名称") + @Schema(name = "岗位名称") @ExcelProperty(value = "岗位名称") @NotBlank(message = "岗位名称不能为空") @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符") @@ -59,7 +58,7 @@ public class SysPost extends BaseEntity { /** * 岗位排序 */ - @ApiModelProperty(value = "岗位排序") + @Schema(name = "岗位排序") @ExcelProperty(value = "岗位排序") @NotNull(message = "显示顺序不能为空") private Integer postSort; @@ -67,7 +66,7 @@ public class SysPost extends BaseEntity { /** * 状态(0正常 1停用) */ - @ApiModelProperty(value = "状态(0正常 1停用)") + @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -75,13 +74,13 @@ public class SysPost extends BaseEntity { /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; /** * 用户是否存在此岗位标识 默认不存在 */ - @ApiModelProperty(value = "用户是否存在此岗位标识 默认不存在") + @Schema(name = "用户是否存在此岗位标识 默认不存在") @TableField(exist = false) private boolean flag = false; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java index c3043c253..a0497c8a5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java @@ -3,8 +3,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -15,20 +14,20 @@ import lombok.Data; @Data @TableName("sys_role_dept") -@ApiModel("角色和部门关联") +@Schema(name = "角色和部门关联") public class SysRoleDept { /** * 角色ID */ @TableId(type = IdType.INPUT) - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") private Long roleId; /** * 部门ID */ - @ApiModelProperty(value = "部门ID") + @Schema(name = "部门ID") private Long deptId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java index f3e4dd7c2..5c99a0e38 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java @@ -3,8 +3,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -15,20 +14,20 @@ import lombok.Data; @Data @TableName("sys_role_menu") -@ApiModel("角色和菜单关联") +@Schema(name = "角色和菜单关联") public class SysRoleMenu { /** * 角色ID */ @TableId(type = IdType.INPUT) - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") private Long roleId; /** * 菜单ID */ - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") private Long menuId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java index 605d1645b..4473d3b18 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -11,55 +10,55 @@ import lombok.Data; */ @Data -@ApiModel("当前在线会话业务对象") +@Schema(name = "当前在线会话业务对象") public class SysUserOnline { /** * 会话编号 */ - @ApiModelProperty(value = "会话编号") + @Schema(name = "会话编号") private String tokenId; /** * 部门名称 */ - @ApiModelProperty(value = "部门名称") + @Schema(name = "部门名称") private String deptName; /** * 用户名称 */ - @ApiModelProperty(value = "用户名称") + @Schema(name = "用户名称") private String userName; /** * 登录IP地址 */ - @ApiModelProperty(value = "登录IP地址") + @Schema(name = "登录IP地址") private String ipaddr; /** * 登录地址 */ - @ApiModelProperty(value = "登录地址") + @Schema(name = "登录地址") private String loginLocation; /** * 浏览器类型 */ - @ApiModelProperty(value = "浏览器类型") + @Schema(name = "浏览器类型") private String browser; /** * 操作系统 */ - @ApiModelProperty(value = "操作系统") + @Schema(name = "操作系统") private String os; /** * 登录时间 */ - @ApiModelProperty(value = "登录时间") + @Schema(name = "登录时间") private Long loginTime; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java index 243e3c8ae..6a5f43c5e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java @@ -3,8 +3,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -15,20 +14,20 @@ import lombok.Data; @Data @TableName("sys_user_post") -@ApiModel("用户和岗位关联") +@Schema(name = "用户和岗位关联") public class SysUserPost { /** * 用户ID */ @TableId(type = IdType.INPUT) - @ApiModelProperty(value = "用户ID") + @Schema(name = "用户ID") private Long userId; /** * 岗位ID */ - @ApiModelProperty(value = "岗位ID") + @Schema(name = "岗位ID") private Long postId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java index 5fa712a4b..4be15f86e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java @@ -3,8 +3,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -15,20 +14,20 @@ import lombok.Data; @Data @TableName("sys_user_role") -@ApiModel("用户和角色关联") +@Schema(name = "用户和角色关联") public class SysUserRole { /** * 用户ID */ @TableId(type = IdType.INPUT) - @ApiModelProperty(value = "用户ID") + @Schema(name = "用户ID") private Long userId; /** * 角色ID */ - @ApiModelProperty(value = "角色ID") + @Schema(name = "角色ID") private Long roleId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java index c48ae5b8e..bc1d296c5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java @@ -1,8 +1,7 @@ package com.ruoyi.system.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,33 +12,33 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("OSS对象存储分页查询对象") +@Schema(name = "OSS对象存储分页查询对象") public class SysOssBo extends BaseEntity { /** * 文件名 */ - @ApiModelProperty("文件名") + @Schema(name = "文件名") private String fileName; /** * 原名 */ - @ApiModelProperty("原名") + @Schema(name = "原名") private String originalName; /** * 文件后缀名 */ - @ApiModelProperty("文件后缀名") + @Schema(name = "文件后缀名") private String fileSuffix; /** * URL地址 */ - @ApiModelProperty("URL地址") + @Schema(name = "URL地址") private String url; /** * 服务商 */ - @ApiModelProperty("服务商") + @Schema(name = "服务商") private String service; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java index 5ac4e96e4..b45a37872 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java @@ -3,8 +3,7 @@ package com.ruoyi.system.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,20 +21,20 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@ApiModel("对象存储配置业务对象") +@Schema(name = "对象存储配置业务对象") public class SysOssConfigBo extends BaseEntity { /** * 主建 */ - @ApiModelProperty(value = "主建", required = true) + @Schema(name = "主建", required = true) @NotNull(message = "主建不能为空", groups = {EditGroup.class}) private Long ossConfigId; /** * 配置key */ - @ApiModelProperty(value = "配置key", required = true) + @Schema(name = "配置key", required = true) @NotBlank(message = "配置key不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "configKey长度必须介于2和20 之间") private String configKey; @@ -43,7 +42,7 @@ public class SysOssConfigBo extends BaseEntity { /** * accessKey */ - @ApiModelProperty(value = "accessKey", required = true) + @Schema(name = "accessKey", required = true) @NotBlank(message = "accessKey不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "accessKey长度必须介于2和100 之间") private String accessKey; @@ -51,7 +50,7 @@ public class SysOssConfigBo extends BaseEntity { /** * 秘钥 */ - @ApiModelProperty(value = "secretKey", required = true) + @Schema(name = "secretKey", required = true) @NotBlank(message = "secretKey不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "secretKey长度必须介于2和100 之间") private String secretKey; @@ -59,7 +58,7 @@ public class SysOssConfigBo extends BaseEntity { /** * 桶名称 */ - @ApiModelProperty(value = "桶名称", required = true) + @Schema(name = "桶名称", required = true) @NotBlank(message = "桶名称不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "bucketName长度必须介于2和100之间") private String bucketName; @@ -67,13 +66,13 @@ public class SysOssConfigBo extends BaseEntity { /** * 前缀 */ - @ApiModelProperty(value = "前缀") + @Schema(name = "前缀") private String prefix; /** * 访问站点 */ - @ApiModelProperty(value = "访问站点", required = true) + @Schema(name = "访问站点", required = true) @NotBlank(message = "访问站点不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "endpoint长度必须介于2和100之间") private String endpoint; @@ -81,37 +80,37 @@ public class SysOssConfigBo extends BaseEntity { /** * 自定义域名 */ - @ApiModelProperty("自定义域名") + @Schema(name = "自定义域名") private String domain; /** * 是否https(Y=是,N=否) */ - @ApiModelProperty("是否https(Y=是,N=否)") + @Schema(name = "是否https(Y=是,N=否)") private String isHttps; /** * 状态(0=正常,1=停用) */ - @ApiModelProperty("状态(0=正常,1=停用)") + @Schema(name = "状态(0=正常,1=停用)") private String status; /** * 域 */ - @ApiModelProperty(value = "域") + @Schema(name = "域") private String region; /** * 扩展字段 */ - @ApiModelProperty(value = "扩展字段") + @Schema(name = "扩展字段") private String ext1; /** * 备注 */ - @ApiModelProperty(value = "备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java index d3e1a353a..3b864daf5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java @@ -1,8 +1,7 @@ package com.ruoyi.system.domain.vo; import com.ruoyi.common.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -12,31 +11,31 @@ import lombok.Data; */ @Data -@ApiModel("路由显示信息") +@Schema(name = "路由显示信息") public class MetaVo { /** * 设置该路由在侧边栏和面包屑中展示的名字 */ - @ApiModelProperty(value = "设置该路由在侧边栏和面包屑中展示的名字") + @Schema(name = "设置该路由在侧边栏和面包屑中展示的名字") private String title; /** * 设置该路由的图标,对应路径src/assets/icons/svg */ - @ApiModelProperty(value = "设置该路由的图标,对应路径src/assets/icons/svg") + @Schema(name = "设置该路由的图标,对应路径src/assets/icons/svg") private String icon; /** * 设置为true,则不会被 缓存 */ - @ApiModelProperty(value = "设置为true,则不会被 缓存") + @Schema(name = "设置为true,则不会被 缓存") private boolean noCache; /** * 内链地址(http(s)://开头) */ - @ApiModelProperty(value = "内链地址(http(s)://开头)") + @Schema(name = "内链地址(http(s)://开头)") private String link; public MetaVo(String title, String icon) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java index a451bb95b..7f961a7be 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java @@ -1,8 +1,7 @@ package com.ruoyi.system.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; @@ -14,61 +13,61 @@ import java.util.List; */ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) -@ApiModel("路由配置信息") +@Schema(name = "路由配置信息") public class RouterVo { /** * 路由名字 */ - @ApiModelProperty(value = "路由名字") + @Schema(name = "路由名字") private String name; /** * 路由地址 */ - @ApiModelProperty(value = "路由地址") + @Schema(name = "路由地址") private String path; /** * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 */ - @ApiModelProperty(value = "是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现") + @Schema(name = "是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现") private boolean hidden; /** * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 */ - @ApiModelProperty(value = "重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击") + @Schema(name = "重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击") private String redirect; /** * 组件地址 */ - @ApiModelProperty(value = "组件地址") + @Schema(name = "组件地址") private String component; /** * 路由参数:如 {"id": 1, "name": "ry"} */ - @ApiModelProperty(value = "路由参数:如 {\"id\": 1, \"name\": \"ry\"}") + @Schema(name = "路由参数:如 {\"id\": 1, \"name\": \"ry\"}") private String query; /** * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 */ - @ApiModelProperty(value = "当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面") + @Schema(name = "当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面") private Boolean alwaysShow; /** * 其他元素 */ - @ApiModelProperty(value = "其他元素") + @Schema(name = "其他元素") private MetaVo meta; /** * 子路由 */ - @ApiModelProperty(value = "子路由") + @Schema(name = "子路由") private List children; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java index 20edacaa6..833dc3b93 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java @@ -1,8 +1,7 @@ package com.ruoyi.system.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -14,7 +13,7 @@ import lombok.Data; * @date 2021-08-13 */ @Data -@ApiModel("对象存储配置视图对象") +@Schema(name = "对象存储配置视图对象") @ExcelIgnoreUnannotated public class SysOssConfigVo { @@ -23,79 +22,79 @@ public class SysOssConfigVo { /** * 主建 */ - @ApiModelProperty("主建") + @Schema(name = "主建") private Long ossConfigId; /** * 配置key */ - @ApiModelProperty("配置key") + @Schema(name = "配置key") private String configKey; /** * accessKey */ - @ApiModelProperty("accessKey") + @Schema(name = "accessKey") private String accessKey; /** * 秘钥 */ - @ApiModelProperty("secretKey") + @Schema(name = "secretKey") private String secretKey; /** * 桶名称 */ - @ApiModelProperty("桶名称") + @Schema(name = "桶名称") private String bucketName; /** * 前缀 */ - @ApiModelProperty("前缀") + @Schema(name = "前缀") private String prefix; /** * 访问站点 */ - @ApiModelProperty("访问站点") + @Schema(name = "访问站点") private String endpoint; /** * 自定义域名 */ - @ApiModelProperty("自定义域名") + @Schema(name = "自定义域名") private String domain; /** * 是否https(Y=是,N=否) */ - @ApiModelProperty("是否https(Y=是,N=否)") + @Schema(name = "是否https(Y=是,N=否)") private String isHttps; /** * 域 */ - @ApiModelProperty("域") + @Schema(name = "域") private String region; /** * 状态(0=正常,1=停用) */ - @ApiModelProperty("状态(0=正常,1=停用)") + @Schema(name = "状态(0=正常,1=停用)") private String status; /** * 扩展字段 */ - @ApiModelProperty("扩展字段") + @Schema(name = "扩展字段") private String ext1; /** * 备注 */ - @ApiModelProperty("备注") + @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java index eb2299ee6..b0b8da34c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain.vo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -12,7 +11,7 @@ import java.util.Date; * @author Lion Li */ @Data -@ApiModel("OSS对象存储视图对象") +@Schema(name = "OSS对象存储视图对象") public class SysOssVo { private static final long serialVersionUID = 1L; @@ -20,49 +19,49 @@ public class SysOssVo { /** * 对象存储主键 */ - @ApiModelProperty("对象存储主键") + @Schema(name = "对象存储主键") private Long ossId; /** * 文件名 */ - @ApiModelProperty("文件名") + @Schema(name = "文件名") private String fileName; /** * 原名 */ - @ApiModelProperty("原名") + @Schema(name = "原名") private String originalName; /** * 文件后缀名 */ - @ApiModelProperty("文件后缀名") + @Schema(name = "文件后缀名") private String fileSuffix; /** * URL地址 */ - @ApiModelProperty("URL地址") + @Schema(name = "URL地址") private String url; /** * 创建时间 */ - @ApiModelProperty("创建时间") + @Schema(name = "创建时间") private Date createTime; /** * 上传人 */ - @ApiModelProperty("上传人") + @Schema(name = "上传人") private String createBy; /** * 服务商 */ - @ApiModelProperty("服务商") + @Schema(name = "服务商") private String service; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java index 98306f4fb..1ec3f9f51 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.common.collect.Lists; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; @@ -120,7 +119,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { throw new ServiceException("系统内置, 不可删除!"); } } - List list = Lists.newArrayList(); + List list = CollUtil.newArrayList(); for (Long configId : ids) { SysOssConfig config = baseMapper.selectById(configId); list.add(config); From d9e54388e7fde2462e8b7e0165c5e7da3f202593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 7 Jul 2022 19:07:59 +0800 Subject: [PATCH 033/299] =?UTF-8?q?add=20=E6=95=B4=E5=90=88=20springdoc-op?= =?UTF-8?q?enapi-javadoc=20=E5=9F=BA=E4=BA=8E=E4=BB=A3=E7=A0=81=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=E7=94=9F=E6=88=90=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 18 +++++++++++++++ .../controller/common/CaptchaController.java | 3 --- .../controller/monitor/CacheController.java | 8 ------- .../monitor/SysLogininforController.java | 5 ---- .../monitor/SysOperlogController.java | 5 ---- .../monitor/SysUserOnlineController.java | 3 --- .../system/SysConfigController.java | 10 -------- .../controller/system/SysDeptController.java | 9 -------- .../system/SysDictDataController.java | 8 ------- .../system/SysDictTypeController.java | 9 -------- .../controller/system/SysIndexController.java | 2 -- .../controller/system/SysLoginController.java | 7 ------ .../controller/system/SysMenuController.java | 8 ------- .../system/SysNoticeController.java | 6 ----- .../system/SysOssConfigController.java | 7 ------ .../controller/system/SysOssController.java | 6 ----- .../controller/system/SysPostController.java | 8 ------- .../system/SysProfileController.java | 5 ---- .../system/SysRegisterController.java | 2 -- .../controller/system/SysRoleController.java | 15 ------------ .../controller/system/SysUserController.java | 13 ----------- .../src/main/resources/application.yml | 6 ++--- ruoyi-common/pom.xml | 5 ++++ .../ruoyi/common/core/domain/BaseEntity.java | 7 ------ .../ruoyi/common/core/domain/PageQuery.java | 5 ---- .../java/com/ruoyi/common/core/domain/R.java | 5 ---- .../ruoyi/common/core/domain/TreeEntity.java | 4 ---- .../common/core/domain/entity/SysDept.java | 11 --------- .../core/domain/entity/SysDictData.java | 12 ---------- .../core/domain/entity/SysDictType.java | 7 ------ .../common/core/domain/entity/SysMenu.java | 16 ------------- .../common/core/domain/entity/SysRole.java | 15 ------------ .../common/core/domain/entity/SysUser.java | 23 ------------------- .../common/core/domain/model/LoginBody.java | 6 ----- .../core/domain/model/RegisterBody.java | 3 --- .../core/domain/model/SmsLoginBody.java | 4 ---- .../ruoyi/common/core/page/TableDataInfo.java | 6 ----- .../ruoyi/demo/controller/MailController.java | 3 --- .../demo/controller/RedisCacheController.java | 4 ---- .../demo/controller/RedisLockController.java | 3 --- .../controller/RedisPubSubController.java | 3 --- .../RedisRateLimiterController.java | 4 ---- .../ruoyi/demo/controller/SmsController.java | 3 --- .../controller/Swagger3DemoController.java | 2 -- .../demo/controller/TestBatchController.java | 4 ---- .../demo/controller/TestDemoController.java | 9 -------- .../demo/controller/TestExcelController.java | 3 --- .../demo/controller/TestI18nController.java | 4 ---- .../controller/TestSensitiveController.java | 2 -- .../demo/controller/TestTreeController.java | 7 ------ .../queue/BoundedQueueController.java | 4 ---- .../queue/DelayedQueueController.java | 5 ---- .../queue/PriorityQueueController.java | 4 ---- .../com/ruoyi/demo/domain/bo/TestDemoBo.java | 8 ------- .../demo/domain/bo/TestDemoImportVo.java | 7 ------ .../com/ruoyi/demo/domain/bo/TestTreeBo.java | 6 ----- .../com/ruoyi/demo/domain/vo/TestDemoVo.java | 12 ---------- .../com/ruoyi/demo/domain/vo/TestTreeVo.java | 8 ------- .../generator/controller/GenController.java | 13 ----------- .../src/main/resources/vm/java/bo.java.vm | 3 --- .../main/resources/vm/java/controller.java.vm | 7 ------ .../src/main/resources/vm/java/vo.java.vm | 2 -- .../com/ruoyi/system/domain/SysCache.java | 6 ----- .../com/ruoyi/system/domain/SysConfig.java | 8 ------- .../ruoyi/system/domain/SysLogininfor.java | 12 ---------- .../com/ruoyi/system/domain/SysNotice.java | 7 ------ .../com/ruoyi/system/domain/SysOperLog.java | 20 ---------------- .../java/com/ruoyi/system/domain/SysPost.java | 9 -------- .../com/ruoyi/system/domain/SysRoleDept.java | 4 ---- .../com/ruoyi/system/domain/SysRoleMenu.java | 4 ---- .../ruoyi/system/domain/SysUserOnline.java | 10 -------- .../com/ruoyi/system/domain/SysUserPost.java | 4 ---- .../com/ruoyi/system/domain/SysUserRole.java | 4 ---- .../com/ruoyi/system/domain/bo/SysOssBo.java | 7 ------ .../system/domain/bo/SysOssConfigBo.java | 15 ------------ .../com/ruoyi/system/domain/vo/MetaVo.java | 6 ----- .../com/ruoyi/system/domain/vo/RouterVo.java | 11 --------- .../system/domain/vo/SysOssConfigVo.java | 15 ------------ .../com/ruoyi/system/domain/vo/SysOssVo.java | 10 -------- 79 files changed, 26 insertions(+), 548 deletions(-) diff --git a/pom.xml b/pom.xml index 9aa357eec..8d9a17fa9 100644 --- a/pom.xml +++ b/pom.xml @@ -90,6 +90,12 @@ 1.6.9 + + org.springdoc + springdoc-openapi-javadoc + 1.6.9 + + org.apache.poi poi @@ -326,6 +332,18 @@ ${java.version} ${java.version} ${project.build.sourceEncoding} + + + com.github.therapi + therapi-runtime-javadoc-scribe + 0.13.0 + + + org.projectlombok + lombok + 1.18.24 + + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 6865d162f..c80315f35 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -19,7 +19,6 @@ import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; import com.ruoyi.sms.entity.SmsResult; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -53,7 +52,6 @@ public class CaptchaController { /** * 短信验证码 */ - @Operation(summary = "短信验证码") @GetMapping("/captchaSms") public R smsCaptcha(@Parameter(name = "用户手机号") @NotBlank(message = "{user.phonenumber.not.blank}") @@ -80,7 +78,6 @@ public class CaptchaController { /** * 生成验证码 */ - @Operation(summary = "生成验证码") @GetMapping("/captchaImage") public R> getCode() { Map ajax = new HashMap<>(); 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 e0dad9f8b..b3944127a 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 @@ -5,7 +5,6 @@ import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysCache; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.connection.RedisServerCommands; @@ -41,7 +40,6 @@ public class CacheController { CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); } - @Operation(summary = "获取缓存监控详细信息") @SaCheckPermission("monitor:cache:list") @GetMapping() public R> getInfo() throws Exception { @@ -67,14 +65,12 @@ public class CacheController { return R.ok(result); } - @Operation(summary = "获取缓存名称列表") @SaCheckPermission("monitor:cache:list") @GetMapping("/getNames") public R> cache() { return R.ok(CACHES); } - @Operation(summary = "获取KEYS基于缓存名") @SaCheckPermission("monitor:cache:list") @GetMapping("/getKeys/{cacheName}") public R> getCacheKeys(@PathVariable String cacheName) { @@ -82,7 +78,6 @@ public class CacheController { return R.ok(cacheKyes); } - @Operation(summary = "获取值基于缓存名与KEY") @SaCheckPermission("monitor:cache:list") @GetMapping("/getValue/{cacheName}/{cacheKey}") public R getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { @@ -91,7 +86,6 @@ public class CacheController { return R.ok(sysCache); } - @Operation(summary = "清空缓存名") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheName/{cacheName}") public R clearCacheName(@PathVariable String cacheName) { @@ -100,7 +94,6 @@ public class CacheController { return R.ok(); } - @Operation(summary = "清空缓存KEY") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheKey/{cacheKey}") public R clearCacheKey(@PathVariable String cacheKey) { @@ -108,7 +101,6 @@ public class CacheController { return R.ok(); } - @Operation(summary = "清空所有缓存") @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheAll") public R clearCacheAll() { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 6e2eaae66..4b82b4ac9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -10,7 +10,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -33,14 +32,12 @@ public class SysLogininforController extends BaseController { private final ISysLogininforService logininforService; - @Operation(summary = "查询系统访问记录列表") @SaCheckPermission("monitor:logininfor:list") @GetMapping("/list") public TableDataInfo list(SysLogininfor logininfor, PageQuery pageQuery) { return logininforService.selectPageLogininforList(logininfor, pageQuery); } - @Operation(summary = "导出系统访问记录列表") @Log(title = "登录日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:logininfor:export") @PostMapping("/export") @@ -49,7 +46,6 @@ public class SysLogininforController extends BaseController { ExcelUtil.exportExcel(list, "登录日志", SysLogininfor.class, response); } - @Operation(summary = "删除系统访问记录") @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") @@ -57,7 +53,6 @@ public class SysLogininforController extends BaseController { return toAjax(logininforService.deleteLogininforByIds(infoIds)); } - @Operation(summary = "清空系统访问记录") @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 290c6e4a9..d7dcff4b9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -10,7 +10,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -33,14 +32,12 @@ public class SysOperlogController extends BaseController { private final ISysOperLogService operLogService; - @Operation(summary = "查询操作日志记录列表") @SaCheckPermission("monitor:operlog:list") @GetMapping("/list") public TableDataInfo list(SysOperLog operLog, PageQuery pageQuery) { return operLogService.selectPageOperLogList(operLog, pageQuery); } - @Operation(summary = "导出操作日志记录列表") @Log(title = "操作日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:operlog:export") @PostMapping("/export") @@ -49,7 +46,6 @@ public class SysOperlogController extends BaseController { ExcelUtil.exportExcel(list, "操作日志", SysOperLog.class, response); } - @Operation(summary = "删除操作日志记录") @Log(title = "操作日志", businessType = BusinessType.DELETE) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/{operIds}") @@ -57,7 +53,6 @@ public class SysOperlogController extends BaseController { return toAjax(operLogService.deleteOperLogByIds(operIds)); } - @Operation(summary = "清空操作日志记录") @Log(title = "操作日志", businessType = BusinessType.CLEAN) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/clean") 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 d5bcc1364..f35549c04 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 @@ -15,7 +15,6 @@ import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.domain.SysUserOnline; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -35,7 +34,6 @@ import java.util.List; @RequestMapping("/monitor/online") public class SysUserOnlineController extends BaseController { - @Operation(summary = "在线用户列表") @SaCheckPermission("monitor:online:list") @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { @@ -73,7 +71,6 @@ public class SysUserOnlineController extends BaseController { /** * 强退用户 */ - @Operation(summary = "强退用户") @SaCheckPermission("monitor:online:forceLogout") @Log(title = "在线用户", businessType = BusinessType.FORCE) @DeleteMapping("/{tokenId}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index ce73439eb..3e269799c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -38,14 +37,12 @@ public class SysConfigController extends BaseController { /** * 获取参数配置列表 */ - @Operation(summary = "获取参数配置列表") @SaCheckPermission("system:config:list") @GetMapping("/list") public TableDataInfo list(SysConfig config, PageQuery pageQuery) { return configService.selectPageConfigList(config, pageQuery); } - @Operation(summary = "导出参数配置列表") @Log(title = "参数管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:config:export") @PostMapping("/export") @@ -57,7 +54,6 @@ public class SysConfigController extends BaseController { /** * 根据参数编号获取详细信息 */ - @Operation(summary = "根据参数编号获取详细信息") @SaCheckPermission("system:config:query") @GetMapping(value = "/{configId}") public R getInfo(@Parameter(name = "参数ID") @PathVariable Long configId) { @@ -67,7 +63,6 @@ public class SysConfigController extends BaseController { /** * 根据参数键名查询参数值 */ - @Operation(summary = "根据参数键名查询参数值") @GetMapping(value = "/configKey/{configKey}") public R getConfigKey(@Parameter(name = "参数Key") @PathVariable String configKey) { return R.ok(configService.selectConfigByKey(configKey)); @@ -76,7 +71,6 @@ public class SysConfigController extends BaseController { /** * 新增参数配置 */ - @Operation(summary = "新增参数配置") @SaCheckPermission("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping @@ -90,7 +84,6 @@ public class SysConfigController extends BaseController { /** * 修改参数配置 */ - @Operation(summary = "修改参数配置") @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping @@ -104,7 +97,6 @@ public class SysConfigController extends BaseController { /** * 根据参数键名修改参数配置 */ - @Operation(summary = "根据参数键名修改参数配置") @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping("/updateByKey") @@ -115,7 +107,6 @@ public class SysConfigController extends BaseController { /** * 删除参数配置 */ - @Operation(summary = "删除参数配置") @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") @@ -127,7 +118,6 @@ public class SysConfigController extends BaseController { /** * 刷新参数缓存 */ - @Operation(summary = "刷新参数缓存") @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") 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 e99e330dc..3dedb11db 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 @@ -11,7 +11,6 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -39,7 +38,6 @@ public class SysDeptController extends BaseController { /** * 获取部门列表 */ - @Operation(summary = "获取部门列表") @SaCheckPermission("system:dept:list") @GetMapping("/list") public R> list(SysDept dept) { @@ -50,7 +48,6 @@ public class SysDeptController extends BaseController { /** * 查询部门列表(排除节点) */ - @Operation(summary = "查询部门列表(排除节点)") @SaCheckPermission("system:dept:list") @GetMapping("/list/exclude/{deptId}") public R> excludeChild(@Parameter(name = "部门ID") @PathVariable(value = "deptId", required = false) Long deptId) { @@ -63,7 +60,6 @@ public class SysDeptController extends BaseController { /** * 根据部门编号获取详细信息 */ - @Operation(summary = "根据部门编号获取详细信息") @SaCheckPermission("system:dept:query") @GetMapping(value = "/{deptId}") public R getInfo(@Parameter(name = "部门ID") @PathVariable Long deptId) { @@ -74,7 +70,6 @@ public class SysDeptController extends BaseController { /** * 获取部门下拉树列表 */ - @Operation(summary = "获取部门下拉树列表") @GetMapping("/treeselect") public R>> treeselect(SysDept dept) { List depts = deptService.selectDeptList(dept); @@ -84,7 +79,6 @@ public class SysDeptController extends BaseController { /** * 加载对应角色部门列表树 */ - @Operation(summary = "加载对应角色部门列表树") @GetMapping(value = "/roleDeptTreeselect/{roleId}") public R> roleDeptTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { List depts = deptService.selectDeptList(new SysDept()); @@ -97,7 +91,6 @@ public class SysDeptController extends BaseController { /** * 新增部门 */ - @Operation(summary = "新增部门") @SaCheckPermission("system:dept:add") @Log(title = "部门管理", businessType = BusinessType.INSERT) @PostMapping @@ -111,7 +104,6 @@ public class SysDeptController extends BaseController { /** * 修改部门 */ - @Operation(summary = "修改部门") @SaCheckPermission("system:dept:edit") @Log(title = "部门管理", businessType = BusinessType.UPDATE) @PutMapping @@ -132,7 +124,6 @@ public class SysDeptController extends BaseController { /** * 删除部门 */ - @Operation(summary = "删除部门") @SaCheckPermission("system:dept:remove") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") 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 a6ef304f1..a659f6d20 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 @@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -38,14 +37,12 @@ public class SysDictDataController extends BaseController { private final ISysDictDataService dictDataService; private final ISysDictTypeService dictTypeService; - @Operation(summary = "查询字典数据列表") @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictData dictData, PageQuery pageQuery) { return dictDataService.selectPageDictDataList(dictData, pageQuery); } - @Operation(summary = "导出字典数据列表") @Log(title = "字典数据", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -57,7 +54,6 @@ public class SysDictDataController extends BaseController { /** * 查询字典数据详细 */ - @Operation(summary = "查询字典数据详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictCode}") public R getInfo(@Parameter(name = "字典code") @PathVariable Long dictCode) { @@ -67,7 +63,6 @@ public class SysDictDataController extends BaseController { /** * 根据字典类型查询字典数据信息 */ - @Operation(summary = "根据字典类型查询字典数据信息") @GetMapping(value = "/type/{dictType}") public R> dictType(@Parameter(name = "字典类型") @PathVariable String dictType) { List data = dictTypeService.selectDictDataByType(dictType); @@ -80,7 +75,6 @@ public class SysDictDataController extends BaseController { /** * 新增字典类型 */ - @Operation(summary = "新增字典类型") @SaCheckPermission("system:dict:add") @Log(title = "字典数据", businessType = BusinessType.INSERT) @PostMapping @@ -91,7 +85,6 @@ public class SysDictDataController extends BaseController { /** * 修改保存字典类型 */ - @Operation(summary = "修改保存字典类型") @SaCheckPermission("system:dict:edit") @Log(title = "字典数据", businessType = BusinessType.UPDATE) @PutMapping @@ -102,7 +95,6 @@ public class SysDictDataController extends BaseController { /** * 删除字典类型 */ - @Operation(summary = "删除字典类型") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index b5b28f25d..5cabe8573 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -35,14 +34,12 @@ public class SysDictTypeController extends BaseController { private final ISysDictTypeService dictTypeService; - @Operation(summary = "查询字典类型列表") @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictType dictType, PageQuery pageQuery) { return dictTypeService.selectPageDictTypeList(dictType, pageQuery); } - @Operation(summary = "导出字典类型列表") @Log(title = "字典类型", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -54,7 +51,6 @@ public class SysDictTypeController extends BaseController { /** * 查询字典类型详细 */ - @Operation(summary = "查询字典类型详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictId}") public R getInfo(@Parameter(name = "字典ID") @PathVariable Long dictId) { @@ -64,7 +60,6 @@ public class SysDictTypeController extends BaseController { /** * 新增字典类型 */ - @Operation(summary = "新增字典类型") @SaCheckPermission("system:dict:add") @Log(title = "字典类型", businessType = BusinessType.INSERT) @PostMapping @@ -78,7 +73,6 @@ public class SysDictTypeController extends BaseController { /** * 修改字典类型 */ - @Operation(summary = "修改字典类型") @SaCheckPermission("system:dict:edit") @Log(title = "字典类型", businessType = BusinessType.UPDATE) @PutMapping @@ -92,7 +86,6 @@ public class SysDictTypeController extends BaseController { /** * 删除字典类型 */ - @Operation(summary = "删除字典类型") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") @@ -104,7 +97,6 @@ public class SysDictTypeController extends BaseController { /** * 刷新字典缓存 */ - @Operation(summary = "刷新字典缓存") @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") @@ -116,7 +108,6 @@ public class SysDictTypeController extends BaseController { /** * 获取字典选择框列表 */ - @Operation(summary = "获取字典选择框列表") @GetMapping("/optionselect") public R> optionselect() { List dictTypes = dictTypeService.selectDictTypeAll(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index db2c7ae6a..11d0d506f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -2,7 +2,6 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.StringUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; @@ -26,7 +25,6 @@ public class SysIndexController { /** * 访问首页,提示语 */ - @Operation(summary = "访问首页,提示语") @GetMapping("/") public String index() { return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); 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 d0b3152db..4cd9053d4 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 @@ -13,7 +13,6 @@ import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysLoginService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -51,7 +50,6 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @Operation(summary = "登录方法") @PostMapping("/login") public R> login(@Validated @RequestBody LoginBody loginBody) { Map ajax = new HashMap<>(); @@ -69,7 +67,6 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @Operation(summary = "短信登录(示例)") @PostMapping("/smsLogin") public R> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) { Map ajax = new HashMap<>(); @@ -86,7 +83,6 @@ public class SysLoginController { * @return 结果 */ @Anonymous - @Operation(summary = "小程序登录(示例)") @PostMapping("/xcxLogin") public R> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) { Map ajax = new HashMap<>(); @@ -97,7 +93,6 @@ public class SysLoginController { } @Anonymous - @Operation(summary = "登出方法") @PostMapping("/logout") public R logout() { loginService.logout(); @@ -109,7 +104,6 @@ public class SysLoginController { * * @return 用户信息 */ - @Operation(summary = "获取用户信息") @GetMapping("getInfo") public R> getInfo() { SysUser user = userService.selectUserById(LoginHelper.getUserId()); @@ -129,7 +123,6 @@ public class SysLoginController { * * @return 路由信息 */ - @Operation(summary = "获取路由信息") @GetMapping("getRouters") public R> getRouters() { Long userId = LoginHelper.getUserId(); 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 40c03d1aa..1e87e6707 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysMenuService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -38,7 +37,6 @@ public class SysMenuController extends BaseController { /** * 获取菜单列表 */ - @Operation(summary = "获取菜单列表") @SaCheckPermission("system:menu:list") @GetMapping("/list") public R> list(SysMenu menu) { @@ -49,7 +47,6 @@ public class SysMenuController extends BaseController { /** * 根据菜单编号获取详细信息 */ - @Operation(summary = "根据菜单编号获取详细信息") @SaCheckPermission("system:menu:query") @GetMapping(value = "/{menuId}") public R getInfo(@Parameter(name = "菜单ID") @PathVariable Long menuId) { @@ -59,7 +56,6 @@ public class SysMenuController extends BaseController { /** * 获取菜单下拉树列表 */ - @Operation(summary = "获取菜单下拉树列表") @GetMapping("/treeselect") public R>> treeselect(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); @@ -69,7 +65,6 @@ public class SysMenuController extends BaseController { /** * 加载对应角色菜单列表树 */ - @Operation(summary = "加载对应角色菜单列表树") @GetMapping(value = "/roleMenuTreeselect/{roleId}") public R> roleMenuTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { List menus = menuService.selectMenuList(getUserId()); @@ -82,7 +77,6 @@ public class SysMenuController extends BaseController { /** * 新增菜单 */ - @Operation(summary = "新增菜单") @SaCheckPermission("system:menu:add") @Log(title = "菜单管理", businessType = BusinessType.INSERT) @PostMapping @@ -98,7 +92,6 @@ public class SysMenuController extends BaseController { /** * 修改菜单 */ - @Operation(summary = "修改菜单") @SaCheckPermission("system:menu:edit") @Log(title = "菜单管理", businessType = BusinessType.UPDATE) @PutMapping @@ -116,7 +109,6 @@ public class SysMenuController extends BaseController { /** * 删除菜单 */ - @Operation(summary = "删除菜单") @SaCheckPermission("system:menu:remove") @Log(title = "菜单管理", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index de804cf80..10a8371c7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -9,7 +9,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.service.ISysNoticeService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -33,7 +32,6 @@ public class SysNoticeController extends BaseController { /** * 获取通知公告列表 */ - @Operation(summary = "获取通知公告列表") @SaCheckPermission("system:notice:list") @GetMapping("/list") public TableDataInfo list(SysNotice notice, PageQuery pageQuery) { @@ -43,7 +41,6 @@ public class SysNoticeController extends BaseController { /** * 根据通知公告编号获取详细信息 */ - @Operation(summary = "根据通知公告编号获取详细信息") @SaCheckPermission("system:notice:query") @GetMapping(value = "/{noticeId}") public R getInfo(@Parameter(name = "公告ID") @PathVariable Long noticeId) { @@ -53,7 +50,6 @@ public class SysNoticeController extends BaseController { /** * 新增通知公告 */ - @Operation(summary = "新增通知公告") @SaCheckPermission("system:notice:add") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping @@ -64,7 +60,6 @@ public class SysNoticeController extends BaseController { /** * 修改通知公告 */ - @Operation(summary = "修改通知公告") @SaCheckPermission("system:notice:edit") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PutMapping @@ -75,7 +70,6 @@ public class SysNoticeController extends BaseController { /** * 删除通知公告 */ - @Operation(summary = "删除通知公告") @SaCheckPermission("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @DeleteMapping("/{noticeIds}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index bb27c8469..023f349c1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -14,7 +14,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.service.ISysOssConfigService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -44,7 +43,6 @@ public class SysOssConfigController extends BaseController { /** * 查询对象存储配置列表 */ - @Operation(summary = "查询对象存储配置列表") @SaCheckPermission("system:oss:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) SysOssConfigBo bo, PageQuery pageQuery) { @@ -54,7 +52,6 @@ public class SysOssConfigController extends BaseController { /** * 获取对象存储配置详细信息 */ - @Operation(summary = "获取对象存储配置详细信息") @SaCheckPermission("system:oss:query") @GetMapping("/{ossConfigId}") public R getInfo(@Parameter(name = "OSS配置ID") @@ -66,7 +63,6 @@ public class SysOssConfigController extends BaseController { /** * 新增对象存储配置 */ - @Operation(summary = "新增对象存储配置") @SaCheckPermission("system:oss:add") @Log(title = "对象存储配置", businessType = BusinessType.INSERT) @RepeatSubmit() @@ -78,7 +74,6 @@ public class SysOssConfigController extends BaseController { /** * 修改对象存储配置 */ - @Operation(summary = "修改对象存储配置") @SaCheckPermission("system:oss:edit") @Log(title = "对象存储配置", businessType = BusinessType.UPDATE) @RepeatSubmit() @@ -90,7 +85,6 @@ public class SysOssConfigController extends BaseController { /** * 删除对象存储配置 */ - @Operation(summary = "删除对象存储配置") @SaCheckPermission("system:oss:remove") @Log(title = "对象存储配置", businessType = BusinessType.DELETE) @DeleteMapping("/{ossConfigIds}") @@ -103,7 +97,6 @@ public class SysOssConfigController extends BaseController { /** * 状态修改 */ - @Operation(summary = "状态修改") @SaCheckPermission("system:oss:edit") @Log(title = "对象存储状态修改", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index e71ef9f87..e40c2f5d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -19,7 +19,6 @@ import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; import com.ruoyi.system.service.ISysOssService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -55,7 +54,6 @@ public class SysOssController extends BaseController { /** * 查询OSS对象存储列表 */ - @Operation(summary = "查询OSS对象存储列表") @SaCheckPermission("system:oss:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) { @@ -65,7 +63,6 @@ public class SysOssController extends BaseController { /** * 查询OSS对象基于id串 */ - @Operation(summary = "查询OSS对象基于ID") @SaCheckPermission("system:oss:list") @GetMapping("/listByIds/{ossIds}") public R> listByIds(@Parameter(name = "OSS对象ID串") @@ -78,7 +75,6 @@ public class SysOssController extends BaseController { /** * 上传OSS对象存储 */ - @Operation(summary = "上传OSS对象存储") @Parameters({ @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) }) @@ -97,7 +93,6 @@ public class SysOssController extends BaseController { return R.ok(map); } - @Operation(summary = "下载OSS对象存储") @SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") public void download(@Parameter(name = "OSS对象ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException { @@ -124,7 +119,6 @@ public class SysOssController extends BaseController { /** * 删除OSS对象存储 */ - @Operation(summary = "删除OSS对象存储") @SaCheckPermission("system:oss:remove") @Log(title = "OSS对象存储", businessType = BusinessType.DELETE) @DeleteMapping("/{ossIds}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index 559e6cacf..a78ac4bfd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -38,14 +37,12 @@ public class SysPostController extends BaseController { /** * 获取岗位列表 */ - @Operation(summary = "获取岗位列表") @SaCheckPermission("system:post:list") @GetMapping("/list") public TableDataInfo list(SysPost post, PageQuery pageQuery) { return postService.selectPagePostList(post, pageQuery); } - @Operation(summary = "导出岗位列表") @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:post:export") @PostMapping("/export") @@ -57,7 +54,6 @@ public class SysPostController extends BaseController { /** * 根据岗位编号获取详细信息 */ - @Operation(summary = "根据岗位编号获取详细信息") @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") public R getInfo(@Parameter(name = "岗位ID") @PathVariable Long postId) { @@ -67,7 +63,6 @@ public class SysPostController extends BaseController { /** * 新增岗位 */ - @Operation(summary = "新增岗位") @SaCheckPermission("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping @@ -83,7 +78,6 @@ public class SysPostController extends BaseController { /** * 修改岗位 */ - @Operation(summary = "修改岗位") @SaCheckPermission("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping @@ -99,7 +93,6 @@ public class SysPostController extends BaseController { /** * 删除岗位 */ - @Operation(summary = "删除岗位") @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") @@ -110,7 +103,6 @@ public class SysPostController extends BaseController { /** * 获取岗位选择框列表 */ - @Operation(summary = "获取岗位选择框列表") @GetMapping("/optionselect") public R> optionselect() { List posts = postService.selectPostAll(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 0710e8b51..bb63b0728 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -14,7 +14,6 @@ import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -46,7 +45,6 @@ public class SysProfileController extends BaseController { /** * 个人信息 */ - @Operation(summary = "个人信息") @GetMapping public R> profile() { SysUser user = userService.selectUserById(getUserId()); @@ -60,7 +58,6 @@ public class SysProfileController extends BaseController { /** * 修改用户 */ - @Operation(summary = "修改用户") @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping public R updateProfile(@RequestBody SysUser user) { @@ -84,7 +81,6 @@ public class SysProfileController extends BaseController { /** * 重置密码 */ - @Operation(summary = "重置密码") @Parameters({ @Parameter(name = "oldPassword", description = "旧密码", in = ParameterIn.QUERY), @Parameter(name = "newPassword", description = "新密码", in = ParameterIn.QUERY) @@ -111,7 +107,6 @@ public class SysProfileController extends BaseController { /** * 头像上传 */ - @Operation(summary = "头像上传") @Parameters({ @Parameter(name = "avatarfile", description = "用户头像", in = ParameterIn.QUERY, required = true) }) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index 5e90ebd84..cc0596036 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.SysRegisterService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -29,7 +28,6 @@ public class SysRegisterController extends BaseController { private final ISysConfigService configService; @Anonymous - @Operation(summary = "用户注册") @PostMapping("/register") public R register(@Validated @RequestBody RegisterBody user) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { 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 967635e43..fc0e5a7d0 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 @@ -18,7 +18,6 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -46,14 +45,12 @@ public class SysRoleController extends BaseController { private final ISysUserService userService; private final SysPermissionService permissionService; - @Operation(summary = "查询角色信息列表") @SaCheckPermission("system:role:list") @GetMapping("/list") public TableDataInfo list(SysRole role, PageQuery pageQuery) { return roleService.selectPageRoleList(role, pageQuery); } - @Operation(summary = "导出角色信息列表") @Log(title = "角色管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:role:export") @PostMapping("/export") @@ -65,7 +62,6 @@ public class SysRoleController extends BaseController { /** * 根据角色编号获取详细信息 */ - @Operation(summary = "根据角色编号获取详细信息") @SaCheckPermission("system:role:query") @GetMapping(value = "/{roleId}") public R getInfo(@Parameter(name = "角色ID") @PathVariable Long roleId) { @@ -76,7 +72,6 @@ public class SysRoleController extends BaseController { /** * 新增角色 */ - @Operation(summary = "新增角色") @SaCheckPermission("system:role:add") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping @@ -93,7 +88,6 @@ public class SysRoleController extends BaseController { /** * 修改保存角色 */ - @Operation(summary = "修改保存角色") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping @@ -122,7 +116,6 @@ public class SysRoleController extends BaseController { /** * 修改保存数据权限 */ - @Operation(summary = "修改保存数据权限") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") @@ -135,7 +128,6 @@ public class SysRoleController extends BaseController { /** * 状态修改 */ - @Operation(summary = "状态修改") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") @@ -148,7 +140,6 @@ public class SysRoleController extends BaseController { /** * 删除角色 */ - @Operation(summary = "删除角色") @SaCheckPermission("system:role:remove") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") @@ -159,7 +150,6 @@ public class SysRoleController extends BaseController { /** * 获取角色选择框列表 */ - @Operation(summary = "获取角色选择框列表") @SaCheckPermission("system:role:query") @GetMapping("/optionselect") public R> optionselect() { @@ -169,7 +159,6 @@ public class SysRoleController extends BaseController { /** * 查询已分配用户角色列表 */ - @Operation(summary = "查询已分配用户角色列表") @SaCheckPermission("system:role:list") @GetMapping("/authUser/allocatedList") public TableDataInfo allocatedList(SysUser user, PageQuery pageQuery) { @@ -179,7 +168,6 @@ public class SysRoleController extends BaseController { /** * 查询未分配用户角色列表 */ - @Operation(summary = "查询未分配用户角色列表") @SaCheckPermission("system:role:list") @GetMapping("/authUser/unallocatedList") public TableDataInfo unallocatedList(SysUser user, PageQuery pageQuery) { @@ -189,7 +177,6 @@ public class SysRoleController extends BaseController { /** * 取消授权用户 */ - @Operation(summary = "取消授权用户") @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancel") @@ -200,7 +187,6 @@ public class SysRoleController extends BaseController { /** * 批量取消授权用户 */ - @Operation(summary = "批量取消授权用户") @Parameters({ @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) @@ -215,7 +201,6 @@ public class SysRoleController extends BaseController { /** * 批量选择用户授权 */ - @Operation(summary = "批量选择用户授权") @Parameters({ @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) 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 f40c65924..cb564b6cd 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 @@ -26,7 +26,6 @@ import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -61,14 +60,12 @@ public class SysUserController extends BaseController { /** * 获取用户列表 */ - @Operation(summary = "获取用户列表") @SaCheckPermission("system:user:list") @GetMapping("/list") public TableDataInfo list(SysUser user, PageQuery pageQuery) { return userService.selectPageUserList(user, pageQuery); } - @Operation(summary = "导出用户列表") @Log(title = "用户管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:user:export") @PostMapping("/export") @@ -86,7 +83,6 @@ public class SysUserController extends BaseController { ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); } - @Operation(summary = "导入用户列表") @Parameters({ @Parameter(name = "file", description = "导入文件", required = true), }) @@ -98,7 +94,6 @@ public class SysUserController extends BaseController { return R.ok(result.getAnalysis()); } - @Operation(summary = "下载导入模板") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); @@ -107,7 +102,6 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取详细信息 */ - @Operation(summary = "根据用户编号获取详细信息") @SaCheckPermission("system:user:query") @GetMapping(value = {"/", "/{userId}"}) public R> getInfo(@Parameter(name = "用户ID") @PathVariable(value = "userId", required = false) Long userId) { @@ -128,7 +122,6 @@ public class SysUserController extends BaseController { /** * 新增用户 */ - @Operation(summary = "新增用户") @SaCheckPermission("system:user:add") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping @@ -149,7 +142,6 @@ public class SysUserController extends BaseController { /** * 修改用户 */ - @Operation(summary = "修改用户") @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping @@ -169,7 +161,6 @@ public class SysUserController extends BaseController { /** * 删除用户 */ - @Operation(summary = "删除用户") @SaCheckPermission("system:user:remove") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") @@ -183,7 +174,6 @@ public class SysUserController extends BaseController { /** * 重置密码 */ - @Operation(summary = "重置密码") @SaCheckPermission("system:user:resetPwd") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") @@ -197,7 +187,6 @@ public class SysUserController extends BaseController { /** * 状态修改 */ - @Operation(summary = "状态修改") @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") @@ -210,7 +199,6 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取授权角色 */ - @Operation(summary = "根据用户编号获取授权角色") @SaCheckPermission("system:user:query") @GetMapping("/authRole/{userId}") public R> authRole(@Parameter(name = "用户ID") @PathVariable("userId") Long userId) { @@ -225,7 +213,6 @@ public class SysUserController extends BaseController { /** * 用户授权角色 */ - @Operation(summary = "用户授权角色") @Parameters({ @Parameter(name = "userId", description = "用户Id", in = ParameterIn.QUERY), @Parameter(name = "roleIds", description = "角色ID串", in = ParameterIn.QUERY) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 017b5dff4..3c11d01c0 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -215,11 +215,11 @@ springdoc: enabled: true #这里定义了两个分组,可定义多个,也可以不定义 group-configs: - - group: 演示模块 + - group: 1.演示模块 packages-to-scan: com.ruoyi.demo - - group: 系统模块 + - group: 2.系统模块 packages-to-scan: com.ruoyi.web - - group: 代码生成模块 + - group: 3.代码生成模块 packages-to-scan: com.ruoyi.generator # 防止XSS攻击 diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index e55dc5094..78ad596b7 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -130,6 +130,11 @@ springdoc-openapi-ui + + org.springdoc + springdoc-openapi-javadoc + + org.springframework.boot diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index 1d12b4e5b..5a20f9d0c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -2,7 +2,6 @@ package com.ruoyi.common.core.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,42 +23,36 @@ public class BaseEntity implements Serializable { /** * 搜索值 */ - @Schema(name = "搜索值") @TableField(exist = false) private String searchValue; /** * 创建者 */ - @Schema(name = "创建者") @TableField(fill = FieldFill.INSERT) private String createBy; /** * 创建时间 */ - @Schema(name = "创建时间") @TableField(fill = FieldFill.INSERT) private Date createTime; /** * 更新者 */ - @Schema(name = "更新者") @TableField(fill = FieldFill.INSERT_UPDATE) private String updateBy; /** * 更新时间 */ - @Schema(name = "更新时间") @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** * 请求参数 */ - @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java index 533ca79ec..f3e2c4a56 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,25 +23,21 @@ public class PageQuery implements Serializable { /** * 分页大小 */ - @Schema(name = "分页大小") private Integer pageSize; /** * 当前页数 */ - @Schema(name = "当前页数") private Integer pageNum; /** * 排序列 */ - @Schema(name = "排序列") private String orderByColumn; /** * 排序的方向desc或者asc */ - @Schema(name = "排序的方向", example = "asc,desc") private String isAsc; /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 999974d7b..70584c6d3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,6 +1,5 @@ package com.ruoyi.common.core.domain; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,7 +12,6 @@ import java.io.Serializable; */ @Data @NoArgsConstructor -@Schema(name = "请求响应对象") public class R implements Serializable { private static final long serialVersionUID = 1L; @@ -27,13 +25,10 @@ public class R implements Serializable { */ public static final int FAIL = 500; - @Schema(name = "消息状态码") private int code; - @Schema(name = "消息内容") private String msg; - @Schema(name = "数据对象") private T data; public static R ok() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java index 0d28291aa..c7bb9b4ff 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain; import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,20 +23,17 @@ public class TreeEntity extends BaseEntity { * 父菜单名称 */ @TableField(exist = false) - @Schema(name = "父菜单名称") private String parentName; /** * 父菜单ID */ - @Schema(name = "父菜单ID") private Long parentId; /** * 子部门 */ @TableField(exist = false) - @Schema(name = "子部门") private List children = new ArrayList<>(); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index fcf2e4a65..857f9b8db 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.TreeEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,21 +21,18 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_dept") -@Schema(name = "部门业务对象") public class SysDept extends TreeEntity { private static final long serialVersionUID = 1L; /** * 部门ID */ - @Schema(name = "部门id") @TableId(value = "dept_id") private Long deptId; /** * 部门名称 */ - @Schema(name = "部门名称") @NotBlank(message = "部门名称不能为空") @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符") private String deptName; @@ -44,27 +40,23 @@ public class SysDept extends TreeEntity { /** * 显示顺序 */ - @Schema(name = "显示顺序") @NotNull(message = "显示顺序不能为空") private Integer orderNum; /** * 负责人 */ - @Schema(name = "负责人") private String leader; /** * 联系电话 */ - @Schema(name = "联系电话") @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符") private String phone; /** * 邮箱 */ - @Schema(name = "邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") private String email; @@ -72,20 +64,17 @@ public class SysDept extends TreeEntity { /** * 部门状态:0正常,1停用 */ - @Schema(name = "部门状态:0正常,1停用") private String status; /** * 删除标志(0代表存在 2代表删除) */ - @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 祖级列表 */ - @Schema(name = "祖级列表") private String ancestors; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java index 4b0213848..e20f96aa7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java @@ -8,7 +8,6 @@ import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,13 +24,11 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_data") @ExcelIgnoreUnannotated -@Schema(name = "字典数据业务对象") public class SysDictData extends BaseEntity { /** * 字典编码 */ - @Schema(name = "字典编码") @ExcelProperty(value = "字典编码") @TableId(value = "dict_code") private Long dictCode; @@ -39,14 +36,12 @@ public class SysDictData extends BaseEntity { /** * 字典排序 */ - @Schema(name = "字典排序") @ExcelProperty(value = "字典排序") private Integer dictSort; /** * 字典标签 */ - @Schema(name = "字典标签") @ExcelProperty(value = "字典标签") @NotBlank(message = "字典标签不能为空") @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") @@ -55,7 +50,6 @@ public class SysDictData extends BaseEntity { /** * 字典键值 */ - @Schema(name = "字典键值") @ExcelProperty(value = "字典键值") @NotBlank(message = "字典键值不能为空") @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") @@ -64,7 +58,6 @@ public class SysDictData extends BaseEntity { /** * 字典类型 */ - @Schema(name = "字典类型") @ExcelProperty(value = "字典类型") @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") @@ -73,20 +66,17 @@ public class SysDictData extends BaseEntity { /** * 样式属性(其他样式扩展) */ - @Schema(name = "样式属性(其他样式扩展)") @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") private String cssClass; /** * 表格字典样式 */ - @Schema(name = "表格字典样式") private String listClass; /** * 是否默认(Y是 N否) */ - @Schema(name = "是否默认(Y是 N否)") @ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_yes_no") private String isDefault; @@ -94,7 +84,6 @@ public class SysDictData extends BaseEntity { /** * 状态(0正常 1停用) */ - @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_normal_disable") private String status; @@ -102,7 +91,6 @@ public class SysDictData extends BaseEntity { /** * 备注 */ - @Schema(name = "备注") private String remark; public boolean getDefault() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java index 095aba037..36e38a971 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,13 +24,11 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_type") @ExcelIgnoreUnannotated -@Schema(name = "字典类型业务对象") public class SysDictType extends BaseEntity { /** * 字典主键 */ - @Schema(name = "字典主键") @ExcelProperty(value = "字典主键") @TableId(value = "dict_id") private Long dictId; @@ -39,7 +36,6 @@ public class SysDictType extends BaseEntity { /** * 字典名称 */ - @Schema(name = "字典名称") @ExcelProperty(value = "字典名称") @NotBlank(message = "字典名称不能为空") @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") @@ -48,7 +44,6 @@ public class SysDictType extends BaseEntity { /** * 字典类型 */ - @Schema(name = "字典类型") @ExcelProperty(value = "字典类型") @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") @@ -58,7 +53,6 @@ public class SysDictType extends BaseEntity { /** * 状态(0正常 1停用) */ - @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_normal_disable") private String status; @@ -66,7 +60,6 @@ public class SysDictType extends BaseEntity { /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index 554bc3a5f..6e366a753 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.core.domain.TreeEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,20 +20,17 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_menu") -@Schema(name = "菜单权限业务对象") public class SysMenu extends TreeEntity { /** * 菜单ID */ - @Schema(name = "菜单ID") @TableId(value = "menu_id") private Long menuId; /** * 菜单名称 */ - @Schema(name = "菜单名称") @NotBlank(message = "菜单名称不能为空") @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符") private String menuName; @@ -42,65 +38,55 @@ public class SysMenu extends TreeEntity { /** * 显示顺序 */ - @Schema(name = "显示顺序") @NotNull(message = "显示顺序不能为空") private Integer orderNum; /** * 路由地址 */ - @Schema(name = "路由地址") @Size(min = 0, max = 200, message = "路由地址不能超过200个字符") private String path; /** * 组件路径 */ - @Schema(name = "组件路径") @Size(min = 0, max = 200, message = "组件路径不能超过255个字符") private String component; /** * 路由参数 */ - @Schema(name = "路由参数") private String queryParam; /** * 是否为外链(0是 1否) */ - @Schema(name = "是否为外链(0是 1否)") private String isFrame; /** * 是否缓存(0缓存 1不缓存) */ - @Schema(name = "是否缓存(0缓存 1不缓存)") private String isCache; /** * 类型(M目录 C菜单 F按钮) */ - @Schema(name = "类型(M目录 C菜单 F按钮)") @NotBlank(message = "菜单类型不能为空") private String menuType; /** * 显示状态(0显示 1隐藏) */ - @Schema(name = "显示状态(0显示 1隐藏)") private String visible; /** * 菜单状态(0显示 1隐藏) */ - @Schema(name = "菜单状态(0显示 1隐藏)") private String status; /** * 权限字符串 */ - @Schema(name = "权限字符串") @JsonInclude(JsonInclude.Include.NON_NULL) @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符") private String perms; @@ -108,13 +94,11 @@ public class SysMenu extends TreeEntity { /** * 菜单图标 */ - @Schema(name = "菜单图标") private String icon; /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java index 3955a59f6..b7caaea3e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java @@ -10,7 +10,6 @@ import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -35,7 +34,6 @@ public class SysRole extends BaseEntity { /** * 角色ID */ - @Schema(name = "角色ID") @ExcelProperty(value = "角色序号") @TableId(value = "role_id") private Long roleId; @@ -43,7 +41,6 @@ public class SysRole extends BaseEntity { /** * 角色名称 */ - @Schema(name = "角色名称") @ExcelProperty(value = "角色名称") @NotBlank(message = "角色名称不能为空") @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") @@ -52,7 +49,6 @@ public class SysRole extends BaseEntity { /** * 角色权限 */ - @Schema(name = "角色权限") @ExcelProperty(value = "角色权限") @NotBlank(message = "权限字符不能为空") @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") @@ -61,7 +57,6 @@ public class SysRole extends BaseEntity { /** * 角色排序 */ - @Schema(name = "角色排序") @ExcelProperty(value = "角色排序") @NotNull(message = "显示顺序不能为空") private Integer roleSort; @@ -69,7 +64,6 @@ public class SysRole extends BaseEntity { /** * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ - @Schema(name = "数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)") @ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") private String dataScope; @@ -77,19 +71,16 @@ public class SysRole extends BaseEntity { /** * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ - @Schema(name = "菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)") private Boolean menuCheckStrictly; /** * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ - @Schema(name = "部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )") private Boolean deptCheckStrictly; /** * 角色状态(0正常 1停用) */ - @Schema(name = "角色状态(0正常 1停用)") @ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -97,34 +88,29 @@ public class SysRole extends BaseEntity { /** * 删除标志(0代表存在 2代表删除) */ - @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 备注 */ - @Schema(name = "备注") private String remark; /** * 用户是否存在此角色标识 默认不存在 */ - @Schema(name = "用户是否存在此角色标识 默认不存在") @TableField(exist = false) private boolean flag = false; /** * 菜单组 */ - @Schema(name = "菜单组") @TableField(exist = false) private Long[] menuIds; /** * 部门组(数据权限) */ - @Schema(name = "部门组(数据权限)") @TableField(exist = false) private Long[] deptIds; @@ -132,7 +118,6 @@ public class SysRole extends BaseEntity { this.roleId = roleId; } - @Schema(name = "是否管理员") public boolean isAdmin() { return UserConstants.ADMIN_ID.equals(this.roleId); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 3a35916f5..f2d961b7a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -6,7 +6,6 @@ import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.enums.SensitiveStrategy; import com.ruoyi.common.xss.Xss; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -27,26 +26,22 @@ import java.util.List; @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName("sys_user") -@Schema(name = "用户信息业务对象") public class SysUser extends BaseEntity { /** * 用户ID */ - @Schema(name = "用户ID") @TableId(value = "user_id") private Long userId; /** * 部门ID */ - @Schema(name = "部门ID") private Long deptId; /** * 用户账号 */ - @Schema(name = "用户账号") @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") @@ -55,7 +50,6 @@ public class SysUser extends BaseEntity { /** * 用户昵称 */ - @Schema(name = "用户昵称") @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") private String nickName; @@ -63,14 +57,12 @@ public class SysUser extends BaseEntity { /** * 用户类型(sys_user系统用户) */ - @Schema(name = "用户类型") private String userType; /** * 用户邮箱 */ @Sensitive(strategy = SensitiveStrategy.EMAIL) - @Schema(name = "用户邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") private String email; @@ -79,25 +71,21 @@ public class SysUser extends BaseEntity { * 手机号码 */ @Sensitive(strategy = SensitiveStrategy.PHONE) - @Schema(name = "手机号码") private String phonenumber; /** * 用户性别 */ - @Schema(name = "用户性别") private String sex; /** * 用户头像 */ - @Schema(name = "用户头像") private String avatar; /** * 密码 */ - @Schema(name = "密码") @TableField( insertStrategy = FieldStrategy.NOT_EMPTY, updateStrategy = FieldStrategy.NOT_EMPTY, @@ -108,66 +96,56 @@ public class SysUser extends BaseEntity { /** * 帐号状态(0正常 1停用) */ - @Schema(name = "帐号状态(0正常 1停用)") private String status; /** * 删除标志(0代表存在 2代表删除) */ - @Schema(name = "删除标志(0代表存在 2代表删除)") @TableLogic private String delFlag; /** * 最后登录IP */ - @Schema(name = "最后登录IP") private String loginIp; /** * 最后登录时间 */ - @Schema(name = "最后登录时间") private Date loginDate; /** * 备注 */ - @Schema(name = "备注") private String remark; /** * 部门对象 */ - @Schema(name = "部门对象") @TableField(exist = false) private SysDept dept; /** * 角色对象 */ - @Schema(name = "角色对象") @TableField(exist = false) private List roles; /** * 角色组 */ - @Schema(name = "角色组") @TableField(exist = false) private Long[] roleIds; /** * 岗位组 */ - @Schema(name = "岗位组") @TableField(exist = false) private Long[] postIds; /** * 数据权限 当前角色ID */ - @Schema(name = "角色ID") @TableField(exist = false) private Long roleId; @@ -175,7 +153,6 @@ public class SysUser extends BaseEntity { this.userId = userId; } - @Schema(name = "是否管理员") public boolean isAdmin() { return UserConstants.ADMIN_ID.equals(this.userId); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java index 18c37a9b3..4a4cfb518 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain.model; import com.ruoyi.common.constant.UserConstants; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -14,7 +13,6 @@ import javax.validation.constraints.NotBlank; */ @Data -@Schema(name = "用户登录对象") public class LoginBody { /** @@ -22,7 +20,6 @@ public class LoginBody { */ @NotBlank(message = "{user.username.not.blank}") @Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}") - @Schema(name = "用户名") private String username; /** @@ -30,19 +27,16 @@ public class LoginBody { */ @NotBlank(message = "{user.password.not.blank}") @Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}") - @Schema(name = "用户密码") private String password; /** * 验证码 */ - @Schema(name = "验证码") private String code; /** * 唯一标识 */ - @Schema(name = "唯一标识") private String uuid; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java index 37f52a767..88367e7b0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java @@ -1,6 +1,5 @@ package com.ruoyi.common.core.domain.model; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -11,10 +10,8 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "用户注册对象") public class RegisterBody extends LoginBody { - @Schema(name = "用户类型") private String userType; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java index d89a8c15b..ce774ac7e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java @@ -1,6 +1,5 @@ package com.ruoyi.common.core.domain.model; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -12,21 +11,18 @@ import javax.validation.constraints.NotBlank; */ @Data -@Schema(name = "短信登录对象") public class SmsLoginBody { /** * 用户名 */ @NotBlank(message = "{user.phonenumber.not.blank}") - @Schema(name = "用户手机号") private String phonenumber; /** * 用户密码 */ @NotBlank(message = "{sms.code.not.blank}") - @Schema(name = "短信验证码") private String smsCode; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java index b44175ac7..5f3f2d1ad 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java @@ -2,7 +2,6 @@ package com.ruoyi.common.core.page; import cn.hutool.http.HttpStatus; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,32 +16,27 @@ import java.util.List; @Data @NoArgsConstructor -@Schema(name = "分页响应对象") public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 总记录数 */ - @Schema(name = "总记录数") private long total; /** * 列表数据 */ - @Schema(name = "列表数据") private List rows; /** * 消息状态码 */ - @Schema(name = "消息状态码") private int code; /** * 消息内容 */ - @Schema(name = "消息内容") private String msg; /** diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java index c88baecd7..d86289d24 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.email.MailUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -26,7 +25,6 @@ import java.io.File; @RequestMapping("/demo/mail") public class MailController { - @Operation(summary = "发送邮件") @GetMapping("/sendSimpleMessage") public R sendSimpleMessage(@Parameter(name = "接收人") String to, @Parameter(name = "标题") String subject, @@ -35,7 +33,6 @@ public class MailController { return R.ok(); } - @Operation(summary = "发送邮件(带附件)") @GetMapping("/sendMessageWithAttachment") public R sendMessageWithAttachment(@Parameter(name = "接收人") String to, @Parameter(name = "标题") String subject, diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java index b80a9a8cd..c2baa71e7 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java @@ -41,7 +41,6 @@ public class RedisCacheController { *

    * cacheNames 为配置文件内 groupId */ - @Operation(summary = "测试 @Cacheable") @Cacheable(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test1") public R test1(String key, String value) { @@ -56,7 +55,6 @@ public class RedisCacheController { *

    * cacheNames 为 配置文件内 groupId */ - @Operation(summary = "测试 @CachePut") @CachePut(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test2") public R test2(String key, String value) { @@ -71,7 +69,6 @@ public class RedisCacheController { *

    * cacheNames 为 配置文件内 groupId */ - @Operation(summary = "测试 @CacheEvict") @CacheEvict(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test3") public R test3(String key, String value) { @@ -83,7 +80,6 @@ public class RedisCacheController { * 手动设置过期时间10秒 * 11秒后获取 判断是否相等 */ - @Operation(summary = "测试设置过期时间") @GetMapping("/test6") public R test6(String key, String value) { RedisUtils.setCacheObject(key, value); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java index f9803c601..0e1bb8428 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java @@ -5,7 +5,6 @@ import com.baomidou.lock.LockTemplate; import com.baomidou.lock.annotation.Lock4j; import com.baomidou.lock.executor.RedissonLockExecutor; import com.ruoyi.common.core.domain.R; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +32,6 @@ public class RedisLockController { /** * 测试lock4j 注解 */ - @Operation(summary = "测试lock4j 注解") @Lock4j(keys = {"#key"}) @GetMapping("/testLock4j") public R testLock4j(String key, String value) { @@ -50,7 +48,6 @@ public class RedisLockController { /** * 测试lock4j 工具 */ - @Operation(summary = "测试lock4j 工具") @GetMapping("/testLock4jLockTemplate") public R testLock4jLockTemplate(String key, String value) { final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java index da8522b5a..344abc142 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -21,7 +20,6 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/demo/redis/pubsub") public class RedisPubSubController { - @Operation(summary = "发布消息") @GetMapping("/pub") public R pub(@Parameter(name = "通道Key") String key, @Parameter(name = "发送内容") String value) { RedisUtils.publish(key, value, consumer -> { @@ -30,7 +28,6 @@ public class RedisPubSubController { return R.ok("操作成功"); } - @Operation(summary = "订阅消息") @GetMapping("/sub") public R sub(@Parameter(name = "通道Key") String key) { RedisUtils.subscribe(key, String.class, msg -> { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java index 80cf07325..abb59ace9 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.RateLimiter; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.LimitType; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -26,7 +25,6 @@ public class RedisRateLimiterController { * 测试全局限流 * 全局影响 */ - @Operation(summary = "测试全局限流") @RateLimiter(count = 2, time = 10) @GetMapping("/test") public R test(String value) { @@ -37,7 +35,6 @@ public class RedisRateLimiterController { * 测试请求IP限流 * 同一IP请求受影响 */ - @Operation(summary = "测试请求IP限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.IP) @GetMapping("/testip") public R testip(String value) { @@ -48,7 +45,6 @@ public class RedisRateLimiterController { * 测试集群实例限流 * 启动两个后端服务互不影响 */ - @Operation(summary = "测试集群实例限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.CLUSTER) @GetMapping("/testcluster") public R testcluster(String value) { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java index c9e51b1ff..a9c806174 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java @@ -4,7 +4,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -34,7 +33,6 @@ public class SmsController { // private final SmsTemplate smsTemplate; // 可以使用spring注入 // private final AliyunSmsTemplate smsTemplate; // 也可以注入某个厂家的模板工具 - @Operation(summary = "发送短信Aliyun") @GetMapping("/sendAliyun") public R sendAliyun(@Parameter(name = "电话号") String phones, @Parameter(name = "模板ID") String templateId) { @@ -51,7 +49,6 @@ public class SmsController { return R.ok(send); } - @Operation(summary = "发送短信Tencent") @GetMapping("/sendTencent") public R sendTencent(@Parameter(name = "电话号") String phones, @Parameter(name = "模板ID") String templateId) { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java index c538e2c9a..af0e104ab 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java @@ -1,7 +1,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -26,7 +25,6 @@ public class Swagger3DemoController { * 上传请求 * 必须使用 @RequestPart 注解标注为文件 */ - @Operation(summary = "通用上传请求") @Parameters({ @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) }) diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index 1824ae409..e821eaac6 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.mapper.TestDemoMapper; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; @@ -38,7 +37,6 @@ public class TestBatchController extends BaseController { *

    * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 */ - @Operation(summary = "新增批量方法") @PostMapping("/add") // @DS("slave") public R add() { @@ -58,7 +56,6 @@ public class TestBatchController extends BaseController { *

    * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 */ - @Operation(summary = "新增或更新批量方法") @PostMapping("/addOrUpdate") // @DS("slave") public R addOrUpdate() { @@ -84,7 +81,6 @@ public class TestBatchController extends BaseController { /** * 删除批量方法 */ - @Operation(summary = "删除批量方法") @DeleteMapping() // @DS("slave") public R remove() { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index d63c31719..50bcbd073 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -20,7 +20,6 @@ import com.ruoyi.demo.domain.bo.TestDemoBo; import com.ruoyi.demo.domain.bo.TestDemoImportVo; import com.ruoyi.demo.domain.vo.TestDemoVo; import com.ruoyi.demo.service.ITestDemoService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; @@ -55,7 +54,6 @@ public class TestDemoController extends BaseController { /** * 查询测试单表列表 */ - @Operation(summary = "查询测试单表列表") @SaCheckPermission("demo:demo:list") @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { @@ -65,14 +63,12 @@ public class TestDemoController extends BaseController { /** * 自定义分页查询 */ - @Operation(summary = "自定义分页查询") @SaCheckPermission("demo:demo:list") @GetMapping("/page") public TableDataInfo page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { return iTestDemoService.customPageList(bo, pageQuery); } - @Operation(summary = "导入测试-校验") @Parameters({ @Parameter(name = "file", description = "导入文件", in = ParameterIn.QUERY, required = true), }) @@ -90,7 +86,6 @@ public class TestDemoController extends BaseController { /** * 导出测试单表列表 */ - @Operation(summary = "导出测试单表列表") @SaCheckPermission("demo:demo:export") @Log(title = "测试单表", businessType = BusinessType.EXPORT) @PostMapping("/export") @@ -106,7 +101,6 @@ public class TestDemoController extends BaseController { /** * 获取测试单表详细信息 */ - @Operation(summary = "获取测试单表详细信息") @SaCheckPermission("demo:demo:query") @GetMapping("/{id}") public R getInfo(@Parameter(name = "测试ID") @@ -118,7 +112,6 @@ public class TestDemoController extends BaseController { /** * 新增测试单表 */ - @Operation(summary = "新增测试单表") @SaCheckPermission("demo:demo:add") @Log(title = "测试单表", businessType = BusinessType.INSERT) @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}") @@ -133,7 +126,6 @@ public class TestDemoController extends BaseController { /** * 修改测试单表 */ - @Operation(summary = "修改测试单表") @SaCheckPermission("demo:demo:edit") @Log(title = "测试单表", businessType = BusinessType.UPDATE) @RepeatSubmit @@ -145,7 +137,6 @@ public class TestDemoController extends BaseController { /** * 删除测试单表 */ - @Operation(summary = "删除测试单表") @SaCheckPermission("demo:demo:remove") @Log(title = "测试单表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java index cc67ca46b..b241cc80d 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.utils.poi.ExcelUtil; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Data; @@ -29,7 +28,6 @@ public class TestExcelController { /** * 单列表多数据 */ - @Operation(summary = "单列表多数据") @GetMapping("/exportTemplateOne") public void exportTemplateOne(HttpServletResponse response) { Map map = new HashMap<>(); @@ -49,7 +47,6 @@ public class TestExcelController { /** * 多列表多数据 */ - @Operation(summary = "多列表多数据") @GetMapping("/exportTemplateMuliti") public void exportTemplateMuliti(HttpServletResponse response) { Map map = new HashMap<>(); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index 6c7686686..a0044630d 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.MessageUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; @@ -33,7 +32,6 @@ public class TestI18nController { *

    * 测试使用 user.register.success */ - @Operation(summary = "通过code获取国际化内容") @GetMapping() public R get(@Parameter(name = "国际化code") String code) { return R.ok(MessageUtils.message(code)); @@ -45,7 +43,6 @@ public class TestI18nController { *

    * 测试使用 not.null */ - @Operation(summary = "Validator 校验国际化") @GetMapping("/test1") public R test1(@NotBlank(message = "{not.null}") String str) { return R.ok(str); @@ -57,7 +54,6 @@ public class TestI18nController { *

    * 测试使用 not.null */ - @Operation(summary = "Bean 校验国际化") @GetMapping("/test2") public R test2(@Validated TestI18nBo bo) { return R.ok(bo); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java index 54a1913fa..9b7f34aaa 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java @@ -4,7 +4,6 @@ import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.SensitiveStrategy; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.springframework.web.bind.annotation.GetMapping; @@ -29,7 +28,6 @@ public class TestSensitiveController extends BaseController { /** * 测试数据脱敏 */ - @Operation(summary = "查询测试单表列表") @GetMapping("/test") public R test() { TestSensitive testSensitive = new TestSensitive(); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index 4f0b4af99..c6bad6774 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -13,7 +13,6 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.demo.domain.bo.TestTreeBo; import com.ruoyi.demo.domain.vo.TestTreeVo; import com.ruoyi.demo.service.ITestTreeService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -44,7 +43,6 @@ public class TestTreeController extends BaseController { /** * 查询测试树表列表 */ - @Operation(summary = "查询测试树表列表") @SaCheckPermission("demo:tree:list") @GetMapping("/list") public R> list(@Validated(QueryGroup.class) TestTreeBo bo) { @@ -55,7 +53,6 @@ public class TestTreeController extends BaseController { /** * 导出测试树表列表 */ - @Operation(summary = "导出测试树表列表") @SaCheckPermission("demo:tree:export") @Log(title = "测试树表", businessType = BusinessType.EXPORT) @GetMapping("/export") @@ -67,7 +64,6 @@ public class TestTreeController extends BaseController { /** * 获取测试树表详细信息 */ - @Operation(summary = "获取测试树表详细信息") @SaCheckPermission("demo:tree:query") @GetMapping("/{id}") public R getInfo(@Parameter(name = "测试树ID") @@ -79,7 +75,6 @@ public class TestTreeController extends BaseController { /** * 新增测试树表 */ - @Operation(summary = "新增测试树表") @SaCheckPermission("demo:tree:add") @Log(title = "测试树表", businessType = BusinessType.INSERT) @RepeatSubmit @@ -91,7 +86,6 @@ public class TestTreeController extends BaseController { /** * 修改测试树表 */ - @Operation(summary = "修改测试树表") @SaCheckPermission("demo:tree:edit") @Log(title = "测试树表", businessType = BusinessType.UPDATE) @RepeatSubmit @@ -103,7 +97,6 @@ public class TestTreeController extends BaseController { /** * 删除测试树表 */ - @Operation(summary = "删除测试树表") @SaCheckPermission("demo:tree:remove") @Log(title = "测试树表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java index d41f87e28..a940c2ccf 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -30,7 +29,6 @@ import org.springframework.web.bind.annotation.RestController; public class BoundedQueueController { - @Operation(summary = "添加队列数据") @GetMapping("/add") public R add(@Parameter(name = "队列名") String queueName, @Parameter(name = "容量") int capacity) { @@ -56,7 +54,6 @@ public class BoundedQueueController { return R.ok("操作成功"); } - @Operation(summary = "删除队列数据") @GetMapping("/remove") public R remove(@Parameter(name = "队列名") String queueName) { String data = "data-" + 5; @@ -68,7 +65,6 @@ public class BoundedQueueController { return R.ok("操作成功"); } - @Operation(summary = "获取队列数据") @GetMapping("/get") public R get(@Parameter(name = "队列名") String queueName) { String data; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index 5958824a6..0abcc4bea 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -32,7 +31,6 @@ import java.util.concurrent.TimeUnit; @RequestMapping("/demo/queue/delayed") public class DelayedQueueController { - @Operation(summary = "订阅队列") @GetMapping("/subscribe") public R subscribe(@Parameter(name = "队列名") String queueName) { log.info("通道: {} 监听中......", queueName); @@ -44,7 +42,6 @@ public class DelayedQueueController { return R.ok("操作成功"); } - @Operation(summary = "添加队列数据") @GetMapping("/add") public R add(@Parameter(name = "队列名") String queueName, @Parameter(name = "订单号") String orderNum, @@ -55,7 +52,6 @@ public class DelayedQueueController { return R.ok("操作成功"); } - @Operation(summary = "删除队列数据") @GetMapping("/remove") public R remove(@Parameter(name = "队列名") String queueName, @Parameter(name = "订单号") String orderNum) { @@ -67,7 +63,6 @@ public class DelayedQueueController { return R.ok("操作成功"); } - @Operation(summary = "销毁队列") @GetMapping("/destroy") public R destroy(@Parameter(name = "队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java index 6d11e151f..1651631f1 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.controller.queue; import cn.hutool.core.util.RandomUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -30,7 +29,6 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/demo/queue/priority") public class PriorityQueueController { - @Operation(summary = "添加队列数据") @GetMapping("/add") public R add(@Parameter(name = "队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 @@ -58,7 +56,6 @@ public class PriorityQueueController { return R.ok("操作成功"); } - @Operation(summary = "删除队列数据") @GetMapping("/remove") public R remove(@Parameter(name = "队列名") String queueName, @Parameter(name = "对象名") String name, @@ -74,7 +71,6 @@ public class PriorityQueueController { return R.ok("操作成功"); } - @Operation(summary = "获取队列数据") @GetMapping("/get") public R get(@Parameter(name = "队列名") String queueName) { PriorityDemo data; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java index e569466bd..54ecae117 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -19,48 +18,41 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "测试单表业务对象") public class TestDemoBo extends BaseEntity { /** * 主键 */ - @Schema(name = "主键") @NotNull(message = "主键不能为空", groups = {EditGroup.class}) private Long id; /** * 部门id */ - @Schema(name = "部门id") @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long deptId; /** * 用户id */ - @Schema(name = "用户id") @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long userId; /** * 排序号 */ - @Schema(name = "排序号") @NotNull(message = "排序号不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer orderNum; /** * key键 */ - @Schema(name = "key键") @NotBlank(message = "key键不能为空", groups = {AddGroup.class, EditGroup.class}) private String testKey; /** * 值 */ - @Schema(name = "值") @NotBlank(message = "值不能为空", groups = {AddGroup.class, EditGroup.class}) private String value; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java index 269188a5a..8f417fb2e 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoImportVo.java @@ -1,7 +1,6 @@ package com.ruoyi.demo.domain.bo; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -14,13 +13,11 @@ import javax.validation.constraints.NotNull; * @date 2021-07-26 */ @Data -@Schema(name = "测试单表业务对象") public class TestDemoImportVo { /** * 部门id */ - @Schema(name = "部门id") @NotNull(message = "部门id不能为空") @ExcelProperty(value = "部门id") private Long deptId; @@ -28,7 +25,6 @@ public class TestDemoImportVo { /** * 用户id */ - @Schema(name = "用户id") @NotNull(message = "用户id不能为空") @ExcelProperty(value = "用户id") private Long userId; @@ -36,7 +32,6 @@ public class TestDemoImportVo { /** * 排序号 */ - @Schema(name = "排序号") @NotNull(message = "排序号不能为空") @ExcelProperty(value = "排序号") private Long orderNum; @@ -44,7 +39,6 @@ public class TestDemoImportVo { /** * key键 */ - @Schema(name = "key键") @NotBlank(message = "key键不能为空") @ExcelProperty(value = "key键") private String testKey; @@ -52,7 +46,6 @@ public class TestDemoImportVo { /** * 值 */ - @Schema(name = "值") @NotBlank(message = "值不能为空") @ExcelProperty(value = "值") private String value; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java index a4f914388..a51b3fe37 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.domain.bo; import com.ruoyi.common.core.domain.TreeEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -19,34 +18,29 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "测试树表业务对象") public class TestTreeBo extends TreeEntity { /** * 主键 */ - @Schema(name = "主键") @NotNull(message = "主键不能为空", groups = {EditGroup.class}) private Long id; /** * 部门id */ - @Schema(name = "部门id") @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long deptId; /** * 用户id */ - @Schema(name = "用户id") @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long userId; /** * 树节点名 */ - @Schema(name = "树节点名") @NotBlank(message = "树节点名不能为空", groups = {AddGroup.class, EditGroup.class}) private String treeName; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java index 561d208a5..c4a46edf3 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -15,7 +14,6 @@ import java.util.Date; * @date 2021-07-26 */ @Data -@Schema(name = "测试单表视图对象") @ExcelIgnoreUnannotated public class TestDemoVo { @@ -25,70 +23,60 @@ public class TestDemoVo { * 主键 */ @ExcelProperty(value = "主键") - @Schema(name = "主键") private Long id; /** * 部门id */ @ExcelProperty(value = "部门id") - @Schema(name = "部门id") private Long deptId; /** * 用户id */ @ExcelProperty(value = "用户id") - @Schema(name = "用户id") private Long userId; /** * 排序号 */ @ExcelProperty(value = "排序号") - @Schema(name = "排序号") private Integer orderNum; /** * key键 */ @ExcelProperty(value = "key键") - @Schema(name = "key键") private String testKey; /** * 值 */ @ExcelProperty(value = "值") - @Schema(name = "值") private String value; /** * 创建时间 */ @ExcelProperty(value = "创建时间") - @Schema(name = "创建时间") private Date createTime; /** * 创建人 */ @ExcelProperty(value = "创建人") - @Schema(name = "创建人") private String createBy; /** * 更新时间 */ @ExcelProperty(value = "更新时间") - @Schema(name = "更新时间") private Date updateTime; /** * 更新人 */ @ExcelProperty(value = "更新人") - @Schema(name = "更新人") private String updateBy; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java index f0eadfcdf..6836c06bb 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -15,7 +14,6 @@ import java.util.Date; * @date 2021-07-26 */ @Data -@Schema(name = "测试树表视图对象") @ExcelIgnoreUnannotated public class TestTreeVo { @@ -24,42 +22,36 @@ public class TestTreeVo { /** * 主键 */ - @Schema(name = "主键") private Long id; /** * 父id */ @ExcelProperty(value = "父id") - @Schema(name = "父id") private Long parentId; /** * 部门id */ @ExcelProperty(value = "部门id") - @Schema(name = "部门id") private Long deptId; /** * 用户id */ @ExcelProperty(value = "用户id") - @Schema(name = "用户id") private Long userId; /** * 树节点名 */ @ExcelProperty(value = "树节点名") - @Schema(name = "树节点名") private String treeName; /** * 创建时间 */ @ExcelProperty(value = "创建时间") - @Schema(name = "创建时间") private Date createTime; 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 d003ca8fe..d8c405e11 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 @@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.service.IGenTableService; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -41,7 +40,6 @@ public class GenController extends BaseController { /** * 查询代码生成列表 */ - @Operation(summary = "查询代码生成列表") @SaCheckPermission("tool:gen:list") @GetMapping("/list") public TableDataInfo genList(GenTable genTable, PageQuery pageQuery) { @@ -51,7 +49,6 @@ public class GenController extends BaseController { /** * 修改代码生成业务 */ - @Operation(summary = "修改代码生成业务") @SaCheckPermission("tool:gen:query") @GetMapping(value = "/{tableId}") public R> getInfo(@PathVariable Long tableId) { @@ -68,7 +65,6 @@ public class GenController extends BaseController { /** * 查询数据库列表 */ - @Operation(summary = "查询数据库列表") @SaCheckPermission("tool:gen:list") @GetMapping("/db/list") public TableDataInfo dataList(GenTable genTable, PageQuery pageQuery) { @@ -78,7 +74,6 @@ public class GenController extends BaseController { /** * 查询数据表字段列表 */ - @Operation(summary = "查询数据表字段列表") @SaCheckPermission("tool:gen:list") @GetMapping(value = "/column/{tableId}") public TableDataInfo columnList(Long tableId) { @@ -92,7 +87,6 @@ public class GenController extends BaseController { /** * 导入表结构(保存) */ - @Operation(summary = "导入表结构(保存)") @SaCheckPermission("tool:gen:import") @Log(title = "代码生成", businessType = BusinessType.IMPORT) @PostMapping("/importTable") @@ -107,7 +101,6 @@ public class GenController extends BaseController { /** * 修改保存代码生成业务 */ - @Operation(summary = "修改保存代码生成业务") @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @PutMapping @@ -120,7 +113,6 @@ public class GenController extends BaseController { /** * 删除代码生成 */ - @Operation(summary = "删除代码生成") @SaCheckPermission("tool:gen:remove") @Log(title = "代码生成", businessType = BusinessType.DELETE) @DeleteMapping("/{tableIds}") @@ -132,7 +124,6 @@ public class GenController extends BaseController { /** * 预览代码 */ - @Operation(summary = "预览代码") @SaCheckPermission("tool:gen:preview") @GetMapping("/preview/{tableId}") public R> preview(@PathVariable("tableId") Long tableId) throws IOException { @@ -143,7 +134,6 @@ public class GenController extends BaseController { /** * 生成代码(下载方式) */ - @Operation(summary = "生成代码(下载方式)") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/download/{tableName}") @@ -155,7 +145,6 @@ public class GenController extends BaseController { /** * 生成代码(自定义路径) */ - @Operation(summary = "生成代码(自定义路径)") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/genCode/{tableName}") @@ -167,7 +156,6 @@ public class GenController extends BaseController { /** * 同步数据库 */ - @Operation(summary = "同步数据库") @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @GetMapping("/synchDb/{tableName}") @@ -179,7 +167,6 @@ public class GenController extends BaseController { /** * 批量生成代码 */ - @Operation(summary = "批量生成代码") @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/batchGenCode") diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm index 0d0af368b..fab95ca68 100644 --- a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm @@ -33,7 +33,6 @@ import com.ruoyi.common.core.domain.TreeEntity; @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "${functionName}业务对象") public class ${ClassName}Bo extends ${Entity} { #foreach ($column in $columns) @@ -49,14 +48,12 @@ public class ${ClassName}Bo extends ${Entity} { #set($Group="EditGroup.class") #end #if($column.isRequired == 1) - @Schema(name = "$column.columnComment", required = true) #if($column.javaType == 'String') @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) #else @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) #end #else - @Schema(name = "$column.columnComment") #end private $column.javaType $column.javaField; diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 9ea772fc3..5b307640b 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -27,7 +27,6 @@ import ${packageName}.service.I${ClassName}Service; import com.ruoyi.common.core.page.TableDataInfo; #elseif($table.tree) #end -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; /** @@ -48,7 +47,6 @@ public class ${ClassName}Controller extends BaseController { /** * 查询${functionName}列表 */ - @Operation(summary = "查询${functionName}列表") @SaCheckPermission("${permissionPrefix}:list") @GetMapping("/list") #if($table.crud || $table.sub) @@ -65,7 +63,6 @@ public class ${ClassName}Controller extends BaseController { /** * 导出${functionName}列表 */ - @Operation(summary = "导出${functionName}列表") @SaCheckPermission("${permissionPrefix}:export") @Log(title = "${functionName}", businessType = BusinessType.EXPORT) @PostMapping("/export") @@ -77,7 +74,6 @@ public class ${ClassName}Controller extends BaseController { /** * 获取${functionName}详细信息 */ - @Operation(summary = "获取${functionName}详细信息") @SaCheckPermission("${permissionPrefix}:query") @GetMapping("/{${pkColumn.javaField}}") public R<${ClassName}Vo> getInfo(@Parameter(name = "主键") @@ -89,7 +85,6 @@ public class ${ClassName}Controller extends BaseController { /** * 新增${functionName} */ - @Operation(summary = "新增${functionName}") @SaCheckPermission("${permissionPrefix}:add") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @RepeatSubmit() @@ -101,7 +96,6 @@ public class ${ClassName}Controller extends BaseController { /** * 修改${functionName} */ - @Operation(summary = "修改${functionName}") @SaCheckPermission("${permissionPrefix}:edit") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @RepeatSubmit() @@ -113,7 +107,6 @@ public class ${ClassName}Controller extends BaseController { /** * 删除${functionName} */ - @Operation(summary = "删除${functionName}") @SaCheckPermission("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index 1fc974d20..c6d8b2462 100644 --- a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -21,7 +21,6 @@ import java.util.Date; * @date ${datetime} */ @Data -@Schema(name = "${functionName}视图对象") @ExcelIgnoreUnannotated public class ${ClassName}Vo { @@ -47,7 +46,6 @@ public class ${ClassName}Vo { #else @ExcelProperty(value = "${comment}") #end - @Schema(name = "$column.columnComment") private $column.javaType $column.javaField; #end diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java index b42eb3dc4..974019dd9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysCache.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain; import com.ruoyi.common.utils.StringUtils; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -12,31 +11,26 @@ import lombok.NoArgsConstructor; */ @Data @NoArgsConstructor -@Schema(name = "缓存信息") public class SysCache { /** * 缓存名称 */ - @Schema(name = "缓存名称") private String cacheName = ""; /** * 缓存键名 */ - @Schema(name = "缓存键名") private String cacheKey = ""; /** * 缓存内容 */ - @Schema(name = "缓存内容") private String cacheValue = ""; /** * 备注 */ - @Schema(name = "备注") private String remark = ""; public SysCache(String cacheName, String remark) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index 946255710..40bc2821d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,13 +23,11 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_config") @ExcelIgnoreUnannotated -@Schema(name = "参数配置业务对象") public class SysConfig extends BaseEntity { /** * 参数主键 */ - @Schema(name = "参数主键") @ExcelProperty(value = "参数主键") @TableId(value = "config_id") private Long configId; @@ -38,7 +35,6 @@ public class SysConfig extends BaseEntity { /** * 参数名称 */ - @Schema(name = "参数名称") @ExcelProperty(value = "参数名称") @NotBlank(message = "参数名称不能为空") @Size(min = 0, max = 100, message = "参数名称不能超过100个字符") @@ -47,7 +43,6 @@ public class SysConfig extends BaseEntity { /** * 参数键名 */ - @Schema(name = "参数键名") @ExcelProperty(value = "参数键名") @NotBlank(message = "参数键名长度不能为空") @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") @@ -56,7 +51,6 @@ public class SysConfig extends BaseEntity { /** * 参数键值 */ - @Schema(name = "参数键值") @ExcelProperty(value = "参数键值") @NotBlank(message = "参数键值不能为空") @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") @@ -65,7 +59,6 @@ public class SysConfig extends BaseEntity { /** * 系统内置(Y是 N否) */ - @Schema(name = "系统内置(Y是 N否)") @ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_yes_no") private String configType; @@ -73,7 +66,6 @@ public class SysConfig extends BaseEntity { /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java index d87800612..f95b332e7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,14 +23,12 @@ import java.util.Map; @Data @TableName("sys_logininfor") @ExcelIgnoreUnannotated -@Schema(name = "系统访问记录业务对象") public class SysLogininfor implements Serializable { private static final long serialVersionUID = 1L; /** * ID */ - @Schema(name = "访问ID") @ExcelProperty(value = "序号") @TableId(value = "info_id") private Long infoId; @@ -39,14 +36,12 @@ public class SysLogininfor implements Serializable { /** * 用户账号 */ - @Schema(name = "用户账号") @ExcelProperty(value = "用户账号") private String userName; /** * 登录状态 0成功 1失败 */ - @Schema(name = "登录状态 0成功 1失败") @ExcelProperty(value = "登录状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -54,49 +49,42 @@ public class SysLogininfor implements Serializable { /** * 登录IP地址 */ - @Schema(name = "登录IP地址") @ExcelProperty(value = "登录地址") private String ipaddr; /** * 登录地点 */ - @Schema(name = "登录地点") @ExcelProperty(value = "登录地点") private String loginLocation; /** * 浏览器类型 */ - @Schema(name = "浏览器类型") @ExcelProperty(value = "浏览器") private String browser; /** * 操作系统 */ - @Schema(name = "操作系统") @ExcelProperty(value = "操作系统") private String os; /** * 提示消息 */ - @Schema(name = "提示消息") @ExcelProperty(value = "提示消息") private String msg; /** * 访问时间 */ - @Schema(name = "访问时间") @ExcelProperty(value = "访问时间") private Date loginTime; /** * 请求参数 */ - @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index 36177c82e..f9457406a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.xss.Xss; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +24,6 @@ public class SysNotice extends BaseEntity { /** * 公告ID */ - @Schema(name = "公告ID") @TableId(value = "notice_id") private Long noticeId; @@ -33,7 +31,6 @@ public class SysNotice extends BaseEntity { * 公告标题 */ @Xss(message = "公告标题不能包含脚本字符") - @Schema(name = "公告标题") @NotBlank(message = "公告标题不能为空") @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") private String noticeTitle; @@ -41,25 +38,21 @@ public class SysNotice extends BaseEntity { /** * 公告类型(1通知 2公告) */ - @Schema(name = "公告类型(1通知 2公告)") private String noticeType; /** * 公告内容 */ - @Schema(name = "公告内容") private String noticeContent; /** * 公告状态(0正常 1关闭) */ - @Schema(name = "公告状态(0正常 1关闭)") private String status; /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java index ebb3a4b7c..84af07b91 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -24,7 +23,6 @@ import java.util.Map; @Data @TableName("sys_oper_log") @ExcelIgnoreUnannotated -@Schema(name = "操作日志记录业务对象") public class SysOperLog implements Serializable { private static final long serialVersionUID = 1L; @@ -32,7 +30,6 @@ public class SysOperLog implements Serializable { /** * 日志主键 */ - @Schema(name = "日志主键") @ExcelProperty(value = "日志主键") @TableId(value = "oper_id") private Long operId; @@ -40,14 +37,12 @@ public class SysOperLog implements Serializable { /** * 操作模块 */ - @Schema(name = "操作模块") @ExcelProperty(value = "操作模块") private String title; /** * 业务类型(0其它 1新增 2修改 3删除) */ - @Schema(name = "业务类型(0其它 1新增 2修改 3删除)") @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_oper_type") private Integer businessType; @@ -55,28 +50,24 @@ public class SysOperLog implements Serializable { /** * 业务类型数组 */ - @Schema(name = "业务类型数组") @TableField(exist = false) private Integer[] businessTypes; /** * 请求方法 */ - @Schema(name = "请求方法") @ExcelProperty(value = "请求方法") private String method; /** * 请求方式 */ - @Schema(name = "请求方式") @ExcelProperty(value = "请求方式") private String requestMethod; /** * 操作类别(0其它 1后台用户 2手机端用户) */ - @Schema(name = "操作类别(0其它 1后台用户 2手机端用户)") @ExcelProperty(value = "操作类别", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=其它,1=后台用户,2=手机端用户") private Integer operatorType; @@ -84,56 +75,48 @@ public class SysOperLog implements Serializable { /** * 操作人员 */ - @Schema(name = "操作人员") @ExcelProperty(value = "操作人员") private String operName; /** * 部门名称 */ - @Schema(name = "部门名称") @ExcelProperty(value = "部门名称") private String deptName; /** * 请求url */ - @Schema(name = "请求url") @ExcelProperty(value = "请求地址") private String operUrl; /** * 操作地址 */ - @Schema(name = "操作地址") @ExcelProperty(value = "操作地址") private String operIp; /** * 操作地点 */ - @Schema(name = "操作地点") @ExcelProperty(value = "操作地点") private String operLocation; /** * 请求参数 */ - @Schema(name = "请求参数") @ExcelProperty(value = "请求参数") private String operParam; /** * 返回参数 */ - @Schema(name = "返回参数") @ExcelProperty(value = "返回参数") private String jsonResult; /** * 操作状态(0正常 1异常) */ - @Schema(name = "操作状态(0正常 1异常)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private Integer status; @@ -141,21 +124,18 @@ public class SysOperLog implements Serializable { /** * 错误消息 */ - @Schema(name = "错误消息") @ExcelProperty(value = "错误消息") private String errorMsg; /** * 操作时间 */ - @Schema(name = "操作时间") @ExcelProperty(value = "操作时间") private Date operTime; /** * 请求参数 */ - @Schema(name = "请求参数") @TableField(exist = false) private Map params = new HashMap<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index f479a881d..2fde8fcdb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,13 +25,11 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) @TableName("sys_post") @ExcelIgnoreUnannotated -@Schema(name = "岗位信息业务对象") public class SysPost extends BaseEntity { /** * 岗位序号 */ - @Schema(name = "岗位序号") @ExcelProperty(value = "岗位序号") @TableId(value = "post_id") private Long postId; @@ -40,7 +37,6 @@ public class SysPost extends BaseEntity { /** * 岗位编码 */ - @Schema(name = "岗位编码") @ExcelProperty(value = "岗位编码") @NotBlank(message = "岗位编码不能为空") @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符") @@ -49,7 +45,6 @@ public class SysPost extends BaseEntity { /** * 岗位名称 */ - @Schema(name = "岗位名称") @ExcelProperty(value = "岗位名称") @NotBlank(message = "岗位名称不能为空") @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符") @@ -58,7 +53,6 @@ public class SysPost extends BaseEntity { /** * 岗位排序 */ - @Schema(name = "岗位排序") @ExcelProperty(value = "岗位排序") @NotNull(message = "显示顺序不能为空") private Integer postSort; @@ -66,7 +60,6 @@ public class SysPost extends BaseEntity { /** * 状态(0正常 1停用) */ - @Schema(name = "状态(0正常 1停用)") @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "sys_common_status") private String status; @@ -74,13 +67,11 @@ public class SysPost extends BaseEntity { /** * 备注 */ - @Schema(name = "备注") private String remark; /** * 用户是否存在此岗位标识 默认不存在 */ - @Schema(name = "用户是否存在此岗位标识 默认不存在") @TableField(exist = false) private boolean flag = false; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java index a0497c8a5..38e7048c4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java @@ -3,7 +3,6 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -14,20 +13,17 @@ import lombok.Data; @Data @TableName("sys_role_dept") -@Schema(name = "角色和部门关联") public class SysRoleDept { /** * 角色ID */ @TableId(type = IdType.INPUT) - @Schema(name = "角色ID") private Long roleId; /** * 部门ID */ - @Schema(name = "部门ID") private Long deptId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java index 5c99a0e38..dd359c425 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java @@ -3,7 +3,6 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -14,20 +13,17 @@ import lombok.Data; @Data @TableName("sys_role_menu") -@Schema(name = "角色和菜单关联") public class SysRoleMenu { /** * 角色ID */ @TableId(type = IdType.INPUT) - @Schema(name = "角色ID") private Long roleId; /** * 菜单ID */ - @Schema(name = "角色ID") private Long menuId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java index 4473d3b18..e8fa5bffa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -1,6 +1,5 @@ package com.ruoyi.system.domain; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -10,55 +9,46 @@ import lombok.Data; */ @Data -@Schema(name = "当前在线会话业务对象") public class SysUserOnline { /** * 会话编号 */ - @Schema(name = "会话编号") private String tokenId; /** * 部门名称 */ - @Schema(name = "部门名称") private String deptName; /** * 用户名称 */ - @Schema(name = "用户名称") private String userName; /** * 登录IP地址 */ - @Schema(name = "登录IP地址") private String ipaddr; /** * 登录地址 */ - @Schema(name = "登录地址") private String loginLocation; /** * 浏览器类型 */ - @Schema(name = "浏览器类型") private String browser; /** * 操作系统 */ - @Schema(name = "操作系统") private String os; /** * 登录时间 */ - @Schema(name = "登录时间") private Long loginTime; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java index 6a5f43c5e..a6980557c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java @@ -3,7 +3,6 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -14,20 +13,17 @@ import lombok.Data; @Data @TableName("sys_user_post") -@Schema(name = "用户和岗位关联") public class SysUserPost { /** * 用户ID */ @TableId(type = IdType.INPUT) - @Schema(name = "用户ID") private Long userId; /** * 岗位ID */ - @Schema(name = "岗位ID") private Long postId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java index 4be15f86e..8d3543702 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java @@ -3,7 +3,6 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -14,20 +13,17 @@ import lombok.Data; @Data @TableName("sys_user_role") -@Schema(name = "用户和角色关联") public class SysUserRole { /** * 用户ID */ @TableId(type = IdType.INPUT) - @Schema(name = "用户ID") private Long userId; /** * 角色ID */ - @Schema(name = "角色ID") private Long roleId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java index bc1d296c5..3f5ab4a8d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,33 +11,27 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "OSS对象存储分页查询对象") public class SysOssBo extends BaseEntity { /** * 文件名 */ - @Schema(name = "文件名") private String fileName; /** * 原名 */ - @Schema(name = "原名") private String originalName; /** * 文件后缀名 */ - @Schema(name = "文件后缀名") private String fileSuffix; /** * URL地址 */ - @Schema(name = "URL地址") private String url; /** * 服务商 */ - @Schema(name = "服务商") private String service; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java index b45a37872..e9f481d5e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java @@ -3,7 +3,6 @@ package com.ruoyi.system.domain.bo; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,20 +20,17 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "对象存储配置业务对象") public class SysOssConfigBo extends BaseEntity { /** * 主建 */ - @Schema(name = "主建", required = true) @NotNull(message = "主建不能为空", groups = {EditGroup.class}) private Long ossConfigId; /** * 配置key */ - @Schema(name = "配置key", required = true) @NotBlank(message = "配置key不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "configKey长度必须介于2和20 之间") private String configKey; @@ -42,7 +38,6 @@ public class SysOssConfigBo extends BaseEntity { /** * accessKey */ - @Schema(name = "accessKey", required = true) @NotBlank(message = "accessKey不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "accessKey长度必须介于2和100 之间") private String accessKey; @@ -50,7 +45,6 @@ public class SysOssConfigBo extends BaseEntity { /** * 秘钥 */ - @Schema(name = "secretKey", required = true) @NotBlank(message = "secretKey不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "secretKey长度必须介于2和100 之间") private String secretKey; @@ -58,7 +52,6 @@ public class SysOssConfigBo extends BaseEntity { /** * 桶名称 */ - @Schema(name = "桶名称", required = true) @NotBlank(message = "桶名称不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "bucketName长度必须介于2和100之间") private String bucketName; @@ -66,13 +59,11 @@ public class SysOssConfigBo extends BaseEntity { /** * 前缀 */ - @Schema(name = "前缀") private String prefix; /** * 访问站点 */ - @Schema(name = "访问站点", required = true) @NotBlank(message = "访问站点不能为空", groups = {AddGroup.class, EditGroup.class}) @Size(min = 2, max = 100, message = "endpoint长度必须介于2和100之间") private String endpoint; @@ -80,37 +71,31 @@ public class SysOssConfigBo extends BaseEntity { /** * 自定义域名 */ - @Schema(name = "自定义域名") private String domain; /** * 是否https(Y=是,N=否) */ - @Schema(name = "是否https(Y=是,N=否)") private String isHttps; /** * 状态(0=正常,1=停用) */ - @Schema(name = "状态(0=正常,1=停用)") private String status; /** * 域 */ - @Schema(name = "域") private String region; /** * 扩展字段 */ - @Schema(name = "扩展字段") private String ext1; /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java index 3b864daf5..ec1f02e19 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain.vo; import com.ruoyi.common.utils.StringUtils; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -11,31 +10,26 @@ import lombok.Data; */ @Data -@Schema(name = "路由显示信息") public class MetaVo { /** * 设置该路由在侧边栏和面包屑中展示的名字 */ - @Schema(name = "设置该路由在侧边栏和面包屑中展示的名字") private String title; /** * 设置该路由的图标,对应路径src/assets/icons/svg */ - @Schema(name = "设置该路由的图标,对应路径src/assets/icons/svg") private String icon; /** * 设置为true,则不会被 缓存 */ - @Schema(name = "设置为true,则不会被 缓存") private boolean noCache; /** * 内链地址(http(s)://开头) */ - @Schema(name = "内链地址(http(s)://开头)") private String link; public MetaVo(String title, String icon) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java index 7f961a7be..8351f7c34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; @@ -13,61 +12,51 @@ import java.util.List; */ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) -@Schema(name = "路由配置信息") public class RouterVo { /** * 路由名字 */ - @Schema(name = "路由名字") private String name; /** * 路由地址 */ - @Schema(name = "路由地址") private String path; /** * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 */ - @Schema(name = "是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现") private boolean hidden; /** * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 */ - @Schema(name = "重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击") private String redirect; /** * 组件地址 */ - @Schema(name = "组件地址") private String component; /** * 路由参数:如 {"id": 1, "name": "ry"} */ - @Schema(name = "路由参数:如 {\"id\": 1, \"name\": \"ry\"}") private String query; /** * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 */ - @Schema(name = "当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面") private Boolean alwaysShow; /** * 其他元素 */ - @Schema(name = "其他元素") private MetaVo meta; /** * 子路由 */ - @Schema(name = "子路由") private List children; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java index 833dc3b93..f8b31d6b5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java @@ -1,7 +1,6 @@ package com.ruoyi.system.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -13,7 +12,6 @@ import lombok.Data; * @date 2021-08-13 */ @Data -@Schema(name = "对象存储配置视图对象") @ExcelIgnoreUnannotated public class SysOssConfigVo { @@ -22,79 +20,66 @@ public class SysOssConfigVo { /** * 主建 */ - @Schema(name = "主建") private Long ossConfigId; /** * 配置key */ - @Schema(name = "配置key") private String configKey; /** * accessKey */ - @Schema(name = "accessKey") private String accessKey; /** * 秘钥 */ - @Schema(name = "secretKey") private String secretKey; /** * 桶名称 */ - @Schema(name = "桶名称") private String bucketName; /** * 前缀 */ - @Schema(name = "前缀") private String prefix; /** * 访问站点 */ - @Schema(name = "访问站点") private String endpoint; /** * 自定义域名 */ - @Schema(name = "自定义域名") private String domain; /** * 是否https(Y=是,N=否) */ - @Schema(name = "是否https(Y=是,N=否)") private String isHttps; /** * 域 */ - @Schema(name = "域") private String region; /** * 状态(0=正常,1=停用) */ - @Schema(name = "状态(0=正常,1=停用)") private String status; /** * 扩展字段 */ - @Schema(name = "扩展字段") private String ext1; /** * 备注 */ - @Schema(name = "备注") private String remark; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java index b0b8da34c..53f5f8de8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java @@ -1,6 +1,5 @@ package com.ruoyi.system.domain.vo; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; @@ -11,7 +10,6 @@ import java.util.Date; * @author Lion Li */ @Data -@Schema(name = "OSS对象存储视图对象") public class SysOssVo { private static final long serialVersionUID = 1L; @@ -19,49 +17,41 @@ public class SysOssVo { /** * 对象存储主键 */ - @Schema(name = "对象存储主键") private Long ossId; /** * 文件名 */ - @Schema(name = "文件名") private String fileName; /** * 原名 */ - @Schema(name = "原名") private String originalName; /** * 文件后缀名 */ - @Schema(name = "文件后缀名") private String fileSuffix; /** * URL地址 */ - @Schema(name = "URL地址") private String url; /** * 创建时间 */ - @Schema(name = "创建时间") private Date createTime; /** * 上传人 */ - @Schema(name = "上传人") private String createBy; /** * 服务商 */ - @Schema(name = "服务商") private String service; From dd25573ebce3450d90d0012a30b12a5185bc7310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 8 Jul 2022 15:49:15 +0800 Subject: [PATCH 034/299] =?UTF-8?q?update=20=E4=BD=BF=E7=94=A8=20@param=20?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=9B=BF=E6=8D=A2=20@Parameter=20=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=20fix=20=E4=BF=AE=E5=A4=8D=20token=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BC=A0=E9=80=92=20=E4=B8=8E=20=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 +++ .../controller/common/CaptchaController.java | 8 ++-- .../controller/monitor/CacheController.java | 32 +++++++++++++- .../monitor/SysLogininforController.java | 14 ++++++- .../monitor/SysOperlogController.java | 14 ++++++- .../monitor/SysUserOnlineController.java | 12 +++++- .../system/SysConfigController.java | 18 +++++--- .../controller/system/SysDeptController.java | 19 ++++++--- .../system/SysDictDataController.java | 21 +++++++--- .../system/SysDictTypeController.java | 17 ++++++-- .../controller/system/SysLoginController.java | 5 ++- .../controller/system/SysMenuController.java | 15 ++++--- .../system/SysNoticeController.java | 11 +++-- .../system/SysOssConfigController.java | 19 +++++---- .../controller/system/SysOssController.java | 33 ++++++++------- .../controller/system/SysPostController.java | 12 ++++-- .../system/SysProfileController.java | 28 ++++++------- .../system/SysRegisterController.java | 5 ++- .../controller/system/SysRoleController.java | 33 ++++++++------- .../controller/system/SysUserController.java | 42 ++++++++++++------- .../src/main/resources/application.yml | 9 +--- .../ruoyi/demo/controller/MailController.java | 27 ++++++++---- .../demo/controller/RedisCacheController.java | 3 +- .../demo/controller/RedisLockController.java | 2 +- .../controller/RedisPubSubController.java | 18 ++++++-- .../RedisRateLimiterController.java | 2 +- .../ruoyi/demo/controller/SmsController.java | 21 +++++++--- .../controller/Swagger3DemoController.java | 13 +++--- .../demo/controller/TestBatchController.java | 5 ++- .../demo/controller/TestDemoController.java | 30 ++++++------- .../demo/controller/TestExcelController.java | 42 +++++++++---------- .../demo/controller/TestI18nController.java | 7 ++-- .../controller/TestSensitiveController.java | 2 +- .../demo/controller/TestTreeController.java | 17 ++++---- .../queue/BoundedQueueController.java | 26 +++++++++--- .../queue/DelayedQueueController.java | 37 ++++++++++++---- .../queue/PriorityQueueController.java | 28 +++++++++---- .../ruoyi/framework/config/SwaggerConfig.java | 7 ++++ .../generator/controller/GenController.java | 18 ++++++++ .../main/resources/vm/java/controller.java.vm | 14 ++++--- 40 files changed, 464 insertions(+), 227 deletions(-) diff --git a/pom.xml b/pom.xml index 8d9a17fa9..4f592194b 100644 --- a/pom.xml +++ b/pom.xml @@ -343,6 +343,11 @@ lombok 1.18.24 + + org.springframework.boot + spring-boot-configuration-processor + ${spring-boot.version} + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index c80315f35..f2279dbef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -19,7 +19,6 @@ import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; import com.ruoyi.sms.entity.SmsResult; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -40,7 +39,7 @@ import java.util.Map; @Anonymous @Slf4j @Validated -@Tag(name ="验证码操作处理", description = "验证码管理") +@Tag(name = "验证码操作处理", description = "验证码管理") @RequiredArgsConstructor @RestController public class CaptchaController { @@ -51,10 +50,11 @@ public class CaptchaController { /** * 短信验证码 + * + * @param phonenumber 用户手机号 */ @GetMapping("/captchaSms") - public R smsCaptcha(@Parameter(name = "用户手机号") - @NotBlank(message = "{user.phonenumber.not.blank}") + public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { if (smsProperties.getEnabled()) { R.fail("当前系统没有开启短信功能!"); 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 b3944127a..849d7c3f1 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 @@ -19,7 +19,7 @@ import java.util.*; * * @author Lion Li */ -@Tag(name ="缓存监控", description = "缓存监控管理") +@Tag(name = "缓存监控", description = "缓存监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/cache") @@ -40,6 +40,9 @@ public class CacheController { CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); } + /** + * 获取缓存监控列表 + */ @SaCheckPermission("monitor:cache:list") @GetMapping() public R> getInfo() throws Exception { @@ -65,12 +68,20 @@ public class CacheController { return R.ok(result); } + /** + * 获取缓存监控缓存名列表 + */ @SaCheckPermission("monitor:cache:list") @GetMapping("/getNames") public R> cache() { return R.ok(CACHES); } + /** + * 获取缓存监控Key列表 + * + * @param cacheName 缓存名 + */ @SaCheckPermission("monitor:cache:list") @GetMapping("/getKeys/{cacheName}") public R> getCacheKeys(@PathVariable String cacheName) { @@ -78,6 +89,12 @@ public class CacheController { return R.ok(cacheKyes); } + /** + * 获取缓存监控缓存值详情 + * + * @param cacheName 缓存名 + * @param cacheKey 缓存key + */ @SaCheckPermission("monitor:cache:list") @GetMapping("/getValue/{cacheName}/{cacheKey}") public R getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { @@ -86,6 +103,11 @@ public class CacheController { return R.ok(sysCache); } + /** + * 清理缓存监控缓存名 + * + * @param cacheName 缓存名 + */ @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheName/{cacheName}") public R clearCacheName(@PathVariable String cacheName) { @@ -94,6 +116,11 @@ public class CacheController { return R.ok(); } + /** + * 清理缓存监控Key + * + * @param cacheKey key名 + */ @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheKey/{cacheKey}") public R clearCacheKey(@PathVariable String cacheKey) { @@ -101,6 +128,9 @@ public class CacheController { return R.ok(); } + /** + * 清理全部缓存监控 + */ @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheAll") public R clearCacheAll() { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 4b82b4ac9..a58c54e34 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -24,7 +24,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="系统访问记录", description = "系统访问记录管理") +@Tag(name = "系统访问记录", description = "系统访问记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/logininfor") @@ -32,12 +32,18 @@ public class SysLogininforController extends BaseController { private final ISysLogininforService logininforService; + /** + * 获取系统访问记录列表 + */ @SaCheckPermission("monitor:logininfor:list") @GetMapping("/list") public TableDataInfo list(SysLogininfor logininfor, PageQuery pageQuery) { return logininforService.selectPageLogininforList(logininfor, pageQuery); } + /** + * 导出系统访问记录列表 + */ @Log(title = "登录日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:logininfor:export") @PostMapping("/export") @@ -46,6 +52,9 @@ public class SysLogininforController extends BaseController { ExcelUtil.exportExcel(list, "登录日志", SysLogininfor.class, response); } + /** + * 获取系统访问记录详情 + */ @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") @@ -53,6 +62,9 @@ public class SysLogininforController extends BaseController { return toAjax(logininforService.deleteLogininforByIds(infoIds)); } + /** + * 清理系统访问记录 + */ @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index d7dcff4b9..717696246 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -24,7 +24,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="操作日志记录", description = "操作日志记录管理") +@Tag(name = "操作日志记录", description = "操作日志记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/operlog") @@ -32,12 +32,18 @@ public class SysOperlogController extends BaseController { private final ISysOperLogService operLogService; + /** + * 获取操作日志记录列表 + */ @SaCheckPermission("monitor:operlog:list") @GetMapping("/list") public TableDataInfo list(SysOperLog operLog, PageQuery pageQuery) { return operLogService.selectPageOperLogList(operLog, pageQuery); } + /** + * 导出操作日志记录列表 + */ @Log(title = "操作日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:operlog:export") @PostMapping("/export") @@ -46,6 +52,9 @@ public class SysOperlogController extends BaseController { ExcelUtil.exportExcel(list, "操作日志", SysOperLog.class, response); } + /** + * 获取操作日志记录详情 + */ @Log(title = "操作日志", businessType = BusinessType.DELETE) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/{operIds}") @@ -53,6 +62,9 @@ public class SysOperlogController extends BaseController { return toAjax(operLogService.deleteOperLogByIds(operIds)); } + /** + * 清理操作日志记录 + */ @Log(title = "操作日志", businessType = BusinessType.CLEAN) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/clean") 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 f35549c04..ec611caf2 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 @@ -28,12 +28,18 @@ import java.util.List; * * @author Lion Li */ -@Tag(name ="在线用户监控", description = "在线用户监控管理") +@Tag(name = "在线用户监控", description = "在线用户监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/online") public class SysUserOnlineController extends BaseController { + /** + * 获取在线用户监控列表 + * + * @param ipaddr IP地址 + * @param userName 用户名 + */ @SaCheckPermission("monitor:online:list") @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { @@ -55,7 +61,7 @@ public class SysUserOnlineController extends BaseController { ); } else if (StringUtils.isNotEmpty(ipaddr)) { userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> - StringUtils.equals(ipaddr, userOnline.getIpaddr()) + StringUtils.equals(ipaddr, userOnline.getIpaddr()) ); } else if (StringUtils.isNotEmpty(userName)) { userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> @@ -70,6 +76,8 @@ public class SysUserOnlineController extends BaseController { /** * 强退用户 + * + * @param tokenId token值 */ @SaCheckPermission("monitor:online:forceLogout") @Log(title = "在线用户", businessType = BusinessType.FORCE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index 3e269799c..d2cdcb76a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -26,7 +25,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="参数配置控制器", description = "参数配置管理") +@Tag(name = "参数配置控制器", description = "参数配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/config") @@ -43,6 +42,9 @@ public class SysConfigController extends BaseController { return configService.selectPageConfigList(config, pageQuery); } + /** + * 导出参数配置列表 + */ @Log(title = "参数管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:config:export") @PostMapping("/export") @@ -53,18 +55,22 @@ public class SysConfigController extends BaseController { /** * 根据参数编号获取详细信息 + * + * @param configId 参数ID */ @SaCheckPermission("system:config:query") @GetMapping(value = "/{configId}") - public R getInfo(@Parameter(name = "参数ID") @PathVariable Long configId) { + public R getInfo(@PathVariable Long configId) { return R.ok(configService.selectConfigById(configId)); } /** * 根据参数键名查询参数值 + * + * @param configKey 参数Key */ @GetMapping(value = "/configKey/{configKey}") - public R getConfigKey(@Parameter(name = "参数Key") @PathVariable String configKey) { + public R getConfigKey(@PathVariable String configKey) { return R.ok(configService.selectConfigByKey(configKey)); } @@ -106,11 +112,13 @@ public class SysConfigController extends BaseController { /** * 删除参数配置 + * + * @param configIds 参数ID串 */ @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") - public R remove(@Parameter(name = "参数ID串") @PathVariable Long[] configIds) { + public R remove(@PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return R.ok(); } 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 3dedb11db..b17cf510f 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 @@ -11,7 +11,6 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -27,7 +26,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name ="部门控制器", description = "部门管理") +@Tag(name = "部门控制器", description = "部门管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dept") @@ -47,10 +46,12 @@ public class SysDeptController extends BaseController { /** * 查询部门列表(排除节点) + * + * @param deptId 部门ID */ @SaCheckPermission("system:dept:list") @GetMapping("/list/exclude/{deptId}") - public R> excludeChild(@Parameter(name = "部门ID") @PathVariable(value = "deptId", required = false) Long deptId) { + public R> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { List depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().equals(deptId) || ArrayUtil.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); @@ -59,10 +60,12 @@ public class SysDeptController extends BaseController { /** * 根据部门编号获取详细信息 + * + * @param deptId 部门ID */ @SaCheckPermission("system:dept:query") @GetMapping(value = "/{deptId}") - public R getInfo(@Parameter(name = "部门ID") @PathVariable Long deptId) { + public R getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); return R.ok(deptService.selectDeptById(deptId)); } @@ -78,9 +81,11 @@ public class SysDeptController extends BaseController { /** * 加载对应角色部门列表树 + * + * @param roleId 角色ID */ @GetMapping(value = "/roleDeptTreeselect/{roleId}") - public R> roleDeptTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { + public R> roleDeptTreeselect(@PathVariable("roleId") Long roleId) { List depts = deptService.selectDeptList(new SysDept()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); @@ -123,11 +128,13 @@ public class SysDeptController extends BaseController { /** * 删除部门 + * + * @param deptId 部门ID */ @SaCheckPermission("system:dept:remove") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") - public R remove(@Parameter(name = "部门ID串") @PathVariable Long deptId) { + public R remove(@PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) { return R.fail("存在下级部门,不允许删除"); } 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 a659f6d20..6dfa05f8e 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 @@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -28,7 +27,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="数据字典信息控制器", description = "数据字典信息管理") +@Tag(name = "数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/data") @@ -37,12 +36,18 @@ public class SysDictDataController extends BaseController { private final ISysDictDataService dictDataService; private final ISysDictTypeService dictTypeService; + /** + * 查询字典数据列表 + */ @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictData dictData, PageQuery pageQuery) { return dictDataService.selectPageDictDataList(dictData, pageQuery); } + /** + * 导出字典数据列表 + */ @Log(title = "字典数据", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -53,18 +58,22 @@ public class SysDictDataController extends BaseController { /** * 查询字典数据详细 + * + * @param dictCode 字典code */ @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictCode}") - public R getInfo(@Parameter(name = "字典code") @PathVariable Long dictCode) { + public R getInfo(@PathVariable Long dictCode) { return R.ok(dictDataService.selectDictDataById(dictCode)); } /** * 根据字典类型查询字典数据信息 + * + * @param dictType 字典类型 */ @GetMapping(value = "/type/{dictType}") - public R> dictType(@Parameter(name = "字典类型") @PathVariable String dictType) { + public R> dictType(@PathVariable String dictType) { List data = dictTypeService.selectDictDataByType(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); @@ -94,11 +103,13 @@ public class SysDictDataController extends BaseController { /** * 删除字典类型 + * + * @param dictCodes 字典code串 */ @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") - public R remove(@Parameter(name = "字典code串") @PathVariable Long[] dictCodes) { + public R remove(@PathVariable Long[] dictCodes) { dictDataService.deleteDictDataByIds(dictCodes); return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index 5cabe8573..3eb3480fe 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -26,7 +25,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="数据字典信息控制器", description = "数据字典信息管理") +@Tag(name = "数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/type") @@ -34,12 +33,18 @@ public class SysDictTypeController extends BaseController { private final ISysDictTypeService dictTypeService; + /** + * 查询字典类型列表 + */ @SaCheckPermission("system:dict:list") @GetMapping("/list") public TableDataInfo list(SysDictType dictType, PageQuery pageQuery) { return dictTypeService.selectPageDictTypeList(dictType, pageQuery); } + /** + * 导出字典类型列表 + */ @Log(title = "字典类型", businessType = BusinessType.EXPORT) @SaCheckPermission("system:dict:export") @PostMapping("/export") @@ -50,10 +55,12 @@ public class SysDictTypeController extends BaseController { /** * 查询字典类型详细 + * + * @param dictId 字典ID */ @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictId}") - public R getInfo(@Parameter(name = "字典ID") @PathVariable Long dictId) { + public R getInfo(@PathVariable Long dictId) { return R.ok(dictTypeService.selectDictTypeById(dictId)); } @@ -85,11 +92,13 @@ public class SysDictTypeController extends BaseController { /** * 删除字典类型 + * + * @param dictIds 字典ID串 */ @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") - public R remove(@Parameter(name = "字典ID串") @PathVariable Long[] dictIds) { + public R remove(@PathVariable Long[] dictIds) { dictTypeService.deleteDictTypeByIds(dictIds); return R.ok(); } 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 4cd9053d4..10b9dce6d 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 @@ -33,7 +33,7 @@ import java.util.Set; * @author Lion Li */ @Validated -@Tag(name ="登录验证控制器", description = "登录验证管理") +@Tag(name = "登录验证控制器", description = "登录验证管理") @RequiredArgsConstructor @RestController public class SysLoginController { @@ -92,6 +92,9 @@ public class SysLoginController { return R.ok(ajax); } + /** + * 退出登录 + */ @Anonymous @PostMapping("/logout") public R logout() { 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 1e87e6707..713dfbe79 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysMenuService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -26,7 +25,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name ="菜单信息控制器", description = "菜单信息管理") +@Tag(name = "菜单信息控制器", description = "菜单信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/menu") @@ -46,10 +45,12 @@ public class SysMenuController extends BaseController { /** * 根据菜单编号获取详细信息 + * + * @param menuId 菜单ID */ @SaCheckPermission("system:menu:query") @GetMapping(value = "/{menuId}") - public R getInfo(@Parameter(name = "菜单ID") @PathVariable Long menuId) { + public R getInfo(@PathVariable Long menuId) { return R.ok(menuService.selectMenuById(menuId)); } @@ -64,9 +65,11 @@ public class SysMenuController extends BaseController { /** * 加载对应角色菜单列表树 + * + * @param roleId 角色ID */ @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public R> roleMenuTreeselect(@Parameter(name = "角色ID") @PathVariable("roleId") Long roleId) { + public R> roleMenuTreeselect(@PathVariable("roleId") Long roleId) { List menus = menuService.selectMenuList(getUserId()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); @@ -108,11 +111,13 @@ public class SysMenuController extends BaseController { /** * 删除菜单 + * + * @param menuId 菜单ID */ @SaCheckPermission("system:menu:remove") @Log(title = "菜单管理", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") - public R remove(@Parameter(name = "菜单ID") @PathVariable("menuId") Long menuId) { + public R remove(@PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { return R.fail("存在子菜单,不允许删除"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 10a8371c7..0e2eb58ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -9,7 +9,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.service.ISysNoticeService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -21,7 +20,7 @@ import org.springframework.web.bind.annotation.*; * @author Lion Li */ @Validated -@Tag(name ="公告信息控制器", description = "公告信息管理") +@Tag(name = "公告信息控制器", description = "公告信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/notice") @@ -40,10 +39,12 @@ public class SysNoticeController extends BaseController { /** * 根据通知公告编号获取详细信息 + * + * @param noticeId 公告ID */ @SaCheckPermission("system:notice:query") @GetMapping(value = "/{noticeId}") - public R getInfo(@Parameter(name = "公告ID") @PathVariable Long noticeId) { + public R getInfo(@PathVariable Long noticeId) { return R.ok(noticeService.selectNoticeById(noticeId)); } @@ -69,11 +70,13 @@ public class SysNoticeController extends BaseController { /** * 删除通知公告 + * + * @param noticeIds 公告ID串 */ @SaCheckPermission("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @DeleteMapping("/{noticeIds}") - public R remove(@Parameter(name = "公告ID串") @PathVariable Long[] noticeIds) { + public R remove(@PathVariable Long[] noticeIds) { return toAjax(noticeService.deleteNoticeByIds(noticeIds)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index 023f349c1..c9afca001 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -14,7 +14,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.service.ISysOssConfigService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -25,14 +24,14 @@ import javax.validation.constraints.NotNull; import java.util.Arrays; /** - * 对象存储配置Controller + * 对象存储配置 * * @author Lion Li * @author 孤舟烟雨 * @date 2021-08-13 */ @Validated -@Tag(name ="对象存储配置控制器", description = "对象存储配置管理") +@Tag(name = "对象存储配置控制器", description = "对象存储配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss/config") @@ -51,12 +50,13 @@ public class SysOssConfigController extends BaseController { /** * 获取对象存储配置详细信息 + * + * @param ossConfigId OSS配置ID */ @SaCheckPermission("system:oss:query") @GetMapping("/{ossConfigId}") - public R getInfo(@Parameter(name = "OSS配置ID") - @NotNull(message = "主键不能为空") - @PathVariable("ossConfigId") Long ossConfigId) { + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long ossConfigId) { return R.ok(iSysOssConfigService.queryById(ossConfigId)); } @@ -84,13 +84,14 @@ public class SysOssConfigController extends BaseController { /** * 删除对象存储配置 + * + * @param ossConfigIds OSS配置ID串 */ @SaCheckPermission("system:oss:remove") @Log(title = "对象存储配置", businessType = BusinessType.DELETE) @DeleteMapping("/{ossConfigIds}") - public R remove(@Parameter(name = "OSS配置ID串") - @NotEmpty(message = "主键不能为空") - @PathVariable Long[] ossConfigIds) { + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossConfigIds) { return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index e40c2f5d7..85faa1687 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -19,9 +19,6 @@ import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; import com.ruoyi.system.service.ISysOssService; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; @@ -43,7 +40,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name ="对象存储控制器", description = "对象存储管理") +@Tag(name = "对象存储控制器", description = "对象存储管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss") @@ -62,25 +59,25 @@ public class SysOssController extends BaseController { /** * 查询OSS对象基于id串 + * + * @param ossIds OSS对象ID串 */ @SaCheckPermission("system:oss:list") @GetMapping("/listByIds/{ossIds}") - public R> listByIds(@Parameter(name = "OSS对象ID串") - @NotEmpty(message = "主键不能为空") - @PathVariable Long[] ossIds) { + public R> listByIds(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossIds) { List list = iSysOssService.listByIds(Arrays.asList(ossIds)); return R.ok(list); } /** * 上传OSS对象存储 + * + * @param file 文件 */ - @Parameters({ - @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) - }) @SaCheckPermission("system:oss:upload") @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) - @PostMapping("/upload") + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R> upload(@RequestPart("file") MultipartFile file) { if (ObjectUtil.isNull(file)) { throw new ServiceException("上传文件不能为空"); @@ -93,9 +90,14 @@ public class SysOssController extends BaseController { return R.ok(map); } + /** + * 下载OSS对象 + * + * @param ossId OSS对象ID + */ @SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") - public void download(@Parameter(name = "OSS对象ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException { + public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { SysOss sysOss = iSysOssService.getById(ossId); if (ObjectUtil.isNull(sysOss)) { throw new ServiceException("文件数据不存在!"); @@ -118,13 +120,14 @@ public class SysOssController extends BaseController { /** * 删除OSS对象存储 + * + * @param ossIds OSS对象ID串 */ @SaCheckPermission("system:oss:remove") @Log(title = "OSS对象存储", businessType = BusinessType.DELETE) @DeleteMapping("/{ossIds}") - public R remove(@Parameter(name = "OSS对象ID串") - @NotEmpty(message = "主键不能为空") - @PathVariable Long[] ossIds) { + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossIds) { return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index a78ac4bfd..5feaa6cb4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -43,6 +42,9 @@ public class SysPostController extends BaseController { return postService.selectPagePostList(post, pageQuery); } + /** + * 导出岗位列表 + */ @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:post:export") @PostMapping("/export") @@ -53,10 +55,12 @@ public class SysPostController extends BaseController { /** * 根据岗位编号获取详细信息 + * + * @param postId 岗位ID */ @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") - public R getInfo(@Parameter(name = "岗位ID") @PathVariable Long postId) { + public R getInfo(@PathVariable Long postId) { return R.ok(postService.selectPostById(postId)); } @@ -92,11 +96,13 @@ public class SysPostController extends BaseController { /** * 删除岗位 + * + * @param postIds 岗位ID串 */ @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") - public R remove(@Parameter(name = "岗位ID串") @PathVariable Long[] postIds) { + public R remove(@PathVariable Long[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index bb63b0728..ee45ac2c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -14,11 +14,9 @@ import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -33,7 +31,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name ="个人信息控制器", description = "个人信息管理") +@Tag(name = "个人信息控制器", description = "个人信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user/profile") @@ -80,11 +78,10 @@ public class SysProfileController extends BaseController { /** * 重置密码 + * + * @param newPassword 旧密码 + * @param oldPassword 新密码 */ - @Parameters({ - @Parameter(name = "oldPassword", description = "旧密码", in = ParameterIn.QUERY), - @Parameter(name = "newPassword", description = "新密码", in = ParameterIn.QUERY) - }) @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") public R updatePwd(String oldPassword, String newPassword) { @@ -106,20 +103,19 @@ public class SysProfileController extends BaseController { /** * 头像上传 + * + * @param avatarfile 用户头像 */ - @Parameters({ - @Parameter(name = "avatarfile", description = "用户头像", in = ParameterIn.QUERY, required = true) - }) @Log(title = "用户头像", businessType = BusinessType.UPDATE) - @PostMapping("/avatar") - public R> avatar(@RequestPart("avatarfile") MultipartFile file) { + @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R> avatar(@RequestPart("avatarfile") MultipartFile avatarfile) { Map ajax = new HashMap<>(); - if (!file.isEmpty()) { - String extension = FileUtil.extName(file.getOriginalFilename()); + if (!avatarfile.isEmpty()) { + String extension = FileUtil.extName(avatarfile.getOriginalFilename()); if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { return R.fail("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式"); } - SysOss oss = iSysOssService.upload(file); + SysOss oss = iSysOssService.upload(avatarfile); String avatar = oss.getUrl(); if (userService.updateUserAvatar(getUsername(), avatar)) { ajax.put("imgUrl", avatar); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index cc0596036..79b5d8602 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController; * @author Lion Li */ @Validated -@Tag(name ="注册验证控制器", description = "注册验证管理") +@Tag(name = "注册验证控制器", description = "注册验证管理") @RequiredArgsConstructor @RestController public class SysRegisterController extends BaseController { @@ -27,6 +27,9 @@ public class SysRegisterController extends BaseController { private final SysRegisterService registerService; private final ISysConfigService configService; + /** + * 用户注册 + */ @Anonymous @PostMapping("/register") public R register(@Validated @RequestBody RegisterBody user) { 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 fc0e5a7d0..31694b04e 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 @@ -18,9 +18,6 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -35,7 +32,7 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="角色信息控制器", description = "角色信息管理") +@Tag(name = "角色信息控制器", description = "角色信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/role") @@ -45,12 +42,18 @@ public class SysRoleController extends BaseController { private final ISysUserService userService; private final SysPermissionService permissionService; + /** + * 获取角色信息列表 + */ @SaCheckPermission("system:role:list") @GetMapping("/list") public TableDataInfo list(SysRole role, PageQuery pageQuery) { return roleService.selectPageRoleList(role, pageQuery); } + /** + * 导出角色信息列表 + */ @Log(title = "角色管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:role:export") @PostMapping("/export") @@ -61,10 +64,12 @@ public class SysRoleController extends BaseController { /** * 根据角色编号获取详细信息 + * + * @param roleId 角色ID */ @SaCheckPermission("system:role:query") @GetMapping(value = "/{roleId}") - public R getInfo(@Parameter(name = "角色ID") @PathVariable Long roleId) { + public R getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); return R.ok(roleService.selectRoleById(roleId)); } @@ -139,11 +144,13 @@ public class SysRoleController extends BaseController { /** * 删除角色 + * + * @param roleIds 角色ID串 */ @SaCheckPermission("system:role:remove") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") - public R remove(@Parameter(name = "角色ID串") @PathVariable Long[] roleIds) { + public R remove(@PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); } @@ -186,11 +193,10 @@ public class SysRoleController extends BaseController { /** * 批量取消授权用户 + * + * @param roleId 角色ID + * @param userIds 用户ID串 */ - @Parameters({ - @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), - @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) - }) @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancelAll") @@ -200,11 +206,10 @@ public class SysRoleController extends BaseController { /** * 批量选择用户授权 + * + * @param roleId 角色ID + * @param userIds 用户ID串 */ - @Parameters({ - @Parameter(name = "roleId", description = "角色ID", in = ParameterIn.QUERY), - @Parameter(name = "userIds", description = "用户ID串", in = ParameterIn.QUERY) - }) @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/selectAll") 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 cb564b6cd..c32af70b9 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 @@ -26,11 +26,9 @@ import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -47,7 +45,7 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name ="用户信息控制器", description = "用户信息管理") +@Tag(name = "用户信息控制器", description = "用户信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user") @@ -66,6 +64,9 @@ public class SysUserController extends BaseController { return userService.selectPageUserList(user, pageQuery); } + /** + * 导出用户列表 + */ @Log(title = "用户管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:user:export") @PostMapping("/export") @@ -83,17 +84,23 @@ public class SysUserController extends BaseController { ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); } - @Parameters({ - @Parameter(name = "file", description = "导入文件", required = true), - }) + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ @Log(title = "用户管理", businessType = BusinessType.IMPORT) @SaCheckPermission("system:user:import") - @PostMapping("/importData") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); return R.ok(result.getAnalysis()); } + /** + * 获取导入模板 + */ @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); @@ -101,10 +108,12 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取详细信息 + * + * @param userId 用户ID */ @SaCheckPermission("system:user:query") @GetMapping(value = {"/", "/{userId}"}) - public R> getInfo(@Parameter(name = "用户ID") @PathVariable(value = "userId", required = false) Long userId) { + public R> getInfo(@PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); List roles = roleService.selectRoleAll(); @@ -160,11 +169,13 @@ public class SysUserController extends BaseController { /** * 删除用户 + * + * @param userIds 角色ID串 */ @SaCheckPermission("system:user:remove") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public R remove(@Parameter(name = "角色ID串") @PathVariable Long[] userIds) { + public R remove(@PathVariable Long[] userIds) { if (ArrayUtil.contains(userIds, getUserId())) { return R.fail("当前用户不能删除"); } @@ -198,10 +209,12 @@ public class SysUserController extends BaseController { /** * 根据用户编号获取授权角色 + * + * @param userId 用户ID */ @SaCheckPermission("system:user:query") @GetMapping("/authRole/{userId}") - public R> authRole(@Parameter(name = "用户ID") @PathVariable("userId") Long userId) { + public R> authRole(@PathVariable Long userId) { SysUser user = userService.selectUserById(userId); List roles = roleService.selectRolesByUserId(userId); Map ajax = new HashMap<>(); @@ -212,11 +225,10 @@ public class SysUserController extends BaseController { /** * 用户授权角色 + * + * @param userId 用户Id + * @param roleIds 角色ID串 */ - @Parameters({ - @Parameter(name = "userId", description = "用户Id", in = ParameterIn.QUERY), - @Parameter(name = "roleIds", description = "角色ID串", in = ParameterIn.QUERY) - }) @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 3c11d01c0..74d251b63 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -206,13 +206,8 @@ springdoc: swagger-ui: # 修改Swagger UI路径 path: /doc.html - # 开启Swagger UI界面 - enabled: true - api-docs: - # 修改api-docs路径 - path: /v3/api-docs - # 开启api-docs - enabled: true + # 持久化认证数据 + persistAuthorization: true #这里定义了两个分组,可定义多个,也可以不定义 group-configs: - group: 1.演示模块 diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java index d86289d24..ddfca7fb5 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.email.MailUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -19,25 +18,35 @@ import java.io.File; * @author Michelle.Chung */ @Validated -@Tag(name ="邮件发送案例", description = "邮件发送案例") +@Tag(name = "邮件发送案例", description = "邮件发送案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/mail") public class MailController { + /** + * 发送邮件 + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + */ @GetMapping("/sendSimpleMessage") - public R sendSimpleMessage(@Parameter(name = "接收人") String to, - @Parameter(name = "标题") String subject, - @Parameter(name = "内容") String text) { + public R sendSimpleMessage(String to, String subject, String text) { MailUtils.sendText(to, subject, text); return R.ok(); } + /** + * 发送邮件(带附件) + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + * @param filePath 附件路径 + */ @GetMapping("/sendMessageWithAttachment") - public R sendMessageWithAttachment(@Parameter(name = "接收人") String to, - @Parameter(name = "标题") String subject, - @Parameter(name = "内容") String text, - @Parameter(name = "附件路径") String filePath) { + public R sendMessageWithAttachment(String to, String subject, String text, String filePath) { MailUtils.sendText(to, subject, text, new File(filePath)); return R.ok(); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java index c2baa71e7..a345167cd 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; @@ -21,7 +20,7 @@ import java.time.Duration; */ // 类级别 缓存统一配置 //@CacheConfig(cacheNames = "redissonCacheMap") -@Tag(name ="spring-cache 演示案例", description = "spring-cache 演示案例") +@Tag(name = "spring-cache 演示案例", description = "spring-cache 演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/cache") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java index 0e1bb8428..69d231d59 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java @@ -20,7 +20,7 @@ import java.time.LocalTime; * * @author shenxinquan */ -@Tag(name ="测试分布式锁的样例", description = "测试分布式锁的样例") +@Tag(name = "测试分布式锁的样例", description = "测试分布式锁的样例") @Slf4j @RestController @RequestMapping("/demo/redisLock") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java index 344abc142..dae10364e 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; @@ -14,22 +13,33 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Tag(name ="Redis发布订阅 演示案例", description = "Redis发布订阅") +@Tag(name = "Redis发布订阅 演示案例", description = "Redis发布订阅") @RequiredArgsConstructor @RestController @RequestMapping("/demo/redis/pubsub") public class RedisPubSubController { + /** + * 发布消息 + * + * @param key 通道Key + * @param value 发送内容 + */ @GetMapping("/pub") - public R pub(@Parameter(name = "通道Key") String key, @Parameter(name = "发送内容") String value) { + public R pub(String key, String value) { RedisUtils.publish(key, value, consumer -> { System.out.println("发布通道 => " + key + ", 发送值 => " + value); }); return R.ok("操作成功"); } + /** + * 订阅消息 + * + * @param key 通道Key + */ @GetMapping("/sub") - public R sub(@Parameter(name = "通道Key") String key) { + public R sub(String key) { RedisUtils.subscribe(key, String.class, msg -> { System.out.println("订阅通道 => " + key + ", 接收值 => " + msg); }); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java index abb59ace9..39e50348c 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Tag(name ="测试分布式限流样例", description = "测试分布式限流样例") +@Tag(name = "测试分布式限流样例", description = "测试分布式限流样例") @Slf4j @RestController @RequestMapping("/demo/rateLimiter") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java index a9c806174..a9c38a7f6 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java @@ -4,7 +4,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -23,7 +22,7 @@ import java.util.Map; * @version 4.2.0 */ @Validated -@Tag(name ="短信演示案例", description = "短信演示案例") +@Tag(name = "短信演示案例", description = "短信演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/sms") @@ -33,9 +32,14 @@ public class SmsController { // private final SmsTemplate smsTemplate; // 可以使用spring注入 // private final AliyunSmsTemplate smsTemplate; // 也可以注入某个厂家的模板工具 + /** + * 发送短信Aliyun + * + * @param phones 电话号 + * @param templateId 模板ID + */ @GetMapping("/sendAliyun") - public R sendAliyun(@Parameter(name = "电话号") String phones, - @Parameter(name = "模板ID") String templateId) { + public R sendAliyun(String phones, String templateId) { if (!smsProperties.getEnabled()) { return R.fail("当前系统没有开启短信功能!"); } @@ -49,9 +53,14 @@ public class SmsController { return R.ok(send); } + /** + * 发送短信Tencent + * + * @param phones 电话号 + * @param templateId 模板ID + */ @GetMapping("/sendTencent") - public R sendTencent(@Parameter(name = "电话号") String phones, - @Parameter(name = "模板ID") String templateId) { + public R sendTencent(String phones, String templateId) { if (!smsProperties.getEnabled()) { return R.fail("当前系统没有开启短信功能!"); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java index af0e104ab..b044277d2 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java @@ -1,10 +1,8 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; @@ -16,7 +14,7 @@ import org.springframework.web.multipart.MultipartFile; * * @author Lion Li */ -@Tag(name ="演示swagger3控制器", description = "演示swagger3接口") +@Tag(name = "演示swagger3控制器", description = "演示swagger3接口") @RestController @RequestMapping("/swagger/demo") public class Swagger3DemoController { @@ -24,11 +22,10 @@ public class Swagger3DemoController { /** * 上传请求 * 必须使用 @RequestPart 注解标注为文件 + * + * @param file 文件 */ - @Parameters({ - @Parameter(name = "file", description = "文件", in = ParameterIn.QUERY, required = true) - }) - @PostMapping(value = "/upload") + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R upload(@RequestPart("file") MultipartFile file) { return R.ok("操作成功", file.getOriginalFilename()); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index e821eaac6..6f5e85031 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -21,7 +21,7 @@ import java.util.List; * @author Lion Li * @date 2021-05-30 */ -@Tag(name ="测试批量方法", description = "测试批量方法") +@Tag(name = "测试批量方法", description = "测试批量方法") @RequiredArgsConstructor @RestController @RequestMapping("/demo/batch") @@ -65,7 +65,8 @@ public class TestBatchController extends BaseController { testDemo.setOrderNum(-1); testDemo.setTestKey("批量新增"); testDemo.setValue("测试新增"); - list.add(testDemo); } + list.add(testDemo); + } testDemoMapper.insertBatch(list); for (int i = 0; i < list.size(); i++) { TestDemo testDemo = list.get(i); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index 50bcbd073..b4b977a84 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -20,11 +20,9 @@ import com.ruoyi.demo.domain.bo.TestDemoBo; import com.ruoyi.demo.domain.bo.TestDemoImportVo; import com.ruoyi.demo.domain.vo.TestDemoVo; import com.ruoyi.demo.service.ITestDemoService; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -43,7 +41,7 @@ import java.util.concurrent.TimeUnit; * @date 2021-07-26 */ @Validated -@Tag(name ="测试单表控制器", description = "测试单表管理") +@Tag(name = "测试单表控制器", description = "测试单表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/demo") @@ -69,12 +67,14 @@ public class TestDemoController extends BaseController { return iTestDemoService.customPageList(bo, pageQuery); } - @Parameters({ - @Parameter(name = "file", description = "导入文件", in = ParameterIn.QUERY, required = true), - }) + /** + * 导入数据 + * + * @param file 导入文件 + */ @Log(title = "测试单表", businessType = BusinessType.IMPORT) @SaCheckPermission("demo:demo:import") - @PostMapping("/importData") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file) throws Exception { ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); List volist = excelResult.getList(); @@ -100,12 +100,13 @@ public class TestDemoController extends BaseController { /** * 获取测试单表详细信息 + * + * @param id 测试ID */ @SaCheckPermission("demo:demo:query") @GetMapping("/{id}") - public R getInfo(@Parameter(name = "测试ID") - @NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { return R.ok(iTestDemoService.queryById(id)); } @@ -136,13 +137,14 @@ public class TestDemoController extends BaseController { /** * 删除测试单表 + * + * @param ids 测试ID串 */ @SaCheckPermission("demo:demo:remove") @Log(title = "测试单表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public R remove(@Parameter(name = "测试ID串") - @NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); } } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java index b241cc80d..95d307b02 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java @@ -20,7 +20,7 @@ import java.util.Map; * * @author Lion Li */ -@Tag(name ="测试Excel功能", description = "测试Excel功能") +@Tag(name = "测试Excel功能", description = "测试Excel功能") @RestController @RequestMapping("/demo/excel") public class TestExcelController { @@ -30,18 +30,18 @@ public class TestExcelController { */ @GetMapping("/exportTemplateOne") public void exportTemplateOne(HttpServletResponse response) { - Map map = new HashMap<>(); - map.put("title","单列表多数据"); - map.put("test1","数据测试1"); - map.put("test2","数据测试2"); - map.put("test3","数据测试3"); - map.put("test4","数据测试4"); - map.put("testTest","666"); + Map map = new HashMap<>(); + map.put("title", "单列表多数据"); + map.put("test1", "数据测试1"); + map.put("test2", "数据测试2"); + map.put("test3", "数据测试3"); + map.put("test4", "数据测试4"); + map.put("testTest", "666"); List list = new ArrayList<>(); list.add(new TestObj("单列表测试1", "列表测试1", "列表测试2", "列表测试3", "列表测试4")); list.add(new TestObj("单列表测试2", "列表测试5", "列表测试6", "列表测试7", "列表测试8")); list.add(new TestObj("单列表测试3", "列表测试9", "列表测试10", "列表测试11", "列表测试12")); - ExcelUtil.exportTemplate(CollUtil.newArrayList(map,list),"单列表.xlsx", "excel/单列表.xlsx", response); + ExcelUtil.exportTemplate(CollUtil.newArrayList(map, list), "单列表.xlsx", "excel/单列表.xlsx", response); } /** @@ -49,12 +49,12 @@ public class TestExcelController { */ @GetMapping("/exportTemplateMuliti") public void exportTemplateMuliti(HttpServletResponse response) { - Map map = new HashMap<>(); - map.put("title1","标题1"); - map.put("title2","标题2"); - map.put("title3","标题3"); - map.put("title4","标题4"); - map.put("author","Lion Li"); + Map map = new HashMap<>(); + map.put("title1", "标题1"); + map.put("title2", "标题2"); + map.put("title3", "标题3"); + map.put("title4", "标题4"); + map.put("author", "Lion Li"); List list1 = new ArrayList<>(); list1.add(new TestObj1("list1测试1", "list1测试2", "list1测试3")); list1.add(new TestObj1("list1测试4", "list1测试5", "list1测试6")); @@ -69,12 +69,12 @@ public class TestExcelController { list4.add(new TestObj1("list4测试4", "list4测试5", "list4测试6")); list4.add(new TestObj1("list4测试7", "list4测试8", "list4测试9")); list4.add(new TestObj1("list4测试10", "list4测试11", "list4测试12")); - Map multiListMap = new HashMap<>(); - multiListMap.put("map",map); - multiListMap.put("data1",list1); - multiListMap.put("data2",list2); - multiListMap.put("data3",list3); - multiListMap.put("data4",list4); + Map multiListMap = new HashMap<>(); + multiListMap.put("map", map); + multiListMap.put("data1", list1); + multiListMap.put("data2", list2); + multiListMap.put("data3", list3); + multiListMap.put("data4", list4); ExcelUtil.exportTemplateMultiList(multiListMap, "多列表.xlsx", "excel/多列表.xlsx", response); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index a0044630d..adb7f6f0b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.MessageUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.hibernate.validator.constraints.Range; @@ -21,7 +20,7 @@ import javax.validation.constraints.NotNull; * @author Lion Li */ @Validated -@Tag(name ="测试国际化控制器", description = "测试国际化管理") +@Tag(name = "测试国际化控制器", description = "测试国际化管理") @RestController @RequestMapping("/demo/i18n") public class TestI18nController { @@ -31,9 +30,11 @@ public class TestI18nController { * code为 messages.properties 中的 key *

    * 测试使用 user.register.success + * + * @param code 国际化code */ @GetMapping() - public R get(@Parameter(name = "国际化code") String code) { + public R get(String code) { return R.ok(MessageUtils.message(code)); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java index 9b7f34aaa..53a56d88b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java @@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 * @see com.ruoyi.common.core.service.SensitiveService */ -@Tag(name ="测试数据脱敏控制器", description = "测试数据脱敏管理") +@Tag(name = "测试数据脱敏控制器", description = "测试数据脱敏管理") @RestController @RequestMapping("/demo/sensitive") public class TestSensitiveController extends BaseController { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index c6bad6774..38e314b6b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -13,7 +13,6 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.demo.domain.bo.TestTreeBo; import com.ruoyi.demo.domain.vo.TestTreeVo; import com.ruoyi.demo.service.ITestTreeService; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -32,7 +31,7 @@ import java.util.List; * @date 2021-07-26 */ @Validated -@Tag(name ="测试树表控制器", description = "测试树表管理") +@Tag(name = "测试树表控制器", description = "测试树表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/tree") @@ -63,12 +62,13 @@ public class TestTreeController extends BaseController { /** * 获取测试树表详细信息 + * + * @param id 测试树ID */ @SaCheckPermission("demo:tree:query") @GetMapping("/{id}") - public R getInfo(@Parameter(name = "测试树ID") - @NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { return R.ok(iTestTreeService.queryById(id)); } @@ -96,13 +96,14 @@ public class TestTreeController extends BaseController { /** * 删除测试树表 + * + * @param ids 测试树ID串 */ @SaCheckPermission("demo:tree:remove") @Log(title = "测试树表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public R remove(@Parameter(name = "测试树ID串") - @NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); } } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java index a940c2ccf..6f921f55a 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -22,16 +21,21 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Tag(name ="有界队列 演示案例", description = "有界队列") +@Tag(name = "有界队列 演示案例", description = "有界队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/bounded") public class BoundedQueueController { + /** + * 添加队列数据 + * + * @param queueName 队列名 + * @param capacity 容量 + */ @GetMapping("/add") - public R add(@Parameter(name = "队列名") String queueName, - @Parameter(name = "容量") int capacity) { + public R add(String queueName, int capacity) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyBoundedQueueObject(queueName); log.info("通道: {} , 删除: {}", queueName, b); @@ -54,8 +58,13 @@ public class BoundedQueueController { return R.ok("操作成功"); } + /** + * 删除队列数据 + * + * @param queueName 队列名 + */ @GetMapping("/remove") - public R remove(@Parameter(name = "队列名") String queueName) { + public R remove(String queueName) { String data = "data-" + 5; if (QueueUtils.removeBoundedQueueObject(queueName, data)) { log.info("通道: {} , 删除数据: {}", queueName, data); @@ -65,8 +74,13 @@ public class BoundedQueueController { return R.ok("操作成功"); } + /** + * 获取队列数据 + * + * @param queueName 队列名 + */ @GetMapping("/get") - public R get(@Parameter(name = "队列名") String queueName) { + public R get(String queueName) { String data; do { data = QueueUtils.getBoundedQueueObject(queueName); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index 0abcc4bea..32067e530 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -25,14 +24,19 @@ import java.util.concurrent.TimeUnit; * @version 3.6.0 */ @Slf4j -@Tag(name ="延迟队列 演示案例", description = "延迟队列") +@Tag(name = "延迟队列 演示案例", description = "延迟队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/delayed") public class DelayedQueueController { + /** + * 订阅队列 + * + * @param queueName 队列名 + */ @GetMapping("/subscribe") - public R subscribe(@Parameter(name = "队列名") String queueName) { + public R subscribe(String queueName) { log.info("通道: {} 监听中......", queueName); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { @@ -42,19 +46,29 @@ public class DelayedQueueController { return R.ok("操作成功"); } + /** + * 添加队列数据 + * + * @param queueName 队列名 + * @param orderNum 订单号 + * @param time 延迟时间(秒) + */ @GetMapping("/add") - public R add(@Parameter(name = "队列名") String queueName, - @Parameter(name = "订单号") String orderNum, - @Parameter(name = "延迟时间(秒)") Long time) { + public R add(String queueName, String orderNum, Long time) { QueueUtils.addDelayedQueueObject(queueName, orderNum, time, TimeUnit.SECONDS); // 观察发送时间 log.info("通道: {} , 发送数据: {}", queueName, orderNum); return R.ok("操作成功"); } + /** + * 删除队列数据 + * + * @param queueName 队列名 + * @param orderNum 订单号 + */ @GetMapping("/remove") - public R remove(@Parameter(name = "队列名") String queueName, - @Parameter(name = "订单号") String orderNum) { + public R remove(String queueName, String orderNum) { if (QueueUtils.removeDelayedQueueObject(queueName, orderNum)) { log.info("通道: {} , 删除数据: {}", queueName, orderNum); } else { @@ -63,8 +77,13 @@ public class DelayedQueueController { return R.ok("操作成功"); } + /** + * 销毁队列 + * + * @param queueName 队列名 + */ @GetMapping("/destroy") - public R destroy(@Parameter(name = "队列名") String queueName) { + public R destroy(String queueName) { // 用完了一定要销毁 否则会一直存在 QueueUtils.destroyDelayedQueue(queueName); return R.ok("操作成功"); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java index 1651631f1..1e7425f49 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.controller.queue; import cn.hutool.core.util.RandomUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -23,14 +22,19 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Tag(name ="优先队列 演示案例", description = "优先队列") +@Tag(name = "优先队列 演示案例", description = "优先队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/priority") public class PriorityQueueController { + /** + * 添加队列数据 + * + * @param queueName 队列名 + */ @GetMapping("/add") - public R add(@Parameter(name = "队列名") String queueName) { + public R add(String queueName) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyPriorityQueueObject(queueName); log.info("通道: {} , 删除: {}", queueName, b); @@ -56,10 +60,15 @@ public class PriorityQueueController { return R.ok("操作成功"); } + /** + * 删除队列数据 + * + * @param queueName 队列名 + * @param name 对象名 + * @param orderNum 排序号 + */ @GetMapping("/remove") - public R remove(@Parameter(name = "队列名") String queueName, - @Parameter(name = "对象名") String name, - @Parameter(name = "排序号") Integer orderNum) { + public R remove(String queueName, String name, Integer orderNum) { PriorityDemo data = new PriorityDemo(); data.setName(name); data.setOrderNum(orderNum); @@ -71,8 +80,13 @@ public class PriorityQueueController { return R.ok("操作成功"); } + /** + * 获取队列数据 + * + * @param queueName 队列名 + */ @GetMapping("/get") - public R get(@Parameter(name = "队列名") String queueName) { + public R get(String queueName) { PriorityDemo data; do { data = QueueUtils.getPriorityQueueObject(queueName); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java index c677378a0..271f01ff3 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java @@ -3,6 +3,7 @@ package com.ruoyi.framework.config; import com.ruoyi.framework.config.properties.SwaggerProperties; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; import lombok.RequiredArgsConstructor; import org.springdoc.core.SpringDocConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; @@ -11,6 +12,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.ArrayList; +import java.util.List; + /** * Swagger 文档配置 * @@ -37,6 +41,9 @@ public class SwaggerConfig { openApi.tags(swaggerProperties.getTags()); openApi.paths(swaggerProperties.getPaths()); openApi.components(swaggerProperties.getComponents()); + List list = new ArrayList<>(); + list.add(new SecurityRequirement().addList("apikey")); + openApi.security(list); return openApi; } 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 d8c405e11..7a20df1ad 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 @@ -48,6 +48,8 @@ public class GenController extends BaseController { /** * 修改代码生成业务 + * + * @param tableId 表ID */ @SaCheckPermission("tool:gen:query") @GetMapping(value = "/{tableId}") @@ -73,6 +75,8 @@ public class GenController extends BaseController { /** * 查询数据表字段列表 + * + * @param tableId 表ID */ @SaCheckPermission("tool:gen:list") @GetMapping(value = "/column/{tableId}") @@ -86,6 +90,8 @@ public class GenController extends BaseController { /** * 导入表结构(保存) + * + * @param tables 表名串 */ @SaCheckPermission("tool:gen:import") @Log(title = "代码生成", businessType = BusinessType.IMPORT) @@ -112,6 +118,8 @@ public class GenController extends BaseController { /** * 删除代码生成 + * + * @param tableIds 表ID串 */ @SaCheckPermission("tool:gen:remove") @Log(title = "代码生成", businessType = BusinessType.DELETE) @@ -123,6 +131,8 @@ public class GenController extends BaseController { /** * 预览代码 + * + * @param tableId 表ID */ @SaCheckPermission("tool:gen:preview") @GetMapping("/preview/{tableId}") @@ -133,6 +143,8 @@ public class GenController extends BaseController { /** * 生成代码(下载方式) + * + * @param tableName 表名 */ @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @@ -144,6 +156,8 @@ public class GenController extends BaseController { /** * 生成代码(自定义路径) + * + * @param tableName 表名 */ @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @@ -155,6 +169,8 @@ public class GenController extends BaseController { /** * 同步数据库 + * + * @param tableName 表名 */ @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @@ -166,6 +182,8 @@ public class GenController extends BaseController { /** * 批量生成代码 + * + * @param tables 表名串 */ @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 5b307640b..550be928a 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -73,12 +73,13 @@ public class ${ClassName}Controller extends BaseController { /** * 获取${functionName}详细信息 + * + * @param ${pkColumn.javaField} 主键 */ @SaCheckPermission("${permissionPrefix}:query") @GetMapping("/{${pkColumn.javaField}}") - public R<${ClassName}Vo> getInfo(@Parameter(name = "主键") - @NotNull(message = "主键不能为空") - @PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { + public R<${ClassName}Vo> getInfo(@NotNull(message = "主键不能为空") + @PathVariable ${pkColumn.javaType} ${pkColumn.javaField}) { return R.ok(i${ClassName}Service.queryById(${pkColumn.javaField})); } @@ -106,13 +107,14 @@ public class ${ClassName}Controller extends BaseController { /** * 删除${functionName} + * + * @param ${pkColumn.javaField}s 主键串 */ @SaCheckPermission("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") - public R remove(@Parameter(name = "主键串") - @NotEmpty(message = "主键不能为空") - @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true) ? 1 : 0); } } From 7f0432762534d1c2e742062d3ca67968a606086f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 8 Jul 2022 19:17:48 +0800 Subject: [PATCH 035/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20openapi=20=E5=A4=84=E7=90=86=E5=99=A8=20?= =?UTF-8?q?=E5=BD=BB=E5=BA=95=E5=AE=9E=E7=8E=B0=E9=9B=B6=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=E6=97=A0=E5=85=A5=E4=BE=B5=E7=94=9F=E6=88=90=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 15 +- .../controller/common/CaptchaController.java | 2 - .../controller/monitor/CacheController.java | 1 - .../monitor/SysLogininforController.java | 1 - .../monitor/SysOperlogController.java | 1 - .../monitor/SysUserOnlineController.java | 1 - .../system/SysConfigController.java | 1 - .../controller/system/SysDeptController.java | 1 - .../system/SysDictDataController.java | 2 - .../system/SysDictTypeController.java | 1 - .../controller/system/SysIndexController.java | 1 - .../controller/system/SysLoginController.java | 1 - .../controller/system/SysMenuController.java | 1 - .../system/SysNoticeController.java | 1 - .../system/SysOssConfigController.java | 1 - .../controller/system/SysOssController.java | 1 - .../controller/system/SysPostController.java | 2 - .../system/SysProfileController.java | 1 - .../system/SysRegisterController.java | 1 - .../controller/system/SysRoleController.java | 1 - .../controller/system/SysUserController.java | 1 - .../ruoyi/demo/controller/MailController.java | 1 - .../demo/controller/RedisCacheController.java | 1 - .../demo/controller/RedisLockController.java | 1 - .../controller/RedisPubSubController.java | 1 - .../RedisRateLimiterController.java | 1 - .../ruoyi/demo/controller/SmsController.java | 1 - .../controller/Swagger3DemoController.java | 1 - .../demo/controller/TestBatchController.java | 2 - .../demo/controller/TestDemoController.java | 1 - .../demo/controller/TestExcelController.java | 1 - .../demo/controller/TestI18nController.java | 1 - .../controller/TestSensitiveController.java | 2 - .../demo/controller/TestTreeController.java | 1 - .../queue/BoundedQueueController.java | 1 - .../queue/DelayedQueueController.java | 2 - .../queue/PriorityQueueController.java | 2 - .../ruoyi/framework/config/SwaggerConfig.java | 20 +- .../framework/handler/OpenApiHandler.java | 272 ++++++++++++++++++ .../generator/controller/GenController.java | 1 - .../main/resources/vm/java/controller.java.vm | 4 +- 41 files changed, 303 insertions(+), 52 deletions(-) create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java diff --git a/pom.xml b/pom.xml index 4f592194b..c5ed42bd6 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 3.2.2 2.2.2 1.2.11 - 3.0.3 + 1.6.9 1.5.22 5.2.2 3.1.1 @@ -37,6 +37,7 @@ 3.5.1 1.4.3 2.3.1 + 1.18.24 30.0-jre @@ -87,13 +88,19 @@ org.springdoc springdoc-openapi-ui - 1.6.9 + ${springdoc.version} org.springdoc springdoc-openapi-javadoc - 1.6.9 + ${springdoc.version} + + + + org.projectlombok + lombok + ${lombok.version} @@ -341,7 +348,7 @@ org.projectlombok lombok - 1.18.24 + ${lombok.version} org.springframework.boot diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index f2279dbef..f4e7dffe0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -19,7 +19,6 @@ import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; import com.ruoyi.sms.entity.SmsResult; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -39,7 +38,6 @@ import java.util.Map; @Anonymous @Slf4j @Validated -@Tag(name = "验证码操作处理", description = "验证码管理") @RequiredArgsConstructor @RestController public class CaptchaController { 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 849d7c3f1..1e116bcc7 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 @@ -19,7 +19,6 @@ import java.util.*; * * @author Lion Li */ -@Tag(name = "缓存监控", description = "缓存监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/cache") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index a58c54e34..0d50a6ed6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -24,7 +24,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "系统访问记录", description = "系统访问记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/logininfor") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 717696246..3684c2d39 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -24,7 +24,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "操作日志记录", description = "操作日志记录管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/operlog") 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 ec611caf2..1a42b4e51 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 @@ -28,7 +28,6 @@ import java.util.List; * * @author Lion Li */ -@Tag(name = "在线用户监控", description = "在线用户监控管理") @RequiredArgsConstructor @RestController @RequestMapping("/monitor/online") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index d2cdcb76a..b8cacca17 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -25,7 +25,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "参数配置控制器", description = "参数配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/config") 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 b17cf510f..916b124c0 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 @@ -26,7 +26,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "部门控制器", description = "部门管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dept") 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 6dfa05f8e..22a501738 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 @@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -27,7 +26,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/data") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index 3eb3480fe..ba2b0487d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -25,7 +25,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "数据字典信息控制器", description = "数据字典信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/dict/type") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 11d0d506f..5a9eba2ac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Tag(name ="首页控制器", description = "首页管理") @RequiredArgsConstructor @RestController public class SysIndexController { 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 10b9dce6d..2097825ee 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 @@ -33,7 +33,6 @@ import java.util.Set; * @author Lion Li */ @Validated -@Tag(name = "登录验证控制器", description = "登录验证管理") @RequiredArgsConstructor @RestController public class SysLoginController { 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 713dfbe79..faf68ce3b 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 @@ -25,7 +25,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "菜单信息控制器", description = "菜单信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/menu") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 0e2eb58ce..17e18bf0d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.*; * @author Lion Li */ @Validated -@Tag(name = "公告信息控制器", description = "公告信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/notice") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index c9afca001..d8c4c0d73 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -31,7 +31,6 @@ import java.util.Arrays; * @date 2021-08-13 */ @Validated -@Tag(name = "对象存储配置控制器", description = "对象存储配置管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss/config") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index 85faa1687..4092e4a2d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -40,7 +40,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "对象存储控制器", description = "对象存储管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/oss") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index 5feaa6cb4..656987776 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -25,7 +24,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name ="岗位信息控制器", description = "岗位信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/post") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index ee45ac2c3..eb926c788 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -31,7 +31,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "个人信息控制器", description = "个人信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user/profile") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index 79b5d8602..e45d8268c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController; * @author Lion Li */ @Validated -@Tag(name = "注册验证控制器", description = "注册验证管理") @RequiredArgsConstructor @RestController public class SysRegisterController extends BaseController { 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 31694b04e..5b6b88b9c 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 @@ -32,7 +32,6 @@ import java.util.List; * @author Lion Li */ @Validated -@Tag(name = "角色信息控制器", description = "角色信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/role") 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 c32af70b9..f7662e8d7 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 @@ -45,7 +45,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "用户信息控制器", description = "用户信息管理") @RequiredArgsConstructor @RestController @RequestMapping("/system/user") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java index ddfca7fb5..2eb8ea652 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java @@ -18,7 +18,6 @@ import java.io.File; * @author Michelle.Chung */ @Validated -@Tag(name = "邮件发送案例", description = "邮件发送案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/mail") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java index a345167cd..80c576cc0 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java @@ -20,7 +20,6 @@ import java.time.Duration; */ // 类级别 缓存统一配置 //@CacheConfig(cacheNames = "redissonCacheMap") -@Tag(name = "spring-cache 演示案例", description = "spring-cache 演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/cache") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java index 69d231d59..9b27b4450 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java @@ -20,7 +20,6 @@ import java.time.LocalTime; * * @author shenxinquan */ -@Tag(name = "测试分布式锁的样例", description = "测试分布式锁的样例") @Slf4j @RestController @RequestMapping("/demo/redisLock") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java index dae10364e..320d8e122 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Tag(name = "Redis发布订阅 演示案例", description = "Redis发布订阅") @RequiredArgsConstructor @RestController @RequestMapping("/demo/redis/pubsub") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java index 39e50348c..dae3e7293 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java @@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ -@Tag(name = "测试分布式限流样例", description = "测试分布式限流样例") @Slf4j @RestController @RequestMapping("/demo/rateLimiter") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java index a9c38a7f6..8547dd3fb 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java @@ -22,7 +22,6 @@ import java.util.Map; * @version 4.2.0 */ @Validated -@Tag(name = "短信演示案例", description = "短信演示案例") @RequiredArgsConstructor @RestController @RequestMapping("/demo/sms") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java index b044277d2..fdf965411 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java @@ -14,7 +14,6 @@ import org.springframework.web.multipart.MultipartFile; * * @author Lion Li */ -@Tag(name = "演示swagger3控制器", description = "演示swagger3接口") @RestController @RequestMapping("/swagger/demo") public class Swagger3DemoController { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index 6f5e85031..caed9756c 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.mapper.TestDemoMapper; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -21,7 +20,6 @@ import java.util.List; * @author Lion Li * @date 2021-05-30 */ -@Tag(name = "测试批量方法", description = "测试批量方法") @RequiredArgsConstructor @RestController @RequestMapping("/demo/batch") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index b4b977a84..77bb10e48 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -41,7 +41,6 @@ import java.util.concurrent.TimeUnit; * @date 2021-07-26 */ @Validated -@Tag(name = "测试单表控制器", description = "测试单表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/demo") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java index 95d307b02..454ceb701 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java @@ -20,7 +20,6 @@ import java.util.Map; * * @author Lion Li */ -@Tag(name = "测试Excel功能", description = "测试Excel功能") @RestController @RequestMapping("/demo/excel") public class TestExcelController { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index adb7f6f0b..cd44adb7e 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -20,7 +20,6 @@ import javax.validation.constraints.NotNull; * @author Lion Li */ @Validated -@Tag(name = "测试国际化控制器", description = "测试国际化管理") @RestController @RequestMapping("/demo/i18n") public class TestI18nController { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java index 53a56d88b..6bf904caf 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java @@ -4,7 +4,6 @@ import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.SensitiveStrategy; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 * @see com.ruoyi.common.core.service.SensitiveService */ -@Tag(name = "测试数据脱敏控制器", description = "测试数据脱敏管理") @RestController @RequestMapping("/demo/sensitive") public class TestSensitiveController extends BaseController { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index 38e314b6b..6a7a2ef87 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -31,7 +31,6 @@ import java.util.List; * @date 2021-07-26 */ @Validated -@Tag(name = "测试树表控制器", description = "测试树表管理") @RequiredArgsConstructor @RestController @RequestMapping("/demo/tree") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java index 6f921f55a..9fd8764d3 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java @@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Tag(name = "有界队列 演示案例", description = "有界队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/bounded") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index 32067e530..e6dbee863 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -24,7 +23,6 @@ import java.util.concurrent.TimeUnit; * @version 3.6.0 */ @Slf4j -@Tag(name = "延迟队列 演示案例", description = "延迟队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/delayed") diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java index 1e7425f49..ba6c340b6 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.controller.queue; import cn.hutool.core.util.RandomUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -22,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController; * @version 3.6.0 */ @Slf4j -@Tag(name = "优先队列 演示案例", description = "优先队列") @RequiredArgsConstructor @RestController @RequestMapping("/demo/queue/priority") diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java index 271f01ff3..6f7a8c840 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java @@ -1,11 +1,15 @@ package com.ruoyi.framework.config; import com.ruoyi.framework.config.properties.SwaggerProperties; +import com.ruoyi.framework.handler.OpenApiHandler; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import lombok.RequiredArgsConstructor; -import org.springdoc.core.SpringDocConfiguration; +import org.springdoc.core.*; +import org.springdoc.core.customizers.OpenApiBuilderCustomizer; +import org.springdoc.core.customizers.ServerBaseUrlCustomizer; +import org.springdoc.core.providers.JavadocProvider; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -14,6 +18,7 @@ import org.springframework.context.annotation.Configuration; import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** * Swagger 文档配置 @@ -57,4 +62,17 @@ public class SwaggerConfig { info.setVersion(infoProperties.getVersion()); return info; } + + /** + * 自定义 openapi 处理器 + */ + @Bean + public OpenAPIService openApiBuilder(Optional openAPI, + SecurityService securityParser, + SpringDocConfigProperties springDocConfigProperties, PropertyResolverUtils propertyResolverUtils, + Optional> openApiBuilderCustomisers, + Optional> serverBaseUrlCustomisers, Optional javadocProvider) { + return new OpenApiHandler(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomisers, serverBaseUrlCustomisers, javadocProvider); + } + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java new file mode 100644 index 000000000..608cae5de --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/OpenApiHandler.java @@ -0,0 +1,272 @@ +package com.ruoyi.framework.handler; + +import cn.hutool.core.io.IoUtil; +import io.swagger.v3.core.jackson.TypeNameResolver; +import io.swagger.v3.core.util.AnnotationsUtils; +import io.swagger.v3.oas.annotations.tags.Tags; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.Paths; +import io.swagger.v3.oas.models.tags.Tag; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springdoc.core.OpenAPIService; +import org.springdoc.core.PropertyResolverUtils; +import org.springdoc.core.SecurityService; +import org.springdoc.core.SpringDocConfigProperties; +import org.springdoc.core.customizers.OpenApiBuilderCustomizer; +import org.springdoc.core.customizers.ServerBaseUrlCustomizer; +import org.springdoc.core.providers.JavadocProvider; +import org.springframework.context.ApplicationContext; +import org.springframework.core.annotation.AnnotatedElementUtils; +import org.springframework.util.CollectionUtils; +import org.springframework.web.method.HandlerMethod; + +import java.io.StringReader; +import java.lang.reflect.Method; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 自定义 openapi 处理器 + * 对源码功能进行修改 增强使用 + */ +@SuppressWarnings("all") +public class OpenApiHandler extends OpenAPIService { + + /** + * The constant LOGGER. + */ + private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIService.class); + + /** + * The Context. + */ + private ApplicationContext context; + + /** + * The Security parser. + */ + private final SecurityService securityParser; + + /** + * The Mappings map. + */ + private final Map mappingsMap = new HashMap<>(); + + /** + * The Springdoc tags. + */ + private final Map springdocTags = new HashMap<>(); + + /** + * The Open api builder customisers. + */ + private final Optional> openApiBuilderCustomisers; + + /** + * The server base URL customisers. + */ + private final Optional> serverBaseUrlCustomizers; + + /** + * The Spring doc config properties. + */ + private final SpringDocConfigProperties springDocConfigProperties; + + /** + * The Open api. + */ + private OpenAPI openAPI; + + /** + * The Cached open api map. + */ + private final Map cachedOpenAPI = new HashMap<>(); + + /** + * The Is servers present. + */ + private boolean isServersPresent; + + /** + * The Server base url. + */ + private String serverBaseUrl; + + /** + * The Property resolver utils. + */ + private final PropertyResolverUtils propertyResolverUtils; + + /** + * The javadoc provider. + */ + private final Optional javadocProvider; + + /** + * The Basic error controller. + */ + private static Class basicErrorController; + + static { + try { + //spring-boot 2 + basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController"); + } catch (ClassNotFoundException e) { + //spring-boot 1 + try { + basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.BasicErrorController"); + } catch (ClassNotFoundException classNotFoundException) { + //Basic error controller class not found + LOGGER.trace(classNotFoundException.getMessage()); + } + } + } + + /** + * Instantiates a new Open api builder. + * + * @param openAPI the open api + * @param securityParser the security parser + * @param springDocConfigProperties the spring doc config properties + * @param propertyResolverUtils the property resolver utils + * @param openApiBuilderCustomizers the open api builder customisers + * @param serverBaseUrlCustomizers the server base url customizers + * @param javadocProvider the javadoc provider + */ + public OpenApiHandler(Optional openAPI, SecurityService securityParser, + SpringDocConfigProperties springDocConfigProperties, PropertyResolverUtils propertyResolverUtils, + Optional> openApiBuilderCustomizers, + Optional> serverBaseUrlCustomizers, + Optional javadocProvider) { + super(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomizers, serverBaseUrlCustomizers, javadocProvider); + if (openAPI.isPresent()) { + this.openAPI = openAPI.get(); + if (this.openAPI.getComponents() == null) + this.openAPI.setComponents(new Components()); + if (this.openAPI.getPaths() == null) + this.openAPI.setPaths(new Paths()); + if (!CollectionUtils.isEmpty(this.openAPI.getServers())) + this.isServersPresent = true; + } + this.propertyResolverUtils = propertyResolverUtils; + this.securityParser = securityParser; + this.springDocConfigProperties = springDocConfigProperties; + this.openApiBuilderCustomisers = openApiBuilderCustomizers; + this.serverBaseUrlCustomizers = serverBaseUrlCustomizers; + this.javadocProvider = javadocProvider; + if (springDocConfigProperties.isUseFqn()) + TypeNameResolver.std.setUseFqn(true); + } + + @Override + public Operation buildTags(HandlerMethod handlerMethod, Operation operation, OpenAPI openAPI, Locale locale) { + + Set tags = new HashSet<>(); + Set tagsStr = new HashSet<>(); + + buildTagsFromMethod(handlerMethod.getMethod(), tags, tagsStr, locale); + buildTagsFromClass(handlerMethod.getBeanType(), tags, tagsStr, locale); + + if (!CollectionUtils.isEmpty(tagsStr)) + tagsStr = tagsStr.stream() + .map(str -> propertyResolverUtils.resolve(str, locale)) + .collect(Collectors.toSet()); + + if (springdocTags.containsKey(handlerMethod)) { + io.swagger.v3.oas.models.tags.Tag tag = springdocTags.get(handlerMethod); + tagsStr.add(tag.getName()); + if (openAPI.getTags() == null || !openAPI.getTags().contains(tag)) { + openAPI.addTagsItem(tag); + } + } + + if (!CollectionUtils.isEmpty(tagsStr)) { + if (CollectionUtils.isEmpty(operation.getTags())) + operation.setTags(new ArrayList<>(tagsStr)); + else { + Set operationTagsSet = new HashSet<>(operation.getTags()); + operationTagsSet.addAll(tagsStr); + operation.getTags().clear(); + operation.getTags().addAll(operationTagsSet); + } + } + + if (isAutoTagClasses(operation)) { + + + if (javadocProvider.isPresent()) { + String description = javadocProvider.get().getClassJavadoc(handlerMethod.getBeanType()); + if (StringUtils.isNotBlank(description)) { + io.swagger.v3.oas.models.tags.Tag tag = new io.swagger.v3.oas.models.tags.Tag(); + + // 自定义部分 修改使用java注释当tag名 + List list = IoUtil.readLines(new StringReader(description), new ArrayList<>()); + // tag.setName(tagAutoName); + tag.setName(list.get(0)); + operation.addTagsItem(list.get(0)); + + tag.setDescription(description); + if (openAPI.getTags() == null || !openAPI.getTags().contains(tag)) { + openAPI.addTagsItem(tag); + } + } + } else { + String tagAutoName = splitCamelCase(handlerMethod.getBeanType().getSimpleName()); + operation.addTagsItem(tagAutoName); + } + } + + if (!CollectionUtils.isEmpty(tags)) { + // Existing tags + List openApiTags = openAPI.getTags(); + if (!CollectionUtils.isEmpty(openApiTags)) + tags.addAll(openApiTags); + openAPI.setTags(new ArrayList<>(tags)); + } + + // Handle SecurityRequirement at operation level + io.swagger.v3.oas.annotations.security.SecurityRequirement[] securityRequirements = securityParser + .getSecurityRequirements(handlerMethod); + if (securityRequirements != null) { + if (securityRequirements.length == 0) + operation.setSecurity(Collections.emptyList()); + else + securityParser.buildSecurityRequirement(securityRequirements, operation); + } + + return operation; + } + + private void buildTagsFromMethod(Method method, Set tags, Set tagsStr, Locale locale) { + // method tags + Set tagsSet = AnnotatedElementUtils + .findAllMergedAnnotations(method, Tags.class); + Set methodTags = tagsSet.stream() + .flatMap(x -> Stream.of(x.value())).collect(Collectors.toSet()); + methodTags.addAll(AnnotatedElementUtils.findAllMergedAnnotations(method, io.swagger.v3.oas.annotations.tags.Tag.class)); + if (!CollectionUtils.isEmpty(methodTags)) { + tagsStr.addAll(methodTags.stream().map(tag -> propertyResolverUtils.resolve(tag.name(), locale)).collect(Collectors.toSet())); + List allTags = new ArrayList<>(methodTags); + addTags(allTags, tags, locale); + } + } + + private void addTags(List sourceTags, Set tags, Locale locale) { + Optional> optionalTagSet = AnnotationsUtils + .getTags(sourceTags.toArray(new io.swagger.v3.oas.annotations.tags.Tag[0]), true); + optionalTagSet.ifPresent(tagsSet -> { + tagsSet.forEach(tag -> { + tag.name(propertyResolverUtils.resolve(tag.getName(), locale)); + tag.description(propertyResolverUtils.resolve(tag.getDescription(), locale)); + if (tags.stream().noneMatch(t -> t.getName().equals(tag.getName()))) + tags.add(tag); + }); + }); + } + +} 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 7a20df1ad..f7c2cfadf 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 @@ -29,7 +29,6 @@ import java.util.Map; * @author Lion Li */ @Validated -@Tag(name = "代码生成", description = "代码生成管理") @RequiredArgsConstructor @RestController @RequestMapping("/tool/gen") diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 550be928a..1b2bc136b 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -27,16 +27,14 @@ import ${packageName}.service.I${ClassName}Service; import com.ruoyi.common.core.page.TableDataInfo; #elseif($table.tree) #end -import io.swagger.v3.oas.annotations.tags.Tag; /** - * ${functionName}Controller + * ${functionName} * * @author ${author} * @date ${datetime} */ @Validated -@Tag(name ="${functionName}控制器", description = "${functionName}管理") @RequiredArgsConstructor @RestController @RequestMapping("/${moduleName}/${businessName}") From 25f9f72366956713b0229e1b10d0e16f624d2d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 8 Jul 2022 22:44:29 +0800 Subject: [PATCH 036/299] =?UTF-8?q?remove=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E5=AF=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/web/controller/monitor/CacheController.java | 1 - .../ruoyi/web/controller/monitor/SysLogininforController.java | 1 - .../com/ruoyi/web/controller/monitor/SysOperlogController.java | 1 - .../ruoyi/web/controller/monitor/SysUserOnlineController.java | 1 - .../com/ruoyi/web/controller/system/SysConfigController.java | 1 - .../java/com/ruoyi/web/controller/system/SysDeptController.java | 1 - .../com/ruoyi/web/controller/system/SysDictTypeController.java | 1 - .../java/com/ruoyi/web/controller/system/SysIndexController.java | 1 - .../java/com/ruoyi/web/controller/system/SysLoginController.java | 1 - .../java/com/ruoyi/web/controller/system/SysMenuController.java | 1 - .../com/ruoyi/web/controller/system/SysNoticeController.java | 1 - .../com/ruoyi/web/controller/system/SysOssConfigController.java | 1 - .../java/com/ruoyi/web/controller/system/SysOssController.java | 1 - .../com/ruoyi/web/controller/system/SysProfileController.java | 1 - .../com/ruoyi/web/controller/system/SysRegisterController.java | 1 - .../java/com/ruoyi/web/controller/system/SysRoleController.java | 1 - .../java/com/ruoyi/web/controller/system/SysUserController.java | 1 - .../src/main/java/com/ruoyi/demo/controller/MailController.java | 1 - .../java/com/ruoyi/demo/controller/RedisCacheController.java | 1 - .../main/java/com/ruoyi/demo/controller/RedisLockController.java | 1 - .../java/com/ruoyi/demo/controller/RedisPubSubController.java | 1 - .../com/ruoyi/demo/controller/RedisRateLimiterController.java | 1 - .../src/main/java/com/ruoyi/demo/controller/SmsController.java | 1 - .../java/com/ruoyi/demo/controller/Swagger3DemoController.java | 1 - .../main/java/com/ruoyi/demo/controller/TestDemoController.java | 1 - .../main/java/com/ruoyi/demo/controller/TestExcelController.java | 1 - .../main/java/com/ruoyi/demo/controller/TestI18nController.java | 1 - .../main/java/com/ruoyi/demo/controller/TestTreeController.java | 1 - .../com/ruoyi/demo/controller/queue/BoundedQueueController.java | 1 - .../main/java/com/ruoyi/generator/controller/GenController.java | 1 - 30 files changed, 30 deletions(-) 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 1e116bcc7..0fda9c362 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 @@ -5,7 +5,6 @@ import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysCache; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.connection.RedisServerCommands; import org.springframework.data.redis.core.RedisCallback; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 0d50a6ed6..0b6b763a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -10,7 +10,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysLogininfor; import com.ruoyi.system.service.ISysLogininforService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 3684c2d39..f2dd1efce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -10,7 +10,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; 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 1a42b4e51..41c267d39 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 @@ -15,7 +15,6 @@ import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.domain.SysUserOnline; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index b8cacca17..0571bcf82 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; 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 916b124c0..2980e646c 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 @@ -11,7 +11,6 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index ba2b0487d..fd1763405 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -11,7 +11,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictTypeService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 5a9eba2ac..cc92f371e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -2,7 +2,6 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.StringUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; 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 2097825ee..d4d0570fc 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 @@ -13,7 +13,6 @@ import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysLoginService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; 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 faf68ce3b..2000fd03d 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysMenuService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 17e18bf0d..54b30d60d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -9,7 +9,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.service.ISysNoticeService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index d8c4c0d73..cdba39cc4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -14,7 +14,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.service.ISysOssConfigService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index 4092e4a2d..f3c3cd9d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -19,7 +19,6 @@ import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; import com.ruoyi.system.service.ISysOssService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index eb926c788..1fcd599d4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -14,7 +14,6 @@ import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index e45d8268c..5c3a67712 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.SysRegisterService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; 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 5b6b88b9c..08aeb2d73 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 @@ -18,7 +18,6 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysPermissionService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; 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 f7662e8d7..8a65b6920 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 @@ -26,7 +26,6 @@ import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java index 2eb8ea652..6db4dc4e7 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.email.MailUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java index 80c576cc0..2312aab0e 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java index 9b27b4450..ebc923d1b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java @@ -5,7 +5,6 @@ import com.baomidou.lock.LockTemplate; import com.baomidou.lock.annotation.Lock4j; import com.baomidou.lock.executor.RedissonLockExecutor; import com.ruoyi.common.core.domain.R; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java index 320d8e122..0c2af3951 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java index dae3e7293..ee2e530ba 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java @@ -3,7 +3,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.RateLimiter; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.LimitType; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java index 8547dd3fb..cc6012f44 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java @@ -4,7 +4,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.core.SmsTemplate; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java index fdf965411..0398b14d5 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/Swagger3DemoController.java @@ -1,7 +1,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; -import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index 77bb10e48..33b341282 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -20,7 +20,6 @@ import com.ruoyi.demo.domain.bo.TestDemoBo; import com.ruoyi.demo.domain.bo.TestDemoImportVo; import com.ruoyi.demo.domain.vo.TestDemoVo; import com.ruoyi.demo.service.ITestDemoService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java index 454ceb701..51b81c582 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.utils.poi.ExcelUtil; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Data; import org.springframework.web.bind.annotation.GetMapping; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index cd44adb7e..0cc529a61 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.MessageUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; import org.hibernate.validator.constraints.Range; import org.springframework.validation.annotation.Validated; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index 6a7a2ef87..52d881edd 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -13,7 +13,6 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.demo.domain.bo.TestTreeBo; import com.ruoyi.demo.domain.vo.TestTreeVo; import com.ruoyi.demo.service.ITestTreeService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java index 9fd8764d3..50c361b1c 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; 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 f7c2cfadf..77df9fd92 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 @@ -12,7 +12,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.service.IGenTableService; -import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; From da4077f3b796c8c9c7973a8ad904388dca17473a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Sat, 9 Jul 2022 04:05:40 +0000 Subject: [PATCH 037/299] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=94=99=E8=AF=AF=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-generator/src/main/resources/vm/java/service.java.vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-generator/src/main/resources/vm/java/service.java.vm b/ruoyi-generator/src/main/resources/vm/java/service.java.vm index 0f9137a5d..7faafb8fa 100644 --- a/ruoyi-generator/src/main/resources/vm/java/service.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/service.java.vm @@ -37,7 +37,7 @@ public interface I${ClassName}Service { List<${ClassName}Vo> queryList(${ClassName}Bo bo); /** - * 修改${functionName} + * 新增${functionName} */ Boolean insertByBo(${ClassName}Bo bo); From ac1d7aa69f66ec02f2909dd16b7e1ce6e68611b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Sat, 9 Jul 2022 12:57:30 +0800 Subject: [PATCH 038/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E4=B8=8E=20springfox=20=E5=85=BC=E5=AE=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E5=90=AF=E7=94=A8=E6=96=B0=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application.yml | 4 ---- .../config/properties/ExcludeUrlProperties.java | 9 +++++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 74d251b63..27482ac06 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -75,10 +75,6 @@ spring: restart: # 热部署开关 enabled: true - mvc: - pathmatch: - # 适配 boot 2.6 路由与 springfox 兼容 - matching-strategy: ANT_PATH_MATCHER jackson: # 日期格式化 date-format: yyyy-MM-dd HH:mm:ss diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java index b4e3eae6d..2182fded6 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; +import org.springframework.web.util.pattern.PathPattern; import java.util.*; import java.util.regex.Pattern; @@ -41,18 +42,18 @@ public class ExcludeUrlProperties implements InitializingBean { // 获取方法上边的注解 替代path variable 为 * Anonymous method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Anonymous.class); Optional.ofNullable(method).ifPresent(anonymous -> { - Set patterns = info.getPatternsCondition().getPatterns(); + Set patterns = info.getPathPatternsCondition().getPatterns(); patterns.forEach(url -> { - excludes.add(ReUtil.replaceAll(url, PATTERN, asterisk)); + excludes.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, asterisk)); }); }); // 获取类上边的注解, 替代path variable 为 * Anonymous controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Anonymous.class); Optional.ofNullable(controller).ifPresent(anonymous -> { - Set patterns = info.getPatternsCondition().getPatterns(); + Set patterns = info.getPathPatternsCondition().getPatterns(); patterns.forEach(url -> { - excludes.add(ReUtil.replaceAll(url, PATTERN, asterisk)); + excludes.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, asterisk)); }); }); }); From 15d5eb858c36b5cb1e22c9dc66bcbf82e8284c48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 11 Jul 2022 09:39:22 +0800 Subject: [PATCH 039/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E5=8A=9F=E8=83=BD=E8=BF=94=E5=9B=9E=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=20SysSms=20=E5=BA=8F=E5=88=97=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java | 2 +- .../src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java | 3 ++- ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java b/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java index eede376e5..3c16a5b41 100644 --- a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java +++ b/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java @@ -56,7 +56,7 @@ public class AliyunSmsTemplate implements SmsTemplate { return SmsResult.builder() .isSuccess("OK".equals(resp.getBody().getCode())) .message(resp.getBody().getMessage()) - .response(resp) + .response(JsonUtils.toJsonString(resp)) .build(); } catch (Exception e) { throw new SmsException(e.getMessage()); diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java b/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java index 1de8eae14..17f5b5b16 100644 --- a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java +++ b/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java @@ -2,6 +2,7 @@ package com.ruoyi.sms.core; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; +import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.sms.config.properties.SmsProperties; import com.ruoyi.sms.entity.SmsResult; @@ -65,7 +66,7 @@ public class TencentSmsTemplate implements SmsTemplate { SmsResult.SmsResultBuilder builder = SmsResult.builder() .isSuccess(true) .message("send success") - .response(resp); + .response(JsonUtils.toJsonString(resp)); for (SendStatus sendStatus : resp.getSendStatusSet()) { if (!"Ok".equals(sendStatus.getCode())) { builder.isSuccess(false).message(sendStatus.getMessage()); diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java b/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java index 3f13b2774..89c39b403 100644 --- a/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java +++ b/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java @@ -24,6 +24,8 @@ public class SmsResult { /** * 实际响应体 + *

    + * 可自行转换为 SDK 对应的 SendSmsResponse */ - private Object response; + private String response; } From 6c1e146bc17c51ed744aa289b20febe339703196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 11 Jul 2022 13:10:41 +0800 Subject: [PATCH 040/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20docker=20?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=96=B9=E5=BC=8F=20=E4=BD=BF=E7=94=A8=20hos?= =?UTF-8?q?t=20=E6=A8=A1=E5=BC=8F=E7=AE=80=E5=8C=96=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=20=E9=99=8D=E4=BD=8E=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=88=90=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 --- ruoyi-admin/Dockerfile | 6 ++- .../src/main/resources/application-prod.yml | 14 +++--- .../src/main/resources/application.yml | 6 +-- .../src/main/resources/application-dev.yml | 14 ------ .../src/main/resources/application-prod.yml | 14 ------ .../src/main/resources/application.yml | 19 ++++++-- .../src/main/resources/application-dev.yml | 22 ++++----- .../src/main/resources/application-prod.yml | 22 ++++----- .../src/main/resources/application.yml | 8 ++-- script/docker/database.yml | 8 ++-- script/docker/docker-compose.yml | 48 ++++--------------- script/docker/nginx/nginx.conf | 8 ++-- 13 files changed, 67 insertions(+), 128 deletions(-) delete mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml delete mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml diff --git a/pom.xml b/pom.xml index c5ed42bd6..f49ba5aa5 100644 --- a/pom.xml +++ b/pom.xml @@ -411,8 +411,6 @@ local debug - false - '*' @@ -421,8 +419,6 @@ dev debug - false - '*' @@ -434,8 +430,6 @@ prod warn - true - health, info, logfile diff --git a/ruoyi-admin/Dockerfile b/ruoyi-admin/Dockerfile index 1bbd2ccf6..7bb2b0d0c 100644 --- a/ruoyi-admin/Dockerfile +++ b/ruoyi-admin/Dockerfile @@ -8,8 +8,10 @@ RUN mkdir -p /ruoyi/server/temp WORKDIR /ruoyi/server -EXPOSE 8080 +ENV SERVER_PORT=8080 + +EXPOSE ${SERVER_PORT} ADD ./target/ruoyi-admin.jar ./app.jar -ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=${SERVER_PORT}","-jar", "app.jar"] diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index def5f1666..a42f4ad5b 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -5,7 +5,7 @@ spring.servlet.multipart.location: /ruoyi/server/temp spring.boot.admin.client: # 增加客户端开关 enabled: true - url: http://172.30.0.90:9090/admin + url: http://localhost:9090/admin instance: service-host-type: IP username: ruoyi @@ -16,7 +16,7 @@ xxl.job: # 执行器开关 enabled: true # 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。 - admin-addresses: http://172.30.0.92:9100/xxl-job-admin + admin-addresses: http://localhost:9100/xxl-job-admin # 执行器通讯TOKEN:非空时启用 access-token: xxl-job executor: @@ -51,7 +51,7 @@ spring: driverClassName: com.mysql.cj.jdbc.Driver # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) - url: jdbc:mysql://172.30.0.36:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true username: root password: root # 从库数据源 @@ -63,19 +63,19 @@ spring: password: # oracle: # driverClassName: oracle.jdbc.OracleDriver -# url: jdbc:oracle:thin:@//172.30.0.36:1521/XE +# url: jdbc:oracle:thin:@//localhost:1521/XE # username: ROOT # password: root # druid: # validationQuery: SELECT 1 FROM DUAL # postgres: # driverClassName: org.postgresql.Driver -# url: jdbc:postgresql://172.30.0.36:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true +# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true # username: root # password: root # sqlserver: # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver -# url: jdbc:sqlserver://172.30.0.36:1433;DatabaseName=tempdb;SelectMethod=cursor;rewriteBatchedStatements=true +# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;rewriteBatchedStatements=true # username: SA # password: root druid: @@ -128,7 +128,7 @@ spring.datasource.druid: spring: redis: # 地址 - host: 172.30.0.48 + host: localhost # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 27482ac06..25940efae 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -258,9 +258,9 @@ management: endpoints: web: exposure: - # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 - # 生产环境不建议放开所有 根据项目需求放开即可 - include: @endpoints.include@ + include: '*' endpoint: + health: + show-details: ALWAYS logfile: external-file: ./logs/sys-console.log diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml deleted file mode 100644 index 0b10bbd76..000000000 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- # 监控配置 -spring: - boot: - admin: - # Spring Boot Admin Client 客户端的相关配置 - client: - # 增加客户端开关 - enabled: true - # 设置 Spring Boot Admin Server 地址 - url: http://localhost:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml deleted file mode 100644 index 2e020390d..000000000 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- # 监控配置 -spring: - boot: - admin: - # Spring Boot Admin Client 客户端的相关配置 - client: - # 增加客户端开关 - enabled: true - # 设置 Spring Boot Admin Server 地址 - url: http://172.30.0.90:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml index 128a6f989..22ef1abfc 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml @@ -22,12 +22,21 @@ spring: management: endpoints: web: - # Actuator 提供的 API 接口的根目录。默认为 /actuator - base-path: /actuator exposure: - # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 - # 生产环境不建议放开所有 根据项目需求放开即可 - include: @endpoints.include@ + include: '*' endpoint: + health: + show-details: ALWAYS logfile: external-file: ./logs/ruoyi-monitor-admin.log + +--- # 监控配置 +spring.boot.admin.client: + # 增加客户端开关 + enabled: true + # 设置 Spring Boot Admin Server 地址 + url: http://localhost:9090/admin + instance: + service-host-type: IP + username: ruoyi + password: 123456 diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-dev.yml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-dev.yml index 09ed519fa..fa04b5686 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-dev.yml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-dev.yml @@ -1,17 +1,13 @@ --- # 监控配置 -spring: - boot: - admin: - # Spring Boot Admin Client 客户端的相关配置 - client: - # 增加客户端开关 - enabled: true - # 设置 Spring Boot Admin Server 地址 - url: http://localhost:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 +spring.boot.admin.client: + # 增加客户端开关 + enabled: true + # 设置 Spring Boot Admin Server 地址 + url: http://localhost:9090/admin + instance: + service-host-type: IP + username: ruoyi + password: 123456 --- # 数据库配置 spring: diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-prod.yml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-prod.yml index 401f60af9..cd4057b33 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-prod.yml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application-prod.yml @@ -1,17 +1,13 @@ --- # 监控配置 -spring: - boot: - admin: - # Spring Boot Admin Client 客户端的相关配置 - client: - # 增加客户端开关 - enabled: true - # 设置 Spring Boot Admin Server 地址 - url: http://172.30.0.90:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 +spring.boot.admin.client: + # 增加客户端开关 + enabled: true + # 设置 Spring Boot Admin Server 地址 + url: http://localhost:9090/admin + instance: + service-host-type: IP + username: ruoyi + password: 123456 --- # 数据库配置 spring: diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml index 202272087..d4fda939a 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml @@ -37,13 +37,11 @@ management: enabled: false endpoints: web: - # Actuator 提供的 API 接口的根目录。默认为 /actuator - base-path: /actuator exposure: - # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 - # 生产环境不建议放开所有 根据项目需求放开即可 - include: @endpoints.include@ + include: '*' endpoint: + health: + show-details: ALWAYS logfile: external-file: ./logs/ruoyi-xxl-job-admin.log diff --git a/script/docker/database.yml b/script/docker/database.yml index 7a70b31de..0368fd27d 100644 --- a/script/docker/database.yml +++ b/script/docker/database.yml @@ -16,7 +16,7 @@ services: volumes: # 数据挂载 - "/docker/oracle/data:/u01/app/oracle" - restart: always + network_mode: "host" # 此镜像仅用于测试 正式环境需自行安装数据库 sqlserver: @@ -32,7 +32,7 @@ services: volumes: # 数据挂载 - "/docker/sqlserver/data:/var/opt/mssql" - restart: always + network_mode: "host" postgres: image: postgres:14.2 @@ -45,7 +45,7 @@ services: - "5432:5432" volumes: - /docker/postgres/data:/var/lib/postgresql/data - restart: always + network_mode: "host" postgres13: image: postgres:13.6 @@ -58,4 +58,4 @@ services: - "5433:5432" volumes: - /docker/postgres13/data:/var/lib/postgresql/data - restart: always + network_mode: "host" diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index 3dcdf32c6..41f97e427 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -26,10 +26,7 @@ services: --explicit_defaults_for_timestamp=true --lower_case_table_names=1 privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.36 + network_mode: "host" nginx-web: image: nginx:1.21.6 @@ -50,9 +47,7 @@ services: # 日志目录 - /docker/nginx/log:/var/log/nginx privileged: true - restart: always - networks: - - ruoyi_net + network_mode: "host" redis: image: redis:6.2.7 @@ -69,10 +64,7 @@ services: - /docker/redis/data/:/redis/data/:rw command: "redis-server /redis/config/redis.conf" privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.48 + network_mode: "host" minio: image: minio/minio:RELEASE.2022-05-26T05-48-41Z @@ -104,10 +96,7 @@ services: - /docker/minio/config:/root/.minio/ command: server --address ':9000' --console-address ':9001' /data # 指定容器中的目录 /data privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.54 + network_mode: "host" ruoyi-server1: image: ruoyi/ruoyi-server:4.2.0 @@ -115,14 +104,12 @@ services: environment: # 时区上海 TZ: Asia/Shanghai + SERVER_PORT: 8080 volumes: # 配置文件 - /docker/server1/logs/:/ruoyi/server/logs/ privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.60 + network_mode: "host" ruoyi-server2: image: "ruoyi/ruoyi-server:4.2.0" @@ -130,14 +117,12 @@ services: environment: # 时区上海 TZ: Asia/Shanghai + SERVER_PORT: 8081 volumes: # 配置文件 - /docker/server2/logs/:/ruoyi/server/logs/ privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.61 + network_mode: "host" ruoyi-monitor-admin: image: ruoyi/ruoyi-monitor-admin:4.2.0 @@ -149,10 +134,7 @@ services: # 配置文件 - /docker/monitor/logs/:/ruoyi/monitor/logs privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.90 + network_mode: "host" ruoyi-xxl-job-admin: image: ruoyi/ruoyi-xxl-job-admin:4.2.0 @@ -164,14 +146,4 @@ services: # 配置文件 - /docker/xxljob/logs/:/ruoyi/xxljob/logs privileged: true - restart: always - networks: - ruoyi_net: - ipv4_address: 172.30.0.92 - -networks: - ruoyi_net: - driver: bridge - ipam: - config: - - subnet: 172.30.0.0/16 + network_mode: "host" diff --git a/script/docker/nginx/nginx.conf b/script/docker/nginx/nginx.conf index ecf71955f..e9630aaf7 100644 --- a/script/docker/nginx/nginx.conf +++ b/script/docker/nginx/nginx.conf @@ -23,16 +23,16 @@ http { upstream server { ip_hash; - server 172.30.0.60:8080; - server 172.30.0.61:8080; + server 127.0.0.1:8080; + server 127.0.0.1:8081; } upstream monitor-admin { - server 172.30.0.90:9090; + server 127.0.0.1:9090; } upstream xxljob-admin { - server 172.30.0.92:9100; + server 127.0.0.1:9100; } server { From f2d502faf8c23ad940762493b31d759c5dfd6bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 11 Jul 2022 16:21:20 +0800 Subject: [PATCH 041/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20sqlserver=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0sql=E9=94=99=E8=AF=AF=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sql/update/sqlserver/update-4.1-4.2.sql | 27 ++++++++++++++++++- .../sql/update/sqlserver/update-4.2-4.3.sql | 3 ++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/script/sql/update/sqlserver/update-4.1-4.2.sql b/script/sql/update/sqlserver/update-4.1-4.2.sql index fd4223886..9e217ec7b 100644 --- a/script/sql/update/sqlserver/update-4.1-4.2.sql +++ b/script/sql/update/sqlserver/update-4.1-4.2.sql @@ -1,2 +1,27 @@ -INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (112, N'缓存列表', 2, 6, N'cacheList', N'monitor/cache/list', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis-list', N'admin', getdate(), N'', NULL, N'缓存列表菜单') +ALTER TABLE [sys_oss_config] ADD [domain] nvarchar(255) DEFAULT '' NULL +GO + +EXEC sp_addextendedproperty +'MS_Description', N'自定义域名', +'SCHEMA', N'dbo', +'TABLE', N'sys_oss_config', +'COLUMN', N'domain' +GO + +UPDATE [sys_oss_config] SET [access_key] = N'ruoyi', [secret_key] = N'ruoyi123', [endpoint] = N'127.0.0.1:9000' WHERE [oss_config_id] = 1 +GO + +UPDATE [sys_oss_config] SET [endpoint] = N's3-cn-north-1.qiniucs.com' WHERE [oss_config_id] = 2 +GO + +UPDATE [sys_oss_config] SET [endpoint] = N'oss-cn-beijing.aliyuncs.com' WHERE [oss_config_id] = 3 +GO + +UPDATE [sys_oss_config] SET [endpoint] = N'cos.ap-beijing.myqcloud.com' WHERE [oss_config_id] = 4 +GO + +INSERT INTO [sys_oss_config] ([oss_config_id], [config_key], [access_key], [secret_key], [bucket_name], [prefix], [endpoint], [domain], [is_https], [region], [status], [ext1], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (N'5', N'image', N'ruoyi', N'ruoyi123', N'ruoyi', N'image', N'127.0.0.1:9000', N'',N'N', N'', N'1', N'', N'admin', getdate(), N'admin', getdate(), NULL) +GO + +ALTER TABLE [gen_table_column] ALTER COLUMN [table_id] bigint NULL GO diff --git a/script/sql/update/sqlserver/update-4.2-4.3.sql b/script/sql/update/sqlserver/update-4.2-4.3.sql index 9a3c41b28..fd4223886 100644 --- a/script/sql/update/sqlserver/update-4.2-4.3.sql +++ b/script/sql/update/sqlserver/update-4.2-4.3.sql @@ -1 +1,2 @@ -insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', now(), '', null, '缓存列表菜单'); +INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (112, N'缓存列表', 2, 6, N'cacheList', N'monitor/cache/list', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis-list', N'admin', getdate(), N'', NULL, N'缓存列表菜单') +GO From af54608f62b0d8fa29d17a4e550dcca778e31020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 11 Jul 2022 16:29:16 +0800 Subject: [PATCH 042/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E8=87=AA=E5=B8=A6=20swagger-ui=20=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=8C=85=20=E5=BB=BA=E8=AE=AE=E4=BD=BF=E7=94=A8=E5=A4=96?= =?UTF-8?q?=E7=BD=AE=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- ruoyi-admin/src/main/resources/application.yml | 8 +------- ruoyi-common/pom.xml | 2 +- ruoyi-ui/src/views/tool/swagger/index.vue | 15 --------------- script/sql/oracle/oracle_ry_vue_4.X.sql | 1 - script/sql/postgres/postgres_ry_vue_4.X.sql | 1 - script/sql/ry_vue_4.X.sql | 1 - script/sql/sqlserver/sqlserver_ry_vue_4.X.sql | 2 -- script/sql/update/oracle/update-4.2-4.3.sql | 2 ++ script/sql/update/postgres/update-4.2-4.3.sql | 2 ++ script/sql/update/sqlserver/update-4.2-4.3.sql | 3 +++ script/sql/update/update-4.2-4.3.sql | 1 + 12 files changed, 11 insertions(+), 29 deletions(-) delete mode 100644 ruoyi-ui/src/views/tool/swagger/index.vue diff --git a/pom.xml b/pom.xml index f49ba5aa5..6beabcf2d 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ org.springdoc - springdoc-openapi-ui + springdoc-openapi-webmvc-core ${springdoc.version} diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 25940efae..09c0ee100 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -121,8 +121,7 @@ security: - /**/*.js # swagger 文档配置 - /favicon.ico - - /doc.html - - /swagger-ui/** + - /*/api-docs - /*/api-docs/** # druid 监控配置 - /druid/** @@ -199,11 +198,6 @@ swagger: name: ${sa-token.token-name} springdoc: - swagger-ui: - # 修改Swagger UI路径 - path: /doc.html - # 持久化认证数据 - persistAuthorization: true #这里定义了两个分组,可定义多个,也可以不定义 group-configs: - group: 1.演示模块 diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 78ad596b7..04447277b 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -127,7 +127,7 @@ org.springdoc - springdoc-openapi-ui + springdoc-openapi-webmvc-core diff --git a/ruoyi-ui/src/views/tool/swagger/index.vue b/ruoyi-ui/src/views/tool/swagger/index.vue deleted file mode 100644 index b78296878..000000000 --- a/ruoyi-ui/src/views/tool/swagger/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/script/sql/oracle/oracle_ry_vue_4.X.sql b/script/sql/oracle/oracle_ry_vue_4.X.sql index f53ca82b5..2ca7d23e0 100644 --- a/script/sql/oracle/oracle_ry_vue_4.X.sql +++ b/script/sql/oracle/oracle_ry_vue_4.X.sql @@ -262,7 +262,6 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'm insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate, '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate, '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate, '', null, '代码生成菜单'); -insert into sys_menu values('116', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate, '', null, '系统接口菜单'); -- springboot-admin监控 insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 'admin', sysdate, '', null, 'Admin监控菜单'); -- oss菜单 diff --git a/script/sql/postgres/postgres_ry_vue_4.X.sql b/script/sql/postgres/postgres_ry_vue_4.X.sql index ad49672ec..75a38e14f 100644 --- a/script/sql/postgres/postgres_ry_vue_4.X.sql +++ b/script/sql/postgres/postgres_ry_vue_4.X.sql @@ -265,7 +265,6 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'm insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', now(), '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', '1', '0', 'C', '0', '0', 'tool:build:list', 'build', 'admin', now(), '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', '1', '0', 'C', '0', '0', 'tool:gen:list', 'code', 'admin', now(), '', null, '代码生成菜单'); -insert into sys_menu values('116', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', '1', '0', 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', now(), '', null, '系统接口菜单'); -- springboot-admin监控 insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', '1', '0', 'C', '0', '0', 'monitor:admin:list', 'dashboard', 'admin', now(), '', null, 'Admin监控菜单'); -- oss菜单 diff --git a/script/sql/ry_vue_4.X.sql b/script/sql/ry_vue_4.X.sql index b10eacbe0..52aedce6e 100644 --- a/script/sql/ry_vue_4.X.sql +++ b/script/sql/ry_vue_4.X.sql @@ -177,7 +177,6 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'm insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单'); insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); -insert into sys_menu values('116', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); -- springboot-admin监控 insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 'admin', sysdate(), '', null, 'Admin监控菜单'); -- oss菜单 diff --git a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql index 9d8e1eedc..32866546a 100644 --- a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql +++ b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql @@ -1086,8 +1086,6 @@ INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [co GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (115, N'代码生成', 3, 2, N'gen', N'tool/gen/index', N'', 1, 0, N'C', N'0', N'0', N'tool:gen:list', N'code', N'admin', getdate(), N'', NULL, N'代码生成菜单') GO -INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (116, N'系统接口', 3, 3, N'swagger', N'tool/swagger/index', N'', 1, 0, N'C', N'0', N'0', N'tool:swagger:list', N'swagger', N'admin', getdate(), N'', NULL, N'系统接口菜单') -GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (117, N'Admin监控', 2, 5, N'Admin', N'monitor/admin/index', N'', 1, 0, N'C', N'0', N'0', N'monitor:admin:list', N'dashboard', N'admin', getdate(), N'', NULL, N'Admin监控菜单'); GO INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (118, N'文件管理', 1, 10, N'oss', N'system/oss/index', N'', 1, 0, N'C', '0', N'0', N'system:oss:list', N'upload', N'admin', getdate(), N'', NULL, N'文件管理菜单'); diff --git a/script/sql/update/oracle/update-4.2-4.3.sql b/script/sql/update/oracle/update-4.2-4.3.sql index a995acce3..7ecec0b31 100644 --- a/script/sql/update/oracle/update-4.2-4.3.sql +++ b/script/sql/update/oracle/update-4.2-4.3.sql @@ -1 +1,3 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate, '', null, '缓存列表菜单'); + +delete from sys_menu WHERE menu_id = 116; diff --git a/script/sql/update/postgres/update-4.2-4.3.sql b/script/sql/update/postgres/update-4.2-4.3.sql index 9a3c41b28..731360f09 100644 --- a/script/sql/update/postgres/update-4.2-4.3.sql +++ b/script/sql/update/postgres/update-4.2-4.3.sql @@ -1 +1,3 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', now(), '', null, '缓存列表菜单'); + +delete from sys_menu WHERE menu_id = 116; diff --git a/script/sql/update/sqlserver/update-4.2-4.3.sql b/script/sql/update/sqlserver/update-4.2-4.3.sql index fd4223886..cf3f3a17b 100644 --- a/script/sql/update/sqlserver/update-4.2-4.3.sql +++ b/script/sql/update/sqlserver/update-4.2-4.3.sql @@ -1,2 +1,5 @@ INSERT [sys_menu] ([menu_id], [menu_name], [parent_id], [order_num], [path], [component], [query_param], [is_frame], [is_cache], [menu_type], [visible], [status], [perms], [icon], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (112, N'缓存列表', 2, 6, N'cacheList', N'monitor/cache/list', N'', 1, 0, N'C', N'0', N'0', N'monitor:cache:list', N'redis-list', N'admin', getdate(), N'', NULL, N'缓存列表菜单') GO + +delete from sys_menu WHERE menu_id = 116; +GO diff --git a/script/sql/update/update-4.2-4.3.sql b/script/sql/update/update-4.2-4.3.sql index 8486c380a..793919780 100644 --- a/script/sql/update/update-4.2-4.3.sql +++ b/script/sql/update/update-4.2-4.3.sql @@ -1,2 +1,3 @@ insert into sys_menu values('112', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); +delete from sys_menu WHERE menu_id = 116; From c57ab693e425bcb2d745bcdb934c812e68627991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 11 Jul 2022 16:34:31 +0800 Subject: [PATCH 043/299] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20README.md?= =?UTF-8?q?=20=E4=B8=8E=20=E9=A1=B9=E7=9B=AE=E9=A6=96=E9=A1=B5=20=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- ruoyi-ui/src/views/index.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d2e514751..93be11028 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ | 监控框架 | SpringBoot-Admin | [SpringBoot-Admin文档](https://codecentric.github.io/spring-boot-admin/current/) | 全方位服务监控 | | 校验框架 | Validation | [Validation文档](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/) | 增强接口安全性、严谨性 支持国际化 | | Excel框架 | Alibaba EasyExcel | [EasyExcel文档](https://www.yuque.com/easyexcel/doc/easyexcel) | 性能优异 扩展性强 | -| 文档框架 | Knife4j | [Knife4j文档](https://doc.xiaominfo.com/knife4j/documentation/) | 美化接口文档 | +| 文档框架 | SpringDoc、javadoc | [接口文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=5805266&doc_id=1469725) | 无注解零入侵基于java注释 | | 工具类框架 | Hutool、Lombok | [Hutool文档](https://www.hutool.cn/docs/) | 减少代码冗余 增加安全性 | | 代码生成器 | 适配MP、Knife4j规范化代码 | [Hutool文档](https://www.hutool.cn/docs/) | 一键生成前后端代码 | | 部署方式 | Docker | [Docker文档](https://docs.docker.com/) | 容器编排 一键部署业务集群 | diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 1576cbd75..e8118ada1 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -30,7 +30,7 @@ * 监控框架 SpringBoot-Admin 全方位服务监控
    * 校验框架 Validation 增强接口安全性 严谨性
    * Excel框架 Alibaba EasyExcel 性能优异 扩展性强
    - * 文档框架 knife4j 美化接口文档
    + * 文档框架 SpringDoc、javadoc 无注解零入侵基于java注释
    * 工具类框架 Hutool、Lombok 减少代码冗余 增加安全性
    * 代码生成器 适配MP、Knife4j规范化代码 一键生成前后端代码
    * 部署方式 Docker 容器编排 一键部署业务集群
    From aeebf7fa95e779981cd2cd4e464e622106194587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 12 Jul 2022 10:33:38 +0800 Subject: [PATCH 044/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20bean=20=E5=AD=98=E5=9C=A8=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/framework/config/properties/ExcludeUrlProperties.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java index 2182fded6..b77f2377b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java @@ -33,7 +33,7 @@ public class ExcludeUrlProperties implements InitializingBean { @Override public void afterPropertiesSet() { String asterisk = "*"; - RequestMappingHandlerMapping mapping = SpringUtils.getBean(RequestMappingHandlerMapping.class); + RequestMappingHandlerMapping mapping = SpringUtils.getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class); Map map = mapping.getHandlerMethods(); map.keySet().forEach(info -> { From f109bd4a02aeea98505ac45743d0d76511a747b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 12 Jul 2022 11:09:42 +0800 Subject: [PATCH 045/299] update springboot 2.6.9 => 2.7.1 --- pom.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 6beabcf2d..9abaa207f 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ 4.2.0 - 2.6.9 + 2.7.1 UTF-8 UTF-8 1.8 @@ -22,7 +22,6 @@ 2.2.2 1.2.11 1.6.9 - 1.5.22 5.2.2 3.1.1 2.3 @@ -31,7 +30,7 @@ 3.9.1 5.8.3 4.9.3 - 2.6.7 + 2.7.2 3.17.4 2.2.1 3.5.1 From 1d9f2d2ce7e780fb85a8663b7c2b0233d7045865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=89=91=E9=94=8B?= <1822213252@qq.com> Date: Tue, 12 Jul 2022 07:50:42 +0000 Subject: [PATCH 046/299] =?UTF-8?q?remove=20=E5=88=A0=E9=99=A4swagger?= =?UTF-8?q?=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-generator/src/main/resources/vm/java/bo.java.vm | 2 -- ruoyi-generator/src/main/resources/vm/java/vo.java.vm | 2 -- 2 files changed, 4 deletions(-) diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm index fab95ca68..7d784a7ff 100644 --- a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm @@ -2,8 +2,6 @@ package ${packageName}.domain.bo; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index c6d8b2462..983c29c0d 100644 --- a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -7,8 +7,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; From 7cf93278d36736e6502bb5e2b7ba1249cc3606ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 12 Jul 2022 15:52:03 +0800 Subject: [PATCH 047/299] =?UTF-8?q?remove=20=E5=88=A0=E9=99=A4=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF=20=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=20swagger=20=E5=AF=BC=E5=8C=85=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-generator/src/main/resources/vm/java/bo.java.vm | 3 --- ruoyi-generator/src/main/resources/vm/java/vo.java.vm | 2 -- 2 files changed, 5 deletions(-) diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm index fab95ca68..870014add 100644 --- a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm @@ -2,8 +2,6 @@ package ${packageName}.domain.bo; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; @@ -53,7 +51,6 @@ public class ${ClassName}Bo extends ${Entity} { #else @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) #end -#else #end private $column.javaType $column.javaField; diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index c6d8b2462..983c29c0d 100644 --- a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -7,8 +7,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; From eb9f3d37725c5df391f390c00cdeefa2d9a1d29b Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 12 Jul 2022 18:04:49 +0800 Subject: [PATCH 048/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81=E5=BC=80=E5=85=B3=E5=8F=98=E9=87=8F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/CaptchaController.java | 6 +- .../web/service/SysLoginService.java | 4 +- .../web/service/SysRegisterService.java | 4 +- .../system/service/ISysConfigService.java | 2 +- .../service/impl/SysConfigServiceImpl.java | 8 +- ruoyi-ui/src/views/login.vue | 10 +- .../views/system/user/profile/resetPwd.vue | 2 +- sql/{ry_20220625.sql => ry_20220712.sql} | 1376 ++++++++--------- 8 files changed, 706 insertions(+), 706 deletions(-) rename sql/{ry_20220625.sql => ry_20220712.sql} (98%) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index e8800b948..e1a397e66 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -46,9 +46,9 @@ public class CaptchaController public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); - boolean captchaOnOff = configService.selectCaptchaOnOff(); - ajax.put("captchaOnOff", captchaOnOff); - if (!captchaOnOff) + boolean captchaEnabled = configService.selectCaptchaEnabled(); + ajax.put("captchaEnabled", captchaEnabled); + if (!captchaEnabled) { return ajax; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 5776c5222..30136fca3 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -60,9 +60,9 @@ public class SysLoginService */ public String login(String username, String password, String code, String uuid) { - boolean captchaOnOff = configService.selectCaptchaOnOff(); + boolean captchaEnabled = configService.selectCaptchaEnabled(); // 验证码开关 - if (captchaOnOff) + if (captchaEnabled) { validateCaptcha(username, code, uuid); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java index 43b1ce3c1..061af232d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -42,9 +42,9 @@ public class SysRegisterService { String msg = "", username = registerBody.getUsername(), password = registerBody.getPassword(); - boolean captchaOnOff = configService.selectCaptchaOnOff(); + boolean captchaEnabled = configService.selectCaptchaEnabled(); // 验证码开关 - if (captchaOnOff) + if (captchaEnabled) { validateCaptcha(username, registerBody.getCode(), registerBody.getUuid()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index 89c79ba45..6e095dad9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -31,7 +31,7 @@ public interface ISysConfigService * * @return true开启,false关闭 */ - public boolean selectCaptchaOnOff(); + public boolean selectCaptchaEnabled(); /** * 查询参数配置列表 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 1017d23fa..bc390ad8c 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 @@ -86,14 +86,14 @@ public class SysConfigServiceImpl implements ISysConfigService * @return true开启,false关闭 */ @Override - public boolean selectCaptchaOnOff() + public boolean selectCaptchaEnabled() { - String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff"); - if (StringUtils.isEmpty(captchaOnOff)) + String captchaEnabled = selectConfigByKey("sys.account.captchaEnabled"); + if (StringUtils.isEmpty(captchaEnabled)) { return true; } - return Convert.toBool(captchaOnOff); + return Convert.toBool(captchaEnabled); } /** diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index 6e240dd24..074fecd32 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -23,7 +23,7 @@ - + { - this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff; - if (this.captchaOnOff) { + this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; + if (this.captchaEnabled) { this.codeUrl = "data:image/gif;base64," + res.img; this.loginForm.uuid = res.uuid; } @@ -144,7 +144,7 @@ export default { this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); }).catch(() => { this.loading = false; - if (this.captchaOnOff) { + if (this.captchaEnabled) { this.getCode(); } }); diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue index 06715e5cf..fcea67997 100644 --- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue +++ b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue @@ -7,7 +7,7 @@ - + 保存 diff --git a/sql/ry_20220625.sql b/sql/ry_20220712.sql similarity index 98% rename from sql/ry_20220625.sql rename to sql/ry_20220712.sql index e9e6580a8..d8e2cc240 100644 --- a/sql/ry_20220625.sql +++ b/sql/ry_20220712.sql @@ -1,689 +1,689 @@ --- ---------------------------- --- 1、部门表 --- ---------------------------- -drop table if exists sys_dept; -create table sys_dept ( - dept_id bigint(20) not null auto_increment comment '部门id', - parent_id bigint(20) default 0 comment '父部门id', - ancestors varchar(50) default '' comment '祖级列表', - dept_name varchar(30) default '' comment '部门名称', - order_num int(4) default 0 comment '显示顺序', - leader varchar(20) default null comment '负责人', - phone varchar(11) default null comment '联系电话', - email varchar(50) default null comment '邮箱', - status char(1) default '0' comment '部门状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - primary key (dept_id) -) engine=innodb auto_increment=200 comment = '部门表'; - --- ---------------------------- --- 初始化-部门表数据 --- ---------------------------- -insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); - - --- ---------------------------- --- 2、用户信息表 --- ---------------------------- -drop table if exists sys_user; -create table sys_user ( - user_id bigint(20) not null auto_increment comment '用户ID', - dept_id bigint(20) default null comment '部门ID', - user_name varchar(30) not null comment '用户账号', - nick_name varchar(30) not null comment '用户昵称', - user_type varchar(2) default '00' comment '用户类型(00系统用户)', - email varchar(50) default '' comment '用户邮箱', - phonenumber varchar(11) default '' comment '手机号码', - sex char(1) default '0' comment '用户性别(0男 1女 2未知)', - avatar varchar(100) default '' comment '头像地址', - password varchar(100) default '' comment '密码', - status char(1) default '0' comment '帐号状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - login_ip varchar(128) default '' comment '最后登录IP', - login_date datetime comment '最后登录时间', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (user_id) -) engine=innodb auto_increment=100 comment = '用户信息表'; - --- ---------------------------- --- 初始化-用户信息表数据 --- ---------------------------- -insert into sys_user values(1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '管理员'); -insert into sys_user values(2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '测试员'); - - --- ---------------------------- --- 3、岗位信息表 --- ---------------------------- -drop table if exists sys_post; -create table sys_post -( - post_id bigint(20) not null auto_increment comment '岗位ID', - post_code varchar(64) not null comment '岗位编码', - post_name varchar(50) not null comment '岗位名称', - post_sort int(4) not null comment '显示顺序', - status char(1) not null comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (post_id) -) engine=innodb comment = '岗位信息表'; - --- ---------------------------- --- 初始化-岗位信息表数据 --- ---------------------------- -insert into sys_post values(1, 'ceo', '董事长', 1, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(2, 'se', '项目经理', 2, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(3, 'hr', '人力资源', 3, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(4, 'user', '普通员工', 4, '0', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 4、角色信息表 --- ---------------------------- -drop table if exists sys_role; -create table sys_role ( - role_id bigint(20) not null auto_increment comment '角色ID', - role_name varchar(30) not null comment '角色名称', - role_key varchar(100) not null comment '角色权限字符串', - role_sort int(4) not null comment '显示顺序', - data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', - menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示', - dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示', - status char(1) not null comment '角色状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (role_id) -) engine=innodb auto_increment=100 comment = '角色信息表'; - --- ---------------------------- --- 初始化-角色信息表数据 --- ---------------------------- -insert into sys_role values('1', '超级管理员', 'admin', 1, 1, 1, 1, '0', '0', 'admin', sysdate(), '', null, '超级管理员'); -insert into sys_role values('2', '普通角色', 'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate(), '', null, '普通角色'); - - --- ---------------------------- --- 5、菜单权限表 --- ---------------------------- -drop table if exists sys_menu; -create table sys_menu ( - menu_id bigint(20) not null auto_increment comment '菜单ID', - menu_name varchar(50) not null comment '菜单名称', - parent_id bigint(20) default 0 comment '父菜单ID', - order_num int(4) default 0 comment '显示顺序', - path varchar(200) default '' comment '路由地址', - component varchar(255) default null comment '组件路径', - query varchar(255) default null comment '路由参数', - is_frame int(1) default 1 comment '是否为外链(0是 1否)', - is_cache int(1) default 0 comment '是否缓存(0缓存 1不缓存)', - menu_type char(1) default '' comment '菜单类型(M目录 C菜单 F按钮)', - visible char(1) default 0 comment '菜单状态(0显示 1隐藏)', - status char(1) default 0 comment '菜单状态(0正常 1停用)', - perms varchar(100) default null comment '权限标识', - icon varchar(100) default '#' comment '菜单图标', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default '' comment '备注', - primary key (menu_id) -) engine=innodb auto_increment=2000 comment = '菜单权限表'; - --- ---------------------------- --- 初始化-菜单信息表数据 --- ---------------------------- --- 一级菜单 -insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate(), '', null, '系统管理目录'); -insert into sys_menu values('2', '系统监控', '0', '2', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', null, '系统监控目录'); -insert into sys_menu values('3', '系统工具', '0', '3', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', null, '系统工具目录'); -insert into sys_menu values('4', '若依官网', '0', '4', 'http://ruoyi.vip', null, '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址'); --- 二级菜单 -insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate(), '', null, '用户管理菜单'); -insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate(), '', null, '角色管理菜单'); -insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', sysdate(), '', null, '菜单管理菜单'); -insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', sysdate(), '', null, '部门管理菜单'); -insert into sys_menu values('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', sysdate(), '', null, '岗位管理菜单'); -insert into sys_menu values('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', sysdate(), '', null, '字典管理菜单'); -insert into sys_menu values('106', '参数设置', '1', '7', 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', sysdate(), '', null, '参数设置菜单'); -insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate(), '', null, '通知公告菜单'); -insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单'); -insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单'); -insert into sys_menu values('110', '定时任务', '2', '2', 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单'); -insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate(), '', null, '数据监控菜单'); -insert into sys_menu values('112', '服务监控', '2', '4', 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单'); -insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单'); -insert into sys_menu values('114', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); -insert into sys_menu values('115', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); -insert into sys_menu values('116', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); -insert into sys_menu values('117', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); --- 三级菜单 -insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单'); -insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单'); --- 用户管理按钮 -insert into sys_menu values('1000', '用户查询', '100', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1001', '用户新增', '100', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1002', '用户修改', '100', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1003', '用户删除', '100', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1004', '用户导出', '100', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1005', '用户导入', '100', '6', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1006', '重置密码', '100', '7', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', sysdate(), '', null, ''); --- 角色管理按钮 -insert into sys_menu values('1007', '角色查询', '101', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1008', '角色新增', '101', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1009', '角色修改', '101', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1010', '角色删除', '101', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1011', '角色导出', '101', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', sysdate(), '', null, ''); --- 菜单管理按钮 -insert into sys_menu values('1012', '菜单查询', '102', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1013', '菜单新增', '102', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1014', '菜单修改', '102', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1015', '菜单删除', '102', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', sysdate(), '', null, ''); --- 部门管理按钮 -insert into sys_menu values('1016', '部门查询', '103', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1017', '部门新增', '103', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1018', '部门修改', '103', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1019', '部门删除', '103', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', sysdate(), '', null, ''); --- 岗位管理按钮 -insert into sys_menu values('1020', '岗位查询', '104', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1021', '岗位新增', '104', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1022', '岗位修改', '104', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1023', '岗位删除', '104', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1024', '岗位导出', '104', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', sysdate(), '', null, ''); --- 字典管理按钮 -insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', sysdate(), '', null, ''); --- 参数设置按钮 -insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', sysdate(), '', null, ''); --- 通知公告按钮 -insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', sysdate(), '', null, ''); --- 操作日志按钮 -insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1041', '日志导出', '500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate(), '', null, ''); --- 登录日志按钮 -insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate(), '', null, ''); --- 在线用户按钮 -insert into sys_menu values('1045', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1046', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1047', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, ''); --- 定时任务按钮 -insert into sys_menu values('1048', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1049', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1050', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1051', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1052', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1053', '任务导出', '110', '7', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, ''); --- 代码生成按钮 -insert into sys_menu values('1054', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1055', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1056', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1057', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1058', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1059', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 6、用户和角色关联表 用户N-1角色 --- ---------------------------- -drop table if exists sys_user_role; -create table sys_user_role ( - user_id bigint(20) not null comment '用户ID', - role_id bigint(20) not null comment '角色ID', - primary key(user_id, role_id) -) engine=innodb comment = '用户和角色关联表'; - --- ---------------------------- --- 初始化-用户和角色关联表数据 --- ---------------------------- -insert into sys_user_role values ('1', '1'); -insert into sys_user_role values ('2', '2'); - - --- ---------------------------- --- 7、角色和菜单关联表 角色1-N菜单 --- ---------------------------- -drop table if exists sys_role_menu; -create table sys_role_menu ( - role_id bigint(20) not null comment '角色ID', - menu_id bigint(20) not null comment '菜单ID', - primary key(role_id, menu_id) -) engine=innodb comment = '角色和菜单关联表'; - --- ---------------------------- --- 初始化-角色和菜单关联表数据 --- ---------------------------- -insert into sys_role_menu values ('2', '1'); -insert into sys_role_menu values ('2', '2'); -insert into sys_role_menu values ('2', '3'); -insert into sys_role_menu values ('2', '4'); -insert into sys_role_menu values ('2', '100'); -insert into sys_role_menu values ('2', '101'); -insert into sys_role_menu values ('2', '102'); -insert into sys_role_menu values ('2', '103'); -insert into sys_role_menu values ('2', '104'); -insert into sys_role_menu values ('2', '105'); -insert into sys_role_menu values ('2', '106'); -insert into sys_role_menu values ('2', '107'); -insert into sys_role_menu values ('2', '108'); -insert into sys_role_menu values ('2', '109'); -insert into sys_role_menu values ('2', '110'); -insert into sys_role_menu values ('2', '111'); -insert into sys_role_menu values ('2', '112'); -insert into sys_role_menu values ('2', '113'); -insert into sys_role_menu values ('2', '114'); -insert into sys_role_menu values ('2', '115'); -insert into sys_role_menu values ('2', '116'); -insert into sys_role_menu values ('2', '117'); -insert into sys_role_menu values ('2', '500'); -insert into sys_role_menu values ('2', '501'); -insert into sys_role_menu values ('2', '1000'); -insert into sys_role_menu values ('2', '1001'); -insert into sys_role_menu values ('2', '1002'); -insert into sys_role_menu values ('2', '1003'); -insert into sys_role_menu values ('2', '1004'); -insert into sys_role_menu values ('2', '1005'); -insert into sys_role_menu values ('2', '1006'); -insert into sys_role_menu values ('2', '1007'); -insert into sys_role_menu values ('2', '1008'); -insert into sys_role_menu values ('2', '1009'); -insert into sys_role_menu values ('2', '1010'); -insert into sys_role_menu values ('2', '1011'); -insert into sys_role_menu values ('2', '1012'); -insert into sys_role_menu values ('2', '1013'); -insert into sys_role_menu values ('2', '1014'); -insert into sys_role_menu values ('2', '1015'); -insert into sys_role_menu values ('2', '1016'); -insert into sys_role_menu values ('2', '1017'); -insert into sys_role_menu values ('2', '1018'); -insert into sys_role_menu values ('2', '1019'); -insert into sys_role_menu values ('2', '1020'); -insert into sys_role_menu values ('2', '1021'); -insert into sys_role_menu values ('2', '1022'); -insert into sys_role_menu values ('2', '1023'); -insert into sys_role_menu values ('2', '1024'); -insert into sys_role_menu values ('2', '1025'); -insert into sys_role_menu values ('2', '1026'); -insert into sys_role_menu values ('2', '1027'); -insert into sys_role_menu values ('2', '1028'); -insert into sys_role_menu values ('2', '1029'); -insert into sys_role_menu values ('2', '1030'); -insert into sys_role_menu values ('2', '1031'); -insert into sys_role_menu values ('2', '1032'); -insert into sys_role_menu values ('2', '1033'); -insert into sys_role_menu values ('2', '1034'); -insert into sys_role_menu values ('2', '1035'); -insert into sys_role_menu values ('2', '1036'); -insert into sys_role_menu values ('2', '1037'); -insert into sys_role_menu values ('2', '1038'); -insert into sys_role_menu values ('2', '1039'); -insert into sys_role_menu values ('2', '1040'); -insert into sys_role_menu values ('2', '1041'); -insert into sys_role_menu values ('2', '1042'); -insert into sys_role_menu values ('2', '1043'); -insert into sys_role_menu values ('2', '1044'); -insert into sys_role_menu values ('2', '1045'); -insert into sys_role_menu values ('2', '1046'); -insert into sys_role_menu values ('2', '1047'); -insert into sys_role_menu values ('2', '1048'); -insert into sys_role_menu values ('2', '1049'); -insert into sys_role_menu values ('2', '1050'); -insert into sys_role_menu values ('2', '1051'); -insert into sys_role_menu values ('2', '1052'); -insert into sys_role_menu values ('2', '1053'); -insert into sys_role_menu values ('2', '1054'); -insert into sys_role_menu values ('2', '1055'); -insert into sys_role_menu values ('2', '1056'); -insert into sys_role_menu values ('2', '1057'); -insert into sys_role_menu values ('2', '1058'); -insert into sys_role_menu values ('2', '1059'); - --- ---------------------------- --- 8、角色和部门关联表 角色1-N部门 --- ---------------------------- -drop table if exists sys_role_dept; -create table sys_role_dept ( - role_id bigint(20) not null comment '角色ID', - dept_id bigint(20) not null comment '部门ID', - primary key(role_id, dept_id) -) engine=innodb comment = '角色和部门关联表'; - --- ---------------------------- --- 初始化-角色和部门关联表数据 --- ---------------------------- -insert into sys_role_dept values ('2', '100'); -insert into sys_role_dept values ('2', '101'); -insert into sys_role_dept values ('2', '105'); - - --- ---------------------------- --- 9、用户与岗位关联表 用户1-N岗位 --- ---------------------------- -drop table if exists sys_user_post; -create table sys_user_post -( - user_id bigint(20) not null comment '用户ID', - post_id bigint(20) not null comment '岗位ID', - primary key (user_id, post_id) -) engine=innodb comment = '用户与岗位关联表'; - --- ---------------------------- --- 初始化-用户与岗位关联表数据 --- ---------------------------- -insert into sys_user_post values ('1', '1'); -insert into sys_user_post values ('2', '2'); - - --- ---------------------------- --- 10、操作日志记录 --- ---------------------------- -drop table if exists sys_oper_log; -create table sys_oper_log ( - oper_id bigint(20) not null auto_increment comment '日志主键', - title varchar(50) default '' comment '模块标题', - business_type int(2) default 0 comment '业务类型(0其它 1新增 2修改 3删除)', - method varchar(100) default '' comment '方法名称', - request_method varchar(10) default '' comment '请求方式', - operator_type int(1) default 0 comment '操作类别(0其它 1后台用户 2手机端用户)', - oper_name varchar(50) default '' comment '操作人员', - dept_name varchar(50) default '' comment '部门名称', - oper_url varchar(255) default '' comment '请求URL', - oper_ip varchar(128) default '' comment '主机地址', - oper_location varchar(255) default '' comment '操作地点', - oper_param varchar(2000) default '' comment '请求参数', - json_result varchar(2000) default '' comment '返回参数', - status int(1) default 0 comment '操作状态(0正常 1异常)', - error_msg varchar(2000) default '' comment '错误消息', - oper_time datetime comment '操作时间', - primary key (oper_id) -) engine=innodb auto_increment=100 comment = '操作日志记录'; - - --- ---------------------------- --- 11、字典类型表 --- ---------------------------- -drop table if exists sys_dict_type; -create table sys_dict_type -( - dict_id bigint(20) not null auto_increment comment '字典主键', - dict_name varchar(100) default '' comment '字典名称', - dict_type varchar(100) default '' comment '字典类型', - status char(1) default '0' comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (dict_id), - unique (dict_type) -) engine=innodb auto_increment=100 comment = '字典类型表'; - -insert into sys_dict_type values(1, '用户性别', 'sys_user_sex', '0', 'admin', sysdate(), '', null, '用户性别列表'); -insert into sys_dict_type values(2, '菜单状态', 'sys_show_hide', '0', 'admin', sysdate(), '', null, '菜单状态列表'); -insert into sys_dict_type values(3, '系统开关', 'sys_normal_disable', '0', 'admin', sysdate(), '', null, '系统开关列表'); -insert into sys_dict_type values(4, '任务状态', 'sys_job_status', '0', 'admin', sysdate(), '', null, '任务状态列表'); -insert into sys_dict_type values(5, '任务分组', 'sys_job_group', '0', 'admin', sysdate(), '', null, '任务分组列表'); -insert into sys_dict_type values(6, '系统是否', 'sys_yes_no', '0', 'admin', sysdate(), '', null, '系统是否列表'); -insert into sys_dict_type values(7, '通知类型', 'sys_notice_type', '0', 'admin', sysdate(), '', null, '通知类型列表'); -insert into sys_dict_type values(8, '通知状态', 'sys_notice_status', '0', 'admin', sysdate(), '', null, '通知状态列表'); -insert into sys_dict_type values(9, '操作类型', 'sys_oper_type', '0', 'admin', sysdate(), '', null, '操作类型列表'); -insert into sys_dict_type values(10, '系统状态', 'sys_common_status', '0', 'admin', sysdate(), '', null, '登录状态列表'); - - --- ---------------------------- --- 12、字典数据表 --- ---------------------------- -drop table if exists sys_dict_data; -create table sys_dict_data -( - dict_code bigint(20) not null auto_increment comment '字典编码', - dict_sort int(4) default 0 comment '字典排序', - dict_label varchar(100) default '' comment '字典标签', - dict_value varchar(100) default '' comment '字典键值', - dict_type varchar(100) default '' comment '字典类型', - css_class varchar(100) default null comment '样式属性(其他样式扩展)', - list_class varchar(100) default null comment '表格回显样式', - is_default char(1) default 'N' comment '是否默认(Y是 N否)', - status char(1) default '0' comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (dict_code) -) engine=innodb auto_increment=100 comment = '字典数据表'; - -insert into sys_dict_data values(1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男'); -insert into sys_dict_data values(2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别女'); -insert into sys_dict_data values(3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别未知'); -insert into sys_dict_data values(4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单'); -insert into sys_dict_data values(5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '隐藏菜单'); -insert into sys_dict_data values(6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); -insert into sys_dict_data values(8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); -insert into sys_dict_data values(10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', sysdate(), '', null, '默认分组'); -insert into sys_dict_data values(11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', sysdate(), '', null, '系统分组'); -insert into sys_dict_data values(12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是'); -insert into sys_dict_data values(13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '系统默认否'); -insert into sys_dict_data values(14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知'); -insert into sys_dict_data values(15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate(), '', null, '公告'); -insert into sys_dict_data values(16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '关闭状态'); -insert into sys_dict_data values(18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '新增操作'); -insert into sys_dict_data values(19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '修改操作'); -insert into sys_dict_data values(20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '删除操作'); -insert into sys_dict_data values(21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作'); -insert into sys_dict_data values(22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作'); -insert into sys_dict_data values(23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作'); -insert into sys_dict_data values(24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '强退操作'); -insert into sys_dict_data values(25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作'); -insert into sys_dict_data values(26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '清空操作'); -insert into sys_dict_data values(27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); - - --- ---------------------------- --- 13、参数配置表 --- ---------------------------- -drop table if exists sys_config; -create table sys_config ( - config_id int(5) not null auto_increment comment '参数主键', - config_name varchar(100) default '' comment '参数名称', - config_key varchar(100) default '' comment '参数键名', - config_value varchar(500) default '' comment '参数键值', - config_type char(1) default 'N' comment '系统内置(Y是 N否)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (config_id) -) engine=innodb auto_increment=100 comment = '参数配置表'; - -insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' ); -insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '初始化密码 123456' ); -insert into sys_config values(3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' ); -insert into sys_config values(4, '账号自助-验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', sysdate(), '', null, '是否开启验证码功能(true开启,false关闭)'); -insert into sys_config values(5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)'); - - --- ---------------------------- --- 14、系统访问记录 --- ---------------------------- -drop table if exists sys_logininfor; -create table sys_logininfor ( - info_id bigint(20) not null auto_increment comment '访问ID', - user_name varchar(50) default '' comment '用户账号', - ipaddr varchar(128) default '' comment '登录IP地址', - login_location varchar(255) default '' comment '登录地点', - browser varchar(50) default '' comment '浏览器类型', - os varchar(50) default '' comment '操作系统', - status char(1) default '0' comment '登录状态(0成功 1失败)', - msg varchar(255) default '' comment '提示消息', - login_time datetime comment '访问时间', - primary key (info_id) -) engine=innodb auto_increment=100 comment = '系统访问记录'; - - --- ---------------------------- --- 15、定时任务调度表 --- ---------------------------- -drop table if exists sys_job; -create table sys_job ( - job_id bigint(20) not null auto_increment comment '任务ID', - job_name varchar(64) default '' comment '任务名称', - job_group varchar(64) default 'DEFAULT' comment '任务组名', - invoke_target varchar(500) not null comment '调用目标字符串', - cron_expression varchar(255) default '' comment 'cron执行表达式', - misfire_policy varchar(20) default '3' comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', - concurrent char(1) default '1' comment '是否并发执行(0允许 1禁止)', - status char(1) default '0' comment '状态(0正常 1暂停)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default '' comment '备注信息', - primary key (job_id, job_name, job_group) -) engine=innodb auto_increment=100 comment = '定时任务调度表'; - -insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); -insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); -insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 16、定时任务调度日志表 --- ---------------------------- -drop table if exists sys_job_log; -create table sys_job_log ( - job_log_id bigint(20) not null auto_increment comment '任务日志ID', - job_name varchar(64) not null comment '任务名称', - job_group varchar(64) not null comment '任务组名', - invoke_target varchar(500) not null comment '调用目标字符串', - job_message varchar(500) comment '日志信息', - status char(1) default '0' comment '执行状态(0正常 1失败)', - exception_info varchar(2000) default '' comment '异常信息', - create_time datetime comment '创建时间', - primary key (job_log_id) -) engine=innodb comment = '定时任务调度日志表'; - - --- ---------------------------- --- 17、通知公告表 --- ---------------------------- -drop table if exists sys_notice; -create table sys_notice ( - notice_id int(4) not null auto_increment comment '公告ID', - notice_title varchar(50) not null comment '公告标题', - notice_type char(1) not null comment '公告类型(1通知 2公告)', - notice_content longblob default null comment '公告内容', - status char(1) default '0' comment '公告状态(0正常 1关闭)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(255) default null comment '备注', - primary key (notice_id) -) engine=innodb auto_increment=10 comment = '通知公告表'; - --- ---------------------------- --- 初始化-公告信息表数据 --- ---------------------------- -insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员'); -insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容', '0', 'admin', sysdate(), '', null, '管理员'); - - --- ---------------------------- --- 18、代码生成业务表 --- ---------------------------- -drop table if exists gen_table; -create table gen_table ( - table_id bigint(20) not null auto_increment comment '编号', - table_name varchar(200) default '' comment '表名称', - table_comment varchar(500) default '' comment '表描述', - sub_table_name varchar(64) default null comment '关联子表的表名', - sub_table_fk_name varchar(64) default null comment '子表关联的外键名', - class_name varchar(100) default '' comment '实体类名称', - tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)', - package_name varchar(100) comment '生成包路径', - module_name varchar(30) comment '生成模块名', - business_name varchar(30) comment '生成业务名', - function_name varchar(50) comment '生成功能名', - function_author varchar(50) comment '生成功能作者', - gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)', - gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)', - options varchar(1000) comment '其它生成选项', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (table_id) -) engine=innodb auto_increment=1 comment = '代码生成业务表'; - - --- ---------------------------- --- 19、代码生成业务表字段 --- ---------------------------- -drop table if exists gen_table_column; -create table gen_table_column ( - column_id bigint(20) not null auto_increment comment '编号', - table_id varchar(64) comment '归属表编号', - column_name varchar(200) comment '列名称', - column_comment varchar(500) comment '列描述', - column_type varchar(100) comment '列类型', - java_type varchar(500) comment 'JAVA类型', - java_field varchar(200) comment 'JAVA字段名', - is_pk char(1) comment '是否主键(1是)', - is_increment char(1) comment '是否自增(1是)', - is_required char(1) comment '是否必填(1是)', - is_insert char(1) comment '是否为插入字段(1是)', - is_edit char(1) comment '是否编辑字段(1是)', - is_list char(1) comment '是否列表字段(1是)', - is_query char(1) comment '是否查询字段(1是)', - query_type varchar(200) default 'EQ' comment '查询方式(等于、不等于、大于、小于、范围)', - html_type varchar(200) comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', - dict_type varchar(200) default '' comment '字典类型', - sort int comment '排序', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - primary key (column_id) +-- ---------------------------- +-- 1、部门表 +-- ---------------------------- +drop table if exists sys_dept; +create table sys_dept ( + dept_id bigint(20) not null auto_increment comment '部门id', + parent_id bigint(20) default 0 comment '父部门id', + ancestors varchar(50) default '' comment '祖级列表', + dept_name varchar(30) default '' comment '部门名称', + order_num int(4) default 0 comment '显示顺序', + leader varchar(20) default null comment '负责人', + phone varchar(11) default null comment '联系电话', + email varchar(50) default null comment '邮箱', + status char(1) default '0' comment '部门状态(0正常 1停用)', + del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + primary key (dept_id) +) engine=innodb auto_increment=200 comment = '部门表'; + +-- ---------------------------- +-- 初始化-部门表数据 +-- ---------------------------- +insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); +insert into sys_dept values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); + + +-- ---------------------------- +-- 2、用户信息表 +-- ---------------------------- +drop table if exists sys_user; +create table sys_user ( + user_id bigint(20) not null auto_increment comment '用户ID', + dept_id bigint(20) default null comment '部门ID', + user_name varchar(30) not null comment '用户账号', + nick_name varchar(30) not null comment '用户昵称', + user_type varchar(2) default '00' comment '用户类型(00系统用户)', + email varchar(50) default '' comment '用户邮箱', + phonenumber varchar(11) default '' comment '手机号码', + sex char(1) default '0' comment '用户性别(0男 1女 2未知)', + avatar varchar(100) default '' comment '头像地址', + password varchar(100) default '' comment '密码', + status char(1) default '0' comment '帐号状态(0正常 1停用)', + del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + login_ip varchar(128) default '' comment '最后登录IP', + login_date datetime comment '最后登录时间', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (user_id) +) engine=innodb auto_increment=100 comment = '用户信息表'; + +-- ---------------------------- +-- 初始化-用户信息表数据 +-- ---------------------------- +insert into sys_user values(1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '管理员'); +insert into sys_user values(2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '测试员'); + + +-- ---------------------------- +-- 3、岗位信息表 +-- ---------------------------- +drop table if exists sys_post; +create table sys_post +( + post_id bigint(20) not null auto_increment comment '岗位ID', + post_code varchar(64) not null comment '岗位编码', + post_name varchar(50) not null comment '岗位名称', + post_sort int(4) not null comment '显示顺序', + status char(1) not null comment '状态(0正常 1停用)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (post_id) +) engine=innodb comment = '岗位信息表'; + +-- ---------------------------- +-- 初始化-岗位信息表数据 +-- ---------------------------- +insert into sys_post values(1, 'ceo', '董事长', 1, '0', 'admin', sysdate(), '', null, ''); +insert into sys_post values(2, 'se', '项目经理', 2, '0', 'admin', sysdate(), '', null, ''); +insert into sys_post values(3, 'hr', '人力资源', 3, '0', 'admin', sysdate(), '', null, ''); +insert into sys_post values(4, 'user', '普通员工', 4, '0', 'admin', sysdate(), '', null, ''); + + +-- ---------------------------- +-- 4、角色信息表 +-- ---------------------------- +drop table if exists sys_role; +create table sys_role ( + role_id bigint(20) not null auto_increment comment '角色ID', + role_name varchar(30) not null comment '角色名称', + role_key varchar(100) not null comment '角色权限字符串', + role_sort int(4) not null comment '显示顺序', + data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示', + dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示', + status char(1) not null comment '角色状态(0正常 1停用)', + del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (role_id) +) engine=innodb auto_increment=100 comment = '角色信息表'; + +-- ---------------------------- +-- 初始化-角色信息表数据 +-- ---------------------------- +insert into sys_role values('1', '超级管理员', 'admin', 1, 1, 1, 1, '0', '0', 'admin', sysdate(), '', null, '超级管理员'); +insert into sys_role values('2', '普通角色', 'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate(), '', null, '普通角色'); + + +-- ---------------------------- +-- 5、菜单权限表 +-- ---------------------------- +drop table if exists sys_menu; +create table sys_menu ( + menu_id bigint(20) not null auto_increment comment '菜单ID', + menu_name varchar(50) not null comment '菜单名称', + parent_id bigint(20) default 0 comment '父菜单ID', + order_num int(4) default 0 comment '显示顺序', + path varchar(200) default '' comment '路由地址', + component varchar(255) default null comment '组件路径', + query varchar(255) default null comment '路由参数', + is_frame int(1) default 1 comment '是否为外链(0是 1否)', + is_cache int(1) default 0 comment '是否缓存(0缓存 1不缓存)', + menu_type char(1) default '' comment '菜单类型(M目录 C菜单 F按钮)', + visible char(1) default 0 comment '菜单状态(0显示 1隐藏)', + status char(1) default 0 comment '菜单状态(0正常 1停用)', + perms varchar(100) default null comment '权限标识', + icon varchar(100) default '#' comment '菜单图标', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default '' comment '备注', + primary key (menu_id) +) engine=innodb auto_increment=2000 comment = '菜单权限表'; + +-- ---------------------------- +-- 初始化-菜单信息表数据 +-- ---------------------------- +-- 一级菜单 +insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate(), '', null, '系统管理目录'); +insert into sys_menu values('2', '系统监控', '0', '2', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', null, '系统监控目录'); +insert into sys_menu values('3', '系统工具', '0', '3', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', null, '系统工具目录'); +insert into sys_menu values('4', '若依官网', '0', '4', 'http://ruoyi.vip', null, '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址'); +-- 二级菜单 +insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate(), '', null, '用户管理菜单'); +insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate(), '', null, '角色管理菜单'); +insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', sysdate(), '', null, '菜单管理菜单'); +insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', sysdate(), '', null, '部门管理菜单'); +insert into sys_menu values('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', sysdate(), '', null, '岗位管理菜单'); +insert into sys_menu values('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', sysdate(), '', null, '字典管理菜单'); +insert into sys_menu values('106', '参数设置', '1', '7', 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', sysdate(), '', null, '参数设置菜单'); +insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate(), '', null, '通知公告菜单'); +insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单'); +insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单'); +insert into sys_menu values('110', '定时任务', '2', '2', 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单'); +insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate(), '', null, '数据监控菜单'); +insert into sys_menu values('112', '服务监控', '2', '4', 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单'); +insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单'); +insert into sys_menu values('114', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单'); +insert into sys_menu values('115', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); +insert into sys_menu values('116', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); +insert into sys_menu values('117', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); +-- 三级菜单 +insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单'); +insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单'); +-- 用户管理按钮 +insert into sys_menu values('1000', '用户查询', '100', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1001', '用户新增', '100', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1002', '用户修改', '100', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1003', '用户删除', '100', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1004', '用户导出', '100', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1005', '用户导入', '100', '6', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1006', '重置密码', '100', '7', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', sysdate(), '', null, ''); +-- 角色管理按钮 +insert into sys_menu values('1007', '角色查询', '101', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1008', '角色新增', '101', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1009', '角色修改', '101', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1010', '角色删除', '101', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1011', '角色导出', '101', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', sysdate(), '', null, ''); +-- 菜单管理按钮 +insert into sys_menu values('1012', '菜单查询', '102', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1013', '菜单新增', '102', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1014', '菜单修改', '102', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1015', '菜单删除', '102', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', sysdate(), '', null, ''); +-- 部门管理按钮 +insert into sys_menu values('1016', '部门查询', '103', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1017', '部门新增', '103', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1018', '部门修改', '103', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1019', '部门删除', '103', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', sysdate(), '', null, ''); +-- 岗位管理按钮 +insert into sys_menu values('1020', '岗位查询', '104', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1021', '岗位新增', '104', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1022', '岗位修改', '104', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1023', '岗位删除', '104', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1024', '岗位导出', '104', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', sysdate(), '', null, ''); +-- 字典管理按钮 +insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', sysdate(), '', null, ''); +-- 参数设置按钮 +insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', sysdate(), '', null, ''); +-- 通知公告按钮 +insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', sysdate(), '', null, ''); +-- 操作日志按钮 +insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1041', '日志导出', '500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate(), '', null, ''); +-- 登录日志按钮 +insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate(), '', null, ''); +-- 在线用户按钮 +insert into sys_menu values('1045', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1046', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1047', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, ''); +-- 定时任务按钮 +insert into sys_menu values('1048', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1049', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1050', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1051', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1052', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1053', '任务导出', '110', '7', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, ''); +-- 代码生成按钮 +insert into sys_menu values('1054', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1055', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1056', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1057', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1058', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, ''); +insert into sys_menu values('1059', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, ''); + + +-- ---------------------------- +-- 6、用户和角色关联表 用户N-1角色 +-- ---------------------------- +drop table if exists sys_user_role; +create table sys_user_role ( + user_id bigint(20) not null comment '用户ID', + role_id bigint(20) not null comment '角色ID', + primary key(user_id, role_id) +) engine=innodb comment = '用户和角色关联表'; + +-- ---------------------------- +-- 初始化-用户和角色关联表数据 +-- ---------------------------- +insert into sys_user_role values ('1', '1'); +insert into sys_user_role values ('2', '2'); + + +-- ---------------------------- +-- 7、角色和菜单关联表 角色1-N菜单 +-- ---------------------------- +drop table if exists sys_role_menu; +create table sys_role_menu ( + role_id bigint(20) not null comment '角色ID', + menu_id bigint(20) not null comment '菜单ID', + primary key(role_id, menu_id) +) engine=innodb comment = '角色和菜单关联表'; + +-- ---------------------------- +-- 初始化-角色和菜单关联表数据 +-- ---------------------------- +insert into sys_role_menu values ('2', '1'); +insert into sys_role_menu values ('2', '2'); +insert into sys_role_menu values ('2', '3'); +insert into sys_role_menu values ('2', '4'); +insert into sys_role_menu values ('2', '100'); +insert into sys_role_menu values ('2', '101'); +insert into sys_role_menu values ('2', '102'); +insert into sys_role_menu values ('2', '103'); +insert into sys_role_menu values ('2', '104'); +insert into sys_role_menu values ('2', '105'); +insert into sys_role_menu values ('2', '106'); +insert into sys_role_menu values ('2', '107'); +insert into sys_role_menu values ('2', '108'); +insert into sys_role_menu values ('2', '109'); +insert into sys_role_menu values ('2', '110'); +insert into sys_role_menu values ('2', '111'); +insert into sys_role_menu values ('2', '112'); +insert into sys_role_menu values ('2', '113'); +insert into sys_role_menu values ('2', '114'); +insert into sys_role_menu values ('2', '115'); +insert into sys_role_menu values ('2', '116'); +insert into sys_role_menu values ('2', '117'); +insert into sys_role_menu values ('2', '500'); +insert into sys_role_menu values ('2', '501'); +insert into sys_role_menu values ('2', '1000'); +insert into sys_role_menu values ('2', '1001'); +insert into sys_role_menu values ('2', '1002'); +insert into sys_role_menu values ('2', '1003'); +insert into sys_role_menu values ('2', '1004'); +insert into sys_role_menu values ('2', '1005'); +insert into sys_role_menu values ('2', '1006'); +insert into sys_role_menu values ('2', '1007'); +insert into sys_role_menu values ('2', '1008'); +insert into sys_role_menu values ('2', '1009'); +insert into sys_role_menu values ('2', '1010'); +insert into sys_role_menu values ('2', '1011'); +insert into sys_role_menu values ('2', '1012'); +insert into sys_role_menu values ('2', '1013'); +insert into sys_role_menu values ('2', '1014'); +insert into sys_role_menu values ('2', '1015'); +insert into sys_role_menu values ('2', '1016'); +insert into sys_role_menu values ('2', '1017'); +insert into sys_role_menu values ('2', '1018'); +insert into sys_role_menu values ('2', '1019'); +insert into sys_role_menu values ('2', '1020'); +insert into sys_role_menu values ('2', '1021'); +insert into sys_role_menu values ('2', '1022'); +insert into sys_role_menu values ('2', '1023'); +insert into sys_role_menu values ('2', '1024'); +insert into sys_role_menu values ('2', '1025'); +insert into sys_role_menu values ('2', '1026'); +insert into sys_role_menu values ('2', '1027'); +insert into sys_role_menu values ('2', '1028'); +insert into sys_role_menu values ('2', '1029'); +insert into sys_role_menu values ('2', '1030'); +insert into sys_role_menu values ('2', '1031'); +insert into sys_role_menu values ('2', '1032'); +insert into sys_role_menu values ('2', '1033'); +insert into sys_role_menu values ('2', '1034'); +insert into sys_role_menu values ('2', '1035'); +insert into sys_role_menu values ('2', '1036'); +insert into sys_role_menu values ('2', '1037'); +insert into sys_role_menu values ('2', '1038'); +insert into sys_role_menu values ('2', '1039'); +insert into sys_role_menu values ('2', '1040'); +insert into sys_role_menu values ('2', '1041'); +insert into sys_role_menu values ('2', '1042'); +insert into sys_role_menu values ('2', '1043'); +insert into sys_role_menu values ('2', '1044'); +insert into sys_role_menu values ('2', '1045'); +insert into sys_role_menu values ('2', '1046'); +insert into sys_role_menu values ('2', '1047'); +insert into sys_role_menu values ('2', '1048'); +insert into sys_role_menu values ('2', '1049'); +insert into sys_role_menu values ('2', '1050'); +insert into sys_role_menu values ('2', '1051'); +insert into sys_role_menu values ('2', '1052'); +insert into sys_role_menu values ('2', '1053'); +insert into sys_role_menu values ('2', '1054'); +insert into sys_role_menu values ('2', '1055'); +insert into sys_role_menu values ('2', '1056'); +insert into sys_role_menu values ('2', '1057'); +insert into sys_role_menu values ('2', '1058'); +insert into sys_role_menu values ('2', '1059'); + +-- ---------------------------- +-- 8、角色和部门关联表 角色1-N部门 +-- ---------------------------- +drop table if exists sys_role_dept; +create table sys_role_dept ( + role_id bigint(20) not null comment '角色ID', + dept_id bigint(20) not null comment '部门ID', + primary key(role_id, dept_id) +) engine=innodb comment = '角色和部门关联表'; + +-- ---------------------------- +-- 初始化-角色和部门关联表数据 +-- ---------------------------- +insert into sys_role_dept values ('2', '100'); +insert into sys_role_dept values ('2', '101'); +insert into sys_role_dept values ('2', '105'); + + +-- ---------------------------- +-- 9、用户与岗位关联表 用户1-N岗位 +-- ---------------------------- +drop table if exists sys_user_post; +create table sys_user_post +( + user_id bigint(20) not null comment '用户ID', + post_id bigint(20) not null comment '岗位ID', + primary key (user_id, post_id) +) engine=innodb comment = '用户与岗位关联表'; + +-- ---------------------------- +-- 初始化-用户与岗位关联表数据 +-- ---------------------------- +insert into sys_user_post values ('1', '1'); +insert into sys_user_post values ('2', '2'); + + +-- ---------------------------- +-- 10、操作日志记录 +-- ---------------------------- +drop table if exists sys_oper_log; +create table sys_oper_log ( + oper_id bigint(20) not null auto_increment comment '日志主键', + title varchar(50) default '' comment '模块标题', + business_type int(2) default 0 comment '业务类型(0其它 1新增 2修改 3删除)', + method varchar(100) default '' comment '方法名称', + request_method varchar(10) default '' comment '请求方式', + operator_type int(1) default 0 comment '操作类别(0其它 1后台用户 2手机端用户)', + oper_name varchar(50) default '' comment '操作人员', + dept_name varchar(50) default '' comment '部门名称', + oper_url varchar(255) default '' comment '请求URL', + oper_ip varchar(128) default '' comment '主机地址', + oper_location varchar(255) default '' comment '操作地点', + oper_param varchar(2000) default '' comment '请求参数', + json_result varchar(2000) default '' comment '返回参数', + status int(1) default 0 comment '操作状态(0正常 1异常)', + error_msg varchar(2000) default '' comment '错误消息', + oper_time datetime comment '操作时间', + primary key (oper_id) +) engine=innodb auto_increment=100 comment = '操作日志记录'; + + +-- ---------------------------- +-- 11、字典类型表 +-- ---------------------------- +drop table if exists sys_dict_type; +create table sys_dict_type +( + dict_id bigint(20) not null auto_increment comment '字典主键', + dict_name varchar(100) default '' comment '字典名称', + dict_type varchar(100) default '' comment '字典类型', + status char(1) default '0' comment '状态(0正常 1停用)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (dict_id), + unique (dict_type) +) engine=innodb auto_increment=100 comment = '字典类型表'; + +insert into sys_dict_type values(1, '用户性别', 'sys_user_sex', '0', 'admin', sysdate(), '', null, '用户性别列表'); +insert into sys_dict_type values(2, '菜单状态', 'sys_show_hide', '0', 'admin', sysdate(), '', null, '菜单状态列表'); +insert into sys_dict_type values(3, '系统开关', 'sys_normal_disable', '0', 'admin', sysdate(), '', null, '系统开关列表'); +insert into sys_dict_type values(4, '任务状态', 'sys_job_status', '0', 'admin', sysdate(), '', null, '任务状态列表'); +insert into sys_dict_type values(5, '任务分组', 'sys_job_group', '0', 'admin', sysdate(), '', null, '任务分组列表'); +insert into sys_dict_type values(6, '系统是否', 'sys_yes_no', '0', 'admin', sysdate(), '', null, '系统是否列表'); +insert into sys_dict_type values(7, '通知类型', 'sys_notice_type', '0', 'admin', sysdate(), '', null, '通知类型列表'); +insert into sys_dict_type values(8, '通知状态', 'sys_notice_status', '0', 'admin', sysdate(), '', null, '通知状态列表'); +insert into sys_dict_type values(9, '操作类型', 'sys_oper_type', '0', 'admin', sysdate(), '', null, '操作类型列表'); +insert into sys_dict_type values(10, '系统状态', 'sys_common_status', '0', 'admin', sysdate(), '', null, '登录状态列表'); + + +-- ---------------------------- +-- 12、字典数据表 +-- ---------------------------- +drop table if exists sys_dict_data; +create table sys_dict_data +( + dict_code bigint(20) not null auto_increment comment '字典编码', + dict_sort int(4) default 0 comment '字典排序', + dict_label varchar(100) default '' comment '字典标签', + dict_value varchar(100) default '' comment '字典键值', + dict_type varchar(100) default '' comment '字典类型', + css_class varchar(100) default null comment '样式属性(其他样式扩展)', + list_class varchar(100) default null comment '表格回显样式', + is_default char(1) default 'N' comment '是否默认(Y是 N否)', + status char(1) default '0' comment '状态(0正常 1停用)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (dict_code) +) engine=innodb auto_increment=100 comment = '字典数据表'; + +insert into sys_dict_data values(1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男'); +insert into sys_dict_data values(2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别女'); +insert into sys_dict_data values(3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别未知'); +insert into sys_dict_data values(4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单'); +insert into sys_dict_data values(5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '隐藏菜单'); +insert into sys_dict_data values(6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); +insert into sys_dict_data values(7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); +insert into sys_dict_data values(8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); +insert into sys_dict_data values(9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); +insert into sys_dict_data values(10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', sysdate(), '', null, '默认分组'); +insert into sys_dict_data values(11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', sysdate(), '', null, '系统分组'); +insert into sys_dict_data values(12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是'); +insert into sys_dict_data values(13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '系统默认否'); +insert into sys_dict_data values(14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知'); +insert into sys_dict_data values(15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate(), '', null, '公告'); +insert into sys_dict_data values(16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); +insert into sys_dict_data values(17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '关闭状态'); +insert into sys_dict_data values(18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '新增操作'); +insert into sys_dict_data values(19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '修改操作'); +insert into sys_dict_data values(20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '删除操作'); +insert into sys_dict_data values(21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作'); +insert into sys_dict_data values(22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作'); +insert into sys_dict_data values(23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作'); +insert into sys_dict_data values(24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '强退操作'); +insert into sys_dict_data values(25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作'); +insert into sys_dict_data values(26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '清空操作'); +insert into sys_dict_data values(27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态'); +insert into sys_dict_data values(28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); + + +-- ---------------------------- +-- 13、参数配置表 +-- ---------------------------- +drop table if exists sys_config; +create table sys_config ( + config_id int(5) not null auto_increment comment '参数主键', + config_name varchar(100) default '' comment '参数名称', + config_key varchar(100) default '' comment '参数键名', + config_value varchar(500) default '' comment '参数键值', + config_type char(1) default 'N' comment '系统内置(Y是 N否)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (config_id) +) engine=innodb auto_increment=100 comment = '参数配置表'; + +insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' ); +insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '初始化密码 123456' ); +insert into sys_config values(3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' ); +insert into sys_config values(4, '账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', sysdate(), '', null, '是否开启验证码功能(true开启,false关闭)'); +insert into sys_config values(5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)'); + + +-- ---------------------------- +-- 14、系统访问记录 +-- ---------------------------- +drop table if exists sys_logininfor; +create table sys_logininfor ( + info_id bigint(20) not null auto_increment comment '访问ID', + user_name varchar(50) default '' comment '用户账号', + ipaddr varchar(128) default '' comment '登录IP地址', + login_location varchar(255) default '' comment '登录地点', + browser varchar(50) default '' comment '浏览器类型', + os varchar(50) default '' comment '操作系统', + status char(1) default '0' comment '登录状态(0成功 1失败)', + msg varchar(255) default '' comment '提示消息', + login_time datetime comment '访问时间', + primary key (info_id) +) engine=innodb auto_increment=100 comment = '系统访问记录'; + + +-- ---------------------------- +-- 15、定时任务调度表 +-- ---------------------------- +drop table if exists sys_job; +create table sys_job ( + job_id bigint(20) not null auto_increment comment '任务ID', + job_name varchar(64) default '' comment '任务名称', + job_group varchar(64) default 'DEFAULT' comment '任务组名', + invoke_target varchar(500) not null comment '调用目标字符串', + cron_expression varchar(255) default '' comment 'cron执行表达式', + misfire_policy varchar(20) default '3' comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', + concurrent char(1) default '1' comment '是否并发执行(0允许 1禁止)', + status char(1) default '0' comment '状态(0正常 1暂停)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default '' comment '备注信息', + primary key (job_id, job_name, job_group) +) engine=innodb auto_increment=100 comment = '定时任务调度表'; + +insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); +insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); +insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); + + +-- ---------------------------- +-- 16、定时任务调度日志表 +-- ---------------------------- +drop table if exists sys_job_log; +create table sys_job_log ( + job_log_id bigint(20) not null auto_increment comment '任务日志ID', + job_name varchar(64) not null comment '任务名称', + job_group varchar(64) not null comment '任务组名', + invoke_target varchar(500) not null comment '调用目标字符串', + job_message varchar(500) comment '日志信息', + status char(1) default '0' comment '执行状态(0正常 1失败)', + exception_info varchar(2000) default '' comment '异常信息', + create_time datetime comment '创建时间', + primary key (job_log_id) +) engine=innodb comment = '定时任务调度日志表'; + + +-- ---------------------------- +-- 17、通知公告表 +-- ---------------------------- +drop table if exists sys_notice; +create table sys_notice ( + notice_id int(4) not null auto_increment comment '公告ID', + notice_title varchar(50) not null comment '公告标题', + notice_type char(1) not null comment '公告类型(1通知 2公告)', + notice_content longblob default null comment '公告内容', + status char(1) default '0' comment '公告状态(0正常 1关闭)', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(255) default null comment '备注', + primary key (notice_id) +) engine=innodb auto_increment=10 comment = '通知公告表'; + +-- ---------------------------- +-- 初始化-公告信息表数据 +-- ---------------------------- +insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员'); +insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容', '0', 'admin', sysdate(), '', null, '管理员'); + + +-- ---------------------------- +-- 18、代码生成业务表 +-- ---------------------------- +drop table if exists gen_table; +create table gen_table ( + table_id bigint(20) not null auto_increment comment '编号', + table_name varchar(200) default '' comment '表名称', + table_comment varchar(500) default '' comment '表描述', + sub_table_name varchar(64) default null comment '关联子表的表名', + sub_table_fk_name varchar(64) default null comment '子表关联的外键名', + class_name varchar(100) default '' comment '实体类名称', + tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)', + package_name varchar(100) comment '生成包路径', + module_name varchar(30) comment '生成模块名', + business_name varchar(30) comment '生成业务名', + function_name varchar(50) comment '生成功能名', + function_author varchar(50) comment '生成功能作者', + gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)', + gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)', + options varchar(1000) comment '其它生成选项', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (table_id) +) engine=innodb auto_increment=1 comment = '代码生成业务表'; + + +-- ---------------------------- +-- 19、代码生成业务表字段 +-- ---------------------------- +drop table if exists gen_table_column; +create table gen_table_column ( + column_id bigint(20) not null auto_increment comment '编号', + table_id varchar(64) comment '归属表编号', + column_name varchar(200) comment '列名称', + column_comment varchar(500) comment '列描述', + column_type varchar(100) comment '列类型', + java_type varchar(500) comment 'JAVA类型', + java_field varchar(200) comment 'JAVA字段名', + is_pk char(1) comment '是否主键(1是)', + is_increment char(1) comment '是否自增(1是)', + is_required char(1) comment '是否必填(1是)', + is_insert char(1) comment '是否为插入字段(1是)', + is_edit char(1) comment '是否编辑字段(1是)', + is_list char(1) comment '是否列表字段(1是)', + is_query char(1) comment '是否查询字段(1是)', + query_type varchar(200) default 'EQ' comment '查询方式(等于、不等于、大于、小于、范围)', + html_type varchar(200) comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', + dict_type varchar(200) default '' comment '字典类型', + sort int comment '排序', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + primary key (column_id) ) engine=innodb auto_increment=1 comment = '代码生成业务表字段'; \ No newline at end of file From c7c3da20386987893476967ea8f3929e1f89e452 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 12 Jul 2022 18:07:05 +0800 Subject: [PATCH 049/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7fastjson=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=882.0.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7a16b201..c855b5f40 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 2.3.2 2.2.2 1.4.1 - 2.0.8 + 2.0.9 6.1.6 2.11.0 1.4 From a1a13708bee9f697e9afa871c8f05ba20e9db0b7 Mon Sep 17 00:00:00 2001 From: liyang Date: Tue, 12 Jul 2022 20:59:21 +0800 Subject: [PATCH 050/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/monitor/SysLogininforController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 0b6b763a9..cfdfaf501 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -51,7 +51,8 @@ public class SysLogininforController extends BaseController { } /** - * 获取系统访问记录详情 + * 删除登录日志 + * @param infoIds 日志id */ @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) From ecc4aa55714c96ca7c906cd461a464d1f00cb47f Mon Sep 17 00:00:00 2001 From: liyang Date: Tue, 12 Jul 2022 21:00:55 +0800 Subject: [PATCH 051/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/monitor/SysLogininforController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index cfdfaf501..f7a014919 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -51,8 +51,8 @@ public class SysLogininforController extends BaseController { } /** - * 删除登录日志 - * @param infoIds 日志id + * 批量删除登录日志 + * @param infoIds 日志ids */ @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) From 73db68b08b7975d84a24ea8838a96083a996c1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A4=E8=88=9F=E7=83=9F=E9=9B=A8?= <494979+gzyy@user.noreply.gitee.com> Date: Tue, 12 Jul 2022 13:02:08 +0000 Subject: [PATCH 052/299] =?UTF-8?q?!197=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=8F=8F=E8=BF=B0=20*=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/monitor/SysLogininforController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java index 0b6b763a9..f7a014919 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -51,7 +51,8 @@ public class SysLogininforController extends BaseController { } /** - * 获取系统访问记录详情 + * 批量删除登录日志 + * @param infoIds 日志ids */ @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) From 3ba8cf41021e32c1dc7922cd04ac6e2ab3833012 Mon Sep 17 00:00:00 2001 From: liyang Date: Tue, 12 Jul 2022 21:48:42 +0800 Subject: [PATCH 053/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/web/controller/monitor/SysOperlogController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index f2dd1efce..468b9c4cf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -51,7 +51,8 @@ public class SysOperlogController extends BaseController { } /** - * 获取操作日志记录详情 + * 批量删除操作日志记录 + * @param operIds 日志ids */ @Log(title = "操作日志", businessType = BusinessType.DELETE) @SaCheckPermission("monitor:operlog:remove") From edefee46b2644a3b0a74e5796150a540a5b693a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=9A=E5=B1=BF?= <1491182878@qq.com> Date: Wed, 13 Jul 2022 01:00:44 +0000 Subject: [PATCH 054/299] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=A0=81=E5=A4=9A=E4=BD=99=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/framework/config/KaptchaTextCreator.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java index 976a46a18..7f8e1d50f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java @@ -45,7 +45,7 @@ public class KaptchaTextCreator extends DefaultTextCreator suChinese.append(CNUMBERS[y]); } } - else if (randomoperands == 2) + else { if (x >= y) { @@ -62,13 +62,6 @@ public class KaptchaTextCreator extends DefaultTextCreator suChinese.append(CNUMBERS[x]); } } - else - { - result = x + y; - suChinese.append(CNUMBERS[x]); - suChinese.append("+"); - suChinese.append(CNUMBERS[y]); - } suChinese.append("=?@" + result); return suChinese.toString(); } From ae707d340b4cf438ab13f71d50ba8a87dde16b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 14 Jul 2022 10:55:49 +0800 Subject: [PATCH 055/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20DateColum?= =?UTF-8?q?n=20=E6=94=AF=E6=8C=81=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=A4=9Akey?= =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/annotation/DataColumn.java | 6 ++++-- .../handler/PlusDataPermissionHandler.java | 13 ++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java index bd2ddece1..df416edc8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java @@ -5,6 +5,8 @@ import java.lang.annotation.*; /** * 数据权限 * + * 一个注解只能对应一个模板 + * * @author Lion Li * @version 3.5.0 */ @@ -16,11 +18,11 @@ public @interface DataColumn { /** * 占位符关键字 */ - String key() default "deptName"; + String[] key() default "deptName"; /** * 占位符替换值 */ - String value() default "dept_id"; + String[] value() default "dept_id"; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java index 7ecc12a3f..1a94b35f0 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java @@ -124,12 +124,19 @@ public class PlusDataPermissionHandler { } boolean isSuccess = false; for (DataColumn dataColumn : dataColumns) { + if (dataColumn.key().length != dataColumn.value().length) { + throw new ServiceException("角色数据范围异常 => key与value长度不匹配"); + } // 不包含 key 变量 则不处理 - if (!StringUtils.contains(type.getSqlTemplate(), "#" + dataColumn.key())) { + if (!StringUtils.containsAny(type.getSqlTemplate(), + Arrays.stream(dataColumn.key()).map(key -> "#" + key).toArray(String[]::new) + )) { continue; } // 设置注解变量 key 为表达式变量 value 为变量值 - context.setVariable(dataColumn.key(), dataColumn.value()); + for (int i = 0; i < dataColumn.key().length; i++) { + context.setVariable(dataColumn.key()[i], dataColumn.value()[i]); + } // 解析sql模板并填充 String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class); @@ -137,7 +144,7 @@ public class PlusDataPermissionHandler { isSuccess = true; } // 未处理成功则填充兜底方案 - if (!isSuccess) { + if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) { sqlString.append(joinStr).append(type.getElseSql()); } } From ce7536df9f82833044c9cbc479f0de42de2beffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=93=E8=9B=99=E5=B8=88?= <770492966@qq.com> Date: Thu, 14 Jul 2022 11:15:17 +0000 Subject: [PATCH 056/299] =?UTF-8?q?!201=20redission=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=89=8D=E7=BC=80=20*=20redission=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=88=A4=E6=96=AD=E6=97=A0=E5=89=8D=E7=BC=80=E5=88=99?= =?UTF-8?q?=E4=B8=8D=E5=A4=84=E7=90=86=20*=20redission=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 2 + .../src/main/resources/application-prod.yml | 2 + .../ruoyi/framework/config/RedisConfig.java | 3 ++ .../config/properties/RedissonProperties.java | 7 ++- .../framework/handler/KeyPrefixHandler.java | 50 +++++++++++++++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index f9327f779..88bc3a664 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -138,6 +138,8 @@ spring: ssl: false redisson: + # redis key前缀 + keyPrefix: # 线程池数量 threads: 4 # Netty线程池数量 diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index a42f4ad5b..0987874fa 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -141,6 +141,8 @@ spring: ssl: false redisson: + # redis key前缀 + keyPrefix: # 线程池数量 threads: 16 # Netty线程池数量 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java index 38a871895..30fff169b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java @@ -3,6 +3,7 @@ package com.ruoyi.framework.config; import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.framework.config.properties.RedissonProperties; +import com.ruoyi.framework.handler.KeyPrefixHandler; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RedissonClient; import org.redisson.codec.JsonJacksonCodec; @@ -48,6 +49,7 @@ public class RedisConfig extends CachingConfigurerSupport { if (ObjectUtil.isNotNull(singleServerConfig)) { // 使用单机模式 config.useSingleServer() + .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//设置redis key前缀 .setTimeout(singleServerConfig.getTimeout()) .setClientName(singleServerConfig.getClientName()) .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout()) @@ -59,6 +61,7 @@ public class RedisConfig extends CachingConfigurerSupport { RedissonProperties.ClusterServersConfig clusterServersConfig = redissonProperties.getClusterServersConfig(); if (ObjectUtil.isNotNull(clusterServersConfig)) { config.useClusterServers() + .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//设置redis key前缀 .setTimeout(clusterServersConfig.getTimeout()) .setClientName(clusterServersConfig.getClientName()) .setIdleConnectionTimeout(clusterServersConfig.getIdleConnectionTimeout()) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java index cd320eb50..eab746c8b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java @@ -18,7 +18,12 @@ import java.util.List; @Component @ConfigurationProperties(prefix = "redisson") public class RedissonProperties { - + + /** + * redis缓存key前缀 + */ + private String keyPrefix; + /** * 线程池数量,默认值 = 当前处理核数量 * 2 */ diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java new file mode 100644 index 000000000..ddfa064e9 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java @@ -0,0 +1,50 @@ +package com.ruoyi.framework.handler; + +import com.ruoyi.common.utils.StringUtils; +import org.redisson.api.NameMapper; + +/* + * redis缓存key前缀处理 + * @author ye + * @create 2022/7/14 17:44 + */ +public class KeyPrefixHandler implements NameMapper { + + private final String keyPrefix; + + //前缀为空 则返回空前缀 + public KeyPrefixHandler(String keyPrefix) { + this.keyPrefix = StringUtils.isBlank(keyPrefix) ? "" : keyPrefix + ":"; + } + + //增加前缀 + @Override + public String map(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + if (StringUtils.isBlank(keyPrefix)) { + return name; + } + if (!name.startsWith(keyPrefix)) { + return keyPrefix + name; + } else { + return name; + } + } + + //去除前缀 + @Override + public String unmap(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + if (StringUtils.isBlank(keyPrefix)) { + return name; + } + if (name.startsWith(keyPrefix)) { + return name.substring(keyPrefix.length()); + } + return name; + } +} From ca301891db839363733df54027dac0b8a5e9a6e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 14 Jul 2022 19:10:28 +0800 Subject: [PATCH 057/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=9B=91=E6=8E=A7=20=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/monitor/CacheController.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) 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 0fda9c362..c1575ae7b 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,14 +1,16 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.domain.SysCache; import lombok.RequiredArgsConstructor; -import org.springframework.data.redis.connection.RedisServerCommands; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; +import org.redisson.spring.data.connection.RedissonConnectionFactory; +import org.springframework.data.redis.connection.RedisConnection; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -23,7 +25,7 @@ import java.util.*; @RequestMapping("/monitor/cache") public class CacheController { - private final RedisTemplate redisTemplate; + private final RedissonConnectionFactory connectionFactory; private final static List CACHES = new ArrayList<>(); @@ -44,9 +46,10 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @GetMapping() public R> getInfo() throws Exception { - Properties info = (Properties) redisTemplate.execute((RedisCallback) RedisServerCommands::info); - Properties commandStats = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info("commandstats")); - Object dbSize = redisTemplate.execute((RedisCallback) RedisServerCommands::dbSize); + RedisConnection connection = connectionFactory.getConnection(); + Properties info = connection.info(); + Properties commandStats = connection.info("commandstats"); + Long dbSize = connection.dbSize(); Map result = new HashMap<>(3); result.put("info", info); @@ -82,8 +85,9 @@ public class CacheController { */ @SaCheckPermission("monitor:cache:list") @GetMapping("/getKeys/{cacheName}") - public R> getCacheKeys(@PathVariable String cacheName) { - Set cacheKyes = redisTemplate.keys(cacheName + "*"); + public R> getCacheKeys(@PathVariable String cacheName) { + Iterable iterable = RedisUtils.getClient().getKeys().getKeysByPattern(cacheName + "*"); + Collection cacheKyes = CollUtil.toCollection(iterable); return R.ok(cacheKyes); } @@ -96,8 +100,8 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @GetMapping("/getValue/{cacheName}/{cacheKey}") public R getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { - String cacheValue = redisTemplate.opsForValue().get(cacheKey); - SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); + Object cacheValue = RedisUtils.getCacheObject(cacheKey); + SysCache sysCache = new SysCache(cacheName, cacheKey, JsonUtils.toJsonString(cacheValue)); return R.ok(sysCache); } @@ -109,8 +113,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheName/{cacheName}") public R clearCacheName(@PathVariable String cacheName) { - Collection cacheKeys = redisTemplate.keys(cacheName + "*"); - redisTemplate.delete(cacheKeys); + RedisUtils.getClient().getKeys().deleteByPattern(cacheName + "*"); return R.ok(); } @@ -122,7 +125,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheKey/{cacheKey}") public R clearCacheKey(@PathVariable String cacheKey) { - redisTemplate.delete(cacheKey); + RedisUtils.deleteObject(cacheKey); return R.ok(); } @@ -132,8 +135,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheAll") public R clearCacheAll() { - Collection cacheKeys = redisTemplate.keys("*"); - redisTemplate.delete(cacheKeys); + RedisUtils.getClient().getKeys().deleteByPattern("*"); return R.ok(); } From 1852017ecc97136c0d5106f9675845cddebc23d6 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 14 Jul 2022 19:49:00 +0800 Subject: [PATCH 058/299] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81=E5=BC=80=E5=85=B3=E5=8F=98=E9=87=8F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/register.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ruoyi-ui/src/views/register.vue b/ruoyi-ui/src/views/register.vue index 5bda9892f..d8ec3c180 100644 --- a/ruoyi-ui/src/views/register.vue +++ b/ruoyi-ui/src/views/register.vue @@ -29,7 +29,7 @@ - + { - this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff; - if (this.captchaOnOff) { + this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; + if (this.captchaEnabled) { this.codeUrl = "data:image/gif;base64," + res.img; this.registerForm.uuid = res.uuid; } @@ -134,7 +134,7 @@ export default { }).catch(() => {}); }).catch(() => { this.loading = false; - if (this.captchaOnOff) { + if (this.captchaEnabled) { this.getCode(); } }) From 2c79dc906e54743d14f0143a1b526cf408f9c45a Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 14 Jul 2022 19:49:32 +0800 Subject: [PATCH 059/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7oshi=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC6.2.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c855b5f40..c7b4f44c5 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 2.2.2 1.4.1 2.0.9 - 6.1.6 + 6.2.1 2.11.0 1.4 3.2.2 From 8a930bd7d5c2f6625b14622da5015a6ff8273f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 14 Jul 2022 21:26:51 +0800 Subject: [PATCH 060/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20pr201=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/monitor/CacheController.java | 10 +-- .../ruoyi/common/utils/redis/RedisUtils.java | 27 ++++++- .../framework/handler/KeyPrefixHandler.java | 74 +++++++++---------- 3 files changed, 65 insertions(+), 46 deletions(-) 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 c1575ae7b..0f82c4eb5 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,12 +1,12 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; +import com.ruoyi.oss.constant.OssConstant; import com.ruoyi.system.domain.SysCache; import lombok.RequiredArgsConstructor; import org.redisson.spring.data.connection.RedissonConnectionFactory; @@ -38,6 +38,7 @@ public class CacheController { CACHES.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码")); CACHES.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); + CACHES.add(new SysCache(OssConstant.SYS_OSS_KEY, "OSS配置")); } /** @@ -86,8 +87,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @GetMapping("/getKeys/{cacheName}") public R> getCacheKeys(@PathVariable String cacheName) { - Iterable iterable = RedisUtils.getClient().getKeys().getKeysByPattern(cacheName + "*"); - Collection cacheKyes = CollUtil.toCollection(iterable); + Collection cacheKyes = RedisUtils.keys(cacheName + "*"); return R.ok(cacheKyes); } @@ -113,7 +113,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheName/{cacheName}") public R clearCacheName(@PathVariable String cacheName) { - RedisUtils.getClient().getKeys().deleteByPattern(cacheName + "*"); + RedisUtils.deleteKeys(cacheName + "*"); return R.ok(); } @@ -135,7 +135,7 @@ public class CacheController { @SaCheckPermission("monitor:cache:list") @DeleteMapping("/clearCacheAll") public R clearCacheAll() { - RedisUtils.getClient().getKeys().deleteByPattern("*"); + RedisUtils.deleteKeys("*"); return R.ok(); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java index 7ed3b2827..20f3ea36d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java @@ -1,10 +1,10 @@ package com.ruoyi.common.utils.redis; -import cn.hutool.core.collection.IterUtil; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.redisson.api.*; +import org.redisson.config.Config; import java.time.Duration; import java.util.Collection; @@ -12,6 +12,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * redis 工具类 @@ -25,6 +27,14 @@ public class RedisUtils { private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); + public static NameMapper getNameMapper() { + Config config = CLIENT.getConfig(); + if (config.isClusterConfig()) { + return config.useClusterServers().getNameMapper(); + } + return config.useSingleServer().getNameMapper(); + } + /** * 限流 * @@ -415,8 +425,17 @@ public class RedisUtils { * @return 对象列表 */ public static Collection keys(final String pattern) { - Iterable iterable = CLIENT.getKeys().getKeysByPattern(pattern); - return IterUtil.toList(iterable); + Stream stream = CLIENT.getKeys().getKeysStreamByPattern(getNameMapper().map(pattern)); + return stream.map(key -> getNameMapper().unmap(key)).collect(Collectors.toList()); + } + + /** + * 删除缓存的基本对象列表 + * + * @param pattern 字符串前缀 + */ + public static void deleteKeys(final String pattern) { + CLIENT.getKeys().deleteByPattern(getNameMapper().map(pattern)); } /** @@ -426,6 +445,6 @@ public class RedisUtils { */ public static Boolean hasKey(String key) { RKeys rKeys = CLIENT.getKeys(); - return rKeys.countExists(key) > 0; + return rKeys.countExists(getNameMapper().map(key)) > 0; } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java index ddfa064e9..161c271b3 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java @@ -3,48 +3,48 @@ package com.ruoyi.framework.handler; import com.ruoyi.common.utils.StringUtils; import org.redisson.api.NameMapper; -/* +/** * redis缓存key前缀处理 + * * @author ye - * @create 2022/7/14 17:44 + * @date 2022/7/14 17:44 + * @since 4.3.0 */ public class KeyPrefixHandler implements NameMapper { - - private final String keyPrefix; - - //前缀为空 则返回空前缀 - public KeyPrefixHandler(String keyPrefix) { - this.keyPrefix = StringUtils.isBlank(keyPrefix) ? "" : keyPrefix + ":"; - } - - //增加前缀 - @Override - public String map(String name) { - if (StringUtils.isBlank(name)) { - return null; + + private final String keyPrefix; + + public KeyPrefixHandler(String keyPrefix) { + //前缀为空 则返回空前缀 + this.keyPrefix = StringUtils.isBlank(keyPrefix) ? "" : keyPrefix + ":"; } - if (StringUtils.isBlank(keyPrefix)) { - return name; + + /** + * 增加前缀 + */ + @Override + public String map(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + if (StringUtils.isNotBlank(keyPrefix) && !name.startsWith(keyPrefix)) { + return keyPrefix + name; + } + return name; } - if (!name.startsWith(keyPrefix)) { - return keyPrefix + name; - } else { - return name; + + /** + * 去除前缀 + */ + @Override + public String unmap(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + if (StringUtils.isNotBlank(keyPrefix) && name.startsWith(keyPrefix)) { + return name.substring(keyPrefix.length()); + } + return name; } - } - - //去除前缀 - @Override - public String unmap(String name) { - if (StringUtils.isBlank(name)) { - return null; - } - if (StringUtils.isBlank(keyPrefix)) { - return name; - } - if (name.startsWith(keyPrefix)) { - return name.substring(keyPrefix.length()); - } - return name; - } + } From 079e6f7c204a7dcef03aac579a63c869e5910cf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 15 Jul 2022 14:30:08 +0800 Subject: [PATCH 061/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E8=84=9A=E6=9C=AC=20=E9=98=B2=E6=AD=A2=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/deploy.sh | 13 +++++++------ script/docker/nginx/{ => conf}/nginx.conf | 0 script/docker/redis/{ => conf}/redis.conf | 2 +- script/docker/redis/data/README.md | 1 + 4 files changed, 9 insertions(+), 7 deletions(-) rename script/docker/nginx/{ => conf}/nginx.conf (100%) rename script/docker/redis/{ => conf}/redis.conf (96%) create mode 100644 script/docker/redis/data/README.md diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index 0c8f6c431..a4b053ccb 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -27,15 +27,16 @@ port(){ ##放置挂载文件 mount(){ #挂载 nginx 配置文件 - if test ! -f "/docker/nginx/conf/nginx.conf" ;then - mkdir -p /docker/nginx/conf - cp nginx/nginx.conf /docker/nginx/conf/nginx.conf + if test ! -f "/docker/nginx/" ;then + mkdir -p /docker/nginx/ + cp nginx/* /docker/nginx/ fi #挂载 redis 配置文件 - if test ! -f "/docker/redis/conf/redis.conf" ;then - mkdir -p /docker/redis/conf - cp redis/redis.conf /docker/redis/conf/redis.conf + if test ! -f "/docker/redis/" ;then + mkdir -p /docker/redis/ + cp redis/* /docker/redis/ fi + chmod -R 777 /docker } #启动基础模块 diff --git a/script/docker/nginx/nginx.conf b/script/docker/nginx/conf/nginx.conf similarity index 100% rename from script/docker/nginx/nginx.conf rename to script/docker/nginx/conf/nginx.conf diff --git a/script/docker/redis/redis.conf b/script/docker/redis/conf/redis.conf similarity index 96% rename from script/docker/redis/redis.conf rename to script/docker/redis/conf/redis.conf index a07c9d213..72255c617 100644 --- a/script/docker/redis/redis.conf +++ b/script/docker/redis/conf/redis.conf @@ -1,5 +1,5 @@ # redis 密码 -# requirepass ruoyi123 +requirepass ruoyi123 # key 监听器配置 # notify-keyspace-events Ex diff --git a/script/docker/redis/data/README.md b/script/docker/redis/data/README.md new file mode 100644 index 000000000..fbc5474bc --- /dev/null +++ b/script/docker/redis/data/README.md @@ -0,0 +1 @@ +数据目录 请执行 `chmod 777 /docker/redis/data` 赋予读写权限 否则将无法写入数据 \ No newline at end of file From d7cf341eb3ea09e43a1ecad38385812ec5a30723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 15 Jul 2022 14:45:56 +0800 Subject: [PATCH 062/299] =?UTF-8?q?update=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/framework/config/RedisConfig.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java index 30fff169b..c86952871 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java @@ -49,7 +49,8 @@ public class RedisConfig extends CachingConfigurerSupport { if (ObjectUtil.isNotNull(singleServerConfig)) { // 使用单机模式 config.useSingleServer() - .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//设置redis key前缀 + //设置redis key前缀 + .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix())) .setTimeout(singleServerConfig.getTimeout()) .setClientName(singleServerConfig.getClientName()) .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout()) @@ -61,7 +62,8 @@ public class RedisConfig extends CachingConfigurerSupport { RedissonProperties.ClusterServersConfig clusterServersConfig = redissonProperties.getClusterServersConfig(); if (ObjectUtil.isNotNull(clusterServersConfig)) { config.useClusterServers() - .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//设置redis key前缀 + //设置redis key前缀 + .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix())) .setTimeout(clusterServersConfig.getTimeout()) .setClientName(clusterServersConfig.getClientName()) .setIdleConnectionTimeout(clusterServersConfig.getIdleConnectionTimeout()) From d4af02f600325aacb1789f1928175d4317ab530f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=93=E8=9B=99=E5=B8=88?= <770492966@qq.com> Date: Fri, 15 Jul 2022 18:15:29 +0800 Subject: [PATCH 063/299] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E5=8C=BF=E5=90=8D=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/web/controller/system/SysIndexController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index cc92f371e..1d9889239 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.system; +import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.StringUtils; import lombok.RequiredArgsConstructor; @@ -23,6 +24,7 @@ public class SysIndexController { /** * 访问首页,提示语 */ + @Anonymous @GetMapping("/") public String index() { return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); From 55ba098e506df00e982581eeb4c074a344d60177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=93=E8=9B=99=E5=B8=88?= <770492966@qq.com> Date: Sat, 16 Jul 2022 15:41:51 +0800 Subject: [PATCH 064/299] =?UTF-8?q?StreamUtils=E4=BC=98=E5=8C=96=E5=88=86?= =?UTF-8?q?=E7=BB=84=E6=96=B9=E6=B3=95=E8=BF=94=E5=9B=9E=E7=94=B1HashMap?= =?UTF-8?q?=E6=97=A0=E5=BA=8F=E8=BD=AC=E4=B8=BALinkedHashMap=E6=9C=89?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/utils/StreamUtils.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java index 0de2784a0..fccd9e3d1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StreamUtils.java @@ -125,7 +125,7 @@ public class StreamUtils { } return collection .stream() - .collect(Collectors.groupingBy(key, Collectors.toList())); + .collect(Collectors.groupingBy(key, LinkedHashMap::new, Collectors.toList())); } /** @@ -146,7 +146,7 @@ public class StreamUtils { } return collection .stream() - .collect(Collectors.groupingBy(key1, Collectors.groupingBy(key2, Collectors.toList()))); + .collect(Collectors.groupingBy(key1, LinkedHashMap::new, Collectors.groupingBy(key2, LinkedHashMap::new, Collectors.toList()))); } /** @@ -167,7 +167,7 @@ public class StreamUtils { } return collection .stream() - .collect(Collectors.groupingBy(key1, Collectors.toMap(key2, Function.identity(), (l, r) -> l))); + .collect(Collectors.groupingBy(key1, LinkedHashMap::new, Collectors.toMap(key2, Function.identity(), (l, r) -> l))); } /** From d51b77f42bfe0d54752689dd6a993816a12842f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 19 Jul 2022 11:31:54 +0800 Subject: [PATCH 065/299] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 93be11028..72b971c57 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ > RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 `分布式集群` 场景全方位升级(不兼容原框架) +> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
    +活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 + > 系统演示: [传送门](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/系统演示?sort_id=4836388) | 功能介绍 | 使用技术 | 文档地址 | 特性注意事项 | From 28b9fbb4d270855e8d6fdbbbbc584e8e08f7abde Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 19 Jul 2022 15:55:03 +0800 Subject: [PATCH 066/299] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E8=A7=92=E8=89=B2=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=9D=83=E9=99=90SQL=E9=87=8D=E5=A4=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/framework/aspectj/DataScopeAspect.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 ff84bcdd3..5b0215cbe 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,5 +1,7 @@ package com.ruoyi.framework.aspectj; +import java.util.ArrayList; +import java.util.List; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @@ -79,15 +81,21 @@ public class DataScopeAspect * * @param joinPoint 切点 * @param user 用户 - * @param userAlias 别名 + * @param deptAlias 部门别名 + * @param userAlias 用户别名 */ public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias) { StringBuilder sqlString = new StringBuilder(); + List conditions = new ArrayList(); for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); + if (conditions.contains(dataScope)) + { + continue; + } if (DATA_SCOPE_ALL.equals(dataScope)) { sqlString = new StringBuilder(); @@ -121,6 +129,7 @@ public class DataScopeAspect sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } } + conditions.add(dataScope); } if (StringUtils.isNotBlank(sqlString.toString())) From 801615f780c7add6dc19e96c28dfdbb6e0800d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 19 Jul 2022 19:06:10 +0800 Subject: [PATCH 067/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AF=BC=E8=87=B4=E6=9D=83=E9=99=90=E7=94=9F=E6=88=90?= =?UTF-8?q?=20SQL=20=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/PlusDataPermissionHandler.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java index 1a94b35f0..63e777dee 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java @@ -1,6 +1,7 @@ package com.ruoyi.framework.handler; import cn.hutool.core.annotation.AnnotationUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ConcurrentHashSet; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ClassUtil; @@ -13,6 +14,7 @@ import com.ruoyi.common.enums.DataScopeType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.DataPermissionHelper; import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.StreamUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.extern.slf4j.Slf4j; @@ -30,11 +32,9 @@ import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -104,13 +104,13 @@ public class PlusDataPermissionHandler { * 构造数据过滤sql */ private String buildDataFilter(DataColumn[] dataColumns, boolean isSelect) { - StringBuilder sqlString = new StringBuilder(); // 更新或删除需满足所有条件 String joinStr = isSelect ? " OR " : " AND "; LoginUser user = DataPermissionHelper.getVariable("user"); StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(beanResolver); DataPermissionHelper.getContext().forEach(context::setVariable); + Set conditions = new HashSet<>(); for (RoleDTO role : user.getRoles()) { user.setRoleId(role.getRoleId()); // 获取角色权限泛型 @@ -140,17 +140,18 @@ public class PlusDataPermissionHandler { // 解析sql模板并填充 String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class); - sqlString.append(joinStr).append(sql); + conditions.add(joinStr + sql); isSuccess = true; } // 未处理成功则填充兜底方案 if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) { - sqlString.append(joinStr).append(type.getElseSql()); + conditions.add(joinStr + type.getElseSql()); } } - if (StringUtils.isNotBlank(sqlString.toString())) { - return sqlString.substring(joinStr.length()); + if (CollUtil.isNotEmpty(conditions)) { + String sql = StreamUtils.join(conditions, Function.identity(), ""); + return sql.substring(joinStr.length()); } return ""; } From 1f0e742710af7917ecde23a761acd7c28ea3dd53 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 20 Jul 2022 09:39:58 +0800 Subject: [PATCH 068/299] =?UTF-8?q?Excel=E6=B3=A8=E8=A7=A3=E6=94=AF?= =?UTF-8?q?=E6=8C=81backgroundColor=E5=B1=9E=E6=80=A7=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/annotation/Excel.java | 17 ++++- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 64 +++++++++++++------ 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java index a57529b76..804db72f7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java @@ -109,7 +109,22 @@ public @interface Excel public ColumnType cellType() default ColumnType.STRING; /** - * 导出字体颜色 + * 导出列头背景色 + */ + public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; + + /** + * 导出列头字体颜色 + */ + public IndexedColors headerColor() default IndexedColors.WHITE; + + /** + * 导出单元格背景色 + */ + public IndexedColors backgroundColor() default IndexedColors.WHITE; + + /** + * 导出单元格字体颜色 */ public IndexedColors color() default IndexedColors.BLACK; 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 e868511aa..724f69c21 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 @@ -649,20 +649,6 @@ public class ExcelUtil style.setFont(dataFont); styles.put("data", style); - style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - Font headerFont = wb.createFont(); - headerFont.setFontName("Arial"); - headerFont.setFontHeightInPoints((short) 10); - headerFont.setBold(true); - headerFont.setColor(IndexedColors.WHITE.getIndex()); - style.setFont(headerFont); - styles.put("header", style); - style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER); @@ -672,24 +658,60 @@ public class ExcelUtil style.setFont(totalFont); styles.put("total", style); - styles.putAll(annotationStyles(wb)); + styles.putAll(annotationHeaderStyles(wb, styles)); + + styles.putAll(annotationDataStyles(wb)); return styles; } /** - * 根据Excel注解创建表格样式 + * 根据Excel注解创建表格头样式 * * @param wb 工作薄对象 * @return 自定义样式列表 */ - private Map annotationStyles(Workbook wb) + private Map annotationHeaderStyles(Workbook wb, Map styles) + { + Map headerStyles = new HashMap(); + for (Object[] os : fields) + { + Excel excel = (Excel) os[1]; + String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); + if (!headerStyles.containsKey(key)) + { + CellStyle style = wb.createCellStyle(); + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + headerStyles.put(key, style); + } + } + return headerStyles; + } + + /** + * 根据Excel注解创建表格列样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationDataStyles(Workbook wb) { Map styles = new HashMap(); for (Object[] os : fields) { Excel excel = (Excel) os[1]; - String key = "data_" + excel.align() + "_" + excel.color(); + String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor()); if (!styles.containsKey(key)) { CellStyle style = wb.createCellStyle(); @@ -704,6 +726,8 @@ public class ExcelUtil style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderBottom(BorderStyle.THIN); style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + style.setFillForegroundColor(excel.backgroundColor().getIndex()); Font dataFont = wb.createFont(); dataFont.setFontName("Arial"); dataFont.setFontHeightInPoints((short) 10); @@ -725,7 +749,7 @@ public class ExcelUtil // 写入列信息 cell.setCellValue(attr.name()); setDataValidation(attr, row, column); - cell.setCellStyle(styles.get("header")); + cell.setCellStyle(styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); return cell; } @@ -833,7 +857,7 @@ public class ExcelUtil { // 创建cell cell = row.createCell(column); - cell.setCellStyle(styles.get("data_" + attr.align() + "_" + attr.color())); + cell.setCellStyle(styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); // 用于读取对象中的属性 Object value = getTargetValue(vo, field, attr); From 5ec5e1a65d678d441cd03d1b775423c77dbc8b00 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 20 Jul 2022 19:38:16 +0800 Subject: [PATCH 069/299] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BD=BF=E7=94=A8store=E5=AD=98=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/components/DictData/index.js | 30 +++++++++++++- ruoyi-ui/src/store/getters.js | 1 + ruoyi-ui/src/store/index.js | 2 + ruoyi-ui/src/store/modules/dict.js | 50 +++++++++++++++++++++++ ruoyi-ui/src/views/system/dict/data.vue | 3 ++ ruoyi-ui/src/views/system/dict/index.vue | 1 + 6 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 ruoyi-ui/src/store/modules/dict.js diff --git a/ruoyi-ui/src/components/DictData/index.js b/ruoyi-ui/src/components/DictData/index.js index 24e3e9c83..d43d81657 100644 --- a/ruoyi-ui/src/components/DictData/index.js +++ b/ruoyi-ui/src/components/DictData/index.js @@ -1,7 +1,23 @@ import Vue from 'vue' +import store from '@/store' import DataDict from '@/utils/dict' import { getDicts as getDicts } from '@/api/system/dict/data' +function searchDictByKey(dict, key) { + if (key == null && key == "") { + return null + } + try { + for (let i = 0; i < dict.length; i++) { + if (dict[i].key == key) { + return dict[i].value + } + } + } catch (e) { + return null + } +} + function install() { Vue.use(DataDict, { metas: { @@ -9,7 +25,19 @@ function install() { labelField: 'dictLabel', valueField: 'dictValue', request(dictMeta) { - return getDicts(dictMeta.type).then(res => res.data) + const storeDict = searchDictByKey(store.getters.dict, dictMeta.type) + if (storeDict) { + return new Promise(resolve => { resolve(storeDict) }) + } else { + return new Promise((resolve, reject) => { + getDicts(dictMeta.type).then(res => { + store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data }) + resolve(res.data) + }).catch(error => { + reject(error) + }) + }) + } }, }, }, diff --git a/ruoyi-ui/src/store/getters.js b/ruoyi-ui/src/store/getters.js index 8d723813b..5920c6e86 100644 --- a/ruoyi-ui/src/store/getters.js +++ b/ruoyi-ui/src/store/getters.js @@ -2,6 +2,7 @@ const getters = { sidebar: state => state.app.sidebar, size: state => state.app.size, device: state => state.app.device, + dict: state => state.dict.dict, visitedViews: state => state.tagsView.visitedViews, cachedViews: state => state.tagsView.cachedViews, token: state => state.user.token, diff --git a/ruoyi-ui/src/store/index.js b/ruoyi-ui/src/store/index.js index eceb2cd2b..2ee6e43b3 100644 --- a/ruoyi-ui/src/store/index.js +++ b/ruoyi-ui/src/store/index.js @@ -1,6 +1,7 @@ import Vue from 'vue' import Vuex from 'vuex' import app from './modules/app' +import dict from './modules/dict' import user from './modules/user' import tagsView from './modules/tagsView' import permission from './modules/permission' @@ -12,6 +13,7 @@ Vue.use(Vuex) const store = new Vuex.Store({ modules: { app, + dict, user, tagsView, permission, diff --git a/ruoyi-ui/src/store/modules/dict.js b/ruoyi-ui/src/store/modules/dict.js new file mode 100644 index 000000000..f48df4228 --- /dev/null +++ b/ruoyi-ui/src/store/modules/dict.js @@ -0,0 +1,50 @@ +const state = { + dict: new Array() +} +const mutations = { + SET_DICT: (state, { key, value }) => { + if (key !== null && key !== "") { + state.dict.push({ + key: key, + value: value + }) + } + }, + REMOVE_DICT: (state, key) => { + try { + for (let i = 0; i < state.dict.length; i++) { + if (state.dict[i].key == key) { + state.dict.splice(i, i) + return true + } + } + } catch (e) { + } + }, + CLEAN_DICT: (state) => { + state.dict = new Array() + } +} + +const actions = { + // 设置字典 + setDict({ commit }, data) { + commit('SET_DICT', data) + }, + // 删除字典 + removeDict({ commit }, key) { + commit('REMOVE_DICT', key) + }, + // 清空字典 + cleanDict({ commit }) { + commit('CLEAN_DICT') + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index a68a6012b..d78af1290 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -364,12 +364,14 @@ export default { if (valid) { if (this.form.dictCode != undefined) { updateData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); this.$modal.msgSuccess("修改成功"); this.open = false; this.getList(); }); } else { addData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); this.$modal.msgSuccess("新增成功"); this.open = false; this.getList(); @@ -386,6 +388,7 @@ export default { }).then(() => { this.getList(); this.$modal.msgSuccess("删除成功"); + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); }).catch(() => {}); }, /** 导出按钮操作 */ diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue index d26d14066..13a5f3d4f 100644 --- a/ruoyi-ui/src/views/system/dict/index.vue +++ b/ruoyi-ui/src/views/system/dict/index.vue @@ -339,6 +339,7 @@ export default { handleRefreshCache() { refreshCache().then(() => { this.$modal.msgSuccess("刷新成功"); + this.$store.dispatch('dict/cleanDict'); }); } } From bc8b5f107906c7fd37ddbf3d20c099ee952cbd87 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 21 Jul 2022 08:50:48 +0800 Subject: [PATCH 070/299] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BD=BF=E7=94=A8el-drawer=E6=8A=BD=E5=B1=89?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/components/RightPanel/index.vue | 43 +----- .../src/layout/components/Settings/index.vue | 139 +++++++++--------- 2 files changed, 74 insertions(+), 108 deletions(-) diff --git a/ruoyi-ui/src/components/RightPanel/index.vue b/ruoyi-ui/src/components/RightPanel/index.vue index 1534b9bee..42b5a6bea 100644 --- a/ruoyi-ui/src/components/RightPanel/index.vue +++ b/ruoyi-ui/src/components/RightPanel/index.vue @@ -1,5 +1,5 @@ - - From 78f4d1c85beff6ffc6adec84bc1affb637e46bd8 Mon Sep 17 00:00:00 2001 From: abbfun <819589789@qq.com> Date: Wed, 19 Oct 2022 09:07:35 +0000 Subject: [PATCH 221/299] =?UTF-8?q?swagger-ui=E9=9D=99=E6=80=81=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: abbfun <819589789@qq.com> --- .../main/java/com/ruoyi/framework/config/ResourcesConfig.java | 3 ++- .../main/java/com/ruoyi/framework/config/SecurityConfig.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index 24ef0dec9..ff1a5e519 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -33,7 +33,8 @@ public class ResourcesConfig implements WebMvcConfigurer /** swagger配置 */ registry.addResourceHandler("/swagger-ui/**") - .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); + .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") + .setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS).mustRevalidate().cachePrivate()).resourceChain(true); } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index dfad46e39..3f7fc67cc 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -124,6 +124,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); + // 禁用缓存 + httpSecurity.headers().cacheControl().disable(); } /** From 98bb1f00eeca2b459bd8b9fe5a745e65c6081f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 19 Oct 2022 19:05:58 +0800 Subject: [PATCH 222/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=20=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=A8=E6=88=B7=E5=90=8D=E6=9C=AA=E6=8E=92=E9=99=A4?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/system/SysUserController.java | 4 ++-- .../java/com/ruoyi/system/service/ISysUserService.java | 2 +- .../java/com/ruoyi/system/service/SysRegisterService.java | 8 ++++---- .../com/ruoyi/system/service/impl/SysUserServiceImpl.java | 8 +++++--- 4 files changed, 12 insertions(+), 10 deletions(-) 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 e003e65d6..7e358d511 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 @@ -136,7 +136,7 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysUser user) { - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { @@ -158,7 +158,7 @@ public class SysUserController extends BaseController { public R edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { return R.fail("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 97e73e057..042efc2c9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -86,7 +86,7 @@ public interface ISysUserService { * @param user 用户信息 * @return 结果 */ - String checkUserNameUnique(String userName); + String checkUserNameUnique(SysUser user); /** * 校验手机号码是否唯一 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java index 6d861e098..983173d11 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java @@ -48,15 +48,15 @@ public class SysRegisterService { if (captchaEnabled) { validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request); } - - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) { - throw new UserException("user.register.save.error", username); - } SysUser sysUser = new SysUser(); sysUser.setUserName(username); sysUser.setNickName(username); sysUser.setPassword(BCrypt.hashpw(password)); sysUser.setUserType(userType); + + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(sysUser))) { + throw new UserException("user.register.save.error", username); + } boolean regFlag = userService.registerUser(sysUser); if (!regFlag) { throw new UserException("user.register.error"); 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 39ad7273f..4e63f17ea 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 @@ -193,12 +193,14 @@ public class SysUserServiceImpl implements ISysUserService { /** * 校验用户名称是否唯一 * - * @param userName 用户名称 + * @param user 用户信息 * @return 结果 */ @Override - public String checkUserNameUnique(String userName) { - boolean exist = baseMapper.exists(new LambdaQueryWrapper().eq(SysUser::getUserName, userName)); + public String checkUserNameUnique(SysUser user) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getUserName, user.getUserName()) + .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); if (exist) { return UserConstants.NOT_UNIQUE; } From a64a0293236971bff983f97022731ba064a507ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=85=E6=BA=AA=E5=85=88=E7=94=9F?= Date: Wed, 19 Oct 2022 22:11:14 +0800 Subject: [PATCH 223/299] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=9F=90=E4=BA=9Bsvg?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=9A=84fill=3D"#bfbfbf"=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E8=8F=9C=E5=8D=95=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9=E5=85=B6=E5=A1=AB=E5=85=85?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 清溪先生 --- ruoyi-ui/src/assets/icons/svg/code.svg | 2 +- ruoyi-ui/src/assets/icons/svg/server.svg | 2 +- ruoyi-ui/src/assets/icons/svg/system.svg | 2 +- ruoyi-ui/src/assets/icons/svg/tool.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ruoyi-ui/src/assets/icons/svg/code.svg b/ruoyi-ui/src/assets/icons/svg/code.svg index ed4d23cf4..5f9c5abd5 100644 --- a/ruoyi-ui/src/assets/icons/svg/code.svg +++ b/ruoyi-ui/src/assets/icons/svg/code.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/server.svg b/ruoyi-ui/src/assets/icons/svg/server.svg index ca37b001e..eb287e36c 100644 --- a/ruoyi-ui/src/assets/icons/svg/server.svg +++ b/ruoyi-ui/src/assets/icons/svg/server.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/system.svg b/ruoyi-ui/src/assets/icons/svg/system.svg index 86cb93822..76d41ba5b 100644 --- a/ruoyi-ui/src/assets/icons/svg/system.svg +++ b/ruoyi-ui/src/assets/icons/svg/system.svg @@ -1,2 +1,2 @@ \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/tool.svg b/ruoyi-ui/src/assets/icons/svg/tool.svg index c813067ef..48e0e3573 100644 --- a/ruoyi-ui/src/assets/icons/svg/tool.svg +++ b/ruoyi-ui/src/assets/icons/svg/tool.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From b970185536bc58742fc29946b50c487a2de52bac Mon Sep 17 00:00:00 2001 From: kknd97 Date: Thu, 20 Oct 2022 06:27:02 +0000 Subject: [PATCH 224/299] =?UTF-8?q?update=20ruoyi-ui/src/views/system/user?= =?UTF-8?q?/index.vue.=20handleUpdate(row)=E6=96=B9=E6=B3=95=E4=B8=AD?= =?UTF-8?q?=EF=BC=9Athis.form=20=3D=20response.data;=E8=AF=AD=E5=8F=A5=20?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E3=80=90this.form.postIds=20=3D=20r?= =?UTF-8?q?esponse.postIds;=E3=80=91=E5=92=8C=E3=80=90this.form.roleIds=20?= =?UTF-8?q?=3D=20response.roleIds;=E3=80=91=E5=A4=B1=E6=95=88=E3=80=82=20?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=94=A8=E6=88=B7=E7=BC=96=E8=BE=91=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=A1=86=E4=B8=AD=EF=BC=8C=E8=A7=92=E8=89=B2=E5=92=8C?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=A4=9A=E9=80=89=E6=A1=86=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E4=BF=AE=E6=94=B9=E3=80=82=20=E5=BB=BA?= =?UTF-8?q?=E8=AE=AE=E4=BD=BF=E7=94=A8=E4=BB=A5=E4=B8=8B=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20this.$set(this.form,=20"postIds",?= =?UTF-8?q?=20response.postIds);=20this.$set(this.form,=20"roleIds",=20res?= =?UTF-8?q?ponse.roleIds);?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: kknd97 --- ruoyi-ui/src/views/system/user/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index a26a33f88..2494fa241 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -576,8 +576,8 @@ export default { this.form = response.data; this.postOptions = response.posts; this.roleOptions = response.roles; - this.form.postIds = response.postIds; - this.form.roleIds = response.roleIds; + this.$set(this.form, "postIds", response.postIds); + this.$set(this.form, "roleIds", response.roleIds); this.open = true; this.title = "修改用户"; this.form.password = ""; From 9dcddc787628b8dde5b64d66047bb512c8a4bf5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=85=83=E5=8D=9A?= <1553592282@qq.com> Date: Thu, 20 Oct 2022 19:18:10 +0800 Subject: [PATCH 225/299] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B0=8F=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E4=B8=8A=E4=BF=AE=E6=94=B9=E5=A4=B4=E5=83=8F=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=B8=83=E5=B1=80=E9=94=99=E4=BD=8D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/assets/styles/ruoyi.scss | 547 +++++++++--------- .../views/system/user/profile/userAvatar.vue | 357 ++++++------ 2 files changed, 459 insertions(+), 445 deletions(-) diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index e3912cec8..42ec09200 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -1,273 +1,274 @@ - /** - * 通用css样式布局处理 - * Copyright (c) 2019 ruoyi - */ - - /** 基础通用 **/ -.pt5 { - padding-top: 5px; -} -.pr5 { - padding-right: 5px; -} -.pb5 { - padding-bottom: 5px; -} -.mt5 { - margin-top: 5px; -} -.mr5 { - margin-right: 5px; -} -.mb5 { - margin-bottom: 5px; -} -.mb8 { - margin-bottom: 8px; -} -.ml5 { - margin-left: 5px; -} -.mt10 { - margin-top: 10px; -} -.mr10 { - margin-right: 10px; -} -.mb10 { - margin-bottom: 10px; -} -.ml10 { - margin-left: 10px; -} -.mt20 { - margin-top: 20px; -} -.mr20 { - margin-right: 20px; -} -.mb20 { - margin-bottom: 20px; -} -.ml20 { - margin-left: 20px; -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} - -.el-dialog:not(.is-fullscreen) { - margin-top: 6vh !important; -} - -.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body { - overflow: auto; - overflow-x: hidden; - max-height: 70vh; - padding: 10px 20px 0; -} - -.el-table { - .el-table__header-wrapper, .el-table__fixed-header-wrapper { - th { - word-break: break-word; - background-color: #f8f8f9; - color: #515a6e; - height: 40px; - font-size: 13px; - } - } - .el-table__body-wrapper { - .el-button [class*="el-icon-"] + span { - margin-left: 1px; - } - } -} - -/** 表单布局 **/ -.form-header { - font-size:15px; - color:#6379bb; - border-bottom:1px solid #ddd; - margin:8px 10px 25px 10px; - padding-bottom:5px -} - -/** 表格布局 **/ -.pagination-container { - position: relative; - height: 25px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; -} - -/* tree border */ -.tree-border { - margin-top: 5px; - border: 1px solid #e5e6e7; - background: #FFFFFF none; - border-radius:4px; -} - -.pagination-container .el-pagination { - right: 0; - position: absolute; -} - -@media ( max-width : 768px) { - .pagination-container .el-pagination > .el-pagination__jump { - display: none !important; - } - .pagination-container .el-pagination > .el-pagination__sizes { - display: none !important; - } -} - -.el-table .fixed-width .el-button--mini { - padding-left: 0; - padding-right: 0; - width: inherit; -} - -/** 表格更多操作下拉样式 */ -.el-table .el-dropdown-link { - cursor: pointer; - color: #409EFF; - margin-left: 5px; -} - -.el-table .el-dropdown, .el-icon-arrow-down { - font-size: 12px; -} - -.el-tree-node__content > .el-checkbox { - margin-right: 8px; -} - -.list-group-striped > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; -} - -.list-group { - padding-left: 0px; - list-style: none; -} - -.list-group-item { - border-bottom: 1px solid #e7eaec; - border-top: 1px solid #e7eaec; - margin-bottom: -1px; - padding: 11px 0px; - font-size: 13px; -} - -.pull-right { - float: right !important; -} - -.el-card__header { - padding: 14px 15px 7px; - min-height: 40px; -} - -.el-card__body { - padding: 15px 20px 20px 20px; -} - -.card-box { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 10px; -} - -/* button color */ -.el-button--cyan.is-active, -.el-button--cyan:active { - background: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -.el-button--cyan:focus, -.el-button--cyan:hover { - background: #48D1CC; - border-color: #48D1CC; - color: #FFFFFF; -} - -.el-button--cyan { - background-color: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -/* text color */ -.text-navy { - color: #1ab394; -} - -.text-primary { - color: inherit; -} - -.text-success { - color: #1c84c6; -} - -.text-info { - color: #23c6c8; -} - -.text-warning { - color: #f8ac59; -} - -.text-danger { - color: #ed5565; -} - -.text-muted { - color: #888888; -} - -/* image */ -.img-circle { - border-radius: 50%; -} - -.img-lg { - width: 120px; - height: 120px; -} - -.avatar-upload-preview { - position: absolute; - top: 50%; - transform: translate(50%, -50%); - width: 200px; - height: 200px; - border-radius: 50%; - box-shadow: 0 0 4px #ccc; - overflow: hidden; -} - -/* 拖拽列样式 */ -.sortable-ghost{ - opacity: .8; - color: #fff!important; - background: #42b983!important; -} - -.top-right-btn { - position: relative; - float: right; -} + /** + * 通用css样式布局处理 + * Copyright (c) 2019 ruoyi + */ + + /** 基础通用 **/ +.pt5 { + padding-top: 5px; +} +.pr5 { + padding-right: 5px; +} +.pb5 { + padding-bottom: 5px; +} +.mt5 { + margin-top: 5px; +} +.mr5 { + margin-right: 5px; +} +.mb5 { + margin-bottom: 5px; +} +.mb8 { + margin-bottom: 8px; +} +.ml5 { + margin-left: 5px; +} +.mt10 { + margin-top: 10px; +} +.mr10 { + margin-right: 10px; +} +.mb10 { + margin-bottom: 10px; +} +.ml10 { + margin-left: 10px; +} +.mt20 { + margin-top: 20px; +} +.mr20 { + margin-right: 20px; +} +.mb20 { + margin-bottom: 20px; +} +.ml20 { + margin-left: 20px; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.el-dialog:not(.is-fullscreen) { + margin-top: 6vh !important; +} + +.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body { + overflow: auto; + overflow-x: hidden; + max-height: 70vh; + padding: 10px 20px 0; +} + +.el-table { + .el-table__header-wrapper, .el-table__fixed-header-wrapper { + th { + word-break: break-word; + background-color: #f8f8f9; + color: #515a6e; + height: 40px; + font-size: 13px; + } + } + .el-table__body-wrapper { + .el-button [class*="el-icon-"] + span { + margin-left: 1px; + } + } +} + +/** 表单布局 **/ +.form-header { + font-size:15px; + color:#6379bb; + border-bottom:1px solid #ddd; + margin:8px 10px 25px 10px; + padding-bottom:5px +} + +/** 表格布局 **/ +.pagination-container { + position: relative; + height: 25px; + margin-bottom: 10px; + margin-top: 15px; + padding: 10px 20px !important; +} + +/* tree border */ +.tree-border { + margin-top: 5px; + border: 1px solid #e5e6e7; + background: #FFFFFF none; + border-radius:4px; +} + +.pagination-container .el-pagination { + right: 0; + position: absolute; +} + +@media ( max-width : 768px) { + .pagination-container .el-pagination > .el-pagination__jump { + display: none !important; + } + .pagination-container .el-pagination > .el-pagination__sizes { + display: none !important; + } +} + +.el-table .fixed-width .el-button--mini { + padding-left: 0; + padding-right: 0; + width: inherit; +} + +/** 表格更多操作下拉样式 */ +.el-table .el-dropdown-link { + cursor: pointer; + color: #409EFF; + margin-left: 5px; +} + +.el-table .el-dropdown, .el-icon-arrow-down { + font-size: 12px; +} + +.el-tree-node__content > .el-checkbox { + margin-right: 8px; +} + +.list-group-striped > .list-group-item { + border-left: 0; + border-right: 0; + border-radius: 0; + padding-left: 0; + padding-right: 0; +} + +.list-group { + padding-left: 0px; + list-style: none; +} + +.list-group-item { + border-bottom: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + margin-bottom: -1px; + padding: 11px 0px; + font-size: 13px; +} + +.pull-right { + float: right !important; +} + +.el-card__header { + padding: 14px 15px 7px; + min-height: 40px; +} + +.el-card__body { + padding: 15px 20px 20px 20px; +} + +.card-box { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 10px; +} + +/* button color */ +.el-button--cyan.is-active, +.el-button--cyan:active { + background: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +.el-button--cyan:focus, +.el-button--cyan:hover { + background: #48D1CC; + border-color: #48D1CC; + color: #FFFFFF; +} + +.el-button--cyan { + background-color: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +/* text color */ +.text-navy { + color: #1ab394; +} + +.text-primary { + color: inherit; +} + +.text-success { + color: #1c84c6; +} + +.text-info { + color: #23c6c8; +} + +.text-warning { + color: #f8ac59; +} + +.text-danger { + color: #ed5565; +} + +.text-muted { + color: #888888; +} + +/* image */ +.img-circle { + border-radius: 50%; +} + +.img-lg { + width: 120px; + height: 120px; +} + +.avatar-upload-preview { + position: relative; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 200px; + height: 200px; + border-radius: 50%; + box-shadow: 0 0 4px #ccc; + overflow: hidden; +} + +/* 拖拽列样式 */ +.sortable-ghost{ + opacity: .8; + color: #fff!important; + background: #42b983!important; +} + +.top-right-btn { + position: relative; + float: right; +} diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 63903a706..361f962eb 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -1,172 +1,185 @@ - - - - \ No newline at end of file + + + + From d2e58ba46b9ac334b3abab863927b2c3f8bb191c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 20 Oct 2022 23:24:19 +0800 Subject: [PATCH 226/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20nginx=201.21.6=20=3D>=201.22.1=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=BC=8F=E6=B4=9E=20https://www.oschina.net/news/214309?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index 3e7c5200c..346cf2084 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -29,7 +29,7 @@ services: network_mode: "host" nginx-web: - image: nginx:1.21.6 + image: nginx:1.22.1 container_name: nginx-web environment: # 时区上海 From 5a60bf0b0afce10565f458ed4f70455198a7b644 Mon Sep 17 00:00:00 2001 From: Rain <938448486@qq.com> Date: Fri, 21 Oct 2022 03:01:54 +0000 Subject: [PATCH 227/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7fastjson=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=882.0.15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rain <938448486@qq.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c95045b4e..40302ff82 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 2.3.2 2.2.2 1.4.3 - 2.0.14 + 2.0.15 6.2.2 2.11.0 1.4 From b6153d1aef10638afabc290cac43f1c63342ac6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=85=83=E5=8D=9A?= <1553592282@qq.com> Date: Fri, 21 Oct 2022 11:21:59 +0800 Subject: [PATCH 228/299] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 361f962eb..4e8051363 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -24,7 +24,7 @@
    - + 选择 From e21396870f5e1167dc6bf861e4421120d04f657a Mon Sep 17 00:00:00 2001 From: RuoYi Date: Fri, 21 Oct 2022 11:56:15 +0800 Subject: [PATCH 229/299] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=B3=A8=E9=87=8A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/core/domain/entity/SysMenu.java | 2 +- .../java/com/ruoyi/framework/config/ResourcesConfig.java | 4 +++- .../java/com/ruoyi/framework/config/SecurityConfig.java | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index 229f41803..9f3a6f659 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -54,7 +54,7 @@ public class SysMenu extends BaseEntity /** 显示状态(0显示 1隐藏) */ private String visible; - /** 菜单状态(0显示 1隐藏) */ + /** 菜单状态(0正常 1停用) */ private String status; /** 权限字符串 */ diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index ff1a5e519..4e067a7b1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -1,8 +1,10 @@ package com.ruoyi.framework.config; +import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.CacheControl; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -34,7 +36,7 @@ public class ResourcesConfig implements WebMvcConfigurer /** swagger配置 */ registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") - .setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS).mustRevalidate().cachePrivate()).resourceChain(true); + .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());; } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 3f7fc67cc..bdb7199fe 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -102,6 +102,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter httpSecurity // CSRF禁用,因为不使用session .csrf().disable() + // 禁用HTTP响应标头 + .headers().cacheControl().disable().and() // 认证失败处理类 .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() // 基于token,所以不需要session @@ -109,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/register", "/captchaImage").anonymous() + .antMatchers("/login", "/register", "/captchaImage").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() @@ -124,8 +126,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); - // 禁用缓存 - httpSecurity.headers().cacheControl().disable(); } /** From 0358dc233a46363d7864d882e0146e56d10ffb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 21 Oct 2022 13:02:52 +0800 Subject: [PATCH 230/299] update springboot 2.7.4 => 2.7.5 update springboot-admin 2.7.5 => 2.7.6 update springdoc 1.6.11 => 1.6.12 update poi 5.2.2 => 5.2.3 update hutool 5.8.7=>5.8.8 update aws-s3 1.12.300 => 1.12.324 update aliyun-sms 2.0.18 => 2.0.22 update tencent-sms 3.1.591 => 3.1.611 --- pom.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 0007144ed..2a41e6309 100644 --- a/pom.xml +++ b/pom.xml @@ -14,23 +14,23 @@ 4.3.0 - 2.7.4 + 2.7.5 UTF-8 UTF-8 1.8 3.2.2 2.2.2 1.2.12 - 1.6.11 - 5.2.2 + 1.6.12 + 5.2.3 3.1.1 2.3 1.31.0 3.5.2 3.9.1 - 5.8.7 + 5.8.8 4.10.0 - 2.7.5 + 2.7.6 3.17.7 2.2.2 3.5.2 @@ -44,10 +44,10 @@ 1.32 - 1.12.300 + 1.12.324 - 2.0.18 - 3.1.591 + 2.0.22 + 3.1.611 From 4517dea98de7b4c748df7e1b4752249bc1d1f79a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=9F=E6=9B=BE=E4=B8=BA=E4=BD=A0=E3=80=81=E5=83=8F?= =?UTF-8?q?=E8=B6=85=E4=BA=BA?= <1553592282@qq.com> Date: Fri, 21 Oct 2022 23:24:35 +0000 Subject: [PATCH 231/299] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=97=B6=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E9=83=A8=E9=97=A8=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 也曾为你、像超人 <1553592282@qq.com> --- ruoyi-ui/src/views/system/user/index.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 2494fa241..4e0b3dc88 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -20,6 +20,7 @@ :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" + node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" @@ -536,6 +537,8 @@ export default { resetQuery() { this.dateRange = []; this.resetForm("queryForm"); + this.queryParams.deptId = undefined; + this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 多选框选中数据 From 408155ff5cedcb85136e1978bd1caf8b14337140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 24 Oct 2022 13:44:34 +0800 Subject: [PATCH 232/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E5=86=85?= =?UTF-8?q?=E9=93=BE=E5=9F=9F=E5=90=8D=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=20=E5=90=88=E5=B9=B6=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 a573fdac7..ea6c604a7 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 @@ -443,11 +443,9 @@ public class SysMenuServiceImpl implements ISysMenuService { /** * 内链域名特殊字符替换 - * - * @return */ public String innerLinkReplaceEach(String path) { - return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "." }, - new String[]{"", ""}); + return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, + new String[]{"", "", "", "/"}); } } From efa2f2351044059aee7ec940dc6ca409a040e778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 24 Oct 2022 14:22:38 +0800 Subject: [PATCH 233/299] =?UTF-8?q?=F0=9F=90=AC=E5=8F=91=E5=B8=83=204.3.1?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=BB=BA=E8=AE=AE=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/ruoyi-monitor-admin.run.xml | 2 +- .run/ruoyi-server.run.xml | 2 +- .run/ruoyi-xxl-job-admin.run.xml | 2 +- README.md | 2 +- pom.xml | 4 ++-- ruoyi-admin/pom.xml | 2 +- ruoyi-common/pom.xml | 2 +- ruoyi-demo/pom.xml | 2 +- ruoyi-extend/pom.xml | 2 +- ruoyi-extend/ruoyi-monitor-admin/pom.xml | 2 +- ruoyi-extend/ruoyi-xxl-job-admin/pom.xml | 2 +- ruoyi-framework/pom.xml | 2 +- ruoyi-generator/pom.xml | 2 +- ruoyi-job/pom.xml | 2 +- ruoyi-oss/pom.xml | 2 +- ruoyi-sms/pom.xml | 2 +- ruoyi-system/pom.xml | 2 +- ruoyi-ui/package.json | 2 +- ruoyi-ui/src/views/index.vue | 2 +- script/docker/docker-compose.yml | 8 ++++---- 20 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.run/ruoyi-monitor-admin.run.xml b/.run/ruoyi-monitor-admin.run.xml index a043f277f..84ea53276 100644 --- a/.run/ruoyi-monitor-admin.run.xml +++ b/.run/ruoyi-monitor-admin.run.xml @@ -2,7 +2,7 @@ - diff --git a/.run/ruoyi-server.run.xml b/.run/ruoyi-server.run.xml index e4f77c7a7..ea1fcfda5 100644 --- a/.run/ruoyi-server.run.xml +++ b/.run/ruoyi-server.run.xml @@ -2,7 +2,7 @@ - diff --git a/.run/ruoyi-xxl-job-admin.run.xml b/.run/ruoyi-xxl-job-admin.run.xml index 4a77b863e..92cbdf6fd 100644 --- a/.run/ruoyi-xxl-job-admin.run.xml +++ b/.run/ruoyi-xxl-job-admin.run.xml @@ -2,7 +2,7 @@ - diff --git a/README.md b/README.md index 88a388b47..7b0724c44 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE) [![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus)
    -[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-4.3.0-success.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) +[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-4.3.1-success.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7-blue.svg)]() [![JDK-8+](https://img.shields.io/badge/JDK-8-green.svg)]() [![JDK-11](https://img.shields.io/badge/JDK-11-green.svg)]() diff --git a/pom.xml b/pom.xml index 607b1ba9f..d128d6bf2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,14 @@ com.ruoyi ruoyi-vue-plus - 4.3.0 + 4.3.1 RuoYi-Vue-Plus https://gitee.com/JavaLionLi/RuoYi-Vue-Plus RuoYi-Vue-Plus后台管理系统 - 4.3.0 + 4.3.1 2.7.5 UTF-8 UTF-8 diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index be5e8ea3d..0691a6462 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 jar diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 4c8833fe0..9560b7f94 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml index 565e39c1a..88147724a 100644 --- a/ruoyi-demo/pom.xml +++ b/ruoyi-demo/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml index a44051d7b..99750547a 100644 --- a/ruoyi-extend/pom.xml +++ b/ruoyi-extend/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 ruoyi-extend diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml index 6b189aaab..5a0cb6476 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml +++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml @@ -5,7 +5,7 @@ ruoyi-extend com.ruoyi - 4.3.0 + 4.3.1 4.0.0 jar diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml index ff164369c..837f8bda3 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml @@ -4,7 +4,7 @@ ruoyi-extend com.ruoyi - 4.3.0 + 4.3.1 ruoyi-xxl-job-admin jar diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 58b4dc452..b6b9784f8 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index caabbeee6..9363bfb84 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-job/pom.xml b/ruoyi-job/pom.xml index 6c0732d53..0445066cb 100644 --- a/ruoyi-job/pom.xml +++ b/ruoyi-job/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 jar diff --git a/ruoyi-oss/pom.xml b/ruoyi-oss/pom.xml index 7cd39435e..d7ec74a5b 100644 --- a/ruoyi-oss/pom.xml +++ b/ruoyi-oss/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-sms/pom.xml b/ruoyi-sms/pom.xml index ea3201ac4..45e5c80dd 100644 --- a/ruoyi-sms/pom.xml +++ b/ruoyi-sms/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index 67a9fec0e..5fca4c72d 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.3.0 + 4.3.1 4.0.0 diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 530c0dd8b..a8cdc8fe5 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi-vue-plus", - "version": "4.3.0", + "version": "4.3.1", "description": "RuoYi-Vue-Plus后台管理系统", "author": "LionLi", "license": "MIT", diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 3446bd133..5b056a39c 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -114,7 +114,7 @@ export default { data() { return { // 版本号 - version: "4.3.0", + version: "4.3.1", }; }, methods: { diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index 346cf2084..9668c1057 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -100,7 +100,7 @@ services: network_mode: "host" ruoyi-server1: - image: ruoyi/ruoyi-server:4.3.0 + image: ruoyi/ruoyi-server:4.3.1 container_name: ruoyi-server1 environment: # 时区上海 @@ -113,7 +113,7 @@ services: network_mode: "host" ruoyi-server2: - image: "ruoyi/ruoyi-server:4.3.0" + image: "ruoyi/ruoyi-server:4.3.1" container_name: ruoyi-server2 environment: # 时区上海 @@ -126,7 +126,7 @@ services: network_mode: "host" ruoyi-monitor-admin: - image: ruoyi/ruoyi-monitor-admin:4.3.0 + image: ruoyi/ruoyi-monitor-admin:4.3.1 container_name: ruoyi-monitor-admin environment: # 时区上海 @@ -138,7 +138,7 @@ services: network_mode: "host" ruoyi-xxl-job-admin: - image: ruoyi/ruoyi-xxl-job-admin:4.3.0 + image: ruoyi/ruoyi-xxl-job-admin:4.3.1 container_name: ruoyi-xxl-job-admin environment: # 时区上海 From f01aa3739461c2a5014c9ddea22d6e619b3bf696 Mon Sep 17 00:00:00 2001 From: BlossomWave <316975215@qq.com> Date: Mon, 24 Oct 2022 08:25:33 +0000 Subject: [PATCH 234/299] =?UTF-8?q?update=20ruoyi-ui/src/views/system/user?= =?UTF-8?q?/profile/userAvatar.vue.=20=E9=BB=98=E8=AE=A4=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=A4=B4=E5=83=8F=E6=97=B6=E5=A6=82=E6=9E=9C=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=9A=84=E5=9B=BE=E7=89=87=E4=B8=BApng=E9=80=8F=E6=98=8E?= =?UTF-8?q?=E5=9B=BE=E7=89=87=EF=BC=8C=E7=94=9F=E6=88=90=E7=9A=84=E5=A4=B4?= =?UTF-8?q?=E5=83=8F=E9=80=8F=E6=98=8E=E9=83=A8=E5=88=86=E4=BC=9A=E5=8F=98?= =?UTF-8?q?=E6=88=90=E9=BB=91=E8=89=B2=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=A4=B4=E5=83=8F=E4=B8=BApng=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E3=80=82=E5=8F=AF=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=80=8F=E6=98=8E=E9=83=A8=E5=88=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: BlossomWave <316975215@qq.com> --- ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 4e8051363..70d8487f8 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -12,6 +12,7 @@ :autoCropWidth="options.autoCropWidth" :autoCropHeight="options.autoCropHeight" :fixedBox="options.fixedBox" + :outputType="options.outputType" @realTime="realTime" v-if="visible" /> @@ -78,7 +79,8 @@ export default { autoCrop: true, // 是否默认生成截图框 autoCropWidth: 200, // 默认生成截图框宽度 autoCropHeight: 200, // 默认生成截图框高度 - fixedBox: true // 固定截图框大小 不允许改变 + fixedBox: true, // 固定截图框大小 不允许改变 + outputType:"png" // 默认生成截图为PNG格式 }, previews: {}, resizeHandler: null From 9ecc4475dd5cd1b69d5aff75feaad5908efa018c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 25 Oct 2022 17:56:27 +0800 Subject: [PATCH 235/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20sqlserver=20?= =?UTF-8?q?sql=E6=96=87=E4=BB=B6=20=E9=87=8D=E5=A4=8D=E4=B8=BB=E9=94=AE?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/sql/sqlserver/sqlserver_ry_vue_4.X.sql | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql index 8fbb2ba32..529ff72a0 100644 --- a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql +++ b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql @@ -1851,8 +1851,6 @@ INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1044) GO INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1045) GO -INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1050) -GO INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1046) GO INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1047) From bb73b31e6b44ebfb74c748df9582641b72c1d02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 25 Oct 2022 17:56:54 +0800 Subject: [PATCH 236/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20sqlserver=20?= =?UTF-8?q?=E7=89=B9=E5=AE=9A=E6=83=85=E5=86=B5=E4=B8=8B=E6=8A=A5=20ssl=20?= =?UTF-8?q?=E8=AF=81=E4=B9=A6=E9=97=AE=E9=A2=98=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=85=B3=E9=97=AD=20ssl=20=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application-dev.yml | 2 +- ruoyi-admin/src/main/resources/application-prod.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 88bc3a664..4004697e1 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -72,7 +72,7 @@ spring: # password: root # sqlserver: # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver -# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;rewriteBatchedStatements=true +# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true # username: SA # password: root druid: diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 0987874fa..c637e0bd1 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -75,7 +75,7 @@ spring: # password: root # sqlserver: # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver -# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;rewriteBatchedStatements=true +# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true # username: SA # password: root druid: From 95f7ba00803ea1fe0d1cd751a3b316cf29a41431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 26 Oct 2022 14:30:18 +0800 Subject: [PATCH 237/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20oss=20?= =?UTF-8?q?=E4=BA=91=E5=8E=82=E5=95=86=E5=A2=9E=E5=8A=A0=20=E5=8D=8E?= =?UTF-8?q?=E4=B8=BAobs=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java index ff88c1172..06202d0f2 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java @@ -28,7 +28,7 @@ public interface OssConstant { /** * 云服务商 */ - String[] CLOUD_SERVICE = new String[] {"aliyun", "qcloud", "qiniu"}; + String[] CLOUD_SERVICE = new String[] {"aliyun", "qcloud", "qiniu", "obs"}; /** * https 状态 From 1de2b7a57e13928f0c963d308cea65d10149c1a9 Mon Sep 17 00:00:00 2001 From: lihy2021 Date: Thu, 27 Oct 2022 01:25:39 +0000 Subject: [PATCH 238/299] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/security/handle/LogoutSuccessHandlerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e58c332bd..fd9759aad 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 @@ -48,6 +48,6 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler // 记录用户退出日志 AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功")); } - ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.SUCCESS, "退出成功"))); + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success("退出成功"))); } } From 88ed6e25cadab7a38e59ca4c87b8de5567b158a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 27 Oct 2022 11:55:57 +0800 Subject: [PATCH 239/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=88=87?= =?UTF-8?q?=E6=8D=A2=20maven=20=E4=BB=93=E5=BA=93=E5=88=B0=20=E5=8D=8E?= =?UTF-8?q?=E4=B8=BA=E4=BA=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d128d6bf2..49fcea692 100644 --- a/pom.xml +++ b/pom.xml @@ -389,8 +389,8 @@ public - aliyun nexus - https://maven.aliyun.com/repository/public/ + huawei nexus + https://mirrors.huaweicloud.com/repository/maven/ true @@ -400,8 +400,8 @@ public - aliyun nexus - https://maven.aliyun.com/repository/public/ + huawei nexus + https://mirrors.huaweicloud.com/repository/maven/ true From a6b2ac5dcd7e7fb5466c4c63f33ad7425134ce5f Mon Sep 17 00:00:00 2001 From: RuoYi Date: Fri, 28 Oct 2022 19:57:35 +0800 Subject: [PATCH 240/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7oshi=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC6.3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../framework/security/handle/LogoutSuccessHandlerImpl.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 40302ff82..31e1017e8 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 2.2.2 1.4.3 2.0.15 - 6.2.2 + 6.3.0 2.11.0 1.4 3.2.2 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 fd9759aad..50e7d36b9 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 @@ -10,7 +10,6 @@ import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; import com.alibaba.fastjson2.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; From dc48f9858bc9cabe06c5ea0f1f07eef0c3a55868 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Fri, 28 Oct 2022 20:59:42 +0800 Subject: [PATCH 241/299] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtable=E4=B8=AD?= =?UTF-8?q?=E6=9B=B4=E5=A4=9A=E6=8C=89=E9=92=AE=E5=88=87=E6=8D=A2=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E8=89=B2=E6=9C=AA=E7=94=9F=E6=95=88=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/assets/styles/ruoyi.scss | 3 +-- ruoyi-ui/src/views/monitor/job/index.vue | 4 +--- ruoyi-ui/src/views/system/role/index.vue | 4 +--- ruoyi-ui/src/views/system/user/index.vue | 4 +--- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index 42ec09200..2b63c8477 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -135,9 +135,8 @@ } /** 表格更多操作下拉样式 */ -.el-table .el-dropdown-link { +.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine { cursor: pointer; - color: #409EFF; margin-left: 5px; } diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue index a9277563c..54d81f83f 100644 --- a/ruoyi-ui/src/views/monitor/job/index.vue +++ b/ruoyi-ui/src/views/monitor/job/index.vue @@ -129,9 +129,7 @@ v-hasPermi="['monitor:job:remove']" >删除
    - - 更多 - + 更多 执行一次 diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index 0681d3d26..cc9e5410b 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -135,9 +135,7 @@ v-hasPermi="['system:role:remove']" >删除 - - 更多 - + 更多 数据权限 diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 4e0b3dc88..bfd87207f 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -180,9 +180,7 @@ v-hasPermi="['system:user:remove']" >删除 - - 更多 - + 更多 重置密码 From 6e8ef308ed529cffda6c020bfb0e64974737aa59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 28 Oct 2022 23:21:34 +0800 Subject: [PATCH 242/299] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=20junit5=20?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 ++++ ruoyi-admin/pom.xml | 6 ++ .../java/com/ruoyi/test/AssertUnitTest.java | 45 ++++++++++++ .../java/com/ruoyi/test/DemoUnitTest.java | 70 ++++++++++++++++++ .../java/com/ruoyi/test/ParamUnitTest.java | 72 +++++++++++++++++++ .../test/java/com/ruoyi/test/TagUnitTest.java | 54 ++++++++++++++ 6 files changed, 259 insertions(+) create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/test/AssertUnitTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/test/ParamUnitTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/test/TagUnitTest.java diff --git a/pom.xml b/pom.xml index 49fcea692..e9a611c1c 100644 --- a/pom.xml +++ b/pom.xml @@ -365,6 +365,18 @@ + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + ${profiles.active} + + exclude + + diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 0691a6462..f966de0a3 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -78,6 +78,12 @@ ruoyi-demo + + org.springframework.boot + spring-boot-starter-test + test + + diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/AssertUnitTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/AssertUnitTest.java new file mode 100644 index 000000000..5b9c9f84f --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/AssertUnitTest.java @@ -0,0 +1,45 @@ +package com.ruoyi.test; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +/** + * 断言单元测试案例 + * + * @author Lion Li + */ +@DisplayName("断言单元测试案例") +public class AssertUnitTest { + + @DisplayName("测试 assertEquals 方法") + @Test + public void testAssertEquals() { + Assertions.assertEquals("666", new String("666")); + Assertions.assertNotEquals("666", new String("666")); + } + + @DisplayName("测试 assertSame 方法") + @Test + public void testAssertSame() { + Object obj = new Object(); + Object obj1 = obj; + Assertions.assertSame(obj, obj1); + Assertions.assertNotSame(obj, obj1); + } + + @DisplayName("测试 assertTrue 方法") + @Test + public void testAssertTrue() { + Assertions.assertTrue(true); + Assertions.assertFalse(true); + } + + @DisplayName("测试 assertNull 方法") + @Test + public void testAssertNull() { + Assertions.assertNull(null); + Assertions.assertNotNull(null); + } + +} diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java new file mode 100644 index 000000000..a40fd8275 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java @@ -0,0 +1,70 @@ +package com.ruoyi.test; + +import com.ruoyi.common.config.RuoYiConfig; +import org.junit.jupiter.api.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.concurrent.TimeUnit; + +/** + * 单元测试案例 + * + * @author Lion Li + */ +@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件 +@DisplayName("单元测试案例") +public class DemoUnitTest { + + @Autowired + private RuoYiConfig ruoYiConfig; + + @DisplayName("测试 @SpringBootTest @Test @DisplayName 注解") + @Test + public void testTest() { + System.out.println(ruoYiConfig); + } + + @Disabled + @DisplayName("测试 @Disabled 注解") + @Test + public void testDisabled() { + System.out.println(ruoYiConfig); + } + + @Timeout(value = 2L, unit = TimeUnit.SECONDS) + @DisplayName("测试 @Timeout 注解") + @Test + public void testTimeout() throws InterruptedException { + Thread.sleep(3000); + System.out.println(ruoYiConfig); + } + + + @DisplayName("测试 @RepeatedTest 注解") + @RepeatedTest(3) + public void testRepeatedTest() { + System.out.println(666); + } + + @BeforeAll + public static void testBeforeAll() { + System.out.println("@BeforeAll =================="); + } + + @BeforeEach + public void testBeforeEach() { + System.out.println("@BeforeEach =================="); + } + + @AfterEach + public void testAfterEach() { + System.out.println("@AfterEach =================="); + } + + @AfterAll + public static void testAfterAll() { + System.out.println("@AfterAll =================="); + } + +} diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/ParamUnitTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/ParamUnitTest.java new file mode 100644 index 000000000..04bf1b5cc --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/ParamUnitTest.java @@ -0,0 +1,72 @@ +package com.ruoyi.test; + +import com.ruoyi.common.enums.UserType; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.NullSource; +import org.junit.jupiter.params.provider.ValueSource; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +/** + * 带参数单元测试案例 + * + * @author Lion Li + */ +@DisplayName("带参数单元测试案例") +public class ParamUnitTest { + + @DisplayName("测试 @ValueSource 注解") + @ParameterizedTest + @ValueSource(strings = {"t1", "t2", "t3"}) + public void testValueSource(String str) { + System.out.println(str); + } + + @DisplayName("测试 @NullSource 注解") + @ParameterizedTest + @NullSource + public void testNullSource(String str) { + System.out.println(str); + } + + @DisplayName("测试 @EnumSource 注解") + @ParameterizedTest + @EnumSource(UserType.class) + public void testEnumSource(UserType type) { + System.out.println(type.getUserType()); + } + + @DisplayName("测试 @MethodSource 注解") + @ParameterizedTest + @MethodSource("getParam") + public void testMethodSource(String str) { + System.out.println(str); + } + + public static Stream getParam() { + List list = new ArrayList<>(); + list.add("t1"); + list.add("t2"); + list.add("t3"); + return list.stream(); + } + + @BeforeEach + public void testBeforeEach() { + System.out.println("@BeforeEach =================="); + } + + @AfterEach + public void testAfterEach() { + System.out.println("@AfterEach =================="); + } + + +} diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/TagUnitTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/TagUnitTest.java new file mode 100644 index 000000000..04240a07f --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/TagUnitTest.java @@ -0,0 +1,54 @@ +package com.ruoyi.test; + +import org.junit.jupiter.api.*; +import org.springframework.boot.test.context.SpringBootTest; + +/** + * 标签单元测试案例 + * + * @author Lion Li + */ +@SpringBootTest +@DisplayName("标签单元测试案例") +public class TagUnitTest { + + @Tag("dev") + @DisplayName("测试 @Tag dev") + @Test + public void testTagDev() { + System.out.println("dev"); + } + + @Tag("prod") + @DisplayName("测试 @Tag prod") + @Test + public void testTagProd() { + System.out.println("prod"); + } + + @Tag("local") + @DisplayName("测试 @Tag local") + @Test + public void testTagLocal() { + System.out.println("local"); + } + + @Tag("exclude") + @DisplayName("测试 @Tag exclude") + @Test + public void testTagExclude() { + System.out.println("exclude"); + } + + @BeforeEach + public void testBeforeEach() { + System.out.println("@BeforeEach =================="); + } + + @AfterEach + public void testAfterEach() { + System.out.println("@AfterEach =================="); + } + + +} From ec076c1e0db01fc5e1de4045dffd850cf82632bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Sat, 29 Oct 2022 00:00:00 +0800 Subject: [PATCH 243/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95=E4=B9=B1=E7=A0=81=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20=E6=8C=87=E5=AE=9A=E8=BF=90=E8=A1=8C=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index e9a611c1c..40a88ccfe 100644 --- a/pom.xml +++ b/pom.xml @@ -371,6 +371,7 @@ maven-surefire-plugin 2.22.2 + -Dfile.encoding=UTF-8 ${profiles.active} From 9f2dc5c233ad145768dca37907a829cfcb1a5483 Mon Sep 17 00:00:00 2001 From: scmiot Date: Sat, 29 Oct 2022 08:23:09 +0000 Subject: [PATCH 244/299] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=87=A0=E4=B8=AACon?= =?UTF-8?q?troller=E5=92=8C=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=B8=AD=E5=86=97=E4=BD=99=E7=9A=84=E4=B8=89=E5=85=83?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: scmiot --- .../ruoyi/web/controller/system/SysOssConfigController.java | 6 +++--- .../com/ruoyi/web/controller/system/SysOssController.java | 2 +- .../java/com/ruoyi/demo/controller/TestBatchController.java | 4 ++-- .../java/com/ruoyi/demo/controller/TestDemoController.java | 6 +++--- .../java/com/ruoyi/demo/controller/TestTreeController.java | 6 +++--- .../src/main/resources/vm/java/controller.java.vm | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java index cdba39cc4..8dc4876ef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -66,7 +66,7 @@ public class SysOssConfigController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) { - return toAjax(iSysOssConfigService.insertByBo(bo) ? 1 : 0); + return toAjax(iSysOssConfigService.insertByBo(bo)); } /** @@ -77,7 +77,7 @@ public class SysOssConfigController extends BaseController { @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) { - return toAjax(iSysOssConfigService.updateByBo(bo) ? 1 : 0); + return toAjax(iSysOssConfigService.updateByBo(bo)); } /** @@ -90,7 +90,7 @@ public class SysOssConfigController extends BaseController { @DeleteMapping("/{ossConfigIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossConfigIds) { - return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0); + return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true)); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index fac5ddef6..9b9b4d8cc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -125,7 +125,7 @@ public class SysOssController extends BaseController { @DeleteMapping("/{ossIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) { - return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0); + return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true)); } } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index caed9756c..3bd2867ee 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -46,7 +46,7 @@ public class TestBatchController extends BaseController { testDemo.setValue("测试新增"); list.add(testDemo); } - return toAjax(testDemoMapper.insertBatch(list) ? 1 : 0); + return toAjax(testDemoMapper.insertBatch(list)); } /** @@ -74,7 +74,7 @@ public class TestBatchController extends BaseController { testDemo.setId(null); } } - return toAjax(testDemoMapper.insertOrUpdateBatch(list) ? 1 : 0); + return toAjax(testDemoMapper.insertOrUpdateBatch(list)); } /** diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index 33b341282..873facc3b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -119,7 +119,7 @@ public class TestDemoController extends BaseController { // 使用校验工具对标 @Validated(AddGroup.class) 注解 // 用于在非 Controller 的地方校验对象 ValidatorUtils.validate(bo, AddGroup.class); - return toAjax(iTestDemoService.insertByBo(bo) ? 1 : 0); + return toAjax(iTestDemoService.insertByBo(bo)); } /** @@ -130,7 +130,7 @@ public class TestDemoController extends BaseController { @RepeatSubmit @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) { - return toAjax(iTestDemoService.updateByBo(bo) ? 1 : 0); + return toAjax(iTestDemoService.updateByBo(bo)); } /** @@ -143,6 +143,6 @@ public class TestDemoController extends BaseController { @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); + return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true)); } } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java index 52d881edd..db54230c6 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java @@ -78,7 +78,7 @@ public class TestTreeController extends BaseController { @RepeatSubmit @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody TestTreeBo bo) { - return toAjax(iTestTreeService.insertByBo(bo) ? 1 : 0); + return toAjax(iTestTreeService.insertByBo(bo)); } /** @@ -89,7 +89,7 @@ public class TestTreeController extends BaseController { @RepeatSubmit @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody TestTreeBo bo) { - return toAjax(iTestTreeService.updateByBo(bo) ? 1 : 0); + return toAjax(iTestTreeService.updateByBo(bo)); } /** @@ -102,6 +102,6 @@ public class TestTreeController extends BaseController { @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); + return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true)); } } diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 1b2bc136b..3edbc3382 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -89,7 +89,7 @@ public class ${ClassName}Controller extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) { - return toAjax(i${ClassName}Service.insertByBo(bo) ? 1 : 0); + return toAjax(i${ClassName}Service.insertByBo(bo)); } /** @@ -100,7 +100,7 @@ public class ${ClassName}Controller extends BaseController { @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) { - return toAjax(i${ClassName}Service.updateByBo(bo) ? 1 : 0); + return toAjax(i${ClassName}Service.updateByBo(bo)); } /** @@ -113,6 +113,6 @@ public class ${ClassName}Controller extends BaseController { @DeleteMapping("/{${pkColumn.javaField}s}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { - return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true) ? 1 : 0); + return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true)); } } From 6fffa02acf28ee18ff33aba0e2bad51ec99bfc35 Mon Sep 17 00:00:00 2001 From: abbfun <819589789@qq.com> Date: Sat, 29 Oct 2022 14:45:55 +0000 Subject: [PATCH 245/299] =?UTF-8?q?pagehelper-boot=E6=9B=B4=E6=96=B01.4.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: abbfun <819589789@qq.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 31e1017e8..2e06e1f66 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 3.0.0 2.3.2 2.2.2 - 1.4.3 + 1.4.5 2.0.15 6.3.0 2.11.0 From cd137bd9fc5697964e58f418ffc7bce06299b8ed Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 30 Oct 2022 09:58:12 +0800 Subject: [PATCH 246/299] =?UTF-8?q?=E5=8D=87=E7=BA=A7fastjson=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=882.0.16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e06e1f66..f543e1cb3 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 2.3.2 2.2.2 1.4.5 - 2.0.15 + 2.0.16 6.3.0 2.11.0 1.4 From ebb9f15a75562963afd2bce8c089006d686fe7f8 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 30 Oct 2022 12:02:06 +0800 Subject: [PATCH 247/299] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=E6=B6=88=E6=81=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/SysOperlogController.java | 2 +- .../monitor/SysUserOnlineController.java | 2 +- .../system/SysConfigController.java | 10 ++++---- .../controller/system/SysDeptController.java | 18 +++++++-------- .../system/SysDictDataController.java | 4 ++-- .../system/SysDictTypeController.java | 10 ++++---- .../controller/system/SysMenuController.java | 20 ++++++++-------- .../system/SysNoticeController.java | 2 +- .../controller/system/SysPostController.java | 12 +++++----- .../system/SysProfileController.java | 18 +++++++-------- .../controller/system/SysRoleController.java | 16 ++++++------- .../controller/system/SysUserController.java | 16 ++++++------- .../com/ruoyi/common/constant/HttpStatus.java | 5 ++++ .../core/controller/BaseController.java | 16 +++++++++++++ .../ruoyi/common/core/domain/AjaxResult.java | 23 +++++++++++++++++++ .../generator/controller/GenController.java | 14 +++++------ .../main/resources/vm/java/controller.java.vm | 4 ++-- .../quartz/controller/SysJobController.java | 2 +- .../controller/SysJobLogController.java | 4 ++-- ruoyi-ui/src/utils/request.js | 6 +++++ 20 files changed, 127 insertions(+), 77 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 4ce126a54..5378424a8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -64,6 +64,6 @@ public class SysOperlogController extends BaseController public AjaxResult clean() { operLogService.cleanOperLog(); - return AjaxResult.success(); + return success(); } } 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 6c2b3bef6..22e3962c1 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 @@ -87,6 +87,6 @@ public class SysUserOnlineController extends BaseController public AjaxResult forceLogout(@PathVariable String tokenId) { redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); - return AjaxResult.success(); + return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index 04f71629a..93275e980 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -64,7 +64,7 @@ public class SysConfigController extends BaseController @GetMapping(value = "/{configId}") public AjaxResult getInfo(@PathVariable Long configId) { - return AjaxResult.success(configService.selectConfigById(configId)); + return success(configService.selectConfigById(configId)); } /** @@ -73,7 +73,7 @@ public class SysConfigController extends BaseController @GetMapping(value = "/configKey/{configKey}") public AjaxResult getConfigKey(@PathVariable String configKey) { - return AjaxResult.success(configService.selectConfigByKey(configKey)); + return success(configService.selectConfigByKey(configKey)); } /** @@ -86,7 +86,7 @@ public class SysConfigController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { - return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setCreateBy(getUsername()); return toAjax(configService.insertConfig(config)); @@ -102,7 +102,7 @@ public class SysConfigController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { - return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setUpdateBy(getUsername()); return toAjax(configService.updateConfig(config)); @@ -129,6 +129,6 @@ public class SysConfigController extends BaseController public AjaxResult refreshCache() { configService.resetConfigCache(); - return AjaxResult.success(); + return success(); } } 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 6dd1756ba..a873066b6 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 @@ -42,7 +42,7 @@ public class SysDeptController extends BaseController public AjaxResult list(SysDept dept) { List depts = deptService.selectDeptList(dept); - return AjaxResult.success(depts); + return success(depts); } /** @@ -54,7 +54,7 @@ public class SysDeptController extends BaseController { List depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); - return AjaxResult.success(depts); + return success(depts); } /** @@ -65,7 +65,7 @@ public class SysDeptController extends BaseController public AjaxResult getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); - return AjaxResult.success(deptService.selectDeptById(deptId)); + return success(deptService.selectDeptById(deptId)); } /** @@ -78,7 +78,7 @@ public class SysDeptController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) { - return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); @@ -96,15 +96,15 @@ public class SysDeptController extends BaseController deptService.checkDeptDataScope(deptId); if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } else if (dept.getParentId().equals(deptId)) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) { - return AjaxResult.error("该部门包含未停用的子部门!"); + return error("该部门包含未停用的子部门!"); } dept.setUpdateBy(getUsername()); return toAjax(deptService.updateDept(dept)); @@ -120,11 +120,11 @@ public class SysDeptController extends BaseController { if (deptService.hasChildByDeptId(deptId)) { - return AjaxResult.error("存在下级部门,不允许删除"); + return warn("存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(deptId)) { - return AjaxResult.error("部门存在用户,不允许删除"); + return warn("部门存在用户,不允许删除"); } deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); 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 eea89fd0d..1914b998c 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 @@ -66,7 +66,7 @@ public class SysDictDataController extends BaseController @GetMapping(value = "/{dictCode}") public AjaxResult getInfo(@PathVariable Long dictCode) { - return AjaxResult.success(dictDataService.selectDictDataById(dictCode)); + return success(dictDataService.selectDictDataById(dictCode)); } /** @@ -80,7 +80,7 @@ public class SysDictDataController extends BaseController { data = new ArrayList(); } - return AjaxResult.success(data); + return success(data); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index 0dd3474cf..bfd467e2f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -61,7 +61,7 @@ public class SysDictTypeController extends BaseController @GetMapping(value = "/{dictId}") public AjaxResult getInfo(@PathVariable Long dictId) { - return AjaxResult.success(dictTypeService.selectDictTypeById(dictId)); + return success(dictTypeService.selectDictTypeById(dictId)); } /** @@ -74,7 +74,7 @@ public class SysDictTypeController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setCreateBy(getUsername()); return toAjax(dictTypeService.insertDictType(dict)); @@ -90,7 +90,7 @@ public class SysDictTypeController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setUpdateBy(getUsername()); return toAjax(dictTypeService.updateDictType(dict)); @@ -117,7 +117,7 @@ public class SysDictTypeController extends BaseController public AjaxResult refreshCache() { dictTypeService.resetDictCache(); - return AjaxResult.success(); + return success(); } /** @@ -127,6 +127,6 @@ public class SysDictTypeController extends BaseController public AjaxResult optionselect() { List dictTypes = dictTypeService.selectDictTypeAll(); - return AjaxResult.success(dictTypes); + return success(dictTypes); } } 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 9ab14d2ab..a360512f5 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 @@ -41,7 +41,7 @@ public class SysMenuController extends BaseController public AjaxResult list(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menus); + return success(menus); } /** @@ -51,7 +51,7 @@ public class SysMenuController extends BaseController @GetMapping(value = "/{menuId}") public AjaxResult getInfo(@PathVariable Long menuId) { - return AjaxResult.success(menuService.selectMenuById(menuId)); + return success(menuService.selectMenuById(menuId)); } /** @@ -61,7 +61,7 @@ public class SysMenuController extends BaseController public AjaxResult treeselect(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); + return success(menuService.buildMenuTreeSelect(menus)); } /** @@ -87,11 +87,11 @@ public class SysMenuController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } menu.setCreateBy(getUsername()); return toAjax(menuService.insertMenu(menu)); @@ -107,15 +107,15 @@ public class SysMenuController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } else if (menu.getMenuId().equals(menu.getParentId())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); } menu.setUpdateBy(getUsername()); return toAjax(menuService.updateMenu(menu)); @@ -131,11 +131,11 @@ public class SysMenuController extends BaseController { if (menuService.hasChildByMenuId(menuId)) { - return AjaxResult.error("存在子菜单,不允许删除"); + return warn("存在子菜单,不允许删除"); } if (menuService.checkMenuExistRole(menuId)) { - return AjaxResult.error("菜单已分配,不允许删除"); + return warn("菜单已分配,不允许删除"); } return toAjax(menuService.deleteMenuById(menuId)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 258024829..36c62b991 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -51,7 +51,7 @@ public class SysNoticeController extends BaseController @GetMapping(value = "/{noticeId}") public AjaxResult getInfo(@PathVariable Long noticeId) { - return AjaxResult.success(noticeService.selectNoticeById(noticeId)); + return success(noticeService.selectNoticeById(noticeId)); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index 1a2b408ed..6a206cc93 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -64,7 +64,7 @@ public class SysPostController extends BaseController @GetMapping(value = "/{postId}") public AjaxResult getInfo(@PathVariable Long postId) { - return AjaxResult.success(postService.selectPostById(postId)); + return success(postService.selectPostById(postId)); } /** @@ -77,11 +77,11 @@ public class SysPostController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setCreateBy(getUsername()); return toAjax(postService.insertPost(post)); @@ -97,11 +97,11 @@ public class SysPostController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setUpdateBy(getUsername()); return toAjax(postService.updatePost(post)); @@ -125,6 +125,6 @@ public class SysPostController extends BaseController public AjaxResult optionselect() { List posts = postService.selectPostAll(); - return AjaxResult.success(posts); + return success(posts); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 715ad32df..784768b6e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -66,12 +66,12 @@ public class SysProfileController extends BaseController if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUserId(sysUser.getUserId()); user.setPassword(null); @@ -85,9 +85,9 @@ public class SysProfileController extends BaseController sysUser.setEmail(user.getEmail()); sysUser.setSex(user.getSex()); tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改个人信息异常,请联系管理员"); + return error("修改个人信息异常,请联系管理员"); } /** @@ -102,20 +102,20 @@ public class SysProfileController extends BaseController String password = loginUser.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { - return AjaxResult.error("修改密码失败,旧密码错误"); + return error("修改密码失败,旧密码错误"); } if (SecurityUtils.matchesPassword(newPassword, password)) { - return AjaxResult.error("新密码不能与旧密码相同"); + return error("新密码不能与旧密码相同"); } if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { // 更新缓存用户密码 loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改密码异常,请联系管理员"); + return error("修改密码异常,请联系管理员"); } /** @@ -139,6 +139,6 @@ public class SysProfileController extends BaseController return ajax; } } - return AjaxResult.error("上传图片异常,请联系管理员"); + return error("上传图片异常,请联系管理员"); } } 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 a2c8d4de2..7aaf80598 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 @@ -83,7 +83,7 @@ public class SysRoleController extends BaseController public AjaxResult getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); - return AjaxResult.success(roleService.selectRoleById(roleId)); + return success(roleService.selectRoleById(roleId)); } /** @@ -96,11 +96,11 @@ public class SysRoleController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setCreateBy(getUsername()); return toAjax(roleService.insertRole(role)); @@ -119,11 +119,11 @@ public class SysRoleController extends BaseController roleService.checkRoleDataScope(role.getRoleId()); if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setUpdateBy(getUsername()); @@ -137,9 +137,9 @@ public class SysRoleController extends BaseController loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); tokenService.setLoginUser(loginUser); } - return AjaxResult.success(); + return success(); } - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); } /** @@ -187,7 +187,7 @@ public class SysRoleController extends BaseController @GetMapping("/optionselect") public AjaxResult optionselect() { - return AjaxResult.success(roleService.selectRoleAll()); + return success(roleService.selectRoleAll()); } /** 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 e4bcf78ac..f40f8b250 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 @@ -85,7 +85,7 @@ public class SysUserController extends BaseController List userList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = userService.importUser(userList, updateSupport, operName); - return AjaxResult.success(message); + return success(message); } @PostMapping("/importTemplate") @@ -127,17 +127,17 @@ public class SysUserController extends BaseController { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); } else if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -156,17 +156,17 @@ public class SysUserController extends BaseController userService.checkUserDataScope(user.getUserId()); if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); + return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } else if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); @@ -251,6 +251,6 @@ public class SysUserController extends BaseController @GetMapping("/deptTree") public AjaxResult deptTree(SysDept dept) { - return AjaxResult.success(deptService.selectDeptTreeList(dept)); + return success(deptService.selectDeptTreeList(dept)); } } 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 index 77a479b3c..db839c500 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java @@ -86,4 +86,9 @@ public class HttpStatus * 接口未实现 */ public static final int NOT_IMPLEMENTED = 501; + + /** + * 系统警告消息 + */ + public static final int WARN = 601; } 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 b96d93c0b..c131bc478 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 @@ -113,6 +113,14 @@ public class BaseController { return AjaxResult.success(message); } + + /** + * 返回成功消息 + */ + public AjaxResult success(Object data) + { + return AjaxResult.success(data); + } /** * 返回失败消息 @@ -122,6 +130,14 @@ public class BaseController return AjaxResult.error(message); } + /** + * 返回警告消息 + */ + public AjaxResult warn(String message) + { + return AjaxResult.warn(message); + } + /** * 响应返回结果 * 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 8ca1b9b11..ad9d96b45 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 @@ -101,6 +101,29 @@ public class AjaxResult extends HashMap return new AjaxResult(HttpStatus.SUCCESS, msg, data); } + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult warn(String msg) + { + return AjaxResult.warn(msg, null); + } + + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static AjaxResult warn(String msg, Object data) + { + return new AjaxResult(HttpStatus.WARN, msg, data); + } + /** * 返回错误消息 * 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 2e9e760a9..af9f4ee38 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 @@ -69,7 +69,7 @@ public class GenController extends BaseController map.put("info", table); map.put("rows", list); map.put("tables", tables); - return AjaxResult.success(map); + return success(map); } /** @@ -110,7 +110,7 @@ public class GenController extends BaseController // 查询表信息 List tableList = genTableService.selectDbTableListByNames(tableNames); genTableService.importGenTable(tableList); - return AjaxResult.success(); + return success(); } /** @@ -123,7 +123,7 @@ public class GenController extends BaseController { genTableService.validateEdit(genTable); genTableService.updateGenTable(genTable); - return AjaxResult.success(); + return success(); } /** @@ -135,7 +135,7 @@ public class GenController extends BaseController public AjaxResult remove(@PathVariable Long[] tableIds) { genTableService.deleteGenTableByIds(tableIds); - return AjaxResult.success(); + return success(); } /** @@ -146,7 +146,7 @@ public class GenController extends BaseController public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException { Map dataMap = genTableService.previewCode(tableId); - return AjaxResult.success(dataMap); + return success(dataMap); } /** @@ -170,7 +170,7 @@ public class GenController extends BaseController public AjaxResult genCode(@PathVariable("tableName") String tableName) { genTableService.generatorCode(tableName); - return AjaxResult.success(); + return success(); } /** @@ -182,7 +182,7 @@ public class GenController extends BaseController public AjaxResult synchDb(@PathVariable("tableName") String tableName) { genTableService.synchDb(tableName); - return AjaxResult.success(); + return success(); } /** diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index ab19cf51f..bf8898879 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -53,7 +53,7 @@ public class ${ClassName}Controller extends BaseController public AjaxResult list(${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - return AjaxResult.success(list); + return success(list); } #end @@ -77,7 +77,7 @@ public class ${ClassName}Controller extends BaseController @GetMapping(value = "/{${pkColumn.javaField}}") public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { - return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); + return success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); } /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java index 3cd7ced19..f8189babe 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java @@ -71,7 +71,7 @@ public class SysJobController extends BaseController @GetMapping(value = "/{jobId}") public AjaxResult getInfo(@PathVariable("jobId") Long jobId) { - return AjaxResult.success(jobService.selectJobById(jobId)); + return success(jobService.selectJobById(jobId)); } /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java index fff959ada..95f2e82c4 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java @@ -63,7 +63,7 @@ public class SysJobLogController extends BaseController @GetMapping(value = "/{configId}") public AjaxResult getInfo(@PathVariable Long jobLogId) { - return AjaxResult.success(jobLogService.selectJobLogById(jobLogId)); + return success(jobLogService.selectJobLogById(jobLogId)); } @@ -87,6 +87,6 @@ public class SysJobLogController extends BaseController public AjaxResult clean() { jobLogService.cleanJobLog(); - return AjaxResult.success(); + return success(); } } diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index 1080f5265..80ee3c354 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -99,6 +99,12 @@ service.interceptors.response.use(res => { type: 'error' }) return Promise.reject(new Error(msg)) + } else if (code === 601) { + Message({ + message: msg, + type: 'warning' + }) + return Promise.reject('error') } else if (code !== 200) { Notification.error({ title: msg From a127eaa0e9be2eb27a5183444c94a84314996419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Sat, 22 Oct 2022 07:24:35 +0800 Subject: [PATCH 248/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E6=97=B6=E5=8F=96=E6=B6=88=E9=83=A8=E9=97=A8=E9=80=89?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/system/user/index.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 3edf44ac5..61404dcbe 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -20,6 +20,7 @@ :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" + node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" @@ -536,6 +537,8 @@ export default { resetQuery() { this.dateRange = []; this.resetForm("queryForm"); + this.queryParams.deptId = undefined; + this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 多选框选中数据 From 85247991b6e57db0e099beca1e6d4404d1f9d924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 24 Oct 2022 16:25:33 +0800 Subject: [PATCH 249/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0png=E9=80=8F=E6=98=8E=E5=9B=BE=E7=89=87=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=A4=B4=E5=83=8F=E9=80=8F=E6=98=8E=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=8F=98=E6=88=90=E9=BB=91=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index bd1d23b69..18b23a4b7 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -12,6 +12,7 @@ :autoCropWidth="options.autoCropWidth" :autoCropHeight="options.autoCropHeight" :fixedBox="options.fixedBox" + :outputType="options.outputType" @realTime="realTime" v-if="visible" /> @@ -79,6 +80,7 @@ export default { autoCropWidth: 200, // 默认生成截图框宽度 autoCropHeight: 200, // 默认生成截图框高度 fixedBox: true, // 固定截图框大小 不允许改变 + outputType:"png", // 默认生成截图为PNG格式 filename: '' }, previews: {}, From 4c8dc500c79ecf94c61deb14f5a9eaf9de9512bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 28 Oct 2022 20:59:42 +0800 Subject: [PATCH 250/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20table?= =?UTF-8?q?=E4=B8=AD=E6=9B=B4=E5=A4=9A=E6=8C=89=E9=92=AE=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E8=89=B2=E6=9C=AA=E7=94=9F=E6=95=88=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/assets/styles/ruoyi.scss | 7 +++---- ruoyi-ui/src/views/system/role/index.vue | 4 +--- ruoyi-ui/src/views/system/user/index.vue | 4 +--- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index ca7c6f964..16a4740f4 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -149,10 +149,9 @@ } /** 表格更多操作下拉样式 */ -.el-table .el-dropdown-link { - cursor: pointer; - color: #409EFF; - margin-left: 5px; +.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine { + cursor: pointer; + margin-left: 5px; } .el-table .el-dropdown, .el-icon-arrow-down { diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index 77d1d6a1f..ca02f3ab1 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -135,9 +135,7 @@ v-hasPermi="['system:role:remove']" >删除 - - 更多 - + 更多 数据权限 diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 61404dcbe..b2120e6d4 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -180,9 +180,7 @@ v-hasPermi="['system:user:remove']" >删除 - - 更多 - + 更多 重置密码 From 8138063bfe25857362b39c3d1086381514144409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 19 Oct 2022 22:11:14 +0800 Subject: [PATCH 251/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=BF=80=E6=B4=BB=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=85=B6=E5=A1=AB=E5=85=85=E9=A2=9C=E8=89=B2=20=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E6=9F=90=E4=BA=9Bsvg=E5=9B=BE=E6=A0=87=E7=9A=84fill?= =?UTF-8?q?=3D"#bfbfbf"=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/assets/icons/svg/code.svg | 2 +- ruoyi-ui/src/assets/icons/svg/server.svg | 2 +- ruoyi-ui/src/assets/icons/svg/system.svg | 2 +- ruoyi-ui/src/assets/icons/svg/tool.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ruoyi-ui/src/assets/icons/svg/code.svg b/ruoyi-ui/src/assets/icons/svg/code.svg index ed4d23cf4..5f9c5abd5 100644 --- a/ruoyi-ui/src/assets/icons/svg/code.svg +++ b/ruoyi-ui/src/assets/icons/svg/code.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/server.svg b/ruoyi-ui/src/assets/icons/svg/server.svg index ca37b001e..eb287e36c 100644 --- a/ruoyi-ui/src/assets/icons/svg/server.svg +++ b/ruoyi-ui/src/assets/icons/svg/server.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/system.svg b/ruoyi-ui/src/assets/icons/svg/system.svg index dba28cf6f..5992593e0 100644 --- a/ruoyi-ui/src/assets/icons/svg/system.svg +++ b/ruoyi-ui/src/assets/icons/svg/system.svg @@ -1,2 +1,2 @@ \ No newline at end of file + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/tool.svg b/ruoyi-ui/src/assets/icons/svg/tool.svg index c813067ef..48e0e3573 100644 --- a/ruoyi-ui/src/assets/icons/svg/tool.svg +++ b/ruoyi-ui/src/assets/icons/svg/tool.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From b6dbe7b5a5727d048724d9e86b2519cf599ded41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 31 Oct 2022 10:33:29 +0800 Subject: [PATCH 252/299] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=BF=94=E5=9B=9E=E8=AD=A6=E5=91=8A=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysDeptController.java | 4 +- .../controller/system/SysMenuController.java | 4 +- .../com/ruoyi/common/constant/HttpStatus.java | 93 +++++++++++++++++++ .../java/com/ruoyi/common/core/domain/R.java | 22 +++++ ruoyi-ui/src/utils/request.js | 6 ++ 5 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java 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 411eee9e6..fa763df33 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 @@ -108,10 +108,10 @@ public class SysDeptController extends BaseController { @DeleteMapping("/{deptId}") public R remove(@PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) { - return R.fail("存在下级部门,不允许删除"); + return R.warn("存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(deptId)) { - return R.fail("部门存在用户,不允许删除"); + return R.warn("部门存在用户,不允许删除"); } deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); 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 2000fd03d..e80f0ee7c 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 @@ -117,10 +117,10 @@ public class SysMenuController extends BaseController { @DeleteMapping("/{menuId}") public R remove(@PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { - return R.fail("存在子菜单,不允许删除"); + return R.warn("存在子菜单,不允许删除"); } if (menuService.checkMenuExistRole(menuId)) { - return R.fail("菜单已分配,不允许删除"); + return R.warn("菜单已分配,不允许删除"); } return toAjax(menuService.deleteMenuById(menuId)); } 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 new file mode 100644 index 000000000..f007b8c83 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java @@ -0,0 +1,93 @@ +package com.ruoyi.common.constant; + +/** + * 返回状态码 + * + * @author Lion Li + */ +public interface HttpStatus { + /** + * 操作成功 + */ + int SUCCESS = 200; + + /** + * 对象创建成功 + */ + int CREATED = 201; + + /** + * 请求已经被接受 + */ + int ACCEPTED = 202; + + /** + * 操作已经执行成功,但是没有返回数据 + */ + int NO_CONTENT = 204; + + /** + * 资源已被移除 + */ + int MOVED_PERM = 301; + + /** + * 重定向 + */ + int SEE_OTHER = 303; + + /** + * 资源没有被修改 + */ + int NOT_MODIFIED = 304; + + /** + * 参数列表错误(缺少,格式不匹配) + */ + int BAD_REQUEST = 400; + + /** + * 未授权 + */ + int UNAUTHORIZED = 401; + + /** + * 访问受限,授权过期 + */ + int FORBIDDEN = 403; + + /** + * 资源,服务未找到 + */ + int NOT_FOUND = 404; + + /** + * 不允许的http方法 + */ + int BAD_METHOD = 405; + + /** + * 资源冲突,或者资源被锁 + */ + int CONFLICT = 409; + + /** + * 不支持的数据,媒体类型 + */ + int UNSUPPORTED_TYPE = 415; + + /** + * 系统内部错误 + */ + int ERROR = 500; + + /** + * 接口未实现 + */ + int NOT_IMPLEMENTED = 501; + + /** + * 系统警告消息 + */ + int WARN = 601; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java index 1c7b1d865..381a6f602 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.domain; +import com.ruoyi.common.constant.HttpStatus; import lombok.Data; import lombok.NoArgsConstructor; @@ -67,6 +68,27 @@ public class R implements Serializable { return restResult(null, code, msg); } + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static R warn(String msg) { + return restResult(null, HttpStatus.WARN, msg); + } + + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static R warn(String msg, T data) { + return restResult(data, HttpStatus.WARN, msg); + } + private static R restResult(T data, int code, String msg) { R r = new R<>(); r.setCode(code); diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index 2473bc133..39d5c26d8 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -101,6 +101,12 @@ service.interceptors.response.use(res => { type: 'error' }) return Promise.reject(new Error(msg)) + } else if (code === 601) { + Message({ + message: msg, + type: 'warning' + }) + return Promise.reject('error') } else if (code !== 200) { Notification.error({ title: msg From fb134da091329a19e2c64c57c52659da55e313fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 31 Oct 2022 10:42:38 +0800 Subject: [PATCH 253/299] update springboot-admin 2.7.6 => 2.7.7 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 40a88ccfe..cc6288524 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ 3.9.1 5.8.8 4.10.0 - 2.7.6 + 2.7.7 3.17.7 2.2.2 3.5.2 From 57daef9ced7541e26a8f5df810a2763ad53c7b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 31 Oct 2022 10:45:08 +0800 Subject: [PATCH 254/299] update satoken 1.31.0 => 1.32.0 --- pom.xml | 2 +- .../ruoyi/web/controller/monitor/SysUserOnlineController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index cc6288524..12b092963 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 5.2.3 3.1.1 2.3 - 1.31.0 + 1.32.0 3.5.2 3.9.1 5.8.8 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 01a4a82c1..bc6d4a93b 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 @@ -42,7 +42,7 @@ public class SysUserOnlineController extends BaseController { @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { // 获取所有未过期的 token - List keys = StpUtil.searchTokenValue("", -1, 0, false); + List keys = StpUtil.searchTokenValue("", 0, -1, false); List userOnlineDTOList = new ArrayList<>(); for (String key : keys) { String token = key.replace(CacheConstants.LOGIN_TOKEN_KEY, ""); From 8bd023b49fbdf2bc0677da8b7bbdce6c820f32f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 2 Nov 2022 10:34:58 +0800 Subject: [PATCH 255/299] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20sqlserver=20?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/framework/config/MybatisPlusConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java index ffd2c1553..10495d282 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -52,6 +52,8 @@ public class MybatisPlusConfig { paginationInnerInterceptor.setMaxLimit(-1L); // 分页合理化 paginationInnerInterceptor.setOverflow(true); + // fix issue I5YUMJ 修复sqlserver分页问题 使用sqlserver必须指定 + // paginationInnerInterceptor.setDbType(DbType.SQL_SERVER); return paginationInnerInterceptor; } From cd9c3c3f4f7a55b8d52a36ff0559931610aa43ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 3 Nov 2022 03:13:27 +0000 Subject: [PATCH 256/299] =?UTF-8?q?!243=20=E5=90=88=E5=B9=B6=20oss=20?= =?UTF-8?q?=E7=A7=81=E6=9C=89=E5=BA=93=E5=8A=9F=E8=83=BD=20update=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=94=AF=E6=8C=81=20oss=20=E7=A7=81?= =?UTF-8?q?=E6=9C=89=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysOssController.java | 22 +- .../system/SysProfileController.java | 3 +- .../java/com/ruoyi/oss/core/OssClient.java | 33 ++- .../com/ruoyi/oss/enumd/AccessPolicyType.java | 55 ++++ .../ruoyi/oss/properties/OssProperties.java | 5 + .../com/ruoyi/system/domain/SysOssConfig.java | 4 + .../system/domain/bo/SysOssConfigBo.java | 6 + .../system/domain/vo/SysOssConfigVo.java | 5 + .../ruoyi/system/service/ISysOssService.java | 6 +- .../service/impl/SysOssServiceImpl.java | 54 +++- ruoyi-ui/src/views/system/oss/config.vue | 24 +- ruoyi-ui/src/views/system/role/selectUser.vue | 276 +++++++++--------- script/sql/ry_vue_4.X.sql | 12 +- 13 files changed, 332 insertions(+), 173 deletions(-) create mode 100644 ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index 9b9b4d8cc..606895a74 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -15,6 +15,8 @@ import com.ruoyi.common.core.validate.QueryGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.oss.core.OssClient; +import com.ruoyi.oss.factory.OssFactory; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; @@ -80,7 +82,7 @@ public class SysOssController extends BaseController { if (ObjectUtil.isNull(file)) { throw new ServiceException("上传文件不能为空"); } - SysOss oss = iSysOssService.upload(file); + SysOssVo oss = iSysOssService.upload(file); Map map = new HashMap<>(2); map.put("url", oss.getUrl()); map.put("fileName", oss.getOriginalName()); @@ -96,23 +98,7 @@ public class SysOssController extends BaseController { @SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { - SysOssVo sysOss = iSysOssService.getById(ossId); - if (ObjectUtil.isNull(sysOss)) { - throw new ServiceException("文件数据不存在!"); - } - FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName()); - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); - long data; - try { - data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false); - } catch (HttpException e) { - if (e.getMessage().contains("403")) { - throw new ServiceException("无读取权限, 请在对应的OSS开启'公有读'权限!"); - } else { - throw new ServiceException(e.getMessage()); - } - } - response.setContentLength(Convert.toInt(data)); + iSysOssService.download(ossId,response); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 5c331681e..77a8767de 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -12,6 +12,7 @@ import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; +import com.ruoyi.system.domain.vo.SysOssVo; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; import lombok.RequiredArgsConstructor; @@ -115,7 +116,7 @@ public class SysProfileController extends BaseController { if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { return R.fail("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式"); } - SysOss oss = iSysOssService.upload(avatarfile); + SysOssVo oss = iSysOssService.upload(avatarfile); String avatar = oss.getUrl(); if (userService.updateUserAvatar(getUsername(), avatar)) { ajax.put("imgUrl", avatar); diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java index 15833d3cd..93716c10a 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java @@ -2,6 +2,7 @@ package com.ruoyi.oss.core; import cn.hutool.core.util.IdUtil; import com.amazonaws.ClientConfiguration; +import com.amazonaws.HttpMethod; import com.amazonaws.Protocol; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; @@ -16,12 +17,15 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.oss.constant.OssConstant; import com.ruoyi.oss.entity.UploadResult; +import com.ruoyi.oss.enumd.AccessPolicyType; import com.ruoyi.oss.enumd.PolicyType; import com.ruoyi.oss.exception.OssException; import com.ruoyi.oss.properties.OssProperties; import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.net.URL; +import java.util.Date; /** * S3 存储协议 所有兼容S3协议的云厂商均支持 @@ -57,7 +61,7 @@ public class OssClient { .withClientConfiguration(clientConfig) .withCredentials(credentialsProvider) .disableChunkedEncoding(); - if (!StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE)){ + if (!StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE)) { // minio 使用https限制使用域名访问 需要此配置 站点填域名 build.enablePathStyleAccess(); } @@ -79,9 +83,10 @@ public class OssClient { return; } CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); - createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead); + AccessPolicyType accessPolicy = getAccessPolicy(); + createBucketRequest.setCannedAcl(accessPolicy.getAcl()); client.createBucket(createBucketRequest); - client.setBucketPolicy(bucketName, getPolicy(bucketName, PolicyType.READ)); + client.setBucketPolicy(bucketName, getPolicy(bucketName, accessPolicy.getPolicyType())); } catch (Exception e) { throw new OssException("创建Bucket失败, 请核对配置信息:[" + e.getMessage() + "]"); } @@ -98,7 +103,7 @@ public class OssClient { metadata.setContentLength(inputStream.available()); PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata); // 设置上传对象的 Acl 为公共读 - putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead); + putObjectRequest.setCannedAcl(getAccessPolicy().getAcl()); client.putObject(putObjectRequest); } catch (Exception e) { throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]"); @@ -138,7 +143,7 @@ public class OssClient { String endpoint = properties.getEndpoint(); String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://"; // 云服务商直接返回 - if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){ + if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)) { if (StringUtils.isNotBlank(domain)) { return header + domain; } @@ -167,6 +172,24 @@ public class OssClient { return configKey; } + public String getPrivateUrl(String objectKey, Integer second) { + GeneratePresignedUrlRequest generatePresignedUrlRequest = + new GeneratePresignedUrlRequest(properties.getBucketName(), objectKey) + .withMethod(HttpMethod.GET) + .withExpiration(new Date(System.currentTimeMillis() + 1000L * second)); + URL url = client.generatePresignedUrl(generatePresignedUrlRequest); + return url.toString(); + } + + /** + * 获取当前桶权限类型 + * + * @return 当前桶权限类型code + */ + public AccessPolicyType getAccessPolicy() { + return AccessPolicyType.getByType(properties.getAccessPolicy()); + } + private static String getPolicy(String bucketName, PolicyType policyType) { StringBuilder builder = new StringBuilder(); builder.append("{\n\"Statement\": [\n{\n\"Action\": [\n"); diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java new file mode 100644 index 000000000..1cae67094 --- /dev/null +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java @@ -0,0 +1,55 @@ +package com.ruoyi.oss.enumd; + +import com.amazonaws.services.s3.model.CannedAccessControlList; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 桶访问策略配置 + * + * @author 陈賝 + */ +@Getter +@AllArgsConstructor +public enum AccessPolicyType { + + /** + * private + */ + PRIVATE("0", CannedAccessControlList.Private, PolicyType.WRITE), + + /** + * public + */ + PUBLIC("1", CannedAccessControlList.PublicRead, PolicyType.READ), + + /** + * custom + */ + CUSTOM("2",CannedAccessControlList.PublicRead, PolicyType.READ); + + /** + * 桶 权限类型 + */ + private final String type; + + /** + * 文件对象 权限类型 + */ + private final CannedAccessControlList acl; + + /** + * 桶策略类型 + */ + private final PolicyType policyType; + + public static AccessPolicyType getByType(String type) { + for (AccessPolicyType value : values()) { + if (value.getType().equals(type)) { + return value; + } + } + throw new RuntimeException("'type' not found By " + type); + } + +} diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java index a01777901..781a17005 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java @@ -50,4 +50,9 @@ public class OssProperties { */ private String isHttps; + /** + * 桶权限类型(0private 1public 2custom) + */ + private String accessPolicy; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java index 577f17fb8..7f2b05f6a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java @@ -82,4 +82,8 @@ public class SysOssConfig extends BaseEntity { */ private String remark; + /** + * 桶权限类型(0private 1public 2custom) + */ + private String accessPolicy; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java index e9f481d5e..af289376c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java @@ -98,4 +98,10 @@ public class SysOssConfigBo extends BaseEntity { */ private String remark; + /** + * 桶权限类型(0private 1public 2custom) + */ + @NotBlank(message = "桶权限类型不能为空", groups = {AddGroup.class, EditGroup.class}) + private String accessPolicy; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java index f8b31d6b5..616e4e82d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java @@ -82,4 +82,9 @@ public class SysOssConfigVo { */ private String remark; + /** + * 桶权限类型(0private 1public 2custom) + */ + private String accessPolicy; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java index f02ea3d98..6472cebcb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java @@ -7,6 +7,8 @@ import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -23,7 +25,9 @@ public interface ISysOssService { SysOssVo getById(Long ossId); - SysOss upload(MultipartFile file); + SysOssVo upload(MultipartFile file); + + void download(Long ossId, HttpServletResponse response) throws IOException; Boolean deleteWithValidByIds(Collection ids, Boolean isValid); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java index 6c63821f1..f3bb1365b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java @@ -1,6 +1,9 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpException; +import cn.hutool.http.HttpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,10 +11,13 @@ import com.ruoyi.common.constant.CacheNames; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.BeanCopyUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.oss.core.OssClient; import com.ruoyi.oss.entity.UploadResult; +import com.ruoyi.oss.enumd.AccessPolicyType; import com.ruoyi.oss.factory.OssFactory; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; @@ -20,14 +26,17 @@ import com.ruoyi.system.mapper.SysOssMapper; import com.ruoyi.system.service.ISysOssService; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.Cacheable; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 文件上传 服务层实现 @@ -44,6 +53,8 @@ public class SysOssServiceImpl implements ISysOssService { public TableDataInfo queryPageList(SysOssBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List filterResult = result.getRecords().stream().map(this::matchingUrl).collect(Collectors.toList()); + result.setRecords(filterResult); return TableDataInfo.build(result); } @@ -53,7 +64,7 @@ public class SysOssServiceImpl implements ISysOssService { for (Long id : ossIds) { SysOssVo vo = SpringUtils.getAopProxy(this).getById(id); if (ObjectUtil.isNotNull(vo)) { - list.add(vo); + list.add(this.matchingUrl(vo)); } } return list; @@ -80,7 +91,28 @@ public class SysOssServiceImpl implements ISysOssService { } @Override - public SysOss upload(MultipartFile file) { + public void download(Long ossId, HttpServletResponse response) throws IOException { + SysOssVo sysOss = this.matchingUrl(SpringUtils.getAopProxy(this).getById(ossId)); + if (ObjectUtil.isNull(sysOss)) { + throw new ServiceException("文件数据不存在!"); + } + FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName()); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); + long data; + try { + data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false); + } catch (HttpException e) { + if (e.getMessage().contains("403")) { + throw new ServiceException("无读取权限, 请在对应的OSS开启'公有读'权限!"); + } else { + throw new ServiceException(e.getMessage()); + } + } + response.setContentLength(Convert.toInt(data)); + } + + @Override + public SysOssVo upload(MultipartFile file) { String originalfileName = file.getOriginalFilename(); String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); OssClient storage = OssFactory.instance(); @@ -98,7 +130,9 @@ public class SysOssServiceImpl implements ISysOssService { oss.setOriginalName(originalfileName); oss.setService(storage.getConfigKey()); baseMapper.insert(oss); - return oss; + SysOssVo sysOssVo = new SysOssVo(); + BeanCopyUtils.copy(oss, sysOssVo); + return this.matchingUrl(sysOssVo); } @Override @@ -114,4 +148,18 @@ public class SysOssServiceImpl implements ISysOssService { return baseMapper.deleteBatchIds(ids) > 0; } + /** + * 匹配Url + * + * @param oss OSS对象 + * @return oss 匹配Url的OSS对象 + */ + private SysOssVo matchingUrl(SysOssVo oss) { + OssClient storage = OssFactory.instance(oss.getService()); + // 仅修改桶类型为 private 的URL,临时URL时长为120s + if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) { + oss.setUrl(storage.getPrivateUrl(oss.getFileName(), 120)); + } + return oss; + } } diff --git a/ruoyi-ui/src/views/system/oss/config.vue b/ruoyi-ui/src/views/system/oss/config.vue index 54ad98cb1..51f991351 100644 --- a/ruoyi-ui/src/views/system/oss/config.vue +++ b/ruoyi-ui/src/views/system/oss/config.vue @@ -80,6 +80,7 @@ +