From 48b007543af49c780f6c216c840a965f8a73736f Mon Sep 17 00:00:00 2001 From: wind Date: Sat, 22 Jan 2022 14:05:44 +0000 Subject: [PATCH 001/178] fix css class name --- ruoyi-ui/src/assets/styles/ruoyi.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index d499fa0bb..e3912cec8 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -37,7 +37,7 @@ .mb10 { margin-bottom: 10px; } -.ml0 { +.ml10 { margin-left: 10px; } .mt20 { @@ -49,7 +49,7 @@ .mb20 { margin-bottom: 20px; } -.m20 { +.ml20 { margin-left: 20px; } From 1fe08f49c7abf88226f0dadaa239928220522073 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 23 Jan 2022 10:56:41 +0800 Subject: [PATCH 002/178] =?UTF-8?q?=E5=8D=87=E7=BA=A7spring-boot=E5=88=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC2.5.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index c024d33d7..b4d6fe419 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,6 @@ 3.2.2 4.1.2 2.3 - 2.17.1 0.9.1 @@ -44,7 +43,7 @@ org.springframework.boot spring-boot-dependencies - 2.5.8 + 2.5.9 pom import @@ -151,19 +150,6 @@ ${fastjson.version} - - - org.apache.logging.log4j - log4j-api - ${log4j2.version} - - - - org.apache.logging.log4j - log4j-to-slf4j - ${log4j2.version} - - io.jsonwebtoken From cd510b43b1ef85202ddf9018271aaadf695f3c8d Mon Sep 17 00:00:00 2001 From: hewenqiang <1527468660@qq.com> Date: Tue, 25 Jan 2022 17:17:06 +0800 Subject: [PATCH 003/178] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E3=80=81=E6=B3=A8=E5=86=8C=E6=A0=A1=E9=AA=8C=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E5=9C=A8=E6=8E=A5=E5=8F=A3=E9=80=9A=E8=BF=87?= =?UTF-8?q?@Validated=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E6=A0=A1=E9=AA=8C=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=89=A7=E8=A1=8C=E5=88=B0=E5=BC=82=E5=B8=B8=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=89=A7=E8=A1=8C=EF=BC=88=E5=87=8F=E5=B0=91?= =?UTF-8?q?if-else=E5=B5=8C=E5=A5=97=EF=BC=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysLoginController.java | 2 +- .../system/SysRegisterController.java | 7 +- .../main/resources/i18n/messages.properties | 7 ++ .../resources/i18n/messages_en_US.properties | 6 ++ .../resources/i18n/messages_zh_CN.properties | 6 ++ .../common/core/domain/model/LoginBody.java | 95 ++++++++++--------- .../system/service/SysRegisterService.java | 52 ++++------ 7 files changed, 96 insertions(+), 79 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 40c315cb8..3c51e09ce 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 @@ -51,7 +51,7 @@ public class SysLoginController { */ @ApiOperation("登录方法") @PostMapping("/login") - public AjaxResult> login(@RequestBody LoginBody loginBody) { + public AjaxResult> login(@Validated @RequestBody LoginBody loginBody) { Map ajax = new HashMap<>(); // 生成令牌 String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), 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 4d7801b3d..52d6a70a8 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 @@ -3,7 +3,6 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.RegisterBody; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.SysRegisterService; import io.swagger.annotations.Api; @@ -30,11 +29,11 @@ public class SysRegisterController extends BaseController { @ApiOperation("用户注册") @PostMapping("/register") - public AjaxResult register(@RequestBody RegisterBody user) { + public AjaxResult register(@Validated @RequestBody RegisterBody user) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return error("当前系统没有开启注册功能!"); } - String msg = registerService.register(user); - return StringUtils.isEmpty(msg) ? success() : error(msg); + registerService.register(user); + return success(); } } diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties index 6db4b42c5..06e85c1e1 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages.properties @@ -1,5 +1,6 @@ #错误消息 not.null=* 必须填写 +user.jcaptcha.blank=验证码不能为空 user.jcaptcha.error=验证码错误 user.jcaptcha.expire=验证码已失效 user.not.exists=对不起, 您的账号:{0} 不存在. @@ -11,12 +12,18 @@ user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员 role.blocked=角色已封禁,请联系管理员 user.logout.success=退出成功 length.not.valid=长度必须在{min}到{max}个字符之间 +user.username.not.blank=用户名不能为空 user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头 +user.username.length.valid=账户长度必须在{min}到{max}个字符之间 +user.password.not.blank=用户密码不能为空 +user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 user.password.not.valid=* 5-50个字符 user.email.not.valid=邮箱格式错误 user.mobile.phone.number.not.valid=手机号格式错误 user.login.success=登录成功 user.register.success=注册成功 +user.register.save.error=保存用户 {0} 失败,注册账号已存在 +user.register.error=注册失败,请联系系统管理人员 user.notfound=请重新登录 user.forcelogout=管理员强制退出,请重新登录 user.unknown.error=未知错误,请重新登录 diff --git a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties index c67beab66..960538a55 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties @@ -11,12 +11,18 @@ user.blocked=Sorry, your account: {0} has been disabled. Please contact the admi role.blocked=Role disabled,please contact administrators user.logout.success=Exit successful length.not.valid=The length must be between {min} and {max} characters +user.username.not.blank=Username cannot be blank user.username.not.valid=* 2 to 20 chinese characters, letters, numbers or underscores, and must start with a non number +user.username.length.valid=Account length must be between {min} and {max} characters +user.password.not.blank=Password cannot be empty +user.password.length.valid=Password length must be between {min} and {max} characters user.password.not.valid=* 5-50 characters user.email.not.valid=Mailbox format error user.mobile.phone.number.not.valid=Phone number format error user.login.success=Login successful user.register.success=Register successful +user.register.save.error=Failed to save user {0}, The registered account already exists +user.register.error=Register failed, please contact system administrator user.notfound=Please login again user.forcelogout=The administrator is forced to exit,please login again user.unknown.error=Unknown error, please login again diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties index 6db4b42c5..ee68c98c1 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties @@ -11,12 +11,18 @@ user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员 role.blocked=角色已封禁,请联系管理员 user.logout.success=退出成功 length.not.valid=长度必须在{min}到{max}个字符之间 +user.username.not.blank=用户名不能为空 user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头 +user.username.length.valid=账户长度必须在{min}到{max}个字符之间 +user.password.not.blank=用户密码不能为空 +user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 user.password.not.valid=* 5-50个字符 user.email.not.valid=邮箱格式错误 user.mobile.phone.number.not.valid=手机号格式错误 user.login.success=登录成功 user.register.success=注册成功 +user.register.save.error=保存用户 {0} 失败,注册账号已存在 +user.register.error=注册失败,请联系系统管理人员 user.notfound=请重新登录 user.forcelogout=管理员强制退出,请重新登录 user.unknown.error=未知错误,请重新登录 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 d47053694..94ebebda7 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,43 +1,52 @@ -package com.ruoyi.common.core.domain.model; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 用户登录对象 - * - * @author Lion Li - */ - -@Data -@Accessors(chain = true) -@ApiModel("用户登录对象") -public class LoginBody { - - /** - * 用户名 - */ - @ApiModelProperty(value = "用户名") - private String username; - - /** - * 用户密码 - */ - @ApiModelProperty(value = "用户密码") - private String password; - - /** - * 验证码 - */ - @ApiModelProperty(value = "验证码") - private String code; - - /** - * 唯一标识 - */ - @ApiModelProperty(value = "唯一标识") - private String uuid = ""; - -} +package com.ruoyi.common.core.domain.model; + +import com.ruoyi.common.constant.UserConstants; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * 用户登录对象 + * + * @author Lion Li + */ + +@Data +@Accessors(chain = true) +@ApiModel("用户登录对象") +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 = "用户名") + private String username; + + /** + * 用户密码 + */ + @NotBlank(message = "{user.password.not.blank}") + @Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}") + @ApiModelProperty(value = "用户密码") + private String password; + + /** + * 验证码 + */ + @NotBlank(message = "{user.jcaptcha.blank}") + @ApiModelProperty(value = "验证码") + private String code; + + /** + * 唯一标识 + */ + @ApiModelProperty(value = "唯一标识") + private String uuid = ""; + +} 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 8c5cfff37..5f44991ef 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 @@ -8,14 +8,16 @@ import com.ruoyi.common.core.service.LogininforService; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.exception.user.CaptchaException; import com.ruoyi.common.exception.user.CaptchaExpireException; +import com.ruoyi.common.exception.user.UserException; import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; + /** * 注册校验方法 * @@ -32,8 +34,8 @@ public class SysRegisterService { /** * 注册 */ - public String register(RegisterBody registerBody) { - String msg = ""; + public void register(RegisterBody registerBody) { + HttpServletRequest request = ServletUtils.getRequest(); String username = registerBody.getUsername(); String password = registerBody.getPassword(); // 校验用户类型是否存在 @@ -42,36 +44,22 @@ public class SysRegisterService { boolean captchaOnOff = configService.selectCaptchaOnOff(); // 验证码开关 if (captchaOnOff) { - validateCaptcha(username, registerBody.getCode(), registerBody.getUuid()); + validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request); } - if (StringUtils.isEmpty(username)) { - msg = "用户名不能为空"; - } else if (StringUtils.isEmpty(password)) { - msg = "用户密码不能为空"; - } else if (username.length() < UserConstants.USERNAME_MIN_LENGTH - || username.length() > UserConstants.USERNAME_MAX_LENGTH) { - msg = "账户长度必须在2到20个字符之间"; - } else if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { - msg = "密码长度必须在5到20个字符之间"; - } else if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) { - msg = "保存用户'" + username + "'失败,注册账号已存在"; - } else { - SysUser sysUser = new SysUser(); - sysUser.setUserName(username); - sysUser.setNickName(username); - sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); - sysUser.setUserType(userType); - boolean regFlag = userService.registerUser(sysUser); - if (!regFlag) { - msg = "注册失败,请联系系统管理人员"; - } else { - asyncService.recordLogininfor(username, Constants.REGISTER, - MessageUtils.message("user.register.success"), ServletUtils.getRequest()); - } + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) { + throw new UserException("user.register.save.error", username); } - return msg; + SysUser sysUser = new SysUser(); + sysUser.setUserName(username); + sysUser.setNickName(username); + sysUser.setPassword(SecurityUtils.encryptPassword(password)); + sysUser.setUserType(userType); + boolean regFlag = userService.registerUser(sysUser); + if (!regFlag) { + throw new UserException("user.register.error"); + } + asyncService.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.register.success"), request); } /** @@ -82,14 +70,16 @@ public class SysRegisterService { * @param uuid 唯一标识 * @return 结果 */ - public void validateCaptcha(String username, String code, String uuid) { + public void validateCaptcha(String username, String code, String uuid, HttpServletRequest request) { String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; String captcha = RedisUtils.getCacheObject(verifyKey); RedisUtils.deleteObject(verifyKey); if (captcha == null) { + asyncService.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.expire"), request); throw new CaptchaExpireException(); } if (!code.equalsIgnoreCase(captcha)) { + asyncService.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.error"), request); throw new CaptchaException(); } } From 03bda9422d6db769c485816a7cb4383db07c9487 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 Jan 2022 20:17:45 +0800 Subject: [PATCH 004/178] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=20=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=20BeanCopyUtils=20=E5=B7=A5=E5=85=B7=E7=9A=84?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=20=E9=81=BF=E5=85=8D=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/common/utils/BeanCopyUtils.java | 4 ++++ 1 file changed, 4 insertions(+) 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 0bd4a55b9..23ace00f9 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 @@ -13,6 +13,10 @@ import java.util.Map; /** * bean深拷贝工具(基于 cglib 性能优异) + *

+ * 重点 cglib 不支持 拷贝到链式对象 + * 例如: 源对象 拷贝到 目标(链式对象) + * 请区分好`浅拷贝`和`深拷贝`再做使用 * * @author Lion Li */ From 3706d2e1db45e64a1375b92300901de39e35e464 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 Jan 2022 21:50:54 +0800 Subject: [PATCH 005/178] =?UTF-8?q?update=20=E5=8E=BB=E9=99=A4=E9=93=BE?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E7=94=A8=E6=B3=A8=E8=A7=A3=20=E4=B8=8D?= =?UTF-8?q?=E7=AC=A6=E5=90=88=E8=A7=84=E8=8C=83=E5=AF=BC=E8=87=B4=E5=BE=88?= =?UTF-8?q?=E5=A4=9A=E5=A5=87=E8=91=A9=E9=97=AE=E9=A2=98=20=E4=BE=8B?= =?UTF-8?q?=E5=A6=82:=20copy=E4=B8=BA=E7=A9=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysOssController.java | 4 +++- .../com/ruoyi/common/config/RuoYiConfig.java | 2 -- .../ruoyi/common/core/domain/AjaxResult.java | 2 -- .../ruoyi/common/core/domain/BaseEntity.java | 2 -- .../ruoyi/common/core/domain/PageQuery.java | 2 -- .../ruoyi/common/core/domain/TreeEntity.java | 2 -- .../common/core/domain/dto/OperLogDTO.java | 4 ---- .../common/core/domain/dto/UserOnlineDTO.java | 6 ++---- .../common/core/domain/entity/SysDept.java | 2 -- .../core/domain/entity/SysDictData.java | 2 -- .../core/domain/entity/SysDictType.java | 1 - .../common/core/domain/entity/SysMenu.java | 2 -- .../common/core/domain/entity/SysRole.java | 2 -- .../common/core/domain/entity/SysUser.java | 2 -- .../common/core/domain/model/LoginBody.java | 2 -- .../common/core/domain/model/LoginUser.java | 2 -- .../core/domain/model/RegisterBody.java | 2 -- .../ruoyi/common/core/page/TableDataInfo.java | 1 - .../demo/controller/TestBatchController.java | 16 ++++++++++---- .../controller/TestSensitiveController.java | 14 ++++++------- .../demo/controller/queue/PriorityDemo.java | 2 -- .../queue/PriorityQueueController.java | 8 +++++-- .../java/com/ruoyi/demo/domain/TestDemo.java | 2 -- .../java/com/ruoyi/demo/domain/TestTree.java | 2 -- .../listener/UserActionListener.java | 21 ++++++++++--------- .../com/ruoyi/generator/domain/GenTable.java | 2 -- .../generator/domain/GenTableColumn.java | 1 - .../src/main/resources/vm/java/domain.java.vm | 2 -- .../com/ruoyi/oss/entity/UploadResult.java | 6 ++---- .../oss/service/impl/AliyunOssStrategy.java | 3 +-- .../oss/service/impl/MinioOssStrategy.java | 2 +- .../oss/service/impl/QcloudOssStrategy.java | 4 +--- .../oss/service/impl/QiniuOssStrategy.java | 4 +--- .../com/ruoyi/system/domain/SysConfig.java | 2 -- .../ruoyi/system/domain/SysLogininfor.java | 2 -- .../com/ruoyi/system/domain/SysNotice.java | 2 -- .../com/ruoyi/system/domain/SysOperLog.java | 2 -- .../java/com/ruoyi/system/domain/SysOss.java | 2 -- .../com/ruoyi/system/domain/SysOssConfig.java | 1 - .../java/com/ruoyi/system/domain/SysPost.java | 2 -- .../com/ruoyi/system/domain/SysRoleDept.java | 2 -- .../com/ruoyi/system/domain/SysRoleMenu.java | 2 -- .../ruoyi/system/domain/SysUserOnline.java | 2 -- .../com/ruoyi/system/domain/SysUserPost.java | 2 -- .../com/ruoyi/system/domain/SysUserRole.java | 2 -- .../com/ruoyi/system/domain/vo/MetaVo.java | 2 -- .../com/ruoyi/system/domain/vo/RouterVo.java | 2 -- .../system/domain/vo/SysUserExportVo.java | 2 -- .../impl/SysLogininforServiceImpl.java | 3 ++- .../service/impl/SysOperLogServiceImpl.java | 3 ++- .../service/impl/SysOssServiceImpl.java | 12 +++++------ 51 files changed, 56 insertions(+), 122 deletions(-) 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 e60b4bb21..e43210736 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 @@ -132,7 +132,9 @@ public class SysOssController extends BaseController { @PutMapping("/changePreviewListResource") public AjaxResult changePreviewListResource(@RequestBody String body) { Map map = JsonUtils.parseMap(body); - SysConfig config = iSysConfigService.getOne(new SysConfig().setConfigKey(OssConstant.PEREVIEW_LIST_RESOURCE_KEY)); + SysConfig sysConfig = new SysConfig(); + sysConfig.setConfigKey(OssConstant.PEREVIEW_LIST_RESOURCE_KEY); + SysConfig config = iSysConfigService.getOne(sysConfig); config.setConfigValue(map.get("previewListResource").toString()); return toAjax(iSysConfigService.updateConfig(config)); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java index bcfc677bd..8ce7a8c4f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -2,7 +2,6 @@ package com.ruoyi.common.config; import lombok.Data; import lombok.Getter; -import lombok.experimental.Accessors; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -13,7 +12,6 @@ import org.springframework.stereotype.Component; */ @Data -@Accessors(chain = true) @Component @ConfigurationProperties(prefix = "ruoyi") public class RuoYiConfig { 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 158da5fa7..333af88c2 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 @@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; /** * 操作消息提醒 @@ -16,7 +15,6 @@ import lombok.experimental.Accessors; @Data @NoArgsConstructor @AllArgsConstructor -@Accessors(chain = true) @ApiModel("请求响应对象") public class AjaxResult { 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 9c7857a56..d1ad296f6 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -18,7 +17,6 @@ import java.util.Map; */ @Data -@Accessors(chain = true) public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; 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 5ffd58892..7a61237c9 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 @@ -7,7 +7,6 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import java.io.Serializable; @@ -18,7 +17,6 @@ import java.io.Serializable; */ @Data -@Accessors(chain = true) public class PageQuery implements Serializable { private static final long serialVersionUID = 1L; 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 819e6b72a..5e7af7398 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import java.util.ArrayList; import java.util.List; @@ -17,7 +16,6 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) public class TreeEntity extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java index 773858f64..26bf67440 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java @@ -1,8 +1,6 @@ package com.ruoyi.common.core.domain.dto; import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -14,8 +12,6 @@ import java.util.Date; */ @Data -@NoArgsConstructor -@Accessors(chain = true) public class OperLogDTO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java index 5eb52806c..e83027424 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java @@ -1,8 +1,7 @@ package com.ruoyi.common.core.domain.dto; +import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; @@ -13,8 +12,7 @@ import java.io.Serializable; */ @Data -@NoArgsConstructor -@Accessors(chain = true) +@Builder public class UserOnlineDTO implements Serializable { private static final long serialVersionUID = 1L; 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 da60bd019..46e99368c 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 @@ -8,7 +8,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; @@ -23,7 +22,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_dept") @ApiModel("部门业务对象") public class SysDept extends TreeEntity { 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 241aecd87..dc7f0512f 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 @@ -12,7 +12,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @@ -25,7 +24,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_dict_data") @ExcelIgnoreUnannotated @ApiModel("字典数据业务对象") 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 702ec09d3..082a5bee7 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 @@ -24,7 +24,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_dict_type") @ExcelIgnoreUnannotated @ApiModel("字典类型业务对象") 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 4429b3db7..8eb97d0ee 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 @@ -8,7 +8,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -22,7 +21,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_menu") @ApiModel("菜单权限业务对象") public class SysMenu extends TreeEntity { 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 3153e41b1..aeffc409d 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 @@ -13,7 +13,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @@ -27,7 +26,6 @@ import javax.validation.constraints.Size; @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_role") @ExcelIgnoreUnannotated public class SysRole extends BaseEntity { 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 bc3170d3b..b6f5d17c1 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 @@ -12,7 +12,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; @@ -29,7 +28,6 @@ import java.util.List; @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_user") @ApiModel("用户信息业务对象") public class SysUser extends BaseEntity { 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 94ebebda7..289727a2f 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 @@ -4,7 +4,6 @@ import com.ruoyi.common.constant.UserConstants; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; @@ -16,7 +15,6 @@ import javax.validation.constraints.NotBlank; */ @Data -@Accessors(chain = true) @ApiModel("用户登录对象") public class LoginBody { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index c93bd1cf6..4651b0051 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -3,7 +3,6 @@ package com.ruoyi.common.core.domain.model; import com.ruoyi.common.helper.LoginHelper; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Set; @@ -16,7 +15,6 @@ import java.util.Set; @Data @NoArgsConstructor -@Accessors(chain = true) public class LoginUser implements Serializable { private static final long serialVersionUID = 1L; 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 b034dc1d4..bd9b84cca 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 @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** * 用户注册对象 @@ -13,7 +12,6 @@ import lombok.experimental.Accessors; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @ApiModel("用户注册对象") public class RegisterBody extends LoginBody { 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 b2537c18e..48353e3e7 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 @@ -19,7 +19,6 @@ import java.util.List; @Data @NoArgsConstructor -@Accessors(chain = true) @ApiModel("分页响应对象") public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; 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 39cf3ebf7..78ffef980 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 @@ -44,7 +44,11 @@ public class TestBatchController extends BaseController { public AjaxResult add() { List list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { - list.add(new TestDemo().setOrderNum(-1L).setTestKey("批量新增").setValue("测试新增")); + TestDemo testDemo = new TestDemo(); + testDemo.setOrderNum(-1L); + testDemo.setTestKey("批量新增"); + testDemo.setValue("测试新增"); + list.add(testDemo); } return toAjax(testDemoMapper.insertBatch(list) ? 1 : 0); } @@ -60,12 +64,16 @@ public class TestBatchController extends BaseController { public AjaxResult addOrUpdate() { List list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { - list.add(new TestDemo().setOrderNum(-1L).setTestKey("批量新增").setValue("测试新增")); - } + TestDemo testDemo = new TestDemo(); + testDemo.setOrderNum(-1L); + testDemo.setTestKey("批量新增"); + testDemo.setValue("测试新增"); + list.add(testDemo); } testDemoMapper.insertBatch(list); for (int i = 0; i < list.size(); i++) { TestDemo testDemo = list.get(i); - testDemo.setTestKey("批量新增或修改").setValue("批量新增或修改"); + testDemo.setTestKey("批量新增或修改"); + testDemo.setValue("批量新增或修改"); if (i % 2 == 0) { testDemo.setId(null); } 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 72b16e6ab..4deb2c029 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 @@ -7,7 +7,6 @@ import com.ruoyi.common.enums.SensitiveStrategy; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.Data; -import lombok.experimental.Accessors; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,17 +32,16 @@ public class TestSensitiveController extends BaseController { @ApiOperation("查询测试单表列表") @GetMapping("/test") public AjaxResult test() { - TestSensitive testSensitive = new TestSensitive() - .setIdCard("210397198608215431") - .setPhone("17640125371") - .setAddress("北京市朝阳区某某四合院1203室") - .setEmail("17640125371@163.com") - .setBankCard("6226456952351452853"); + TestSensitive testSensitive = new TestSensitive(); + testSensitive.setIdCard("210397198608215431"); + testSensitive.setPhone("17640125371"); + testSensitive.setAddress("北京市朝阳区某某四合院1203室"); + testSensitive.setEmail("17640125371@163.com"); + testSensitive.setBankCard("6226456952351452853"); return AjaxResult.success(testSensitive); } @Data - @Accessors(chain = true) static class TestSensitive { /** diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java index 08576904f..80f1b1155 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java @@ -2,7 +2,6 @@ package com.ruoyi.demo.controller.queue; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; /** * 实体类 注意不允许使用内部类 否则会找不到类 @@ -11,7 +10,6 @@ import lombok.experimental.Accessors; * @version 3.6.0 */ @Data -@Accessors(chain = true) @NoArgsConstructor public class PriorityDemo { private String name; 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 832cbcf33..b2a32470b 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 @@ -46,7 +46,9 @@ public class PriorityQueueController { } for (int i = 0; i < 10; i++) { int randomNum = RandomUtil.randomInt(10); - PriorityDemo data = new PriorityDemo().setName("data-" + i).setOrderNum(randomNum); + PriorityDemo data = new PriorityDemo(); + data.setName("data-" + i); + data.setOrderNum(randomNum); if (QueueUtils.addPriorityQueueObject(queueName, data)) { log.info("通道: {} , 发送数据: {}", queueName, data); } else { @@ -61,7 +63,9 @@ public class PriorityQueueController { public AjaxResult remove(@ApiParam("队列名") String queueName, @ApiParam("对象名") String name, @ApiParam("排序号") Integer orderNum) { - PriorityDemo data = new PriorityDemo().setName(name).setOrderNum(orderNum); + PriorityDemo data = new PriorityDemo(); + data.setName(name); + data.setOrderNum(orderNum); if (QueueUtils.removePriorityQueueObject(queueName, data)) { log.info("通道: {} , 删除数据: {}", queueName, data); } else { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java index f36ae2b3f..c079d122b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.*; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** * 测试单表对象 test_demo @@ -14,7 +13,6 @@ import lombok.experimental.Accessors; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("test_demo") public class TestDemo extends BaseEntity { diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java index 7459362f5..1ca4a7ad4 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.Version; import com.ruoyi.common.core.domain.TreeEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** * 测试树表对象 test_tree @@ -17,7 +16,6 @@ import lombok.experimental.Accessors; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("test_tree") public class TestTree extends TreeEntity { 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 6995fb69e..609c0ac48 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 @@ -46,18 +46,19 @@ public class UserActionListener implements SaTokenListener { String ip = ServletUtils.getClientIP(); SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); String tokenValue = StpUtil.getTokenValue(); - UserOnlineDTO userOnlineDTO = new UserOnlineDTO() - .setIpaddr(ip) - .setLoginLocation(AddressUtils.getRealAddressByIP(ip)) - .setBrowser(userAgent.getBrowser().getName()) - .setOs(userAgent.getOs().getName()) - .setLoginTime(System.currentTimeMillis()) - .setTokenId(tokenValue) - .setUserName(user.getUserName()); + UserOnlineDTO dto = UserOnlineDTO.builder() + .ipaddr(ip) + .loginLocation(AddressUtils.getRealAddressByIP(ip)) + .browser(userAgent.getBrowser().getName()) + .os(userAgent.getOs().getName()) + .loginTime(System.currentTimeMillis()) + .tokenId(tokenValue) + .userName(user.getUserName()) + .build(); if (ObjectUtil.isNotNull(user.getDept())) { - userOnlineDTO.setDeptName(user.getDept().getDeptName()); + dto.setDeptName(user.getDept().getDeptName()); } - RedisUtils.setCacheObject(Constants.ONLINE_TOKEN_KEY + tokenValue, userOnlineDTO, tokenConfig.getTimeout(), TimeUnit.SECONDS); + RedisUtils.setCacheObject(Constants.ONLINE_TOKEN_KEY + tokenValue, dto, tokenConfig.getTimeout(), TimeUnit.SECONDS); log.info("user doLogin, useId:{}, token:{}", loginId, tokenValue); } else if (userType == UserType.APP_USER) { // app端 自行根据业务编写 diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java index 915cf7dc5..965c9f34c 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java @@ -8,7 +8,6 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.utils.StringUtils; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import org.apache.commons.lang3.ArrayUtils; import javax.validation.Valid; @@ -23,7 +22,6 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("gen_table") public class GenTable extends BaseEntity { 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 1a978d4f1..763acd74c 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 @@ -20,7 +20,6 @@ import javax.validation.constraints.NotBlank; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("gen_table_column") public class GenTableColumn extends BaseEntity { diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index dfd1465f6..2cf259cc9 100644 --- a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -3,7 +3,6 @@ package ${packageName}.domain; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; import java.math.BigDecimal; @@ -29,7 +28,6 @@ import com.ruoyi.common.core.domain.TreeEntity; #set($Entity="TreeEntity") #end @Data -@Accessors(chain = true) @TableName("${tableName}") public class ${ClassName} extends ${Entity} { diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java index 11f9a9bee..379d283c8 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java @@ -1,8 +1,7 @@ package com.ruoyi.oss.entity; +import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; /** * 上传返回体 @@ -10,8 +9,7 @@ import lombok.experimental.Accessors; * @author Lion Li */ @Data -@NoArgsConstructor -@Accessors(chain = true) +@Builder public class UploadResult { /** diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java index 61b98cda9..adfce0988 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java @@ -77,8 +77,7 @@ public class AliyunOssStrategy extends AbstractOssStrategy { } catch (Exception e) { throw new OssException("上传文件失败,请检查阿里云配置信息:[" + e.getMessage() + "]"); } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); - } + return UploadResult.builder().url(getEndpointLink() + "/" + path).filename(path).build(); } @Override public void delete(String path) { diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java index e2cd57840..435606cca 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java @@ -80,7 +80,7 @@ public class MinioOssStrategy extends AbstractOssStrategy { } catch (Exception e) { throw new OssException("上传文件失败,请核对Minio配置信息:[" + e.getMessage() + "]"); } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + return UploadResult.builder().url(getEndpointLink() + "/" + path).filename(path).build(); } @Override diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java index bc1184864..21a2f95b7 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java @@ -11,10 +11,8 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.oss.entity.UploadResult; import com.ruoyi.oss.enumd.OssEnumd; import com.ruoyi.oss.exception.OssException; -import com.ruoyi.oss.factory.OssFactory; import com.ruoyi.oss.properties.OssProperties; import com.ruoyi.oss.service.abstractd.AbstractOssStrategy; -import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; import java.io.ByteArrayInputStream; @@ -87,7 +85,7 @@ public class QcloudOssStrategy extends AbstractOssStrategy { } catch (Exception e) { throw new OssException("上传文件失败,请检查腾讯云配置信息:[" + e.getMessage() + "]"); } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + return UploadResult.builder().url(getEndpointLink() + "/" + path).filename(path).build(); } @Override diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java index 417f7030f..a47bc68dc 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java @@ -10,10 +10,8 @@ import com.qiniu.util.Auth; import com.ruoyi.oss.entity.UploadResult; import com.ruoyi.oss.enumd.OssEnumd; import com.ruoyi.oss.exception.OssException; -import com.ruoyi.oss.factory.OssFactory; import com.ruoyi.oss.properties.OssProperties; import com.ruoyi.oss.service.abstractd.AbstractOssStrategy; -import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; import java.io.InputStream; @@ -78,7 +76,7 @@ public class QiniuOssStrategy extends AbstractOssStrategy { } catch (Exception e) { throw new OssException("上传文件失败,请核对七牛配置信息:[" + e.getMessage() + "]"); } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + return UploadResult.builder().url(getEndpointLink() + "/" + path).filename(path).build(); } @Override 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 19c7cd84b..b1091b458 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 @@ -11,7 +11,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @@ -24,7 +23,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_config") @ExcelIgnoreUnannotated @ApiModel("参数配置业务对象") 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 a1575378d..de095ec38 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.convert.ExcelDictConvert; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -24,7 +23,6 @@ import java.util.Map; */ @Data -@Accessors(chain = true) @TableName("sys_logininfor") @ExcelIgnoreUnannotated @ApiModel("系统访问记录业务对象") 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 aa855a326..2371bb7e5 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 @@ -7,7 +7,6 @@ import com.ruoyi.common.xss.Xss; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @@ -20,7 +19,6 @@ import javax.validation.constraints.Size; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_notice") public class SysNotice extends BaseEntity { 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 ff77cee95..f6f373776 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.convert.ExcelDictConvert; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -24,7 +23,6 @@ import java.util.Map; */ @Data -@Accessors(chain = true) @TableName("sys_oper_log") @ExcelIgnoreUnannotated @ApiModel("操作日志记录业务对象") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java index d7d75e349..711dd8361 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** * OSS对象存储对象 @@ -15,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_oss") public class SysOss extends BaseEntity { 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 775da2ba8..a8340df77 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 @@ -14,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_oss_config") public class SysOssConfig extends BaseEntity { 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 6b99ceb49..80bf275c1 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 @@ -12,7 +12,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @@ -25,7 +24,6 @@ import javax.validation.constraints.Size; @Data @EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) @TableName("sys_post") @ExcelIgnoreUnannotated @ApiModel("岗位信息业务对象") 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 1a3e1149b..c3043c253 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 @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 角色和部门关联 sys_role_dept @@ -15,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @TableName("sys_role_dept") @ApiModel("角色和部门关联") public class SysRoleDept { 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 5d90d0f32..f3e4dd7c2 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 @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 角色和菜单关联 sys_role_menu @@ -15,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @TableName("sys_role_menu") @ApiModel("角色和菜单关联") public class SysRoleMenu { 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 f81508c8c..605d1645b 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 @@ -3,7 +3,6 @@ package com.ruoyi.system.domain; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 当前在线会话 @@ -12,7 +11,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @ApiModel("当前在线会话业务对象") public class SysUserOnline { 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 ae48cba50..243e3c8ae 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 @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 用户和岗位关联 sys_user_post @@ -15,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @TableName("sys_user_post") @ApiModel("用户和岗位关联") public class SysUserPost { 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 3db13dfd7..5fa712a4b 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 @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 用户和角色关联 sys_user_role @@ -15,7 +14,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @TableName("sys_user_role") @ApiModel("用户和角色关联") public class SysUserRole { 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 6a3798adb..d3e1a353a 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 @@ -4,7 +4,6 @@ import com.ruoyi.common.utils.StringUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; /** * 路由显示信息 @@ -13,7 +12,6 @@ import lombok.experimental.Accessors; */ @Data -@Accessors(chain = true) @ApiModel("路由显示信息") public class MetaVo { 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 05ba451d7..a451bb95b 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 @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.experimental.Accessors; import java.util.List; @@ -14,7 +13,6 @@ import java.util.List; * @author Lion Li */ @Data -@Accessors(chain = true) @JsonInclude(JsonInclude.Include.NON_EMPTY) @ApiModel("路由配置信息") public class RouterVo { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java index c43c8a5c3..683cb83fa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java @@ -5,7 +5,6 @@ import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -18,7 +17,6 @@ import java.util.Date; @Data @NoArgsConstructor -@Accessors(chain = true) public class SysUserExportVo implements Serializable { private static final long serialVersionUID = 1L; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index 2f12ef320..7c5018bb6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -100,7 +100,8 @@ public class SysLogininforServiceImpl implements ISysLogininforService, Logininf .between(params.get("beginTime") != null && params.get("endTime") != null, SysLogininfor::getLoginTime, params.get("beginTime"), params.get("endTime")); if (StringUtils.isBlank(pageQuery.getOrderByColumn())) { - pageQuery.setOrderByColumn("info_id").setIsAsc("desc"); + pageQuery.setOrderByColumn("info_id"); + pageQuery.setIsAsc("desc"); } Page page = baseMapper.selectPage(pageQuery.build(), lqw); return TableDataInfo.build(page); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index d146819f4..8610d974f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -65,7 +65,8 @@ public class SysOperLogServiceImpl implements ISysOperLogService, OperLogService .between(params.get("beginTime") != null && params.get("endTime") != null, SysOperLog::getOperTime, params.get("beginTime"), params.get("endTime")); if (StringUtils.isBlank(pageQuery.getOrderByColumn())) { - pageQuery.setOrderByColumn("oper_id").setIsAsc("desc"); + pageQuery.setOrderByColumn("oper_id"); + pageQuery.setIsAsc("desc"); } Page page = baseMapper.selectPage(pageQuery.build(), lqw); return TableDataInfo.build(page); 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 5a2808693..19423f404 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 @@ -73,12 +73,12 @@ public class SysOssServiceImpl implements ISysOssService { throw new ServiceException(e.getMessage()); } // 保存文件信息 - SysOss oss = new SysOss() - .setUrl(uploadResult.getUrl()) - .setFileSuffix(suffix) - .setFileName(uploadResult.getFilename()) - .setOriginalName(originalfileName) - .setService(storage.getServiceType().getValue()); + SysOss oss = new SysOss(); + oss.setUrl(uploadResult.getUrl()); + oss.setFileSuffix(suffix); + oss.setFileName(uploadResult.getFilename()); + oss.setOriginalName(originalfileName); + oss.setService(storage.getServiceType().getValue()); baseMapper.insert(oss); return oss; } From e6bcced21354eba34f5ceda6fc13302fb0069053 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 Jan 2022 10:44:37 +0800 Subject: [PATCH 006/178] update mybatis-plus 3.5.0 => 3.5.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2062f0a09..f19ff35d6 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ 3.3.0 2.3 1.28.0 - 3.5.0 + 3.5.1 3.9.1 5.7.20 4.9.2 From c0d749b1e2ae840b5cadc66febb07aa0f9572ab5 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 Jan 2022 18:30:57 +0800 Subject: [PATCH 007/178] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=20=E7=BC=93=E5=AD=98=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=90=8D=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/framework/handler/PlusDataPermissionHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 5098917d6..07795d949 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 @@ -160,13 +160,13 @@ public class PlusDataPermissionHandler { DataPermission dataPermission; // 获取方法注解 for (Method method : methods) { - dataPermission = dataPermissionCacheMap.get(method.getName()); + dataPermission = dataPermissionCacheMap.get(mappedStatementId); if (ObjectUtil.isNotNull(dataPermission)) { return dataPermission.value(); } if (AnnotationUtil.hasAnnotation(method, DataPermission.class)) { dataPermission = AnnotationUtil.getAnnotation(method, DataPermission.class); - dataPermissionCacheMap.put(method.getName(), dataPermission); + dataPermissionCacheMap.put(mappedStatementId, dataPermission); return dataPermission.value(); } } From 69bcebdf86c53bf59e2611afc27cab7e05520d9b 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 Jan 2022 18:46:49 +0800 Subject: [PATCH 008/178] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/sql/test.sql | 4 ++-- script/sql/update/update-3.X-4.0.sql | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/script/sql/test.sql b/script/sql/test.sql index 41ed7eeb5..5d709659e 100644 --- a/script/sql/test.sql +++ b/script/sql/test.sql @@ -33,8 +33,8 @@ CREATE TABLE test_tree PRIMARY KEY (id) USING BTREE ) ENGINE = InnoDB COMMENT = '测试树表'; -INSERT INTO sys_user(user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark) VALUES (3, 108, 'test', '本部门及以下 密码666', 'sys_user', '', '', '0', '', '$2a$10$M6tZRpUZbWKq11O/z6YISePQc./Jhru8E18mmVJTr9aV8whzfjacC', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), 'test', sysdate(), NULL); -INSERT INTO sys_user(user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark) VALUES (4, 102, 'test1', '仅本人 密码666', 'sys_user', '', '', '0', '', '$2a$10$yBSXp5Ba1m402cxXTPSy4eXUO8CXCGvXfquNVP/XMWwZ8nf9GaoMy', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), 'test1', sysdate(), NULL); +INSERT INTO sys_user(user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark) VALUES (3, 108, 'test', '本部门及以下 密码666666', 'sys_user', '', '', '0', '', '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), 'test', sysdate(), NULL); +INSERT INTO sys_user(user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark) VALUES (4, 102, 'test1', '仅本人 密码666666', 'sys_user', '', '', '0', '', '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), 'test1', sysdate(), NULL); INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (5, '测试菜单', 0, 5, 'demo', NULL, 1, 0, 'M', '0', '0', NULL, 'star', 'admin', '2021-05-30 00:34:26', NULL, NULL, ''); diff --git a/script/sql/update/update-3.X-4.0.sql b/script/sql/update/update-3.X-4.0.sql index de4117843..aac1e6f58 100644 --- a/script/sql/update/update-3.X-4.0.sql +++ b/script/sql/update/update-3.X-4.0.sql @@ -2,5 +2,5 @@ ALTER TABLE `sys_user` MODIFY COLUMN `user_type` varchar(10) DEFAULT 'sys_user' UPDATE `sys_user` SET `nick_name` = '疯狂的狮子Li', `user_type` = 'sys_user', `email` = 'crazyLionLi@163.com' WHERE `user_id` = 1; UPDATE `sys_user` SET `user_name` = 'lionli', `nick_name` = '疯狂的狮子Li', `user_type` = 'sys_user', `email` = 'crazyLionLi@163.com' WHERE `user_id` = 2; -UPDATE `sys_user` SET `user_type` = 'sys_user' WHERE `user_id` = 3; -UPDATE `sys_user` SET `user_type` = 'sys_user' WHERE `user_id` = 4; +UPDATE `sys_user` SET `nick_name` = '本部门及以下 密码666666', `user_type` = 'sys_user', `password` = '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne' WHERE `user_id` = 3; +UPDATE `sys_user` SET `nick_name` = '仅本人 密码666666', `user_type` = 'sys_user', `password` = '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne' WHERE `user_id` = 4; From 0da30f462392664ba7a76d47de7e67560046d486 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 Jan 2022 20:58:05 +0800 Subject: [PATCH 009/178] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=20=E7=BB=9F=E4=B8=80=E8=B5=B0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysLoginController.java | 6 ++-- .../system/SysProfileController.java | 4 +-- .../common/core/domain/model/LoginUser.java | 18 ++++++++++++ .../common/core/service/UserService.java | 28 ------------------- .../handler/PlusDataPermissionHandler.java | 12 ++++---- .../listener/UserActionListener.java | 8 ++---- .../ruoyi/system/service/ISysUserService.java | 5 +--- .../ruoyi/system/service/SysLoginService.java | 2 ++ .../service/impl/SysUserServiceImpl.java | 3 +- 9 files changed, 35 insertions(+), 51 deletions(-) delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java 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 3c51e09ce..b87de51a3 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 @@ -7,11 +7,10 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.helper.LoginHelper; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.vo.RouterVo; 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; @@ -41,6 +40,7 @@ public class SysLoginController { private final SysLoginService loginService; private final ISysMenuService menuService; + private final ISysUserService userService; private final SysPermissionService permissionService; /** @@ -78,7 +78,7 @@ public class SysLoginController { @ApiOperation("获取用户信息") @GetMapping("getInfo") public AjaxResult> getInfo() { - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + SysUser user = userService.selectUserById(LoginHelper.getUserId()); // 角色集合 Set roles = permissionService.getRolePermission(user); // 权限集合 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 0fa8e1ed1..0a24e7c0d 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 @@ -5,12 +5,10 @@ import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; @@ -91,7 +89,7 @@ public class SysProfileController extends BaseController { @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") public AjaxResult updatePwd(String oldPassword, String newPassword) { - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + SysUser user = userService.selectUserById(LoginHelper.getUserId()); String userName = user.getUserName(); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index 4651b0051..81e374a5e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -1,10 +1,13 @@ package com.ruoyi.common.core.domain.model; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.helper.LoginHelper; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.List; import java.util.Set; /** @@ -84,6 +87,21 @@ public class LoginUser implements Serializable { */ private String username; + /** + * 部门对象 + */ + private SysDept dept; + + /** + * 角色对象 + */ + private List roles; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + /** * 获取登录id */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java deleted file mode 100644 index e637f4731..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ruoyi.common.core.service; - -import com.ruoyi.common.core.domain.entity.SysUser; - -/** - * 通用 用户业务 - * - * @author Lion Li - */ -public interface UserService { - - /** - * 通过用户名查询用户 - * - * @param userName 用户名 - * @return 用户对象信息 - */ - SysUser selectUserByUserName(String userName); - - /** - * 通过用户ID查询用户 - * - * @param userId 用户ID - * @return 用户对象信息 - */ - SysUser selectUserById(Long userId); - -} 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 07795d949..24a684754 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 @@ -8,12 +8,12 @@ import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.DataColumn; import com.ruoyi.common.annotation.DataPermission; import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; +import com.ruoyi.common.core.domain.model.LoginUser; 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.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.extern.slf4j.Slf4j; @@ -74,13 +74,13 @@ public class PlusDataPermissionHandler { inavlidCacheSet.add(mappedStatementId); return where; } - SysUser currentUser = DataPermissionHelper.getVariable("user"); + LoginUser currentUser = DataPermissionHelper.getVariable("user"); if (ObjectUtil.isNull(currentUser)) { - currentUser = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + currentUser = LoginHelper.getLoginUser(); DataPermissionHelper.setVariable("user", currentUser); } // 如果是超级管理员,则不过滤数据 - if (ObjectUtil.isNull(currentUser) || currentUser.isAdmin()) { + if (ObjectUtil.isNull(currentUser) || SecurityUtils.isAdmin(currentUser.getUserId())) { return where; } String dataFilterSql = buildDataFilter(dataColumns, isSelect); @@ -108,7 +108,7 @@ public class PlusDataPermissionHandler { StringBuilder sqlString = new StringBuilder(); // 更新或删除需满足所有条件 String joinStr = isSelect ? " OR " : " AND "; - SysUser user = DataPermissionHelper.getVariable("user"); + LoginUser user = DataPermissionHelper.getVariable("user"); StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(beanResolver); DataPermissionHelper.getContext().forEach(context::setVariable); 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 609c0ac48..bf5625f91 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 @@ -9,14 +9,12 @@ import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.dto.UserOnlineDTO; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.redis.RedisUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -44,7 +42,7 @@ public class UserActionListener implements SaTokenListener { if (userType == UserType.SYS_USER) { UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent")); String ip = ServletUtils.getClientIP(); - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + LoginUser user = LoginHelper.getLoginUser(); String tokenValue = StpUtil.getTokenValue(); UserOnlineDTO dto = UserOnlineDTO.builder() .ipaddr(ip) @@ -53,7 +51,7 @@ public class UserActionListener implements SaTokenListener { .os(userAgent.getOs().getName()) .loginTime(System.currentTimeMillis()) .tokenId(tokenValue) - .userName(user.getUserName()) + .userName(user.getUsername()) .build(); if (ObjectUtil.isNotNull(user.getDept())) { dto.setDeptName(user.getDept().getDeptName()); 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 118c36ffd..741ae4bc0 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 @@ -3,7 +3,6 @@ package com.ruoyi.system.service; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.service.UserService; import java.util.List; @@ -12,7 +11,7 @@ import java.util.List; * * @author Lion Li */ -public interface ISysUserService extends UserService { +public interface ISysUserService { TableDataInfo selectPageUserList(SysUser user, PageQuery pageQuery); @@ -47,7 +46,6 @@ public interface ISysUserService extends UserService { * @param userName 用户名 * @return 用户对象信息 */ - @Override SysUser selectUserByUserName(String userName); /** @@ -56,7 +54,6 @@ public interface ISysUserService extends UserService { * @param userId 用户ID * @return 用户对象信息 */ - @Override SysUser selectUserById(Long userId); /** 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 a19f76d80..a9a6a109c 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 @@ -137,6 +137,8 @@ public class SysLoginService { loginUser.setUserType(user.getUserType()); loginUser.setMenuPermission(permissionService.getMenuPermission(user)); loginUser.setRolePermission(permissionService.getRolePermission(user)); + loginUser.setRoles(user.getRoles()); + loginUser.setDept(user.getDept()); return loginUser; } 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 5194046f4..72ec867ed 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; @@ -38,7 +37,7 @@ import java.util.stream.Collectors; @Slf4j @RequiredArgsConstructor @Service -public class SysUserServiceImpl implements ISysUserService, UserService { +public class SysUserServiceImpl implements ISysUserService { private final SysUserMapper baseMapper; private final SysRoleMapper roleMapper; From 129a49a60bac2f948f39fd3deb7f69d1ad64b1eb 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 Jan 2022 21:07:21 +0800 Subject: [PATCH 010/178] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9B=91=E5=90=AC=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=20=E6=94=B9=E4=B8=BA=E4=BC=98=E5=85=88?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=B8=80=E7=BA=A7=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/helper/LoginHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java index 66b5854af..aa1833918 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java @@ -31,6 +31,7 @@ public class LoginHelper { * @param loginUser 登录用户信息 */ public static void login(LoginUser loginUser) { + LOGIN_CACHE.set(loginUser); StpUtil.login(loginUser.getLoginId()); setLoginUser(loginUser); } @@ -42,6 +43,7 @@ public class LoginHelper { * @param loginUser 登录用户信息 */ public static void loginByDevice(LoginUser loginUser, DeviceType deviceType) { + LOGIN_CACHE.set(loginUser); StpUtil.login(loginUser.getLoginId(), deviceType.getDevice()); setLoginUser(loginUser); } @@ -51,7 +53,6 @@ public class LoginHelper { */ public static void setLoginUser(LoginUser loginUser) { StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); - LOGIN_CACHE.set(loginUser); } /** From 29462b83ff802c3855a8e338a3ea5d220fc0e7bc 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 Jan 2022 09:50:18 +0800 Subject: [PATCH 011/178] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20LoginUser?= =?UTF-8?q?=20=E8=A7=A3=E8=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/domain/dto/RoleDTO.java | 38 +++++++++++++++++++ .../common/core/domain/model/LoginUser.java | 15 ++++---- .../com/ruoyi/common/enums/DataScopeType.java | 2 +- .../handler/PlusDataPermissionHandler.java | 4 +- .../listener/UserActionListener.java | 5 +-- .../ruoyi/system/service/SysLoginService.java | 13 +++++-- 6 files changed, 59 insertions(+), 18 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java new file mode 100644 index 000000000..e25243f5a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java @@ -0,0 +1,38 @@ +package com.ruoyi.common.core.domain.dto; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 角色 + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +public class RoleDTO implements Serializable { + + /** + * 角色ID + */ + private Long roleId; + + /** + * 角色名称 + */ + private String roleName; + + /** + * 角色权限 + */ + private String roleKey; + + /** + * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) + */ + private String dataScope; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index 81e374a5e..9f7186c48 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -1,7 +1,6 @@ package com.ruoyi.common.core.domain.model; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.dto.RoleDTO; import com.ruoyi.common.helper.LoginHelper; import lombok.Data; import lombok.NoArgsConstructor; @@ -32,6 +31,11 @@ public class LoginUser implements Serializable { */ private Long deptId; + /** + * 部门名 + */ + private String deptName; + /** * 用户唯一标识 */ @@ -87,15 +91,10 @@ public class LoginUser implements Serializable { */ private String username; - /** - * 部门对象 - */ - private SysDept dept; - /** * 角色对象 */ - private List roles; + private List roles; /** * 数据权限 当前角色ID diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java index 58bc76140..64324652b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java @@ -9,7 +9,7 @@ import lombok.Getter; *

* 语法支持 spel 模板表达式 *

- * 内置数据 user 当前用户 内容参考 SysUser + * 内置数据 user 当前用户 内容参考 LoginUser * 如需扩展数据 可使用 {@link com.ruoyi.common.helper.DataPermissionHelper} 操作 * 内置服务 sdss 系统数据权限服务 内容参考 SysDataScopeService * 如需扩展更多自定义服务 可以参考 sdss 自行编写 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 24a684754..5e7624247 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 @@ -7,7 +7,7 @@ import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.DataColumn; import com.ruoyi.common.annotation.DataPermission; -import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.dto.RoleDTO; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.DataScopeType; import com.ruoyi.common.exception.ServiceException; @@ -112,7 +112,7 @@ public class PlusDataPermissionHandler { StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(beanResolver); DataPermissionHelper.getContext().forEach(context::setVariable); - for (SysRole role : user.getRoles()) { + for (RoleDTO role : user.getRoles()) { user.setRoleId(role.getRoleId()); // 获取角色权限泛型 DataScopeType type = DataScopeType.findCode(role.getDataScope()); 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 bf5625f91..2cef33c87 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 @@ -4,7 +4,6 @@ import cn.dev33.satoken.config.SaTokenConfig; import cn.dev33.satoken.listener.SaTokenListener; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.constant.Constants; @@ -52,10 +51,8 @@ public class UserActionListener implements SaTokenListener { .loginTime(System.currentTimeMillis()) .tokenId(tokenValue) .userName(user.getUsername()) + .deptName(user.getDeptName()) .build(); - if (ObjectUtil.isNotNull(user.getDept())) { - dto.setDeptName(user.getDept().getDeptName()); - } RedisUtils.setCacheObject(Constants.ONLINE_TOKEN_KEY + tokenValue, dto, tokenConfig.getTimeout(), TimeUnit.SECONDS); log.info("user doLogin, useId:{}, token:{}", loginId, tokenValue); } else if (userType == UserType.APP_USER) { 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 a9a6a109c..60e3ca70a 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,8 +1,10 @@ package com.ruoyi.system.service; import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.dto.RoleDTO; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.service.LogininforService; @@ -12,13 +14,17 @@ import com.ruoyi.common.exception.user.CaptchaException; import com.ruoyi.common.exception.user.CaptchaExpireException; import com.ruoyi.common.exception.user.UserException; import com.ruoyi.common.helper.LoginHelper; -import com.ruoyi.common.utils.*; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.redis.RedisUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -137,8 +143,9 @@ public class SysLoginService { loginUser.setUserType(user.getUserType()); loginUser.setMenuPermission(permissionService.getMenuPermission(user)); loginUser.setRolePermission(permissionService.getRolePermission(user)); - loginUser.setRoles(user.getRoles()); - loginUser.setDept(user.getDept()); + loginUser.setDeptName(user.getDept().getDeptName()); + List roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class); + loginUser.setRoles(roles); return loginUser; } From 5764befa4675152bd6d1879a7ab0686eb16da18d 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 Jan 2022 11:20:54 +0800 Subject: [PATCH 012/178] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20redisson?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE=20=E5=8E=BB=E9=99=A4=E6=8E=89=E4=B8=8D?= =?UTF-8?q?=E5=B8=B8=E7=94=A8=E7=9A=84=E9=85=8D=E7=BD=AE=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 6 --- .../src/main/resources/application-prod.yml | 6 --- .../ruoyi/framework/config/RedisConfig.java | 27 ++----------- .../config/properties/RedissonProperties.java | 40 ------------------- 4 files changed, 4 insertions(+), 75 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 8fa332c12..635cfea84 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -150,11 +150,5 @@ redisson: retryAttempts: 3 # 命令重试发送时间间隔,单位:毫秒 retryInterval: 1500 - # 发布和订阅连接的最小空闲连接数 - subscriptionConnectionMinimumIdleSize: 1 # 发布和订阅连接池大小 subscriptionConnectionPoolSize: 50 - # 单个连接最大订阅数量 - subscriptionsPerConnection: 5 - # DNS监测时间间隔,单位:毫秒 - dnsMonitoringInterval: 5000 diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index cfa8c7cc4..596c64e7f 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -157,11 +157,5 @@ redisson: retryAttempts: 3 # 命令重试发送时间间隔,单位:毫秒 retryInterval: 1500 - # 发布和订阅连接的最小空闲连接数 - subscriptionConnectionMinimumIdleSize: 1 # 发布和订阅连接池大小 subscriptionConnectionPoolSize: 50 - # 单个连接最大订阅数量 - subscriptionsPerConnection: 5 - # DNS监测时间间隔,单位:毫秒 - dnsMonitoringInterval: 5000 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 6fa54e2a3..a8bec417a 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 @@ -11,15 +11,14 @@ import org.redisson.config.Config; import org.redisson.spring.cache.CacheConfig; import org.redisson.spring.cache.RedissonSpringCacheManager; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; -import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,9 +43,9 @@ public class RedisConfig extends CachingConfigurerSupport { @Autowired private RedissonProperties redissonProperties; + @Primary @Bean(destroyMethod = "shutdown") - @ConditionalOnMissingBean(RedissonClient.class) - public RedissonClient redisson() throws IOException { + public RedissonClient redisson() { String prefix = REDIS_PROTOCOL_PREFIX; if (redisProperties.isSsl()) { prefix = REDISS_PROTOCOL_PREFIX; @@ -68,14 +67,11 @@ public class RedisConfig extends CachingConfigurerSupport { .setTimeout(singleServerConfig.getTimeout()) .setRetryAttempts(singleServerConfig.getRetryAttempts()) .setRetryInterval(singleServerConfig.getRetryInterval()) - .setSubscriptionsPerConnection(singleServerConfig.getSubscriptionsPerConnection()) .setClientName(singleServerConfig.getClientName()) .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout()) - .setSubscriptionConnectionMinimumIdleSize(singleServerConfig.getSubscriptionConnectionMinimumIdleSize()) .setSubscriptionConnectionPoolSize(singleServerConfig.getSubscriptionConnectionPoolSize()) .setConnectionMinimumIdleSize(singleServerConfig.getConnectionMinimumIdleSize()) - .setConnectionPoolSize(singleServerConfig.getConnectionPoolSize()) - .setDnsMonitoringInterval(singleServerConfig.getDnsMonitoringInterval()); + .setConnectionPoolSize(singleServerConfig.getConnectionPoolSize()); } // 集群配置方式 参考下方注释 RedissonProperties.ClusterServersConfig clusterServersConfig = redissonProperties.getClusterServersConfig(); @@ -93,19 +89,14 @@ public class RedisConfig extends CachingConfigurerSupport { .setTimeout(clusterServersConfig.getTimeout()) .setRetryAttempts(clusterServersConfig.getRetryAttempts()) .setRetryInterval(clusterServersConfig.getRetryInterval()) - .setSubscriptionsPerConnection(clusterServersConfig.getSubscriptionsPerConnection()) .setClientName(clusterServersConfig.getClientName()) .setIdleConnectionTimeout(clusterServersConfig.getIdleConnectionTimeout()) .setPingConnectionInterval(clusterServersConfig.getPingConnectionInterval()) - .setSubscriptionConnectionMinimumIdleSize(clusterServersConfig.getSubscriptionConnectionMinimumIdleSize()) .setSubscriptionConnectionPoolSize(clusterServersConfig.getSubscriptionConnectionPoolSize()) .setMasterConnectionMinimumIdleSize(clusterServersConfig.getMasterConnectionMinimumIdleSize()) .setMasterConnectionPoolSize(clusterServersConfig.getMasterConnectionPoolSize()) .setSlaveConnectionMinimumIdleSize(clusterServersConfig.getSlaveConnectionMinimumIdleSize()) .setSlaveConnectionPoolSize(clusterServersConfig.getSlaveConnectionPoolSize()) - .setDnsMonitoringInterval(clusterServersConfig.getDnsMonitoringInterval()) - .setFailedSlaveReconnectionInterval(clusterServersConfig.getFailedSlaveReconnectionInterval()) - .setScanInterval(clusterServersConfig.getScanInterval()) .setReadMode(clusterServersConfig.getReadMode()) .setSubscriptionMode(clusterServersConfig.getSubscriptionMode()) .setNodeAddresses(nodes); @@ -177,18 +168,8 @@ public class RedisConfig extends CachingConfigurerSupport { * retryAttempts: 3 * # 命令重试发送时间间隔,单位:毫秒 * retryInterval: 1500 - * # 从可用服务器的内部列表中排除 Redis Slave 重新连接尝试的间隔。 - * failedSlaveReconnectionInterval: 3000 - * # 发布和订阅连接池最小空闲连接数 - * subscriptionConnectionMinimumIdleSize: 1 * # 发布和订阅连接池大小 * subscriptionConnectionPoolSize: 50 - * # 单个连接最大订阅数量 - * subscriptionsPerConnection: 5 - * # 扫描间隔 - * scanInterval: 1000 - * # DNS监测时间间隔,单位:毫秒 - * dnsMonitoringInterval: 5000 * # 读取模式 * readMode: "SLAVE" * # 订阅模式 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 0b9024d21..eae9e3fc8 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 @@ -89,26 +89,11 @@ public class RedissonProperties { */ private int retryInterval; - /** - * 发布和订阅连接的最小空闲连接数 - */ - private int subscriptionConnectionMinimumIdleSize; - /** * 发布和订阅连接池大小 */ private int subscriptionConnectionPoolSize; - /** - * 单个连接最大订阅数量 - */ - private int subscriptionsPerConnection; - - /** - * DNS监测时间间隔,单位:毫秒 - */ - private int dnsMonitoringInterval; - } @Data @@ -165,36 +150,11 @@ public class RedissonProperties { */ private int retryInterval; - /** - * 错误重试次数 - */ - private int failedSlaveReconnectionInterval; - - /** - * 发布和订阅连接池最小空闲连接数 - */ - private int subscriptionConnectionMinimumIdleSize; - /** * 发布和订阅连接池大小 */ private int subscriptionConnectionPoolSize; - /** - * 单个连接最大订阅数量 - */ - private int subscriptionsPerConnection; - - /** - * 扫描间隔 - */ - private int scanInterval; - - /** - * DNS监测时间间隔,单位:毫秒 - */ - private int dnsMonitoringInterval; - /** * 读取模式 */ From aa9f2c9a3c546984730024015142387af4d0441c 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 Jan 2022 11:43:56 +0800 Subject: [PATCH 013/178] =?UTF-8?q?update=20=E6=9B=BF=E6=8D=A2=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E9=85=8D=E7=BD=AE?= 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 +- .../ruoyi-monitor-admin/src/main/resources/application-dev.yml | 2 +- .../ruoyi-monitor-admin/src/main/resources/application-prod.yml | 2 +- .../ruoyi-xxl-job-admin/src/main/resources/application-dev.yml | 2 +- .../ruoyi-xxl-job-admin/src/main/resources/application-prod.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 635cfea84..ba38be663 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -9,7 +9,7 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://localhost:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + service-host-type: IP username: ruoyi password: 123456 diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 596c64e7f..493ce547f 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -16,7 +16,7 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://172.30.0.90:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + service-host-type: IP username: ruoyi password: 123456 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 index 829314b41..0b10bbd76 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-dev.yml @@ -9,6 +9,6 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://localhost:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + 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 index e8cac1369..2e020390d 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod.yml @@ -9,6 +9,6 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://172.30.0.90:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + 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 540a3237a..09ed519fa 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 @@ -9,7 +9,7 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://localhost:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + service-host-type: IP username: ruoyi password: 123456 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 bcec9d82e..401f60af9 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 @@ -9,7 +9,7 @@ spring: # 设置 Spring Boot Admin Server 地址 url: http://172.30.0.90:9090/admin instance: - prefer-ip: true # 注册实例时,优先使用 IP + service-host-type: IP username: ruoyi password: 123456 From 35664d818d068b9eefde55ab8455de51c2094a3e Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 27 Jan 2022 12:04:21 +0800 Subject: [PATCH 014/178] update ry.bat --- ry.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ry.bat b/ry.bat index 9f16232b2..69abee7b2 100644 --- a/ry.bat +++ b/ry.bat @@ -33,7 +33,7 @@ PAUSE PAUSE ) -start javaw %JAVA_OPTS% -jar %AppName% +start javaw %JVM_OPTS% -jar %AppName% echo starting echo Start %AppName% success... From 8007b22b8569dc8036df95adb58f6ca53c8eb04c Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 27 Jan 2022 12:04:40 +0800 Subject: [PATCH 015/178] =?UTF-8?q?=E5=AF=BC=E5=87=BAExcel=E6=97=B6?= =?UTF-8?q?=E5=B1=8F=E8=94=BD=E5=85=AC=E5=BC=8F=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?CSV=E6=B3=A8=E5=85=A5=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/utils/poi/ExcelUtil.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 93a19e870..22b6b574d 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 @@ -86,6 +86,9 @@ public class ExcelUtil { private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); + public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; + + /** * Excel sheet最大行数,默认65536 */ @@ -710,7 +713,13 @@ public class ExcelUtil { if (ColumnType.STRING == attr.cellType()) { - cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix()); + String cellValue = Convert.toStr(value); + // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 + if (StringUtils.containsAny(cellValue, FORMULA_STR)) + { + cellValue = StringUtils.replaceEach(cellValue, FORMULA_STR, new String[] { "\t=", "\t-", "\t+", "\t@" }); + } + cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); } else if (ColumnType.NUMERIC == attr.cellType()) { From 612c4293d16e782e3905edc4e10cf621e1b4e411 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 27 Jan 2022 12:05:04 +0800 Subject: [PATCH 016/178] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=97=B6=E6=A0=A1=E9=AA=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=EF=BC=8C=E9=98=B2=E6=AD=A2=E8=B6=8A=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/system/SysDeptController.java | 8 +++++--- .../ruoyi/web/controller/system/SysRoleController.java | 4 ++++ .../ruoyi/web/controller/system/SysUserController.java | 4 ++++ .../com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 1 + .../com/ruoyi/system/service/impl/SysUserServiceImpl.java | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) 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 57dcbd356..6ec2f3ef0 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 @@ -125,16 +125,17 @@ public class SysDeptController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysDept dept) { + Long deptId = dept.getDeptId(); + deptService.checkDeptDataScope(deptId); if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) { return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } - else if (dept.getParentId().equals(dept.getDeptId())) + else if (dept.getParentId().equals(deptId)) { return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) - && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0) + else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) { return AjaxResult.error("该部门包含未停用的子部门!"); } @@ -158,6 +159,7 @@ public class SysDeptController extends BaseController { return AjaxResult.error("部门存在用户,不允许删除"); } + deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); } } 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 d70fa8158..10b62f1f5 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 @@ -111,6 +111,7 @@ public class SysRoleController extends BaseController public AjaxResult edit(@Validated @RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); @@ -145,6 +146,7 @@ public class SysRoleController extends BaseController public AjaxResult dataScope(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); } @@ -157,6 +159,7 @@ public class SysRoleController extends BaseController public AjaxResult changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); } @@ -236,6 +239,7 @@ public class SysRoleController extends BaseController @PutMapping("/authUser/selectAll") public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { + roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } } 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 e9be25e04..60d9de07f 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 @@ -148,6 +148,7 @@ public class SysUserController extends BaseController public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { @@ -186,6 +187,7 @@ public class SysUserController extends BaseController public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(getUsername()); return toAjax(userService.resetPwd(user)); @@ -200,6 +202,7 @@ public class SysUserController extends BaseController public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUserStatus(user)); } @@ -227,6 +230,7 @@ public class SysUserController extends BaseController @PutMapping("/authRole") public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { + userService.checkUserDataScope(userId); userService.insertUserAuth(userId, roleIds); return success(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index f53f975fe..68dd15dd9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -361,6 +361,7 @@ public class SysRoleServiceImpl implements ISysRoleService for (Long roleId : roleIds) { checkRoleAllowed(new SysRole(roleId)); + checkRoleDataScope(roleId); SysRole role = selectRoleById(roleId); if (countUserRoleByRoleId(roleId) > 0) { 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 8d33286fa..56f3dac72 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 @@ -482,6 +482,7 @@ public class SysUserServiceImpl implements ISysUserService for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); + checkUserDataScope(userId); } // 删除用户与角色关联 userRoleMapper.deleteUserRole(userIds); From 8c7e49dd54830fa52ed7fa024c660b00420a6aa7 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 Jan 2022 10:15:09 +0800 Subject: [PATCH 017/178] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=B3=A8=E5=86=8C=E6=8A=A5=E6=9C=AA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 72ec867ed..e5949c549 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 @@ -242,6 +242,8 @@ public class SysUserServiceImpl implements ISysUserService { */ @Override public boolean registerUser(SysUser user) { + user.setCreateBy(user.getUserName()); + user.setUpdateBy(user.getUserName()); return baseMapper.insert(user) > 0; } From 651867055c3fbb432ce483a7abc626195cefa518 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 Jan 2022 11:03:31 +0800 Subject: [PATCH 018/178] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=B3=A8=E5=86=8C=E6=8A=A5=E6=9C=AA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateAndUpdateMetaObjectHandler.java | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java index 81051866c..6d7c977de 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java @@ -27,26 +27,16 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { try { if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject(); - Date current = new Date(); - // 创建时间为空 则填充 - if (ObjectUtil.isNull(baseEntity.getCreateTime())) { - baseEntity.setCreateTime(current); - } - // 更新时间为空 则填充 - if (ObjectUtil.isNull(baseEntity.getUpdateTime())) { - baseEntity.setUpdateTime(current); - } - String username = getLoginUsername(); + Date current = ObjectUtil.isNotNull(baseEntity.getCreateTime()) + ? baseEntity.getCreateTime() : new Date(); + baseEntity.setCreateTime(current); + baseEntity.setUpdateTime(current); + String username = StringUtils.isNotBlank(baseEntity.getCreateBy()) + ? baseEntity.getCreateBy() : getLoginUsername(); // 当前已登录 且 创建人为空 则填充 - if (StringUtils.isNotBlank(username) - && StringUtils.isBlank(baseEntity.getCreateBy())) { - baseEntity.setCreateBy(username); - } + baseEntity.setCreateBy(username); // 当前已登录 且 更新人为空 则填充 - if (StringUtils.isNotBlank(username) - && StringUtils.isBlank(baseEntity.getUpdateBy())) { - baseEntity.setUpdateBy(username); - } + baseEntity.setUpdateBy(username); } } catch (Exception e) { throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); From 06535c8eacea9cac0e5b656124c37bd7f82ae372 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 Jan 2022 14:29:39 +0800 Subject: [PATCH 019/178] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E5=BB=BA?= =?UTF-8?q?=E9=80=A0=E8=80=85=E6=A8=A1=E5=BC=8F=E6=97=A0=E6=B3=95=E5=8F=8D?= =?UTF-8?q?=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 --- .../common/core/domain/dto/UserOnlineDTO.java | 3 ++- .../listener/UserActionListener.java | 19 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java index e83027424..29ce1d1e7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/UserOnlineDTO.java @@ -2,6 +2,7 @@ package com.ruoyi.common.core.domain.dto; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.io.Serializable; @@ -12,7 +13,7 @@ import java.io.Serializable; */ @Data -@Builder +@NoArgsConstructor public class UserOnlineDTO implements Serializable { private static final long serialVersionUID = 1L; 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 2cef33c87..bbd921419 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 @@ -43,16 +43,15 @@ public class UserActionListener implements SaTokenListener { String ip = ServletUtils.getClientIP(); LoginUser user = LoginHelper.getLoginUser(); String tokenValue = StpUtil.getTokenValue(); - UserOnlineDTO dto = UserOnlineDTO.builder() - .ipaddr(ip) - .loginLocation(AddressUtils.getRealAddressByIP(ip)) - .browser(userAgent.getBrowser().getName()) - .os(userAgent.getOs().getName()) - .loginTime(System.currentTimeMillis()) - .tokenId(tokenValue) - .userName(user.getUsername()) - .deptName(user.getDeptName()) - .build(); + UserOnlineDTO dto = new UserOnlineDTO(); + dto.setIpaddr(ip); + dto.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); + dto.setBrowser(userAgent.getBrowser().getName()); + dto.setOs(userAgent.getOs().getName()); + dto.setLoginTime(System.currentTimeMillis()); + dto.setTokenId(tokenValue); + dto.setUserName(user.getUsername()); + dto.setDeptName(user.getDeptName()); RedisUtils.setCacheObject(Constants.ONLINE_TOKEN_KEY + tokenValue, dto, tokenConfig.getTimeout(), TimeUnit.SECONDS); log.info("user doLogin, useId:{}, token:{}", loginId, tokenValue); } else if (userType == UserType.APP_USER) { From eefe3a9c6eba2c979cb2fdd57e819364018e843a 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 Jan 2022 19:56:30 +0800 Subject: [PATCH 020/178] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=BC=82=E5=B8=B8=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/exception/GlobalExceptionHandler.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) 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 bc58049db..19673c544 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,7 +8,6 @@ import cn.hutool.http.HttpStatus; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.DemoModeException; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.validation.BindException; @@ -32,33 +31,33 @@ import java.util.stream.Collectors; public class GlobalExceptionHandler { /** - * 权限校验异常 + * 权限码异常 */ @ExceptionHandler(NotPermissionException.class) - public AjaxResult handleAccessDeniedException(NotPermissionException e, HttpServletRequest request) { + public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); - log.error("请求地址'{}',权限校验失败'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有权限,请联系管理员授权"); + log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); } /** - * 角色校验异常 + * 角色权限异常 */ @ExceptionHandler(NotRoleException.class) - public AjaxResult handleAccessDeniedException(NotRoleException e, HttpServletRequest request) { + public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); - log.error("请求地址'{}',角色校验失败'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有角色,请联系管理员授权"); + log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); } /** * 认证失败 */ @ExceptionHandler(NotLoginException.class) - public AjaxResult handleAccessDeniedException(NotLoginException e, HttpServletRequest request) { + public AjaxResult handleNotLoginException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_UNAUTHORIZED, StringUtils.format("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI)); + return AjaxResult.error(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源"); } /** From ce9e03355131ea7b115e0b442abe1d98660f0fb4 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 Jan 2022 19:57:19 +0800 Subject: [PATCH 021/178] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=BC=82=E5=B8=B8=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/web/exception/GlobalExceptionHandler.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 19673c544..fe19b28e8 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 @@ -34,7 +34,7 @@ public class GlobalExceptionHandler { * 权限码异常 */ @ExceptionHandler(NotPermissionException.class) - public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { + public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage()); return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); @@ -44,7 +44,7 @@ public class GlobalExceptionHandler { * 角色权限异常 */ @ExceptionHandler(NotRoleException.class) - public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) { + public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage()); return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); @@ -54,7 +54,7 @@ public class GlobalExceptionHandler { * 认证失败 */ @ExceptionHandler(NotLoginException.class) - public AjaxResult handleNotLoginException(NotLoginException e, HttpServletRequest request) { + public AjaxResult handleNotLoginException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI, e.getMessage()); return AjaxResult.error(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源"); From eb87229ee9edfcfdcc326d71e5467658aaf37930 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 Jan 2022 09:23:27 +0800 Subject: [PATCH 022/178] =?UTF-8?q?update=20=E4=BF=AE=E6=AD=A3=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/bin/ry.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/bin/ry.bat b/script/bin/ry.bat index 0e6993782..28fb553ad 100644 --- a/script/bin/ry.bat +++ b/script/bin/ry.bat @@ -33,7 +33,7 @@ PAUSE PAUSE ) -start javaw %JAVA_OPTS% -jar %AppName% +start javaw %JVM_OPTS% -jar %AppName% echo starting���� echo Start %AppName% success... From 53da7140c2683e4d80c0b2536b7972d9c516729a 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 Jan 2022 11:48:41 +0800 Subject: [PATCH 023/178] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=B1=BB=E5=9E=8B=E4=B8=BA=20R?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/CaptchaController.java | 8 +- .../controller/monitor/CacheController.java | 6 +- .../monitor/SysLogininforController.java | 8 +- .../monitor/SysOperlogController.java | 8 +- .../monitor/SysUserOnlineController.java | 6 +- .../system/SysConfigController.java | 24 ++-- .../controller/system/SysDeptController.java | 40 +++--- .../system/SysDictDataController.java | 16 +-- .../system/SysDictTypeController.java | 24 ++-- .../controller/system/SysLoginController.java | 18 +-- .../controller/system/SysMenuController.java | 38 ++--- .../system/SysNoticeController.java | 12 +- .../system/SysOssConfigController.java | 14 +- .../controller/system/SysOssController.java | 10 +- .../controller/system/SysPostController.java | 24 ++-- .../system/SysProfileController.java | 32 ++--- .../system/SysRegisterController.java | 4 +- .../controller/system/SysRoleController.java | 38 ++--- .../controller/system/SysUserController.java | 36 ++--- .../core/controller/BaseController.java | 24 ++-- .../ruoyi/common/core/domain/AjaxResult.java | 132 ------------------ .../java/com/ruoyi/common/core/domain/R.java | 84 +++++++++++ .../demo/controller/RedisCacheController.java | 18 +-- .../demo/controller/RedisLockController.java | 10 +- .../controller/RedisPubSubController.java | 10 +- .../RedisRateLimiterController.java | 14 +- .../controller/Swagger3DemoController.java | 6 +- .../demo/controller/TestBatchController.java | 8 +- .../demo/controller/TestDemoController.java | 16 +-- .../demo/controller/TestI18nController.java | 14 +- .../controller/TestSensitiveController.java | 6 +- .../demo/controller/TestTreeController.java | 16 +-- .../queue/BoundedQueueController.java | 18 +-- .../queue/DelayedQueueController.java | 20 +-- .../queue/PriorityQueueController.java | 18 +-- .../web/exception/GlobalExceptionHandler.java | 46 +++--- .../generator/controller/GenController.java | 30 ++-- .../main/resources/vm/java/controller.java.vm | 16 +-- 38 files changed, 412 insertions(+), 460 deletions(-) delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java 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 d31624c85..a19be65ea 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 @@ -5,7 +5,7 @@ import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.CaptchaType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.RedisUtils; @@ -41,12 +41,12 @@ public class CaptchaController { */ @ApiOperation("生成验证码") @GetMapping("/captchaImage") - public AjaxResult> getCode() { + public R> getCode() { Map ajax = new HashMap<>(); boolean captchaOnOff = configService.selectCaptchaOnOff(); ajax.put("captchaOnOff", captchaOnOff); if (!captchaOnOff) { - return AjaxResult.success(ajax); + return R.ok(ajax); } // 保存验证码信息 String uuid = IdUtil.simpleUUID(); @@ -63,7 +63,7 @@ public class CaptchaController { RedisUtils.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); ajax.put("uuid", uuid); ajax.put("img", captcha.getImageBase64()); - return AjaxResult.success(ajax); + return R.ok(ajax); } private String getCodeResult(String capStr) { 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 6bbb96e73..21fbd201f 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,7 +1,7 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,7 +31,7 @@ public class CacheController { @ApiOperation("获取缓存监控详细信息") @SaCheckPermission("monitor:cache:list") @GetMapping() - public AjaxResult> getInfo() throws Exception { + 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); @@ -51,6 +51,6 @@ public class CacheController { }); } result.put("commandStats", pieList); - return AjaxResult.success(result); + return R.ok(result); } } 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 af73e9f4d..5bec15169 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,7 +3,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -53,7 +53,7 @@ public class SysLogininforController extends BaseController { @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") - public AjaxResult remove(@PathVariable Long[] infoIds) { + public R remove(@PathVariable Long[] infoIds) { return toAjax(logininforService.deleteLogininforByIds(infoIds)); } @@ -61,8 +61,8 @@ public class SysLogininforController extends BaseController { @SaCheckPermission("monitor:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") - public AjaxResult clean() { + public R clean() { logininforService.cleanLogininfor(); - return AjaxResult.success(); + return R.ok(); } } 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 81e311cef..8145bc66e 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,7 +3,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -53,7 +53,7 @@ public class SysOperlogController extends BaseController { @Log(title = "操作日志", businessType = BusinessType.DELETE) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/{operIds}") - public AjaxResult remove(@PathVariable Long[] operIds) { + public R remove(@PathVariable Long[] operIds) { return toAjax(operLogService.deleteOperLogByIds(operIds)); } @@ -61,8 +61,8 @@ public class SysOperlogController extends BaseController { @Log(title = "操作日志", businessType = BusinessType.CLEAN) @SaCheckPermission("monitor:operlog:remove") @DeleteMapping("/clean") - public AjaxResult clean() { + public R clean() { operLogService.cleanOperLog(); - return AjaxResult.success(); + 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 2e74ed4de..2ad51e315 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 @@ -7,7 +7,7 @@ import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +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; @@ -77,11 +77,11 @@ public class SysUserOnlineController extends BaseController { @SaCheckPermission("monitor:online:forceLogout") @Log(title = "在线用户", businessType = BusinessType.FORCE) @DeleteMapping("/{tokenId}") - public AjaxResult forceLogout(@PathVariable String tokenId) { + public R forceLogout(@PathVariable String tokenId) { try { StpUtil.kickoutByTokenValue(tokenId); } catch (NotLoginException e) { } - return AjaxResult.success(); + return R.ok(); } } 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 da1d0fbd1..7c387901a 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,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -60,8 +60,8 @@ public class SysConfigController extends BaseController { @ApiOperation("根据参数编号获取详细信息") @SaCheckPermission("system:config:query") @GetMapping(value = "/{configId}") - public AjaxResult getInfo(@ApiParam("参数ID") @PathVariable Long configId) { - return AjaxResult.success(configService.selectConfigById(configId)); + public R getInfo(@ApiParam("参数ID") @PathVariable Long configId) { + return R.ok(configService.selectConfigById(configId)); } /** @@ -69,8 +69,8 @@ public class SysConfigController extends BaseController { */ @ApiOperation("根据参数键名查询参数值") @GetMapping(value = "/configKey/{configKey}") - public AjaxResult getConfigKey(@ApiParam("参数Key") @PathVariable String configKey) { - return AjaxResult.success(configService.selectConfigByKey(configKey)); + public R getConfigKey(@ApiParam("参数Key") @PathVariable String configKey) { + return R.ok(configService.selectConfigByKey(configKey)); } /** @@ -80,9 +80,9 @@ public class SysConfigController extends BaseController { @SaCheckPermission("system:config:add") @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysConfig config) { + public R add(@Validated @RequestBody SysConfig config) { if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { - return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return R.fail("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } return toAjax(configService.insertConfig(config)); } @@ -94,9 +94,9 @@ public class SysConfigController extends BaseController { @SaCheckPermission("system:config:edit") @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysConfig config) { + public R edit(@Validated @RequestBody SysConfig config) { if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) { - return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + return R.fail("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } return toAjax(configService.updateConfig(config)); } @@ -108,7 +108,7 @@ public class SysConfigController extends BaseController { @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") - public AjaxResult remove(@ApiParam("参数ID串") @PathVariable Long[] configIds) { + public R remove(@ApiParam("参数ID串") @PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return success(); } @@ -120,8 +120,8 @@ public class SysConfigController extends BaseController { @SaCheckPermission("system:config:remove") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() { + public R refreshCache() { configService.resetConfigCache(); - return AjaxResult.success(); + 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 057522543..475cdb7e4 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 @@ -6,7 +6,7 @@ import cn.hutool.core.util.ArrayUtil; 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; @@ -42,9 +42,9 @@ public class SysDeptController extends BaseController { @ApiOperation("获取部门列表") @SaCheckPermission("system:dept:list") @GetMapping("/list") - public AjaxResult> list(SysDept dept) { + public R> list(SysDept dept) { List depts = deptService.selectDeptList(dept); - return AjaxResult.success(depts); + return R.ok(depts); } /** @@ -53,11 +53,11 @@ public class SysDeptController extends BaseController { @ApiOperation("查询部门列表(排除节点)") @SaCheckPermission("system:dept:list") @GetMapping("/list/exclude/{deptId}") - public AjaxResult> excludeChild(@ApiParam("部门ID") @PathVariable(value = "deptId", required = false) Long deptId) { + public R> excludeChild(@ApiParam("部门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 + "")); - return AjaxResult.success(depts); + return R.ok(depts); } /** @@ -66,9 +66,9 @@ public class SysDeptController extends BaseController { @ApiOperation("根据部门编号获取详细信息") @SaCheckPermission("system:dept:query") @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@ApiParam("部门ID") @PathVariable Long deptId) { + public R getInfo(@ApiParam("部门ID") @PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); - return AjaxResult.success(deptService.selectDeptById(deptId)); + return R.ok(deptService.selectDeptById(deptId)); } /** @@ -76,9 +76,9 @@ public class SysDeptController extends BaseController { */ @ApiOperation("获取部门下拉树列表") @GetMapping("/treeselect") - public AjaxResult>> treeselect(SysDept dept) { + public R>> treeselect(SysDept dept) { List depts = deptService.selectDeptList(dept); - return AjaxResult.success(deptService.buildDeptTreeSelect(depts)); + return R.ok(deptService.buildDeptTreeSelect(depts)); } /** @@ -86,12 +86,12 @@ public class SysDeptController extends BaseController { */ @ApiOperation("加载对应角色部门列表树") @GetMapping(value = "/roleDeptTreeselect/{roleId}") - public AjaxResult> roleDeptTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { + public R> roleDeptTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { List depts = deptService.selectDeptList(new SysDept()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); ajax.put("depts", deptService.buildDeptTreeSelect(depts)); - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -101,9 +101,9 @@ public class SysDeptController extends BaseController { @SaCheckPermission("system:dept:add") @Log(title = "部门管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysDept dept) { + public R add(@Validated @RequestBody SysDept dept) { if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) { - return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } return toAjax(deptService.insertDept(dept)); } @@ -115,16 +115,16 @@ public class SysDeptController extends BaseController { @SaCheckPermission("system:dept:edit") @Log(title = "部门管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDept dept) { + public R edit(@Validated @RequestBody SysDept dept) { Long deptId = dept.getDeptId(); deptService.checkDeptDataScope(deptId); if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } else if (dept.getParentId().equals(deptId)) { - return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) { - return AjaxResult.error("该部门包含未停用的子部门!"); + return R.fail("该部门包含未停用的子部门!"); } return toAjax(deptService.updateDept(dept)); } @@ -136,12 +136,12 @@ public class SysDeptController extends BaseController { @SaCheckPermission("system:dept:remove") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") - public AjaxResult remove(@ApiParam("部门ID串") @PathVariable Long deptId) { + public R remove(@ApiParam("部门ID串") @PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) { - return AjaxResult.error("存在下级部门,不允许删除"); + return R.fail("存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(deptId)) { - return AjaxResult.error("部门存在用户,不允许删除"); + return R.fail("部门存在用户,不允许删除"); } 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 d1bc605d1..cf23f8611 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,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.page.TableDataInfo; @@ -60,8 +60,8 @@ public class SysDictDataController extends BaseController { @ApiOperation("查询字典数据详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictCode}") - public AjaxResult getInfo(@ApiParam("字典code") @PathVariable Long dictCode) { - return AjaxResult.success(dictDataService.selectDictDataById(dictCode)); + public R getInfo(@ApiParam("字典code") @PathVariable Long dictCode) { + return R.ok(dictDataService.selectDictDataById(dictCode)); } /** @@ -69,12 +69,12 @@ public class SysDictDataController extends BaseController { */ @ApiOperation("根据字典类型查询字典数据信息") @GetMapping(value = "/type/{dictType}") - public AjaxResult> dictType(@ApiParam("字典类型") @PathVariable String dictType) { + public R> dictType(@ApiParam("字典类型") @PathVariable String dictType) { List data = dictTypeService.selectDictDataByType(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); } - return AjaxResult.success(data); + return R.ok(data); } /** @@ -84,7 +84,7 @@ public class SysDictDataController extends BaseController { @SaCheckPermission("system:dict:add") @Log(title = "字典数据", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictData dict) { + public R add(@Validated @RequestBody SysDictData dict) { return toAjax(dictDataService.insertDictData(dict)); } @@ -95,7 +95,7 @@ public class SysDictDataController extends BaseController { @SaCheckPermission("system:dict:edit") @Log(title = "字典数据", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictData dict) { + public R edit(@Validated @RequestBody SysDictData dict) { return toAjax(dictDataService.updateDictData(dict)); } @@ -106,7 +106,7 @@ public class SysDictDataController extends BaseController { @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") - public AjaxResult remove(@ApiParam("字典code串") @PathVariable Long[] dictCodes) { + public R remove(@ApiParam("字典code串") @PathVariable Long[] dictCodes) { dictDataService.deleteDictDataByIds(dictCodes); return success(); } 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 5b8391a19..54e31e470 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,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDictType; import com.ruoyi.common.core.page.TableDataInfo; @@ -57,8 +57,8 @@ public class SysDictTypeController extends BaseController { @ApiOperation("查询字典类型详细") @SaCheckPermission("system:dict:query") @GetMapping(value = "/{dictId}") - public AjaxResult getInfo(@ApiParam("字典ID") @PathVariable Long dictId) { - return AjaxResult.success(dictTypeService.selectDictTypeById(dictId)); + public R getInfo(@ApiParam("字典ID") @PathVariable Long dictId) { + return R.ok(dictTypeService.selectDictTypeById(dictId)); } /** @@ -68,9 +68,9 @@ public class SysDictTypeController extends BaseController { @SaCheckPermission("system:dict:add") @Log(title = "字典类型", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictType dict) { + public R add(@Validated @RequestBody SysDictType dict) { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return R.fail("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); } return toAjax(dictTypeService.insertDictType(dict)); } @@ -82,9 +82,9 @@ public class SysDictTypeController extends BaseController { @SaCheckPermission("system:dict:edit") @Log(title = "字典类型", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictType dict) { + public R edit(@Validated @RequestBody SysDictType dict) { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return R.fail("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); } return toAjax(dictTypeService.updateDictType(dict)); } @@ -96,7 +96,7 @@ public class SysDictTypeController extends BaseController { @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") - public AjaxResult remove(@ApiParam("字典ID串") @PathVariable Long[] dictIds) { + public R remove(@ApiParam("字典ID串") @PathVariable Long[] dictIds) { dictTypeService.deleteDictTypeByIds(dictIds); return success(); } @@ -108,9 +108,9 @@ public class SysDictTypeController extends BaseController { @SaCheckPermission("system:dict:remove") @Log(title = "字典类型", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() { + public R refreshCache() { dictTypeService.resetDictCache(); - return AjaxResult.success(); + return R.ok(); } /** @@ -118,8 +118,8 @@ public class SysDictTypeController extends BaseController { */ @ApiOperation("获取字典选择框列表") @GetMapping("/optionselect") - public AjaxResult> optionselect() { + public R> optionselect() { List dictTypes = dictTypeService.selectDictTypeAll(); - return AjaxResult.success(dictTypes); + return R.ok(dictTypes); } } 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 b87de51a3..3a033e517 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 @@ -3,7 +3,7 @@ package com.ruoyi.web.controller.system; import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginBody; @@ -51,23 +51,23 @@ public class SysLoginController { */ @ApiOperation("登录方法") @PostMapping("/login") - public AjaxResult> login(@Validated @RequestBody LoginBody loginBody) { + public R> login(@Validated @RequestBody LoginBody loginBody) { Map ajax = new HashMap<>(); // 生成令牌 String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid()); ajax.put(Constants.TOKEN, token); - return AjaxResult.success(ajax); + return R.ok(ajax); } @ApiOperation("登出方法") @PostMapping("/logout") - public AjaxResult logout() { + public R logout() { try { StpUtil.logout(); } catch (NotLoginException e) { } - return AjaxResult.success("退出成功"); + return R.ok("退出成功"); } /** @@ -77,7 +77,7 @@ public class SysLoginController { */ @ApiOperation("获取用户信息") @GetMapping("getInfo") - public AjaxResult> getInfo() { + public R> getInfo() { SysUser user = userService.selectUserById(LoginHelper.getUserId()); // 角色集合 Set roles = permissionService.getRolePermission(user); @@ -87,7 +87,7 @@ public class SysLoginController { ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -97,9 +97,9 @@ public class SysLoginController { */ @ApiOperation("获取路由信息") @GetMapping("getRouters") - public AjaxResult> getRouters() { + public R> getRouters() { Long userId = LoginHelper.getUserId(); List menus = menuService.selectMenuTreeByUserId(userId); - return AjaxResult.success(menuService.buildMenus(menus)); + return R.ok(menuService.buildMenus(menus)); } } 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 b17b17f31..030363e00 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 @@ -5,7 +5,7 @@ import cn.hutool.core.lang.tree.Tree; 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; @@ -41,9 +41,9 @@ public class SysMenuController extends BaseController { @ApiOperation("获取菜单列表") @SaCheckPermission("system:menu:list") @GetMapping("/list") - public AjaxResult> list(SysMenu menu) { + public R> list(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menus); + return R.ok(menus); } /** @@ -52,8 +52,8 @@ public class SysMenuController extends BaseController { @ApiOperation("根据菜单编号获取详细信息") @SaCheckPermission("system:menu:query") @GetMapping(value = "/{menuId}") - public AjaxResult getInfo(@ApiParam("菜单ID") @PathVariable Long menuId) { - return AjaxResult.success(menuService.selectMenuById(menuId)); + public R getInfo(@ApiParam("菜单ID") @PathVariable Long menuId) { + return R.ok(menuService.selectMenuById(menuId)); } /** @@ -61,9 +61,9 @@ public class SysMenuController extends BaseController { */ @ApiOperation("获取菜单下拉树列表") @GetMapping("/treeselect") - public AjaxResult>> treeselect(SysMenu menu) { + public R>> treeselect(SysMenu menu) { List menus = menuService.selectMenuList(menu, getUserId()); - return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); + return R.ok(menuService.buildMenuTreeSelect(menus)); } /** @@ -71,12 +71,12 @@ public class SysMenuController extends BaseController { */ @ApiOperation("加载对应角色菜单列表树") @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public AjaxResult> roleMenuTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { + public R> roleMenuTreeselect(@ApiParam("角色ID") @PathVariable("roleId") Long roleId) { List menus = menuService.selectMenuList(getUserId()); Map ajax = new HashMap<>(); ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); ajax.put("menus", menuService.buildMenuTreeSelect(menus)); - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -86,11 +86,11 @@ public class SysMenuController extends BaseController { @SaCheckPermission("system:menu:add") @Log(title = "菜单管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysMenu menu) { + public R add(@Validated @RequestBody SysMenu menu) { if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return R.fail("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return R.fail("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } return toAjax(menuService.insertMenu(menu)); } @@ -102,13 +102,13 @@ public class SysMenuController extends BaseController { @SaCheckPermission("system:menu:edit") @Log(title = "菜单管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysMenu menu) { + public R edit(@Validated @RequestBody SysMenu menu) { if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } else if (menu.getMenuId().equals(menu.getParentId())) { - return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); } return toAjax(menuService.updateMenu(menu)); } @@ -120,12 +120,12 @@ public class SysMenuController extends BaseController { @SaCheckPermission("system:menu:remove") @Log(title = "菜单管理", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") - public AjaxResult remove(@ApiParam("菜单ID") @PathVariable("menuId") Long menuId) { + public R remove(@ApiParam("菜单ID") @PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { - return AjaxResult.error("存在子菜单,不允许删除"); + return R.fail("存在子菜单,不允许删除"); } if (menuService.checkMenuExistRole(menuId)) { - return AjaxResult.error("菜单已分配,不允许删除"); + return R.fail("菜单已分配,不允许删除"); } 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 304ee3399..6febd3e3f 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,7 +3,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -46,8 +46,8 @@ public class SysNoticeController extends BaseController { @ApiOperation("根据通知公告编号获取详细信息") @SaCheckPermission("system:notice:query") @GetMapping(value = "/{noticeId}") - public AjaxResult getInfo(@ApiParam("公告ID") @PathVariable Long noticeId) { - return AjaxResult.success(noticeService.selectNoticeById(noticeId)); + public R getInfo(@ApiParam("公告ID") @PathVariable Long noticeId) { + return R.ok(noticeService.selectNoticeById(noticeId)); } /** @@ -57,7 +57,7 @@ public class SysNoticeController extends BaseController { @SaCheckPermission("system:notice:add") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysNotice notice) { + public R add(@Validated @RequestBody SysNotice notice) { return toAjax(noticeService.insertNotice(notice)); } @@ -68,7 +68,7 @@ public class SysNoticeController extends BaseController { @SaCheckPermission("system:notice:edit") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysNotice notice) { + public R edit(@Validated @RequestBody SysNotice notice) { return toAjax(noticeService.updateNotice(notice)); } @@ -79,7 +79,7 @@ public class SysNoticeController extends BaseController { @SaCheckPermission("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @DeleteMapping("/{noticeIds}") - public AjaxResult remove(@ApiParam("公告ID串") @PathVariable Long[] noticeIds) { + public R remove(@ApiParam("公告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 3ab986493..e344dea98 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,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.validate.AddGroup; @@ -57,10 +57,10 @@ public class SysOssConfigController extends BaseController { @ApiOperation("获取对象存储配置详细信息") @SaCheckPermission("system:oss:query") @GetMapping("/{ossConfigId}") - public AjaxResult getInfo(@ApiParam("OSS配置ID") + public R getInfo(@ApiParam("OSS配置ID") @NotNull(message = "主键不能为空") @PathVariable("ossConfigId") Integer ossConfigId) { - return AjaxResult.success(iSysOssConfigService.queryById(ossConfigId)); + return R.ok(iSysOssConfigService.queryById(ossConfigId)); } /** @@ -71,7 +71,7 @@ public class SysOssConfigController extends BaseController { @Log(title = "对象存储配置", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) { + public R add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) { return toAjax(iSysOssConfigService.insertByBo(bo) ? 1 : 0); } @@ -83,7 +83,7 @@ public class SysOssConfigController extends BaseController { @Log(title = "对象存储配置", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) { + public R edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) { return toAjax(iSysOssConfigService.updateByBo(bo) ? 1 : 0); } @@ -94,7 +94,7 @@ public class SysOssConfigController extends BaseController { @SaCheckPermission("system:oss:remove") @Log(title = "对象存储配置", businessType = BusinessType.DELETE) @DeleteMapping("/{ossConfigIds}") - public AjaxResult remove(@ApiParam("OSS配置ID串") + public R remove(@ApiParam("OSS配置ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ossConfigIds) { return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0); @@ -107,7 +107,7 @@ public class SysOssConfigController extends BaseController { @SaCheckPermission("system:oss:edit") @Log(title = "对象存储状态修改", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysOssConfigBo bo) { + public R changeStatus(@RequestBody SysOssConfigBo bo) { return toAjax(iSysOssConfigService.updateOssConfigStatus(bo)); } } 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 e43210736..15b30750a 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 @@ -9,7 +9,7 @@ import cn.hutool.http.HttpUtil; 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.validate.QueryGroup; @@ -75,7 +75,7 @@ public class SysOssController extends BaseController { @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping("/upload") - public AjaxResult> upload(@RequestPart("file") MultipartFile file) { + public R> upload(@RequestPart("file") MultipartFile file) { if (ObjectUtil.isNull(file)) { throw new ServiceException("上传文件不能为空"); } @@ -83,7 +83,7 @@ public class SysOssController extends BaseController { Map map = new HashMap<>(2); map.put("url", oss.getUrl()); map.put("fileName", oss.getFileName()); - return AjaxResult.success(map); + return R.ok(map); } @ApiOperation("下载OSS对象存储") @@ -117,7 +117,7 @@ public class SysOssController extends BaseController { @SaCheckPermission("system:oss:remove") @Log(title = "OSS对象存储", businessType = BusinessType.DELETE) @DeleteMapping("/{ossIds}") - public AjaxResult remove(@ApiParam("OSS对象ID串") + public R remove(@ApiParam("OSS对象ID串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) { return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0); @@ -130,7 +130,7 @@ public class SysOssController extends BaseController { @SaCheckPermission("system:oss:edit") @Log(title = "OSS对象存储", businessType = BusinessType.UPDATE) @PutMapping("/changePreviewListResource") - public AjaxResult changePreviewListResource(@RequestBody String body) { + public R changePreviewListResource(@RequestBody String body) { Map map = JsonUtils.parseMap(body); SysConfig sysConfig = new SysConfig(); sysConfig.setConfigKey(OssConstant.PEREVIEW_LIST_RESOURCE_KEY); 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 080ddd33a..7e08698f9 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,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -60,8 +60,8 @@ public class SysPostController extends BaseController { @ApiOperation("根据岗位编号获取详细信息") @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") - public AjaxResult getInfo(@ApiParam("岗位ID") @PathVariable Long postId) { - return AjaxResult.success(postService.selectPostById(postId)); + public R getInfo(@ApiParam("岗位ID") @PathVariable Long postId) { + return R.ok(postService.selectPostById(postId)); } /** @@ -71,11 +71,11 @@ public class SysPostController extends BaseController { @SaCheckPermission("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysPost post) { + public R add(@Validated @RequestBody SysPost post) { if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) { - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.insertPost(post)); } @@ -87,11 +87,11 @@ public class SysPostController extends BaseController { @SaCheckPermission("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysPost post) { + public R edit(@Validated @RequestBody SysPost post) { if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) { - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.updatePost(post)); } @@ -103,7 +103,7 @@ public class SysPostController extends BaseController { @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") - public AjaxResult remove(@ApiParam("岗位ID串") @PathVariable Long[] postIds) { + public R remove(@ApiParam("岗位ID串") @PathVariable Long[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } @@ -112,8 +112,8 @@ public class SysPostController extends BaseController { */ @ApiOperation("获取岗位选择框列表") @GetMapping("/optionselect") - public AjaxResult> optionselect() { + public R> optionselect() { List posts = postService.selectPostAll(); - return AjaxResult.success(posts); + return R.ok(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 0a24e7c0d..6ed8454fc 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 @@ -3,7 +3,7 @@ package com.ruoyi.web.controller.system; 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.helper.LoginHelper; @@ -45,13 +45,13 @@ public class SysProfileController extends BaseController { */ @ApiOperation("个人信息") @GetMapping - public AjaxResult> profile() { + public R> profile() { SysUser user = userService.selectUserById(getUserId()); Map ajax = new HashMap<>(); ajax.put("user", user); ajax.put("roleGroup", userService.selectUserRoleGroup(user.getUserName())); ajax.put("postGroup", userService.selectUserPostGroup(user.getUserName())); - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -60,22 +60,22 @@ public class SysProfileController extends BaseController { @ApiOperation("修改用户") @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult updateProfile(@RequestBody SysUser user) { + public R updateProfile(@RequestBody SysUser user) { if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUserId(getUserId()); user.setUserName(null); user.setPassword(null); if (userService.updateUserProfile(user) > 0) { - return AjaxResult.success(); + return R.ok(); } - return AjaxResult.error("修改个人信息异常,请联系管理员"); + return R.fail("修改个人信息异常,请联系管理员"); } /** @@ -88,20 +88,20 @@ public class SysProfileController extends BaseController { }) @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") - public AjaxResult updatePwd(String oldPassword, String newPassword) { + public R updatePwd(String oldPassword, String newPassword) { SysUser user = userService.selectUserById(LoginHelper.getUserId()); String userName = user.getUserName(); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { - return AjaxResult.error("修改密码失败,旧密码错误"); + return R.fail("修改密码失败,旧密码错误"); } if (SecurityUtils.matchesPassword(newPassword, password)) { - return AjaxResult.error("新密码不能与旧密码相同"); + return R.fail("新密码不能与旧密码相同"); } if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { - return AjaxResult.success(); + return R.ok(); } - return AjaxResult.error("修改密码异常,请联系管理员"); + return R.fail("修改密码异常,请联系管理员"); } /** @@ -113,16 +113,16 @@ public class SysProfileController extends BaseController { }) @Log(title = "用户头像", businessType = BusinessType.UPDATE) @PostMapping("/avatar") - public AjaxResult> avatar(@RequestPart("avatarfile") MultipartFile file) { + public R> avatar(@RequestPart("avatarfile") MultipartFile file) { Map ajax = new HashMap<>(); if (!file.isEmpty()) { SysOss oss = iSysOssService.upload(file); String avatar = oss.getUrl(); if (userService.updateUserAvatar(getUsername(), avatar)) { ajax.put("imgUrl", avatar); - return AjaxResult.success(ajax); + return R.ok(ajax); } } - return AjaxResult.error("上传图片异常,请联系管理员", ajax); + return R.fail("上传图片异常,请联系管理员"); } } 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 52d6a70a8..c1c795030 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 @@ -1,7 +1,7 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +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; @@ -29,7 +29,7 @@ public class SysRegisterController extends BaseController { @ApiOperation("用户注册") @PostMapping("/register") - public AjaxResult register(@Validated @RequestBody RegisterBody user) { + public R register(@Validated @RequestBody RegisterBody user) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { 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 4fc742a5e..5d9a20615 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,7 +5,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; @@ -64,9 +64,9 @@ public class SysRoleController extends BaseController { @ApiOperation("根据角色编号获取详细信息") @SaCheckPermission("system:role:query") @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@ApiParam("角色ID") @PathVariable Long roleId) { + public R getInfo(@ApiParam("角色ID") @PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); - return AjaxResult.success(roleService.selectRoleById(roleId)); + return R.ok(roleService.selectRoleById(roleId)); } /** @@ -76,11 +76,11 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:add") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysRole role) { + public R add(@Validated @RequestBody SysRole role) { if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); } return toAjax(roleService.insertRole(role)); @@ -93,13 +93,13 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysRole role) { + public R edit(@Validated @RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + return R.fail("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); } if (roleService.updateRole(role) > 0) { @@ -110,9 +110,9 @@ public class SysRoleController extends BaseController { loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser)); LoginHelper.setLoginUser(loginUser); } - return AjaxResult.success(); + return R.ok(); } - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + return R.fail("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); } /** @@ -122,7 +122,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") - public AjaxResult dataScope(@RequestBody SysRole role) { + public R dataScope(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); @@ -135,7 +135,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysRole role) { + public R changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.updateRoleStatus(role)); @@ -148,7 +148,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:remove") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") - public AjaxResult remove(@ApiParam("岗位ID串") @PathVariable Long[] roleIds) { + public R remove(@ApiParam("岗位ID串") @PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); } @@ -158,8 +158,8 @@ public class SysRoleController extends BaseController { @ApiOperation("获取角色选择框列表") @SaCheckPermission("system:role:query") @GetMapping("/optionselect") - public AjaxResult> optionselect() { - return AjaxResult.success(roleService.selectRoleAll()); + public R> optionselect() { + return R.ok(roleService.selectRoleAll()); } /** @@ -189,7 +189,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancel") - public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) { + public R cancelAuthUser(@RequestBody SysUserRole userRole) { return toAjax(roleService.deleteAuthUser(userRole)); } @@ -204,7 +204,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancelAll") - public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) { + public R cancelAuthUserAll(Long roleId, Long[] userIds) { return toAjax(roleService.deleteAuthUsers(roleId, userIds)); } @@ -219,7 +219,7 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/selectAll") - public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { + public R selectAuthUserAll(Long roleId, Long[] userIds) { roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } 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 ceae510b5..ac81600e1 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 @@ -7,7 +7,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; @@ -88,9 +88,9 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.IMPORT) @SaCheckPermission("system:user:import") @PostMapping("/importData") - public AjaxResult importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); - return AjaxResult.success(result.getAnalysis()); + return R.ok(result.getAnalysis()); } @ApiOperation("下载导入模板") @@ -105,7 +105,7 @@ public class SysUserController extends BaseController { @ApiOperation("根据用户编号获取详细信息") @SaCheckPermission("system:user:query") @GetMapping(value = {"/", "/{userId}"}) - public AjaxResult> getInfo(@ApiParam("用户ID") @PathVariable(value = "userId", required = false) Long userId) { + public R> getInfo(@ApiParam("用户ID") @PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); List roles = roleService.selectRoleAll(); @@ -117,7 +117,7 @@ public class SysUserController extends BaseController { ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); } - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -127,15 +127,15 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:add") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) { + public R add(@Validated @RequestBody SysUser user) { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + return R.fail("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); } else if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return R.fail("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); @@ -148,15 +148,15 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) { + public R edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } else if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } return toAjax(userService.updateUser(user)); } @@ -168,7 +168,7 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:remove") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public AjaxResult remove(@ApiParam("角色ID串") @PathVariable Long[] userIds) { + public R remove(@ApiParam("角色ID串") @PathVariable Long[] userIds) { if (ArrayUtil.contains(userIds, getUserId())) { return error("当前用户不能删除"); } @@ -182,7 +182,7 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:resetPwd") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) { + public R resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -196,7 +196,7 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) { + public R changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); return toAjax(userService.updateUserStatus(user)); @@ -208,13 +208,13 @@ public class SysUserController extends BaseController { @ApiOperation("根据用户编号获取授权角色") @SaCheckPermission("system:user:query") @GetMapping("/authRole/{userId}") - public AjaxResult> authRole(@ApiParam("用户ID") @PathVariable("userId") Long userId) { + public R> authRole(@ApiParam("用户ID") @PathVariable("userId") Long userId) { SysUser user = userService.selectUserById(userId); List roles = roleService.selectRolesByUserId(userId); Map ajax = new HashMap<>(); ajax.put("user", user); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - return AjaxResult.success(ajax); + return R.ok(ajax); } /** @@ -228,7 +228,7 @@ public class SysUserController extends BaseController { @SaCheckPermission("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { + public R insertAuthRole(Long userId, Long[] roleIds) { userService.checkUserDataScope(userId); userService.insertUserAuth(userId, roleIds); return success(); 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 26e00dff6..611cb156e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -1,6 +1,6 @@ package com.ruoyi.common.core.controller; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; @@ -15,29 +15,29 @@ public class BaseController { /** * 返回成功 */ - public AjaxResult success() { - return AjaxResult.success(); + public R success() { + return R.ok(); } /** * 返回失败消息 */ - public AjaxResult error() { - return AjaxResult.error(); + public R error() { + return R.fail(); } /** * 返回成功消息 */ - public AjaxResult success(String message) { - return AjaxResult.success(message); + public R success(String message) { + return R.ok(message); } /** * 返回失败消息 */ - public AjaxResult error(String message) { - return AjaxResult.error(message); + public R error(String message) { + return R.fail(message); } /** @@ -46,8 +46,8 @@ public class BaseController { * @param rows 影响行数 * @return 操作结果 */ - protected AjaxResult toAjax(int rows) { - return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + protected R toAjax(int rows) { + return rows > 0 ? R.ok() : R.fail(); } /** @@ -56,7 +56,7 @@ public class BaseController { * @param result 结果 * @return 操作结果 */ - protected AjaxResult toAjax(boolean result) { + protected R toAjax(boolean result) { return result ? success() : error(); } 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 deleted file mode 100644 index 333af88c2..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.ruoyi.common.core.domain; - -import cn.hutool.http.HttpStatus; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 操作消息提醒 - * - * @author Lion Li - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@ApiModel("请求响应对象") -public class AjaxResult { - - private static final long serialVersionUID = 1L; - - /** - * 状态码 - */ - @ApiModelProperty("消息状态码") - private int code; - - /** - * 返回内容 - */ - @ApiModelProperty("消息内容") - private String msg; - - /** - * 数据对象 - */ - @ApiModelProperty("数据对象") - private T data; - - /** - * 初始化一个新创建的 AjaxResult 对象 - * - * @param code 状态码 - * @param msg 返回内容 - */ - public AjaxResult(int code, String msg) { - this.code = code; - this.msg = msg; - } - - /** - * 返回成功消息 - * - * @return 成功消息 - */ - public static AjaxResult success() { - return AjaxResult.success("操作成功"); - } - - /** - * 返回成功数据 - * - * @return 成功消息 - */ - public static AjaxResult success(T data) { - return AjaxResult.success("操作成功", data); - } - - /** - * 返回成功消息 - * - * @param msg 返回内容 - * @return 成功消息 - */ - public static AjaxResult success(String msg) { - return AjaxResult.success(msg, null); - } - - /** - * 返回成功消息 - * - * @param msg 返回内容 - * @param data 数据对象 - * @return 成功消息 - */ - public static AjaxResult success(String msg, T data) { - return new AjaxResult<>(HttpStatus.HTTP_OK, msg, data); - } - - /** - * 返回错误消息 - * - * @return - */ - public static AjaxResult error() { - return AjaxResult.error("操作失败"); - } - - /** - * 返回错误消息 - * - * @param msg 返回内容 - * @return 警告消息 - */ - public static AjaxResult error(String msg) { - return AjaxResult.error(msg, null); - } - - /** - * 返回错误消息 - * - * @param msg 返回内容 - * @param data 数据对象 - * @return 警告消息 - */ - public static AjaxResult error(String msg, T data) { - return new AjaxResult<>(HttpStatus.HTTP_INTERNAL_ERROR, msg, data); - } - - /** - * 返回错误消息 - * - * @param code 状态码 - * @param msg 返回内容 - * @return 警告消息 - */ - public static AjaxResult error(int code, String msg) { - return new AjaxResult<>(code, msg, null); - } - -} 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 new file mode 100644 index 000000000..8fa4a6497 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java @@ -0,0 +1,84 @@ +package com.ruoyi.common.core.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 响应信息主体 + * + * @author Lion Li + */ +@Data +@NoArgsConstructor +@ApiModel("请求响应对象") +public class R implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 成功 + */ + public static final int SUCCESS = 200; + + /** + * 失败 + */ + public static final int FAIL = 500; + + @ApiModelProperty("消息状态码") + private int code; + + @ApiModelProperty("消息内容") + private String msg; + + @ApiModelProperty("数据对象") + private T data; + + public static R ok() { + return restResult(null, SUCCESS, null); + } + + public static R ok(T data) { + return restResult(data, SUCCESS, null); + } + + public static R ok(String msg) { + return restResult(null, SUCCESS, msg); + } + + public static R ok(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static R fail() { + return restResult(null, FAIL, null); + } + + public static R fail(String msg) { + return restResult(null, FAIL, msg); + } + + public static R fail(T data) { + return restResult(data, FAIL, null); + } + + public static R fail(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static R fail(int code, String msg) { + return restResult(null, code, msg); + } + + private static R restResult(T data, int code, String msg) { + R r = new R<>(); + r.setCode(code); + r.setData(data); + r.setMsg(msg); + return r; + } + +} 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 28e380b85..98cca18c0 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 @@ -1,6 +1,6 @@ package com.ruoyi.demo.controller; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -44,8 +44,8 @@ public class RedisCacheController { @ApiOperation("测试 @Cacheable") @Cacheable(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test1") - public AjaxResult test1(String key, String value) { - return AjaxResult.success("操作成功", value); + public R test1(String key, String value) { + return R.ok("操作成功", value); } /** @@ -59,8 +59,8 @@ public class RedisCacheController { @ApiOperation("测试 @CachePut") @CachePut(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test2") - public AjaxResult test2(String key, String value) { - return AjaxResult.success("操作成功", value); + public R test2(String key, String value) { + return R.ok("操作成功", value); } /** @@ -74,8 +74,8 @@ public class RedisCacheController { @ApiOperation("测试 @CacheEvict") @CacheEvict(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test3") - public AjaxResult test3(String key, String value) { - return AjaxResult.success("操作成功", value); + public R test3(String key, String value) { + return R.ok("操作成功", value); } /** @@ -85,7 +85,7 @@ public class RedisCacheController { */ @ApiOperation("测试设置过期时间") @GetMapping("/test6") - public AjaxResult test6(String key, String value) { + public R test6(String key, String value) { RedisUtils.setCacheObject(key, value); boolean flag = RedisUtils.expire(key, 10, TimeUnit.SECONDS); System.out.println("***********" + flag); @@ -95,7 +95,7 @@ public class RedisCacheController { e.printStackTrace(); } Object obj = RedisUtils.getCacheObject(key); - return AjaxResult.success("操作成功", value.equals(obj)); + return R.ok(value.equals(obj)); } } 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 7d30a1871..c31925a57 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 @@ -4,7 +4,7 @@ import com.baomidou.lock.LockInfo; import com.baomidou.lock.LockTemplate; import com.baomidou.lock.annotation.Lock4j; import com.baomidou.lock.executor.RedissonLockExecutor; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -36,7 +36,7 @@ public class RedisLockController { @ApiOperation("测试lock4j 注解") @Lock4j(keys = {"#key"}) @GetMapping("/testLock4j") - public AjaxResult testLock4j(String key, String value) { + public R testLock4j(String key, String value) { System.out.println("start:" + key + ",time:" + LocalTime.now().toString()); try { Thread.sleep(10000); @@ -44,7 +44,7 @@ public class RedisLockController { e.printStackTrace(); } System.out.println("end :" + key + ",time:" + LocalTime.now().toString()); - return AjaxResult.success("操作成功", value); + return R.ok("操作成功", value); } /** @@ -52,7 +52,7 @@ public class RedisLockController { */ @ApiOperation("测试lock4j 工具") @GetMapping("/testLock4jLockTemplate") - public AjaxResult testLock4jLockTemplate(String key, String value) { + public R testLock4jLockTemplate(String key, String value) { final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class); if (null == lockInfo) { throw new RuntimeException("业务处理中,请稍后再试"); @@ -70,7 +70,7 @@ public class RedisLockController { lockTemplate.releaseLock(lockInfo); } //结束 - return AjaxResult.success("操作成功", value); + return R.ok("操作成功", value); } } 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 d8b6e0c22..99c3131b4 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 @@ -1,6 +1,6 @@ package com.ruoyi.demo.controller; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -23,20 +23,20 @@ public class RedisPubSubController { @ApiOperation("发布消息") @GetMapping("/pub") - public AjaxResult pub(@ApiParam("通道Key") String key, @ApiParam("发送内容") String value) { + public R pub(@ApiParam("通道Key") String key, @ApiParam("发送内容") String value) { RedisUtils.publish(key, value, consumer -> { System.out.println("发布通道 => " + key + ", 发送值 => " + value); }); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("订阅消息") @GetMapping("/sub") - public AjaxResult sub(@ApiParam("通道Key") String key) { + public R sub(@ApiParam("通道Key") String key) { RedisUtils.subscribe(key, String.class, msg -> { System.out.println("订阅通道 => " + key + ", 接收值 => " + msg); }); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } } 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 1eeab6114..c7f48e519 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 @@ -1,7 +1,7 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.RateLimiter; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.LimitType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,8 +29,8 @@ public class RedisRateLimiterController { @ApiOperation("测试全局限流") @RateLimiter(count = 2, time = 10) @GetMapping("/test") - public AjaxResult test(String value) { - return AjaxResult.success("操作成功", value); + public R test(String value) { + return R.ok("操作成功", value); } /** @@ -40,8 +40,8 @@ public class RedisRateLimiterController { @ApiOperation("测试请求IP限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.IP) @GetMapping("/testip") - public AjaxResult testip(String value) { - return AjaxResult.success("操作成功", value); + public R testip(String value) { + return R.ok("操作成功", value); } /** @@ -51,8 +51,8 @@ public class RedisRateLimiterController { @ApiOperation("测试集群实例限流") @RateLimiter(count = 2, time = 10, limitType = LimitType.CLUSTER) @GetMapping("/testcluster") - public AjaxResult testcluster(String value) { - return AjaxResult.success("操作成功", value); + public R testcluster(String value) { + return R.ok("操作成功", value); } } 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 6b73d64a8..b0f0b3bc0 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,6 +1,6 @@ package com.ruoyi.demo.controller; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -31,8 +31,8 @@ public class Swagger3DemoController { @ApiImplicitParam(name = "file", value = "文件", dataType = "java.io.File", required = true), }) @PostMapping(value = "/upload") - public AjaxResult upload(@RequestPart("file") MultipartFile file) { - return AjaxResult.success("操作成功", file.getOriginalFilename()); + 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 78ffef980..1bb9d9fa0 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 @@ -2,7 +2,7 @@ package com.ruoyi.demo.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.mapper.TestDemoMapper; import io.swagger.annotations.Api; @@ -41,7 +41,7 @@ public class TestBatchController extends BaseController { @ApiOperation(value = "新增批量方法") @PostMapping("/add") // @DS("slave") - public AjaxResult add() { + public R add() { List list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { TestDemo testDemo = new TestDemo(); @@ -61,7 +61,7 @@ public class TestBatchController extends BaseController { @ApiOperation(value = "新增或更新批量方法") @PostMapping("/addOrUpdate") // @DS("slave") - public AjaxResult addOrUpdate() { + public R addOrUpdate() { List list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { TestDemo testDemo = new TestDemo(); @@ -87,7 +87,7 @@ public class TestBatchController extends BaseController { @ApiOperation(value = "删除批量方法") @DeleteMapping() // @DS("slave") - public AjaxResult remove() { + public R remove() { return toAjax(testDemoMapper.delete(new LambdaQueryWrapper() .eq(TestDemo::getOrderNum, -1L))); } 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 39817174c..593f22adf 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,7 +5,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.validate.AddGroup; @@ -75,12 +75,12 @@ public class TestDemoController extends BaseController { @Log(title = "测试单表", businessType = BusinessType.IMPORT) @SaCheckPermission("demo:demo:import") @PostMapping("/importData") - public AjaxResult importData(@RequestPart("file") MultipartFile file) throws Exception { + public R importData(@RequestPart("file") MultipartFile file) throws Exception { ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); List volist = excelResult.getList(); List list = BeanUtil.copyToList(volist, TestDemo.class); iTestDemoService.saveBatch(list); - return AjaxResult.success(excelResult.getAnalysis()); + return R.ok(excelResult.getAnalysis()); } /** @@ -105,10 +105,10 @@ public class TestDemoController extends BaseController { @ApiOperation("获取测试单表详细信息") @SaCheckPermission("demo:demo:query") @GetMapping("/{id}") - public AjaxResult getInfo(@ApiParam("测试ID") + public R getInfo(@ApiParam("测试ID") @NotNull(message = "主键不能为空") @PathVariable("id") Long id) { - return AjaxResult.success(iTestDemoService.queryById(id)); + return R.ok(iTestDemoService.queryById(id)); } /** @@ -119,7 +119,7 @@ public class TestDemoController extends BaseController { @Log(title = "测试单表", businessType = BusinessType.INSERT) @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "不允许重复提交") @PostMapping() - public AjaxResult add(@RequestBody TestDemoBo bo) { + public R add(@RequestBody TestDemoBo bo) { // 使用校验工具对标 @Validated(AddGroup.class) 注解 // 用于在非 Controller 的地方校验对象 ValidatorUtils.validate(bo, AddGroup.class); @@ -134,7 +134,7 @@ public class TestDemoController extends BaseController { @Log(title = "测试单表", businessType = BusinessType.UPDATE) @RepeatSubmit @PutMapping() - public AjaxResult edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) { + public R edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) { return toAjax(iTestDemoService.updateByBo(bo) ? 1 : 0); } @@ -145,7 +145,7 @@ public class TestDemoController extends BaseController { @SaCheckPermission("demo:demo:remove") @Log(title = "测试单表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public AjaxResult remove(@ApiParam("测试ID串") + public R remove(@ApiParam("测试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/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index f56888219..9b3bffc09 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 @@ -1,6 +1,6 @@ package com.ruoyi.demo.controller; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.MessageUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,8 +35,8 @@ public class TestI18nController { */ @ApiOperation("通过code获取国际化内容") @GetMapping() - public AjaxResult get(@ApiParam("国际化code") String code) { - return AjaxResult.success(MessageUtils.message(code)); + public R get(@ApiParam("国际化code") String code) { + return R.ok(MessageUtils.message(code)); } /** @@ -47,8 +47,8 @@ public class TestI18nController { */ @ApiOperation("Validator 校验国际化") @GetMapping("/test1") - public AjaxResult test1(@NotBlank(message = "{not.null}") String str) { - return AjaxResult.success(str); + public R test1(@NotBlank(message = "{not.null}") String str) { + return R.ok(str); } /** @@ -59,8 +59,8 @@ public class TestI18nController { */ @ApiOperation("Bean 校验国际化") @GetMapping("/test2") - public AjaxResult test2(@Validated TestI18nBo bo) { - return AjaxResult.success(bo); + public R test2(@Validated TestI18nBo bo) { + return R.ok(bo); } @Data 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 4deb2c029..1f34f9cf4 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 @@ -2,7 +2,7 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.SensitiveStrategy; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,14 +31,14 @@ public class TestSensitiveController extends BaseController { */ @ApiOperation("查询测试单表列表") @GetMapping("/test") - public AjaxResult test() { + public R test() { TestSensitive testSensitive = new TestSensitive(); testSensitive.setIdCard("210397198608215431"); testSensitive.setPhone("17640125371"); testSensitive.setAddress("北京市朝阳区某某四合院1203室"); testSensitive.setEmail("17640125371@163.com"); testSensitive.setBankCard("6226456952351452853"); - return AjaxResult.success(testSensitive); + return R.ok(testSensitive); } @Data 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 9b0d537bb..64f36c941 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 @@ -4,7 +4,7 @@ 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.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.QueryGroup; @@ -47,9 +47,9 @@ public class TestTreeController extends BaseController { @ApiOperation("查询测试树表列表") @SaCheckPermission("demo:tree:list") @GetMapping("/list") - public AjaxResult> list(@Validated(QueryGroup.class) TestTreeBo bo) { + public R> list(@Validated(QueryGroup.class) TestTreeBo bo) { List list = iTestTreeService.queryList(bo); - return AjaxResult.success(list); + return R.ok(list); } /** @@ -70,10 +70,10 @@ public class TestTreeController extends BaseController { @ApiOperation("获取测试树表详细信息") @SaCheckPermission("demo:tree:query") @GetMapping("/{id}") - public AjaxResult getInfo(@ApiParam("测试树ID") + public R getInfo(@ApiParam("测试树ID") @NotNull(message = "主键不能为空") @PathVariable("id") Long id) { - return AjaxResult.success(iTestTreeService.queryById(id)); + return R.ok(iTestTreeService.queryById(id)); } /** @@ -84,7 +84,7 @@ public class TestTreeController extends BaseController { @Log(title = "测试树表", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping() - public AjaxResult add(@Validated(AddGroup.class) @RequestBody TestTreeBo bo) { + public R add(@Validated(AddGroup.class) @RequestBody TestTreeBo bo) { return toAjax(iTestTreeService.insertByBo(bo) ? 1 : 0); } @@ -96,7 +96,7 @@ public class TestTreeController extends BaseController { @Log(title = "测试树表", businessType = BusinessType.UPDATE) @RepeatSubmit @PutMapping() - public AjaxResult edit(@Validated(EditGroup.class) @RequestBody TestTreeBo bo) { + public R edit(@Validated(EditGroup.class) @RequestBody TestTreeBo bo) { return toAjax(iTestTreeService.updateByBo(bo) ? 1 : 0); } @@ -107,7 +107,7 @@ public class TestTreeController extends BaseController { @SaCheckPermission("demo:tree:remove") @Log(title = "测试树表", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public AjaxResult remove(@ApiParam("测试树ID串") + public R remove(@ApiParam("测试树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 f698a140a..532c499e1 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 @@ -1,6 +1,6 @@ package com.ruoyi.demo.controller.queue; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,7 +32,7 @@ public class BoundedQueueController { @ApiOperation("添加队列数据") @GetMapping("/add") - public AjaxResult add(@ApiParam("队列名") String queueName, + public R add(@ApiParam("队列名") String queueName, @ApiParam("容量") int capacity) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyBoundedQueueObject(queueName); @@ -42,7 +42,7 @@ public class BoundedQueueController { log.info("通道: {} , 设置容量: {}", queueName, capacity); } else { log.info("通道: {} , 设置容量失败", queueName); - return AjaxResult.error("操作失败"); + return R.fail("操作失败"); } for (int i = 0; i < 11; i++) { String data = "data-" + i; @@ -53,30 +53,30 @@ public class BoundedQueueController { log.info("通道: {} , 发送数据: {}", queueName, data); } } - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("删除队列数据") @GetMapping("/remove") - public AjaxResult remove(@ApiParam("队列名") String queueName) { + public R remove(@ApiParam("队列名") String queueName) { String data = "data-" + 5; if (QueueUtils.removeBoundedQueueObject(queueName, data)) { log.info("通道: {} , 删除数据: {}", queueName, data); } else { - return AjaxResult.error("操作失败"); + return R.fail("操作失败"); } - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("获取队列数据") @GetMapping("/get") - public AjaxResult get(@ApiParam("队列名") String queueName) { + public R get(@ApiParam("队列名") String queueName) { String data; do { data = QueueUtils.getBoundedQueueObject(queueName); log.info("通道: {} , 获取数据: {}", queueName, data); } while (data != null); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } } 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 77ee26812..f8777533c 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 @@ -1,6 +1,6 @@ package com.ruoyi.demo.controller.queue; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,45 +34,45 @@ public class DelayedQueueController { @ApiOperation("订阅队列") @GetMapping("/subscribe") - public AjaxResult subscribe(@ApiParam("队列名") String queueName) { + public R subscribe(@ApiParam("队列名") String queueName) { log.info("通道: {} 监听中......", queueName); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { // 观察接收时间 log.info("通道: {}, 收到数据: {}", queueName, orderNum); }); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("添加队列数据") @GetMapping("/add") - public AjaxResult add(@ApiParam("队列名") String queueName, + public R add(@ApiParam("队列名") String queueName, @ApiParam("订单号") String orderNum, @ApiParam("延迟时间(秒)") Long time) { QueueUtils.addDelayedQueueObject(queueName, orderNum, time, TimeUnit.SECONDS); // 观察发送时间 log.info("通道: {} , 发送数据: {}", queueName, orderNum); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("删除队列数据") @GetMapping("/remove") - public AjaxResult remove(@ApiParam("队列名") String queueName, + public R remove(@ApiParam("队列名") String queueName, @ApiParam("订单号") String orderNum) { if (QueueUtils.removeDelayedQueueObject(queueName, orderNum)) { log.info("通道: {} , 删除数据: {}", queueName, orderNum); } else { - return AjaxResult.error("操作失败"); + return R.fail("操作失败"); } - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("销毁队列") @GetMapping("/destroy") - public AjaxResult destroy(@ApiParam("队列名") String queueName) { + public R destroy(@ApiParam("队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 QueueUtils.destroyDelayedQueue(queueName); - return AjaxResult.success("操作成功"); + 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 b2a32470b..baec18440 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 @@ -1,7 +1,7 @@ package com.ruoyi.demo.controller.queue; import cn.hutool.core.util.RandomUtil; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.redis.QueueUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,7 +32,7 @@ public class PriorityQueueController { @ApiOperation("添加队列数据") @GetMapping("/add") - public AjaxResult add(@ApiParam("队列名") String queueName) { + public R add(@ApiParam("队列名") String queueName) { // 用完了一定要销毁 否则会一直存在 boolean b = QueueUtils.destroyPriorityQueueObject(queueName); log.info("通道: {} , 删除: {}", queueName, b); @@ -42,7 +42,7 @@ public class PriorityQueueController { log.info("通道: {} , 设置比较器成功", queueName); } else { log.info("通道: {} , 设置比较器失败", queueName); - return AjaxResult.error("操作失败"); + return R.fail("操作失败"); } for (int i = 0; i < 10; i++) { int randomNum = RandomUtil.randomInt(10); @@ -55,12 +55,12 @@ public class PriorityQueueController { log.info("通道: {} , 发送数据: {}, 发送失败", queueName, data); } } - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("删除队列数据") @GetMapping("/remove") - public AjaxResult remove(@ApiParam("队列名") String queueName, + public R remove(@ApiParam("队列名") String queueName, @ApiParam("对象名") String name, @ApiParam("排序号") Integer orderNum) { PriorityDemo data = new PriorityDemo(); @@ -69,20 +69,20 @@ public class PriorityQueueController { if (QueueUtils.removePriorityQueueObject(queueName, data)) { log.info("通道: {} , 删除数据: {}", queueName, data); } else { - return AjaxResult.error("操作失败"); + return R.fail("操作失败"); } - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } @ApiOperation("获取队列数据") @GetMapping("/get") - public AjaxResult get(@ApiParam("队列名") String queueName) { + public R get(@ApiParam("队列名") String queueName) { PriorityDemo data; do { data = QueueUtils.getPriorityQueueObject(queueName); log.info("通道: {} , 获取数据: {}", queueName, data); } while (data != null); - return AjaxResult.success("操作成功"); + return R.ok("操作成功"); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index fe19b28e8..90b265e27 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 @@ -5,7 +5,7 @@ import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.exception.NotRoleException; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpStatus; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.DemoModeException; import com.ruoyi.common.exception.ServiceException; import lombok.extern.slf4j.Slf4j; @@ -34,112 +34,112 @@ public class GlobalExceptionHandler { * 权限码异常 */ @ExceptionHandler(NotPermissionException.class) - public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { + public R handleNotPermissionException(NotPermissionException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); + return R.fail(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); } /** * 角色权限异常 */ @ExceptionHandler(NotRoleException.class) - public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) { + public R handleNotRoleException(NotRoleException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); + return R.fail(HttpStatus.HTTP_FORBIDDEN, "没有访问权限,请联系管理员授权"); } /** * 认证失败 */ @ExceptionHandler(NotLoginException.class) - public AjaxResult handleNotLoginException(NotLoginException e, HttpServletRequest request) { + public R handleNotLoginException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI, e.getMessage()); - return AjaxResult.error(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源"); + return R.fail(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源"); } /** * 请求方式不支持 */ @ExceptionHandler(HttpRequestMethodNotSupportedException.class) - public AjaxResult handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, + public R handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod()); - return AjaxResult.error(e.getMessage()); + return R.fail(e.getMessage()); } /** * 业务异常 */ @ExceptionHandler(ServiceException.class) - public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request) { + public R handleServiceException(ServiceException e, HttpServletRequest request) { log.error(e.getMessage(), e); Integer code = e.getCode(); - return ObjectUtil.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage()); + return ObjectUtil.isNotNull(code) ? R.fail(code.intValue(), e.getMessage()) : R.fail(e.getMessage()); } /** * 拦截未知的运行时异常 */ @ExceptionHandler(RuntimeException.class) - public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) { + public R handleRuntimeException(RuntimeException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',发生未知异常.", requestURI, e); - return AjaxResult.error(e.getMessage()); + return R.fail(e.getMessage()); } /** * 系统异常 */ @ExceptionHandler(Exception.class) - public AjaxResult handleException(Exception e, HttpServletRequest request) { + public R handleException(Exception e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',发生系统异常.", requestURI, e); - return AjaxResult.error(e.getMessage()); + return R.fail(e.getMessage()); } /** * 自定义验证异常 */ @ExceptionHandler(BindException.class) - public AjaxResult handleBindException(BindException e) { + public R handleBindException(BindException e) { log.error(e.getMessage(), e); String message = e.getAllErrors().stream() .map(DefaultMessageSourceResolvable::getDefaultMessage) .collect(Collectors.joining(", ")); - return AjaxResult.error(message); + return R.fail(message); } /** * 自定义验证异常 */ @ExceptionHandler(ConstraintViolationException.class) - public AjaxResult constraintViolationException(ConstraintViolationException e) { + public R constraintViolationException(ConstraintViolationException e) { log.error(e.getMessage(), e); String message = e.getConstraintViolations().stream() .map(ConstraintViolation::getMessage) .collect(Collectors.joining(", ")); - return AjaxResult.error(message); + return R.fail(message); } /** * 自定义验证异常 */ @ExceptionHandler(MethodArgumentNotValidException.class) - public AjaxResult handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { + public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { log.error(e.getMessage(), e); String message = e.getBindingResult().getFieldError().getDefaultMessage(); - return AjaxResult.error(message); + return R.fail(message); } /** * 演示模式异常 */ @ExceptionHandler(DemoModeException.class) - public AjaxResult handleDemoModeException(DemoModeException e) { - return AjaxResult.error("演示模式,不允许操作"); + public R handleDemoModeException(DemoModeException e) { + return R.fail("演示模式,不允许操作"); } } 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 c0cce7241..09bf1aeb1 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 @@ -5,7 +5,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.io.IoUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -56,7 +56,7 @@ public class GenController extends BaseController { @ApiOperation("修改代码生成业务") @SaCheckPermission("tool:gen:query") @GetMapping(value = "/{talbleId}") - public AjaxResult> getInfo(@PathVariable Long talbleId) { + public R> getInfo(@PathVariable Long talbleId) { GenTable table = genTableService.selectGenTableById(talbleId); List tables = genTableService.selectGenTableAll(); List list = genTableColumnService.selectGenTableColumnListByTableId(talbleId); @@ -64,7 +64,7 @@ public class GenController extends BaseController { map.put("info", table); map.put("rows", list); map.put("tables", tables); - return AjaxResult.success(map); + return R.ok(map); } /** @@ -98,12 +98,12 @@ public class GenController extends BaseController { @SaCheckPermission("tool:gen:import") @Log(title = "代码生成", businessType = BusinessType.IMPORT) @PostMapping("/importTable") - public AjaxResult importTableSave(String tables) { + public R importTableSave(String tables) { String[] tableNames = Convert.toStrArray(tables); // 查询表信息 List tableList = genTableService.selectDbTableListByNames(tableNames); genTableService.importGenTable(tableList); - return AjaxResult.success(); + return R.ok(); } /** @@ -113,10 +113,10 @@ public class GenController extends BaseController { @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult editSave(@Validated @RequestBody GenTable genTable) { + public R editSave(@Validated @RequestBody GenTable genTable) { genTableService.validateEdit(genTable); genTableService.updateGenTable(genTable); - return AjaxResult.success(); + return R.ok(); } /** @@ -126,9 +126,9 @@ public class GenController extends BaseController { @SaCheckPermission("tool:gen:remove") @Log(title = "代码生成", businessType = BusinessType.DELETE) @DeleteMapping("/{tableIds}") - public AjaxResult remove(@PathVariable Long[] tableIds) { + public R remove(@PathVariable Long[] tableIds) { genTableService.deleteGenTableByIds(tableIds); - return AjaxResult.success(); + return R.ok(); } /** @@ -137,9 +137,9 @@ public class GenController extends BaseController { @ApiOperation("预览代码") @SaCheckPermission("tool:gen:preview") @GetMapping("/preview/{tableId}") - public AjaxResult> preview(@PathVariable("tableId") Long tableId) throws IOException { + public R> preview(@PathVariable("tableId") Long tableId) throws IOException { Map dataMap = genTableService.previewCode(tableId); - return AjaxResult.success(dataMap); + return R.ok(dataMap); } /** @@ -161,9 +161,9 @@ public class GenController extends BaseController { @SaCheckPermission("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/genCode/{tableName}") - public AjaxResult genCode(@PathVariable("tableName") String tableName) { + public R genCode(@PathVariable("tableName") String tableName) { genTableService.generatorCode(tableName); - return AjaxResult.success(); + return R.ok(); } /** @@ -173,9 +173,9 @@ public class GenController extends BaseController { @SaCheckPermission("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @GetMapping("/synchDb/{tableName}") - public AjaxResult synchDb(@PathVariable("tableName") String tableName) { + public R synchDb(@PathVariable("tableName") String tableName) { genTableService.synchDb(tableName); - return AjaxResult.success(); + return R.ok(); } /** 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 be0959991..20580d860 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.PageQuery; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.QueryGroup; @@ -57,9 +57,9 @@ public class ${ClassName}Controller extends BaseController { return i${ClassName}Service.queryPageList(bo, pageQuery); } #elseif($table.tree) - public AjaxResult> list(@Validated(QueryGroup.class) ${ClassName}Bo bo) { + public R> list(@Validated(QueryGroup.class) ${ClassName}Bo bo) { List<${ClassName}Vo> list = i${ClassName}Service.queryList(bo); - return AjaxResult.success(list); + return R.ok(list); } #end @@ -81,10 +81,10 @@ public class ${ClassName}Controller extends BaseController { @ApiOperation("获取${functionName}详细信息") @SaCheckPermission("${permissionPrefix}:query") @GetMapping("/{${pkColumn.javaField}}") - public AjaxResult<${ClassName}Vo> getInfo(@ApiParam("主键") + public R<${ClassName}Vo> getInfo(@ApiParam("主键") @NotNull(message = "主键不能为空") @PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { - return AjaxResult.success(i${ClassName}Service.queryById(${pkColumn.javaField})); + return R.ok(i${ClassName}Service.queryById(${pkColumn.javaField})); } /** @@ -95,7 +95,7 @@ public class ${ClassName}Controller extends BaseController { @Log(title = "${functionName}", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public AjaxResult add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) { + public R add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) { return toAjax(i${ClassName}Service.insertByBo(bo) ? 1 : 0); } @@ -107,7 +107,7 @@ public class ${ClassName}Controller extends BaseController { @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public AjaxResult edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) { + public R edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) { return toAjax(i${ClassName}Service.updateByBo(bo) ? 1 : 0); } @@ -118,7 +118,7 @@ public class ${ClassName}Controller extends BaseController { @SaCheckPermission("${permissionPrefix}:remove") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") - public AjaxResult remove(@ApiParam("主键串") + public R remove(@ApiParam("主键串") @NotEmpty(message = "主键不能为空") @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(i${ClassName}Service.deleteWithValidByIds(Arrays.asList(${pkColumn.javaField}s), true) ? 1 : 0); From a6ed5667ab8e17bd7a20dc54def9fd0b9f4dc6b9 Mon Sep 17 00:00:00 2001 From: oo0oo <1148059382@qq.com> Date: Tue, 1 Feb 2022 02:24:49 +0000 Subject: [PATCH 024/178] =?UTF-8?q?update=20.gitignore.=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0JRebel=E5=B7=A5=E5=85=B7rebel.xml=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=87=B3gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a58be0137..0c0da3e07 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,9 @@ target/ *.iml *.ipr +### JRebel ### +rebel.xml + ### NetBeans ### nbproject/private/ build/* From 5a0a9e3a1cd084f12d73f03f073e0c70ea3c135c 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, 7 Feb 2022 23:08:00 +0800 Subject: [PATCH 025/178] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 71 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index d5c45c7cc..9666fdd46 100644 --- a/README.md +++ b/README.md @@ -13,39 +13,40 @@ > 系统演示: [传送门](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/系统演示?sort_id=4836388) -| 功能介绍 | 使用技术 | 文档地址 | 特性注意事项 | -|-----------|------------------------|---------------------------------------------------------------------------------------------------|--------------------------| -| 当前框架 | RuoYi-Vue-Plus | [RuoYi-Vue-Plus文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) | 重写RuoYi-Vue全方位升级(不兼容原框架) | -| 单体分支 | RuoYi-Vue-Plus-fast | [fast分支地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) | 单体应用结构 | -| Vue3分支 | RuoYi-Vue-Plus-UI | [UI地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus-UI) | 由于组件还未完善 仅供学习 | -| 原框架 | RuoYi-Vue | [RuoYi-Vue官网](http://ruoyi.vip/) | 定期同步需要的功能 | -| 前端开发框架 | Vue、Element UI | [Element UI官网](https://element.eleme.cn/#/zh-CN) | | -| 后端开发框架 | SpringBoot | [SpringBoot官网](https://spring.io/projects/spring-boot/#learn) | | -| 容器框架 | Undertow | [Undertow官网](https://undertow.io/) | 基于 XNIO 的高性能容器 | -| 权限认证框架 | Sa-Token、Jwt | [Sa-Token官网](https://sa-token.dev33.cn/) | 强解耦、强扩展 | -| 关系数据库 | MySQL | [MySQL官网](https://dev.mysql.com/) | 适配 8.X 最低 5.7 | -| 缓存数据库 | Redis | [Redis官网](https://redis.io/) | 适配 6.X 最低 4.X | -| 数据库框架 | Mybatis-Plus | [Mybatis-Plus文档](https://baomidou.com/guide/) | 快速 CRUD 增加开发效率 | -| 数据库框架 | p6spy | [p6spy官网](https://p6spy.readthedocs.io/) | 更强劲的 SQL 分析 | -| 多数据源框架 | dynamic-datasource | [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/content) | 支持主从与多种类数据库异构 | -| 序列化框架 | Jackson | [Jackson官网](https://github.com/FasterXML/jackson) | 统一使用 jackson 高效可靠 | -| Redis客户端 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 支持单机、集群配置 | -| 分布式限流 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 全局、请求IP、集群ID 多种限流 | -| 分布式队列 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 普通队列、延迟队列、优先队列 等 | -| 分布式锁 | Lock4j | [Lock4j官网](https://gitee.com/baomidou/lock4j) | 注解锁、工具锁 多种多样 | -| 分布式幂等 | Redisson | [Lock4j文档](https://gitee.com/baomidou/lock4j) | 拦截重复提交 | -| 分布式日志 | TLog | [TLog文档](https://yomahub.com/tlog/docs) | 支持跟踪链路日志记录、性能分析、链路排查 | -| 分布式任务调度 | Xxl-Job | [Xxl-Job官网](https://www.xuxueli.com/xxl-job/) | 高性能 高可靠 易扩展 | -| 文件存储 | Minio | [Minio文档](https://docs.min.io/) | 本地存储 | -| 文件存储 | 七牛、阿里、腾讯 | [OSS使用文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4359146&doc_id=1469725) | 云存储 | -| 监控框架 | 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/) | 美化接口文档 | -| 工具类框架 | Hutool、Lombok | [Hutool文档](https://www.hutool.cn/docs/) | 减少代码冗余 增加安全性 | -| 代码生成器 | 适配MP、Knife4j规范化代码 | [Hutool文档](https://www.hutool.cn/docs/) | 一键生成前后端代码 | -| 部署方式 | Docker | [Docker文档](https://docs.docker.com/) | 容器编排 一键部署业务集群 | -| 国际化 | SpringMessage | [SpringMVC文档](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc) | Spring标准国际化方案 | +| 功能介绍 | 使用技术 | 文档地址 | 特性注意事项 | +|----------|---------------------|---------------------------------------------------------------------------------------------------|----------------------------| +| 当前框架 | RuoYi-Vue-Plus | [RuoYi-Vue-Plus文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) | 重写RuoYi-Vue全方位升级(不兼容原框架) | +| 微服务分支 | RuoYi-Cloud-Plus | [微服务分支地址](https://gitee.com/JavaLionLi/RuoYi-Cloud-Plus) | 重写RuoYi-Cloud全方位升级(不兼容原框架) | +| 单体分支 | RuoYi-Vue-Plus-fast | [fast分支地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) | 单体应用结构 | +| Vue3分支 | RuoYi-Vue-Plus-UI | [UI地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus-UI) | 由于组件还未完善 仅供学习 | +| 原框架 | RuoYi-Vue | [RuoYi-Vue官网](http://ruoyi.vip/) | 定期同步需要的功能 | +| 前端开发框架 | Vue、Element UI | [Element UI官网](https://element.eleme.cn/#/zh-CN) | | +| 后端开发框架 | SpringBoot | [SpringBoot官网](https://spring.io/projects/spring-boot/#learn) | | +| 容器框架 | Undertow | [Undertow官网](https://undertow.io/) | 基于 XNIO 的高性能容器 | +| 权限认证框架 | Sa-Token、Jwt | [Sa-Token官网](https://sa-token.dev33.cn/) | 强解耦、强扩展 | +| 关系数据库 | MySQL | [MySQL官网](https://dev.mysql.com/) | 适配 8.X 最低 5.7 | +| 缓存数据库 | Redis | [Redis官网](https://redis.io/) | 适配 6.X 最低 4.X | +| 数据库框架 | Mybatis-Plus | [Mybatis-Plus文档](https://baomidou.com/guide/) | 快速 CRUD 增加开发效率 | +| 数据库框架 | p6spy | [p6spy官网](https://p6spy.readthedocs.io/) | 更强劲的 SQL 分析 | +| 多数据源框架 | dynamic-datasource | [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/content) | 支持主从与多种类数据库异构 | +| 序列化框架 | Jackson | [Jackson官网](https://github.com/FasterXML/jackson) | 统一使用 jackson 高效可靠 | +| Redis客户端 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 支持单机、集群配置 | +| 分布式限流 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 全局、请求IP、集群ID 多种限流 | +| 分布式队列 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 普通队列、延迟队列、优先队列 等 | +| 分布式锁 | Lock4j | [Lock4j官网](https://gitee.com/baomidou/lock4j) | 注解锁、工具锁 多种多样 | +| 分布式幂等 | Redisson | [Lock4j文档](https://gitee.com/baomidou/lock4j) | 拦截重复提交 | +| 分布式日志 | TLog | [TLog文档](https://yomahub.com/tlog/docs) | 支持跟踪链路日志记录、性能分析、链路排查 | +| 分布式任务调度 | Xxl-Job | [Xxl-Job官网](https://www.xuxueli.com/xxl-job/) | 高性能 高可靠 易扩展 | +| 文件存储 | Minio | [Minio文档](https://docs.min.io/) | 本地存储 | +| 文件存储 | 七牛、阿里、腾讯 | [OSS使用文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4359146&doc_id=1469725) | 云存储 | +| 监控框架 | 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/) | 美化接口文档 | +| 工具类框架 | Hutool、Lombok | [Hutool文档](https://www.hutool.cn/docs/) | 减少代码冗余 增加安全性 | +| 代码生成器 | 适配MP、Knife4j规范化代码 | [Hutool文档](https://www.hutool.cn/docs/) | 一键生成前后端代码 | +| 部署方式 | Docker | [Docker文档](https://docs.docker.com/) | 容器编排 一键部署业务集群 | +| 国际化 | SpringMessage | [SpringMVC文档](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc) | Spring标准国际化方案 | ## 参考文档 @@ -73,8 +74,8 @@ * 同步升级 RuoYi-Vue * GitHub 地址 [RuoYi-Vue-Plus-github](https://github.com/JavaLionLi/RuoYi-Vue-Plus) -* 单模块 fast 分支 [RuoYi-Vue-Plus-fast](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) -* satoken 分支 [RuoYi-Vue-Plus-satoken](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/satoken/) +* 单模块 分支 [RuoYi-Vue-Plus-fast](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) +* 微服务 分支 [RuoYi-Cloud-Plus](https://gitee.com/JavaLionLi/RuoYi-Cloud-Plus) * 用户扩展项目 [扩展项目列表](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4478302&doc_id=1469725) ## 加群与捐献 From 844e8b2f777b22f879be8f22d1224169c6a85e74 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, 7 Feb 2022 23:37:47 +0800 Subject: [PATCH 026/178] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20insertOrUpda?= =?UTF-8?q?teBatch=20=E8=8E=B7=E5=8F=96=E9=94=99=E8=AF=AF=20class=20?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java index de297935c..d3f619504 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java @@ -106,7 +106,7 @@ public interface BaseMapperPlus extends BaseMapper { Assert.notNull(tableInfo, "error: can not execute. because can not find cache of TableInfo for entity!"); String keyProperty = tableInfo.getKeyProperty(); Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!"); - return SqlHelper.saveOrUpdateBatch(this.currentModelClass(), getClass(), log, entityList, batchSize, (sqlSession, entity) -> { + return SqlHelper.saveOrUpdateBatch(this.currentModelClass(), this.currentMapperClass(), log, entityList, batchSize, (sqlSession, entity) -> { Object idVal = tableInfo.getPropertyValue(entity, keyProperty); String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.INSERT_ONE); return StringUtils.checkValNull(idVal) From 6f0c59d7be923b0d94c568fe4ba6280ede89f10b Mon Sep 17 00:00:00 2001 From: Yancey Date: Wed, 9 Feb 2022 00:27:51 +0800 Subject: [PATCH 027/178] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8CModel=E4=B8=AD?= =?UTF-8?q?=E4=B8=8D=E5=BB=BA=E8=AE=AE=E6=9C=89=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/common/core/domain/model/LoginBody.java | 2 +- .../com/ruoyi/framework/web/service/SysRegisterService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 a1f8b8337..583b7a61e 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 @@ -25,7 +25,7 @@ public class LoginBody /** * 唯一标识 */ - private String uuid = ""; + private String uuid; public String getUsername() { 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 35a425c7d..c7de444ee 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 @@ -100,7 +100,7 @@ public class SysRegisterService */ public void validateCaptcha(String username, String code, String uuid) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String verifyKey = Constants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); redisCache.deleteObject(verifyKey); if (captcha == null) From a29201a248374689bf683bbe0ce489d579483e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=9A=E5=B1=BF?= <1491182878@qq.com> Date: Wed, 9 Feb 2022 08:46:54 +0800 Subject: [PATCH 028/178] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=8D=95=E8=AF=8D?= =?UTF-8?q?=E6=8B=BC=E5=86=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{drawingDefalut.js => drawingDefault.js} | 58 +- ruoyi-ui/src/utils/generator/html.js | 718 ++++---- ruoyi-ui/src/utils/generator/js.js | 472 ++--- .../src/views/tool/build/CodeTypeDialog.vue | 212 +-- .../src/views/tool/build/TreeNodeDialog.vue | 298 ++-- ruoyi-ui/src/views/tool/build/index.vue | 1566 ++++++++--------- 6 files changed, 1662 insertions(+), 1662 deletions(-) rename ruoyi-ui/src/utils/generator/{drawingDefalut.js => drawingDefault.js} (95%) diff --git a/ruoyi-ui/src/utils/generator/drawingDefalut.js b/ruoyi-ui/src/utils/generator/drawingDefault.js similarity index 95% rename from ruoyi-ui/src/utils/generator/drawingDefalut.js rename to ruoyi-ui/src/utils/generator/drawingDefault.js index 5f7d1c4ae..09f133ca1 100644 --- a/ruoyi-ui/src/utils/generator/drawingDefalut.js +++ b/ruoyi-ui/src/utils/generator/drawingDefault.js @@ -1,29 +1,29 @@ -export default [ - { - layout: 'colFormItem', - tagIcon: 'input', - label: '手机号', - vModel: 'mobile', - formId: 6, - tag: 'el-input', - placeholder: '请输入手机号', - defaultValue: '', - span: 24, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': 'el-icon-mobile', - 'suffix-icon': '', - maxlength: 11, - 'show-word-limit': true, - readonly: false, - disabled: false, - required: true, - changeTag: true, - regList: [{ - pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', - message: '手机号格式错误' - }] - } -] +export default [ + { + layout: 'colFormItem', + tagIcon: 'input', + label: '手机号', + vModel: 'mobile', + formId: 6, + tag: 'el-input', + placeholder: '请输入手机号', + defaultValue: '', + span: 24, + style: { width: '100%' }, + clearable: true, + prepend: '', + append: '', + 'prefix-icon': 'el-icon-mobile', + 'suffix-icon': '', + maxlength: 11, + 'show-word-limit': true, + readonly: false, + disabled: false, + required: true, + changeTag: true, + regList: [{ + pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', + message: '手机号格式错误' + }] + } +] diff --git a/ruoyi-ui/src/utils/generator/html.js b/ruoyi-ui/src/utils/generator/html.js index 340dfb439..9bcc5361d 100644 --- a/ruoyi-ui/src/utils/generator/html.js +++ b/ruoyi-ui/src/utils/generator/html.js @@ -1,359 +1,359 @@ -/* eslint-disable max-len */ -import { trigger } from './config' - -let confGlobal -let someSpanIsNot24 - -export function dialogWrapper(str) { - return ` - ${str} -
- 取消 - 确定 -
-
` -} - -export function vueTemplate(str) { - return `` -} - -export function vueScript(str) { - return `` -} - -export function cssStyle(cssStr) { - return `` -} - -function buildFormTemplate(conf, child, type) { - let labelPosition = '' - if (conf.labelPosition !== 'right') { - labelPosition = `label-position="${conf.labelPosition}"` - } - const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : '' - let str = ` - ${child} - ${buildFromBtns(conf, type)} - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - return str -} - -function buildFromBtns(conf, type) { - let str = '' - if (conf.formBtns && type === 'file') { - str = ` - 提交 - 重置 - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - } - return str -} - -// span不为24的用el-col包裹 -function colWrapper(element, str) { - if (someSpanIsNot24 || element.span !== 24) { - return ` - ${str} - ` - } - return str -} - -const layouts = { - colFormItem(element) { - let labelWidth = '' - if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) { - labelWidth = `label-width="${element.labelWidth}px"` - } - const required = !trigger[element.tag] && element.required ? 'required' : '' - const tagDom = tags[element.tag] ? tags[element.tag](element) : null - let str = ` - ${tagDom} - ` - str = colWrapper(element, str) - return str - }, - rowFormItem(element) { - const type = element.type === 'default' ? '' : `type="${element.type}"` - const justify = element.type === 'default' ? '' : `justify="${element.justify}"` - const align = element.type === 'default' ? '' : `align="${element.align}"` - const gutter = element.gutter ? `gutter="${element.gutter}"` : '' - const children = element.children.map(el => layouts[el.layout](el)) - let str = ` - ${children.join('\n')} - ` - str = colWrapper(element, str) - return str - } -} - -const tags = { - 'el-button': el => { - const { - tag, disabled - } = attrBuilder(el) - const type = el.type ? `type="${el.type}"` : '' - const icon = el.icon ? `icon="${el.icon}"` : '' - const size = el.size ? `size="${el.size}"` : '' - let child = buildElButtonChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` - }, - 'el-input': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : '' - const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : '' - const readonly = el.readonly ? 'readonly' : '' - const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : '' - const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : '' - const showPassword = el['show-password'] ? 'show-password' : '' - const type = el.type ? `type="${el.type}"` : '' - const autosize = el.autosize && el.autosize.minRows - ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"` - : '' - let child = buildElInputChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}` - }, - 'el-input-number': el => { - const { disabled, vModel, placeholder } = attrBuilder(el) - const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : '' - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const stepStrictly = el['step-strictly'] ? 'step-strictly' : '' - const precision = el.precision ? `:precision='${el.precision}'` : '' - - return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>` - }, - 'el-select': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const filterable = el.filterable ? 'filterable' : '' - const multiple = el.multiple ? 'multiple' : '' - let child = buildElSelectChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}` - }, - 'el-radio-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - let child = buildElRadioGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${size} ${disabled}>${child}` - }, - 'el-checkbox-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const min = el.min ? `:min="${el.min}"` : '' - const max = el.max ? `:max="${el.max}"` : '' - let child = buildElCheckboxGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}` - }, - 'el-switch': el => { - const { disabled, vModel } = attrBuilder(el) - const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : '' - const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : '' - const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : '' - const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : '' - const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : '' - const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : '' - - return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>` - }, - 'el-cascader': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const options = el.options ? `:options="${el.vModel}Options"` : '' - const props = el.props ? `:props="${el.vModel}Props"` : '' - const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"' - const filterable = el.filterable ? 'filterable' : '' - const separator = el.separator === '/' ? '' : `separator="${el.separator}"` - - return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>` - }, - 'el-slider': el => { - const { disabled, vModel } = attrBuilder(el) - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const range = el.range ? 'range' : '' - const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : '' - - return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>` - }, - 'el-time-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const isRange = el['is-range'] ? 'is-range' : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : '' - - return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>` - }, - 'el-date-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const type = el.type === 'date' ? '' : `type="${el.type}"` - const readonly = el.readonly ? 'readonly' : '' - - return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>` - }, - 'el-rate': el => { - const { disabled, vModel } = attrBuilder(el) - const max = el.max ? `:max='${el.max}'` : '' - const allowHalf = el['allow-half'] ? 'allow-half' : '' - const showText = el['show-text'] ? 'show-text' : '' - const showScore = el['show-score'] ? 'show-score' : '' - - return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>` - }, - 'el-color-picker': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const showAlpha = el['show-alpha'] ? 'show-alpha' : '' - const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : '' - - return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>` - }, - 'el-upload': el => { - const disabled = el.disabled ? ':disabled=\'true\'' : '' - const action = el.action ? `:action="${el.vModel}Action"` : '' - const multiple = el.multiple ? 'multiple' : '' - const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : '' - const accept = el.accept ? `accept="${el.accept}"` : '' - const name = el.name !== 'file' ? `name="${el.name}"` : '' - const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : '' - const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"` - const fileList = `:file-list="${el.vModel}fileList"` - const ref = `ref="${el.vModel}"` - let child = buildElUploadChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}` - } -} - -function attrBuilder(el) { - return { - vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`, - clearable: el.clearable ? 'clearable' : '', - placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '', - width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '', - disabled: el.disabled ? ':disabled=\'true\'' : '' - } -} - -// el-buttin 子级 -function buildElButtonChild(conf) { - const children = [] - if (conf.default) { - children.push(conf.default) - } - return children.join('\n') -} - -// el-input innerHTML -function buildElInputChild(conf) { - const children = [] - if (conf.prepend) { - children.push(``) - } - if (conf.append) { - children.push(``) - } - return children.join('\n') -} - -function buildElSelectChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - children.push(``) - } - return children.join('\n') -} - -function buildElRadioGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElCheckboxGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElUploadChild(conf) { - const list = [] - if (conf['list-type'] === 'picture-card') list.push('') - else list.push(`${conf.buttonText}`) - if (conf.showTip) list.push(`
只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`) - return list.join('\n') -} - -export function makeUpHtml(conf, type) { - const htmlList = [] - confGlobal = conf - someSpanIsNot24 = conf.fields.some(item => item.span !== 24) - conf.fields.forEach(el => { - htmlList.push(layouts[el.layout](el)) - }) - const htmlStr = htmlList.join('\n') - - let temp = buildFormTemplate(conf, htmlStr, type) - if (type === 'dialog') { - temp = dialogWrapper(temp) - } - confGlobal = null - return temp -} +/* eslint-disable max-len */ +import { trigger } from './config' + +let confGlobal +let someSpanIsNot24 + +export function dialogWrapper(str) { + return ` + ${str} +
+ 取消 + 确定 +
+
` +} + +export function vueTemplate(str) { + return `` +} + +export function vueScript(str) { + return `` +} + +export function cssStyle(cssStr) { + return `` +} + +function buildFormTemplate(conf, child, type) { + let labelPosition = '' + if (conf.labelPosition !== 'right') { + labelPosition = `label-position="${conf.labelPosition}"` + } + const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : '' + let str = ` + ${child} + ${buildFromBtns(conf, type)} + ` + if (someSpanIsNot24) { + str = ` + ${str} + ` + } + return str +} + +function buildFromBtns(conf, type) { + let str = '' + if (conf.formBtns && type === 'file') { + str = ` + 提交 + 重置 + ` + if (someSpanIsNot24) { + str = ` + ${str} + ` + } + } + return str +} + +// span不为24的用el-col包裹 +function colWrapper(element, str) { + if (someSpanIsNot24 || element.span !== 24) { + return ` + ${str} + ` + } + return str +} + +const layouts = { + colFormItem(element) { + let labelWidth = '' + if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) { + labelWidth = `label-width="${element.labelWidth}px"` + } + const required = !trigger[element.tag] && element.required ? 'required' : '' + const tagDom = tags[element.tag] ? tags[element.tag](element) : null + let str = ` + ${tagDom} + ` + str = colWrapper(element, str) + return str + }, + rowFormItem(element) { + const type = element.type === 'default' ? '' : `type="${element.type}"` + const justify = element.type === 'default' ? '' : `justify="${element.justify}"` + const align = element.type === 'default' ? '' : `align="${element.align}"` + const gutter = element.gutter ? `gutter="${element.gutter}"` : '' + const children = element.children.map(el => layouts[el.layout](el)) + let str = ` + ${children.join('\n')} + ` + str = colWrapper(element, str) + return str + } +} + +const tags = { + 'el-button': el => { + const { + tag, disabled + } = attrBuilder(el) + const type = el.type ? `type="${el.type}"` : '' + const icon = el.icon ? `icon="${el.icon}"` : '' + const size = el.size ? `size="${el.size}"` : '' + let child = buildElButtonChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` + }, + 'el-input': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : '' + const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : '' + const readonly = el.readonly ? 'readonly' : '' + const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : '' + const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : '' + const showPassword = el['show-password'] ? 'show-password' : '' + const type = el.type ? `type="${el.type}"` : '' + const autosize = el.autosize && el.autosize.minRows + ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"` + : '' + let child = buildElInputChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}` + }, + 'el-input-number': el => { + const { disabled, vModel, placeholder } = attrBuilder(el) + const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : '' + const min = el.min ? `:min='${el.min}'` : '' + const max = el.max ? `:max='${el.max}'` : '' + const step = el.step ? `:step='${el.step}'` : '' + const stepStrictly = el['step-strictly'] ? 'step-strictly' : '' + const precision = el.precision ? `:precision='${el.precision}'` : '' + + return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>` + }, + 'el-select': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const filterable = el.filterable ? 'filterable' : '' + const multiple = el.multiple ? 'multiple' : '' + let child = buildElSelectChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}` + }, + 'el-radio-group': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + let child = buildElRadioGroupChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${size} ${disabled}>${child}` + }, + 'el-checkbox-group': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + const min = el.min ? `:min="${el.min}"` : '' + const max = el.max ? `:max="${el.max}"` : '' + let child = buildElCheckboxGroupChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}` + }, + 'el-switch': el => { + const { disabled, vModel } = attrBuilder(el) + const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : '' + const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : '' + const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : '' + const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : '' + const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : '' + const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : '' + + return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>` + }, + 'el-cascader': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const options = el.options ? `:options="${el.vModel}Options"` : '' + const props = el.props ? `:props="${el.vModel}Props"` : '' + const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"' + const filterable = el.filterable ? 'filterable' : '' + const separator = el.separator === '/' ? '' : `separator="${el.separator}"` + + return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>` + }, + 'el-slider': el => { + const { disabled, vModel } = attrBuilder(el) + const min = el.min ? `:min='${el.min}'` : '' + const max = el.max ? `:max='${el.max}'` : '' + const step = el.step ? `:step='${el.step}'` : '' + const range = el.range ? 'range' : '' + const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : '' + + return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>` + }, + 'el-time-picker': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' + const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' + const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' + const isRange = el['is-range'] ? 'is-range' : '' + const format = el.format ? `format="${el.format}"` : '' + const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' + const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : '' + + return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>` + }, + 'el-date-picker': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' + const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' + const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' + const format = el.format ? `format="${el.format}"` : '' + const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' + const type = el.type === 'date' ? '' : `type="${el.type}"` + const readonly = el.readonly ? 'readonly' : '' + + return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>` + }, + 'el-rate': el => { + const { disabled, vModel } = attrBuilder(el) + const max = el.max ? `:max='${el.max}'` : '' + const allowHalf = el['allow-half'] ? 'allow-half' : '' + const showText = el['show-text'] ? 'show-text' : '' + const showScore = el['show-score'] ? 'show-score' : '' + + return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>` + }, + 'el-color-picker': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + const showAlpha = el['show-alpha'] ? 'show-alpha' : '' + const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : '' + + return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>` + }, + 'el-upload': el => { + const disabled = el.disabled ? ':disabled=\'true\'' : '' + const action = el.action ? `:action="${el.vModel}Action"` : '' + const multiple = el.multiple ? 'multiple' : '' + const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : '' + const accept = el.accept ? `accept="${el.accept}"` : '' + const name = el.name !== 'file' ? `name="${el.name}"` : '' + const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : '' + const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"` + const fileList = `:file-list="${el.vModel}fileList"` + const ref = `ref="${el.vModel}"` + let child = buildElUploadChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}` + } +} + +function attrBuilder(el) { + return { + vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`, + clearable: el.clearable ? 'clearable' : '', + placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '', + width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '', + disabled: el.disabled ? ':disabled=\'true\'' : '' + } +} + +// el-buttin 子级 +function buildElButtonChild(conf) { + const children = [] + if (conf.default) { + children.push(conf.default) + } + return children.join('\n') +} + +// el-input innerHTML +function buildElInputChild(conf) { + const children = [] + if (conf.prepend) { + children.push(``) + } + if (conf.append) { + children.push(``) + } + return children.join('\n') +} + +function buildElSelectChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + children.push(``) + } + return children.join('\n') +} + +function buildElRadioGroupChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio' + const border = conf.border ? 'border' : '' + children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) + } + return children.join('\n') +} + +function buildElCheckboxGroupChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox' + const border = conf.border ? 'border' : '' + children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) + } + return children.join('\n') +} + +function buildElUploadChild(conf) { + const list = [] + if (conf['list-type'] === 'picture-card') list.push('') + else list.push(`${conf.buttonText}`) + if (conf.showTip) list.push(`
只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`) + return list.join('\n') +} + +export function makeUpHtml(conf, type) { + const htmlList = [] + confGlobal = conf + someSpanIsNot24 = conf.fields.some(item => item.span !== 24) + conf.fields.forEach(el => { + htmlList.push(layouts[el.layout](el)) + }) + const htmlStr = htmlList.join('\n') + + let temp = buildFormTemplate(conf, htmlStr, type) + if (type === 'dialog') { + temp = dialogWrapper(temp) + } + confGlobal = null + return temp +} diff --git a/ruoyi-ui/src/utils/generator/js.js b/ruoyi-ui/src/utils/generator/js.js index 81afc7004..35e3e21a7 100644 --- a/ruoyi-ui/src/utils/generator/js.js +++ b/ruoyi-ui/src/utils/generator/js.js @@ -1,236 +1,236 @@ -import { isArray } from 'util' -import { exportDefault, titleCase } from '@/utils/index' -import { trigger } from './config' - -const units = { - KB: '1024', - MB: '1024 / 1024', - GB: '1024 / 1024 / 1024' -} -let confGlobal -const inheritAttrs = { - file: '', - dialog: 'inheritAttrs: false,' -} - - -export function makeUpJs(conf, type) { - confGlobal = conf = JSON.parse(JSON.stringify(conf)) - const dataList = [] - const ruleList = [] - const optionsList = [] - const propsList = [] - const methodList = mixinMethod(type) - const uploadVarList = [] - - conf.fields.forEach(el => { - buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - - const script = buildexport( - conf, - type, - dataList.join('\n'), - ruleList.join('\n'), - optionsList.join('\n'), - uploadVarList.join('\n'), - propsList.join('\n'), - methodList.join('\n') - ) - confGlobal = null - return script -} - -function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) { - buildData(el, dataList) - buildRules(el, ruleList) - - if (el.options && el.options.length) { - buildOptions(el, optionsList) - if (el.dataType === 'dynamic') { - const model = `${el.vModel}Options` - const options = titleCase(model) - buildOptionMethod(`get${options}`, model, methodList) - } - } - - if (el.props && el.props.props) { - buildProps(el, propsList) - } - - if (el.action && el.tag === 'el-upload') { - uploadVarList.push( - `${el.vModel}Action: '${el.action}', - ${el.vModel}fileList: [],` - ) - methodList.push(buildBeforeUpload(el)) - if (!el['auto-upload']) { - methodList.push(buildSubmitUpload(el)) - } - } - - if (el.children) { - el.children.forEach(el2 => { - buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - } -} - -function mixinMethod(type) { - const list = []; const - minxins = { - file: confGlobal.formBtns ? { - submitForm: `submitForm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - // TODO 提交表单 - }) - },`, - resetForm: `resetForm() { - this.$refs['${confGlobal.formRef}'].resetFields() - },` - } : null, - dialog: { - onOpen: 'onOpen() {},', - onClose: `onClose() { - this.$refs['${confGlobal.formRef}'].resetFields() - },`, - close: `close() { - this.$emit('update:visible', false) - },`, - handelConfirm: `handelConfirm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - this.close() - }) - },` - } - } - - const methods = minxins[type] - if (methods) { - Object.keys(methods).forEach(key => { - list.push(methods[key]) - }) - } - - return list -} - -function buildData(conf, dataList) { - if (conf.vModel === undefined) return - let defaultValue - if (typeof (conf.defaultValue) === 'string' && !conf.multiple) { - defaultValue = `'${conf.defaultValue}'` - } else { - defaultValue = `${JSON.stringify(conf.defaultValue)}` - } - dataList.push(`${conf.vModel}: ${defaultValue},`) -} - -function buildRules(conf, ruleList) { - if (conf.vModel === undefined) return - const rules = [] - if (trigger[conf.tag]) { - if (conf.required) { - const type = isArray(conf.defaultValue) ? 'type: \'array\',' : '' - let message = isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder - if (message === undefined) message = `${conf.label}不能为空` - rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`) - } - if (conf.regList && isArray(conf.regList)) { - conf.regList.forEach(item => { - if (item.pattern) { - rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`) - } - }) - } - ruleList.push(`${conf.vModel}: [${rules.join(',')}],`) - } -} - -function buildOptions(conf, optionsList) { - if (conf.vModel === undefined) return - if (conf.dataType === 'dynamic') { conf.options = [] } - const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},` - optionsList.push(str) -} - -function buildProps(conf, propsList) { - if (conf.dataType === 'dynamic') { - conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey) - conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey) - conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey) - } - const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},` - propsList.push(str) -} - -function buildBeforeUpload(conf) { - const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const - returnList = [] - if (conf.fileSize) { - rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize} - if(!isRightSize){ - this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}') - }` - returnList.push('isRightSize') - } - if (conf.accept) { - acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type) - if(!isAccept){ - this.$message.error('应该选择${conf.accept}类型的文件') - }` - returnList.push('isAccept') - } - const str = `${conf.vModel}BeforeUpload(file) { - ${rightSizeCode} - ${acceptCode} - return ${returnList.join('&&')} - },` - return returnList.length ? str : '' -} - -function buildSubmitUpload(conf) { - const str = `submitUpload() { - this.$refs['${conf.vModel}'].submit() - },` - return str -} - -function buildOptionMethod(methodName, model, methodList) { - const str = `${methodName}() { - // TODO 发起请求获取数据 - this.${model} - },` - methodList.push(str) -} - -function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) { - const str = `${exportDefault}{ - ${inheritAttrs[type]} - components: {}, - props: [], - data () { - return { - ${conf.formModel}: { - ${data} - }, - ${conf.formRules}: { - ${rules} - }, - ${uploadVar} - ${selectOptions} - ${props} - } - }, - computed: {}, - watch: {}, - created () {}, - mounted () {}, - methods: { - ${methods} - } -}` - return str -} +import { isArray } from 'util' +import { exportDefault, titleCase } from '@/utils/index' +import { trigger } from './config' + +const units = { + KB: '1024', + MB: '1024 / 1024', + GB: '1024 / 1024 / 1024' +} +let confGlobal +const inheritAttrs = { + file: '', + dialog: 'inheritAttrs: false,' +} + + +export function makeUpJs(conf, type) { + confGlobal = conf = JSON.parse(JSON.stringify(conf)) + const dataList = [] + const ruleList = [] + const optionsList = [] + const propsList = [] + const methodList = mixinMethod(type) + const uploadVarList = [] + + conf.fields.forEach(el => { + buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) + }) + + const script = buildexport( + conf, + type, + dataList.join('\n'), + ruleList.join('\n'), + optionsList.join('\n'), + uploadVarList.join('\n'), + propsList.join('\n'), + methodList.join('\n') + ) + confGlobal = null + return script +} + +function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) { + buildData(el, dataList) + buildRules(el, ruleList) + + if (el.options && el.options.length) { + buildOptions(el, optionsList) + if (el.dataType === 'dynamic') { + const model = `${el.vModel}Options` + const options = titleCase(model) + buildOptionMethod(`get${options}`, model, methodList) + } + } + + if (el.props && el.props.props) { + buildProps(el, propsList) + } + + if (el.action && el.tag === 'el-upload') { + uploadVarList.push( + `${el.vModel}Action: '${el.action}', + ${el.vModel}fileList: [],` + ) + methodList.push(buildBeforeUpload(el)) + if (!el['auto-upload']) { + methodList.push(buildSubmitUpload(el)) + } + } + + if (el.children) { + el.children.forEach(el2 => { + buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) + }) + } +} + +function mixinMethod(type) { + const list = []; const + minxins = { + file: confGlobal.formBtns ? { + submitForm: `submitForm() { + this.$refs['${confGlobal.formRef}'].validate(valid => { + if(!valid) return + // TODO 提交表单 + }) + },`, + resetForm: `resetForm() { + this.$refs['${confGlobal.formRef}'].resetFields() + },` + } : null, + dialog: { + onOpen: 'onOpen() {},', + onClose: `onClose() { + this.$refs['${confGlobal.formRef}'].resetFields() + },`, + close: `close() { + this.$emit('update:visible', false) + },`, + handleConfirm: `handleConfirm() { + this.$refs['${confGlobal.formRef}'].validate(valid => { + if(!valid) return + this.close() + }) + },` + } + } + + const methods = minxins[type] + if (methods) { + Object.keys(methods).forEach(key => { + list.push(methods[key]) + }) + } + + return list +} + +function buildData(conf, dataList) { + if (conf.vModel === undefined) return + let defaultValue + if (typeof (conf.defaultValue) === 'string' && !conf.multiple) { + defaultValue = `'${conf.defaultValue}'` + } else { + defaultValue = `${JSON.stringify(conf.defaultValue)}` + } + dataList.push(`${conf.vModel}: ${defaultValue},`) +} + +function buildRules(conf, ruleList) { + if (conf.vModel === undefined) return + const rules = [] + if (trigger[conf.tag]) { + if (conf.required) { + const type = isArray(conf.defaultValue) ? 'type: \'array\',' : '' + let message = isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder + if (message === undefined) message = `${conf.label}不能为空` + rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`) + } + if (conf.regList && isArray(conf.regList)) { + conf.regList.forEach(item => { + if (item.pattern) { + rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`) + } + }) + } + ruleList.push(`${conf.vModel}: [${rules.join(',')}],`) + } +} + +function buildOptions(conf, optionsList) { + if (conf.vModel === undefined) return + if (conf.dataType === 'dynamic') { conf.options = [] } + const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},` + optionsList.push(str) +} + +function buildProps(conf, propsList) { + if (conf.dataType === 'dynamic') { + conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey) + conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey) + conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey) + } + const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},` + propsList.push(str) +} + +function buildBeforeUpload(conf) { + const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const + returnList = [] + if (conf.fileSize) { + rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize} + if(!isRightSize){ + this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}') + }` + returnList.push('isRightSize') + } + if (conf.accept) { + acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type) + if(!isAccept){ + this.$message.error('应该选择${conf.accept}类型的文件') + }` + returnList.push('isAccept') + } + const str = `${conf.vModel}BeforeUpload(file) { + ${rightSizeCode} + ${acceptCode} + return ${returnList.join('&&')} + },` + return returnList.length ? str : '' +} + +function buildSubmitUpload(conf) { + const str = `submitUpload() { + this.$refs['${conf.vModel}'].submit() + },` + return str +} + +function buildOptionMethod(methodName, model, methodList) { + const str = `${methodName}() { + // TODO 发起请求获取数据 + this.${model} + },` + methodList.push(str) +} + +function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) { + const str = `${exportDefault}{ + ${inheritAttrs[type]} + components: {}, + props: [], + data () { + return { + ${conf.formModel}: { + ${data} + }, + ${conf.formRules}: { + ${rules} + }, + ${uploadVar} + ${selectOptions} + ${props} + } + }, + computed: {}, + watch: {}, + created () {}, + mounted () {}, + methods: { + ${methods} + } +}` + return str +} diff --git a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue b/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue index 99f9eb2dc..b5c2e2e49 100644 --- a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue +++ b/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue @@ -1,106 +1,106 @@ - - + + diff --git a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue b/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue index 477c010b9..fa7f0b285 100644 --- a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue +++ b/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue @@ -1,149 +1,149 @@ - - + + diff --git a/ruoyi-ui/src/views/tool/build/index.vue b/ruoyi-ui/src/views/tool/build/index.vue index e51140875..d679422e8 100644 --- a/ruoyi-ui/src/views/tool/build/index.vue +++ b/ruoyi-ui/src/views/tool/build/index.vue @@ -1,783 +1,783 @@ - - - - - + + + + + From c99eb98001e22f671ce514268231edcd27fc73ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=9A=E5=B1=BF?= <1491182878@qq.com> Date: Wed, 9 Feb 2022 09:10:50 +0800 Subject: [PATCH 029/178] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/utils/DictUtils.java | 3 +-- .../java/com/ruoyi/common/utils/ExceptionUtil.java | 3 +-- .../java/com/ruoyi/common/utils/ServletUtils.java | 14 ++++---------- .../com/ruoyi/common/utils/VerifyCodeUtils.java | 11 +++-------- .../ruoyi/common/utils/file/FileUploadUtils.java | 14 +++++++------- .../com/ruoyi/common/utils/file/ImageUtils.java | 2 +- .../com/ruoyi/common/utils/http/HttpHelper.java | 3 ++- .../com/ruoyi/common/utils/http/HttpUtils.java | 10 +++++----- .../com/ruoyi/common/utils/ip/AddressUtils.java | 3 +-- .../java/com/ruoyi/common/utils/poi/ExcelUtil.java | 4 ++-- .../java/com/ruoyi/common/utils/sign/Md5Utils.java | 3 ++- .../java/com/ruoyi/common/utils/sql/SqlUtil.java | 6 ++---- .../java/com/ruoyi/generator/util/GenUtils.java | 6 ++---- .../com/ruoyi/generator/util/VelocityUtils.java | 3 +-- .../system/service/impl/SysDeptServiceImpl.java | 7 ++----- .../system/service/impl/SysMenuServiceImpl.java | 2 +- 16 files changed, 37 insertions(+), 57 deletions(-) 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 16e7fca11..cf6eaf4a4 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 @@ -41,8 +41,7 @@ public class DictUtils Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); if (StringUtils.isNotNull(cacheObj)) { - List dictDatas = StringUtils.cast(cacheObj); - return dictDatas; + return StringUtils.cast(cacheObj); } return null; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java index f35aa0468..50b10fe89 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java @@ -18,8 +18,7 @@ public class ExceptionUtil { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw, true)); - String str = sw.toString(); - return str; + return sw.toString(); } public static String getRootErrorMessage(Exception e) 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 a10c8edb6..d67b24635 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 @@ -99,9 +99,8 @@ public class ServletUtils * * @param response 渲染对象 * @param string 待渲染的字符串 - * @return null */ - public static String renderString(HttpServletResponse response, String string) + public static void renderString(HttpServletResponse response, String string) { try { @@ -114,7 +113,6 @@ public class ServletUtils { e.printStackTrace(); } - return null; } /** @@ -125,13 +123,13 @@ public class ServletUtils public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); - if (accept != null && accept.indexOf("application/json") != -1) + if (accept != null && accept.contains("application/json")) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); - if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) + if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { return true; } @@ -143,10 +141,6 @@ public class ServletUtils } String ajax = request.getParameter("__ajax"); - if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) - { - return true; - } - return false; + return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java index 04171810f..45b80bb56 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java @@ -208,7 +208,6 @@ public class VerifyCodeUtils int period = random.nextInt(40) + 10; // 50; - boolean borderGap = true; int frames = 20; int phase = 7; for (int i = 0; i < w1; i++) @@ -216,13 +215,9 @@ public class VerifyCodeUtils double d = (double) (period >> 1) * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); g.copyArea(i, 0, 1, h1, 0, (int) d); - if (borderGap) - { - g.setColor(color); - g.drawLine(i, (int) d, i, 0); - g.drawLine(i, (int) d + h1, i, h1); - } - + g.setColor(color); + g.drawLine(i, (int) d, i, 0); + g.drawLine(i, (int) d + h1, i, h1); } } } \ No newline at end of file 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 76b647a10..b905112a8 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 @@ -2,6 +2,8 @@ package com.ruoyi.common.utils.file; import java.io.File; import java.io.IOException; +import java.util.Objects; + import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.config.RuoYiConfig; @@ -100,7 +102,7 @@ public class FileUploadUtils throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException { - int fileNamelength = file.getOriginalFilename().length(); + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); @@ -112,8 +114,7 @@ public class FileUploadUtils File desc = getAbsoluteFile(baseDir, fileName); file.transferTo(desc); - String pathFileName = getPathFileName(baseDir, fileName); - return pathFileName; + return getPathFileName(baseDir, fileName); } /** @@ -145,8 +146,7 @@ public class FileUploadUtils { int dirLastIndex = RuoYiConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); - String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; - return pathFileName; + return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; } /** @@ -161,7 +161,7 @@ public class FileUploadUtils throws FileSizeLimitExceededException, InvalidExtensionException { long size = file.getSize(); - if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) + if (size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); } @@ -228,7 +228,7 @@ public class FileUploadUtils String extension = FilenameUtils.getExtension(file.getOriginalFilename()); if (StringUtils.isEmpty(extension)) { - extension = MimeTypeUtils.getExtension(file.getContentType()); + extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } return extension; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java index 3dfc9bbce..485cdd25e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -59,7 +59,7 @@ public class ImageUtils /** * 读取文件为字节数据 * - * @param key 地址 + * @param url 地址 * @return 字节数据 */ public static byte[] readFile(String url) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java index e34fa5ae6..14a0be553 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import javax.servlet.ServletRequest; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; @@ -25,7 +26,7 @@ public class HttpHelper BufferedReader reader = null; try (InputStream inputStream = request.getInputStream()) { - reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8"))); + reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); String line = ""; while ((line = reader.readLine()) != null) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java index f57baf0fc..f82bef661 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java @@ -9,6 +9,7 @@ import java.net.ConnectException; import java.net.SocketTimeoutException; import java.net.URL; import java.net.URLConnection; +import java.nio.charset.StandardCharsets; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; @@ -130,9 +131,8 @@ public class HttpUtils StringBuilder result = new StringBuilder(); try { - String urlNameString = url; - log.info("sendPost - {}", urlNameString); - URL realUrl = new URL(urlNameString); + log.info("sendPost - {}", url); + URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); @@ -144,7 +144,7 @@ public class HttpUtils out = new PrintWriter(conn.getOutputStream()); out.print(param); out.flush(); - in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { @@ -218,7 +218,7 @@ public class HttpUtils { if (ret != null && !"".equals(ret.trim())) { - result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); + result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8)); } } log.info("recv - {}", result); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java index 11faa3236..8b18da9fb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java @@ -25,7 +25,6 @@ public class AddressUtils public static String getRealAddressByIP(String ip) { - String address = UNKNOWN; // 内网不查询 if (IpUtils.internalIp(ip)) { @@ -51,6 +50,6 @@ public class AddressUtils log.error("获取地理位置异常 {}", ip); } } - return address; + return UNKNOWN; } } 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 22b6b574d..aa77e9b66 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 @@ -1122,7 +1122,7 @@ public class ExcelUtil if (StringUtils.isNotEmpty(excel.targetAttr())) { String target = excel.targetAttr(); - if (target.indexOf(".") > -1) + if (target.contains(".")) { String[] targets = target.split("[.]"); for (String name : targets) @@ -1217,7 +1217,7 @@ public class ExcelUtil for (Object[] os : this.fields) { Excel excel = (Excel) os[1]; - maxHeight = maxHeight > excel.height() ? maxHeight : excel.height(); + maxHeight = Math.max(maxHeight, excel.height()); } return (short) (maxHeight * 20); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java index df1e23f8d..8fb0fc5e4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.utils.sign; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +56,7 @@ public class Md5Utils { try { - return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8"); + return new String(toHex(md5(s)).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); } catch (Exception e) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index 71a7ae10f..03832f90e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -50,10 +50,8 @@ public class SqlUtil return; } String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|"); - for (int i = 0; i < sqlKeywords.length; i++) - { - if (StringUtils.indexOfIgnoreCase(value, sqlKeywords[i]) > -1) - { + for (String sqlKeyword : sqlKeywords) { + if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) { throw new UtilException("参数存在SQL注入风险"); } } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index e66a514b7..c3ccdae3c 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -151,8 +151,7 @@ public class GenUtils { int lastIndex = packageName.lastIndexOf("."); int nameLength = packageName.length(); - String moduleName = StringUtils.substring(packageName, lastIndex + 1, nameLength); - return moduleName; + return StringUtils.substring(packageName, lastIndex + 1, nameLength); } /** @@ -165,8 +164,7 @@ public class GenUtils { int lastIndex = tableName.lastIndexOf("_"); int nameLength = tableName.length(); - String businessName = StringUtils.substring(tableName, lastIndex + 1, nameLength); - return businessName; + return StringUtils.substring(tableName, lastIndex + 1, nameLength); } /** diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java index 2ae6802e3..6bce127c5 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -228,8 +228,7 @@ public class VelocityUtils public static String getPackagePrefix(String packageName) { int lastIndex = packageName.lastIndexOf("."); - String basePackage = StringUtils.substring(packageName, 0, lastIndex); - return basePackage; + return StringUtils.substring(packageName, 0, lastIndex); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 02288c56f..70e794a7f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -63,12 +63,9 @@ public class SysDeptServiceImpl implements ISysDeptService { tempList.add(dept.getDeptId()); } - for (Iterator iterator = depts.iterator(); iterator.hasNext();) - { - SysDept dept = (SysDept) iterator.next(); + for (SysDept dept : depts) { // 如果是顶级节点, 遍历该父节点的所有子节点 - if (!tempList.contains(dept.getParentId())) - { + if (!tempList.contains(dept.getParentId())) { recursionFn(depts, dept); returnList.add(dept); } 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 d113cfe0e..ece0159dd 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 @@ -498,7 +498,7 @@ public class SysMenuServiceImpl implements ISysMenuService */ private boolean hasChild(List list, SysMenu t) { - return getChildList(list, t).size() > 0 ? true : false; + return getChildList(list, t).size() > 0; } /** From d99dd4b875aff23b2029716cbc6d1cbf559fe860 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, 9 Feb 2022 14:52:33 +0800 Subject: [PATCH 030/178] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4oss=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E5=BC=80=E5=85=B3=20=E4=BD=BF=E7=94=A8=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=9B=B4=E6=8E=A5=E8=B0=83=E7=94=A8=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysConfigController.java | 11 +++++++++++ .../controller/system/SysOssController.java | 18 +----------------- .../service/impl/SysConfigServiceImpl.java | 8 +++++++- ruoyi-ui/src/api/system/config.js | 12 ++++++++++++ ruoyi-ui/src/api/system/oss.js | 10 ---------- ruoyi-ui/src/main.js | 3 ++- ruoyi-ui/src/views/system/oss/index.vue | 4 ++-- 7 files changed, 35 insertions(+), 31 deletions(-) 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 7c387901a..8cbea8ebf 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 @@ -101,6 +101,17 @@ public class SysConfigController extends BaseController { return toAjax(configService.updateConfig(config)); } + /** + * 根据参数键名修改参数配置 + */ + @ApiOperation("根据参数键名修改参数配置") + @SaCheckPermission("system:config:edit") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping("/updateByKey") + public R updateByKey(@RequestBody SysConfig config) { + return toAjax(configService.updateConfig(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 15b30750a..c36da4890 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 @@ -9,8 +9,8 @@ import cn.hutool.http.HttpUtil; 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.QueryGroup; import com.ruoyi.common.enums.BusinessType; @@ -123,20 +123,4 @@ public class SysOssController extends BaseController { return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0); } - /** - * 变更图片列表预览状态 - */ - @ApiOperation("变更图片列表预览状态") - @SaCheckPermission("system:oss:edit") - @Log(title = "OSS对象存储", businessType = BusinessType.UPDATE) - @PutMapping("/changePreviewListResource") - public R changePreviewListResource(@RequestBody String body) { - Map map = JsonUtils.parseMap(body); - SysConfig sysConfig = new SysConfig(); - sysConfig.setConfigKey(OssConstant.PEREVIEW_LIST_RESOURCE_KEY); - SysConfig config = iSysConfigService.getOne(sysConfig); - config.setConfigValue(map.get("previewListResource").toString()); - return toAjax(iSysConfigService.updateConfig(config)); - } - } 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 3170700bb..9e6e6c31b 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 @@ -136,7 +136,13 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { */ @Override public int updateConfig(SysConfig config) { - int row = baseMapper.updateById(config); + int row = 0; + if (config.getConfigId() != null) { + row = baseMapper.updateById(config); + } else { + row = baseMapper.update(config, new LambdaQueryWrapper() + .eq(SysConfig::getConfigKey, config.getConfigKey())); + } if (row > 0) { RedisUtils.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } diff --git a/ruoyi-ui/src/api/system/config.js b/ruoyi-ui/src/api/system/config.js index c1932848d..02f0cfcd4 100644 --- a/ruoyi-ui/src/api/system/config.js +++ b/ruoyi-ui/src/api/system/config.js @@ -43,6 +43,18 @@ export function updateConfig(data) { }) } +// 修改参数配置 +export function updateConfigByKey(key, value) { + return request({ + url: '/system/config/updateByKey', + method: 'put', + data: { + configKey: key, + configValue: value + } + }) +} + // 删除参数配置 export function delConfig(configId) { return request({ diff --git a/ruoyi-ui/src/api/system/oss.js b/ruoyi-ui/src/api/system/oss.js index b98bd1f0f..83adca54e 100644 --- a/ruoyi-ui/src/api/system/oss.js +++ b/ruoyi-ui/src/api/system/oss.js @@ -17,13 +17,3 @@ export function delOss(ossId) { }) } -export function changePreviewListResource(previewListResource) { - const data = { - previewListResource - } - return request({ - url: '/system/oss/changePreviewListResource', - method: 'put', - data: data - }) -} diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js index 13c6cf290..1e0144f40 100644 --- a/ruoyi-ui/src/main.js +++ b/ruoyi-ui/src/main.js @@ -17,7 +17,7 @@ import { download } from '@/utils/request' import './assets/icons' // icon import './permission' // permission control import { getDicts } from "@/api/system/dict/data"; -import { getConfigKey } from "@/api/system/config"; +import { getConfigKey, updateConfigByKey } from "@/api/system/config"; import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; // 分页组件 import Pagination from "@/components/Pagination"; @@ -41,6 +41,7 @@ import DictData from '@/components/DictData' // 全局方法挂载 Vue.prototype.getDicts = getDicts Vue.prototype.getConfigKey = getConfigKey +Vue.prototype.updateConfigByKey = updateConfigByKey Vue.prototype.parseTime = parseTime Vue.prototype.resetForm = resetForm Vue.prototype.addDateRange = addDateRange diff --git a/ruoyi-ui/src/views/system/oss/index.vue b/ruoyi-ui/src/views/system/oss/index.vue index fdfed1650..ac8b02972 100644 --- a/ruoyi-ui/src/views/system/oss/index.vue +++ b/ruoyi-ui/src/views/system/oss/index.vue @@ -187,7 +187,7 @@ - - \ No newline at end of file + + + + + From d9859de7569271c58bfa3c17fe9ec883a1da7f99 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 12 Feb 2022 13:13:04 +0800 Subject: [PATCH 042/178] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/utils/VerifyCodeUtils.java | 223 ------------------ .../common/utils/file/FileUploadUtils.java | 1 - .../ruoyi/common/utils/http/HttpHelper.java | 1 - .../com/ruoyi/common/utils/sql/SqlUtil.java | 6 +- .../system/service/ISysLogininforService.java | 1 + .../service/impl/SysDeptServiceImpl.java | 6 +- .../impl/SysLogininforServiceImpl.java | 1 + 7 files changed, 10 insertions(+), 229 deletions(-) delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java deleted file mode 100644 index 45b80bb56..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.ruoyi.common.utils; - -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.OutputStream; -import java.security.SecureRandom; -import java.util.Arrays; -import java.util.Random; -import javax.imageio.ImageIO; - -/** - * 验证码工具类 - * - * @author ruoyi - */ -public class VerifyCodeUtils -{ - // 使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 - public static final String VERIFY_CODES = "123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; - - private static Random random = new SecureRandom(); - - /** - * 使用系统默认字符源生成验证码 - * - * @param verifySize 验证码长度 - * @return - */ - public static String generateVerifyCode(int verifySize) - { - return generateVerifyCode(verifySize, VERIFY_CODES); - } - - /** - * 使用指定源生成验证码 - * - * @param verifySize 验证码长度 - * @param sources 验证码字符源 - * @return - */ - public static String generateVerifyCode(int verifySize, String sources) - { - if (sources == null || sources.length() == 0) - { - sources = VERIFY_CODES; - } - int codesLen = sources.length(); - Random rand = new Random(System.currentTimeMillis()); - StringBuilder verifyCode = new StringBuilder(verifySize); - for (int i = 0; i < verifySize; i++) - { - verifyCode.append(sources.charAt(rand.nextInt(codesLen - 1))); - } - return verifyCode.toString(); - } - - /** - * 输出指定验证码图片流 - * - * @param w - * @param h - * @param os - * @param code - * @throws IOException - */ - public static void outputImage(int w, int h, OutputStream os, String code) throws IOException - { - int verifySize = code.length(); - BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); - Random rand = new Random(); - Graphics2D g2 = image.createGraphics(); - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - Color[] colors = new Color[5]; - Color[] colorSpaces = new Color[] { Color.WHITE, Color.CYAN, Color.GRAY, Color.LIGHT_GRAY, Color.MAGENTA, - Color.ORANGE, Color.PINK, Color.YELLOW }; - float[] fractions = new float[colors.length]; - for (int i = 0; i < colors.length; i++) - { - colors[i] = colorSpaces[rand.nextInt(colorSpaces.length)]; - fractions[i] = rand.nextFloat(); - } - Arrays.sort(fractions); - - g2.setColor(Color.GRAY);// 设置边框色 - g2.fillRect(0, 0, w, h); - - Color c = getRandColor(200, 250); - g2.setColor(c);// 设置背景色 - g2.fillRect(0, 2, w, h - 4); - - // 绘制干扰线 - Random random = new Random(); - g2.setColor(getRandColor(160, 200));// 设置线条的颜色 - for (int i = 0; i < 20; i++) - { - int x = random.nextInt(w - 1); - int y = random.nextInt(h - 1); - int xl = random.nextInt(6) + 1; - int yl = random.nextInt(12) + 1; - g2.drawLine(x, y, x + xl + 40, y + yl + 20); - } - - // 添加噪点 - float yawpRate = 0.05f;// 噪声率 - int area = (int) (yawpRate * w * h); - for (int i = 0; i < area; i++) - { - int x = random.nextInt(w); - int y = random.nextInt(h); - int rgb = getRandomIntColor(); - image.setRGB(x, y, rgb); - } - - shear(g2, w, h, c);// 使图片扭曲 - - g2.setColor(getRandColor(100, 160)); - int fontSize = h - 4; - Font font = new Font("Algerian", Font.ITALIC, fontSize); - g2.setFont(font); - char[] chars = code.toCharArray(); - for (int i = 0; i < verifySize; i++) - { - AffineTransform affine = new AffineTransform(); - affine.setToRotation(Math.PI / 4 * rand.nextDouble() * (rand.nextBoolean() ? 1 : -1), - (w / verifySize) * i + fontSize / 2, h / 2); - g2.setTransform(affine); - g2.drawChars(chars, i, 1, ((w - 10) / verifySize) * i + 5, h / 2 + fontSize / 2 - 10); - } - - g2.dispose(); - ImageIO.write(image, "jpg", os); - } - - private static Color getRandColor(int fc, int bc) - { - if (fc > 255) { - fc = 255; - } - if (bc > 255) { - bc = 255; - } - int r = fc + random.nextInt(bc - fc); - int g = fc + random.nextInt(bc - fc); - int b = fc + random.nextInt(bc - fc); - return new Color(r, g, b); - } - - private static int getRandomIntColor() - { - int[] rgb = getRandomRgb(); - int color = 0; - for (int c : rgb) - { - color = color << 8; - color = color | c; - } - return color; - } - - private static int[] getRandomRgb() - { - int[] rgb = new int[3]; - for (int i = 0; i < 3; i++) - { - rgb[i] = random.nextInt(255); - } - return rgb; - } - - private static void shear(Graphics g, int w1, int h1, Color color) - { - shearX(g, w1, h1, color); - shearY(g, w1, h1, color); - } - - private static void shearX(Graphics g, int w1, int h1, Color color) - { - - int period = random.nextInt(2); - - boolean borderGap = true; - int frames = 1; - int phase = random.nextInt(2); - - for (int i = 0; i < h1; i++) - { - double d = (double) (period >> 1) - * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); - g.copyArea(0, i, w1, 1, (int) d, 0); - if (borderGap) - { - g.setColor(color); - g.drawLine((int) d, i, 0, i); - g.drawLine((int) d + w1, i, w1, i); - } - } - - } - - private static void shearY(Graphics g, int w1, int h1, Color color) - { - - int period = random.nextInt(40) + 10; // 50; - - int frames = 20; - int phase = 7; - for (int i = 0; i < w1; i++) - { - double d = (double) (period >> 1) - * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); - g.copyArea(i, 0, 1, h1, 0, (int) d); - g.setColor(color); - g.drawLine(i, (int) d, i, 0); - g.drawLine(i, (int) d + h1, i, h1); - } - } -} \ No newline at end of file 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 b905112a8..eba9b1af9 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 @@ -3,7 +3,6 @@ package com.ruoyi.common.utils.file; import java.io.File; import java.io.IOException; import java.util.Objects; - import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.config.RuoYiConfig; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java index 14a0be553..8baad384a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java @@ -4,7 +4,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import javax.servlet.ServletRequest; import org.apache.commons.lang3.exception.ExceptionUtils; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index 03832f90e..524384919 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -50,8 +50,10 @@ public class SqlUtil return; } String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|"); - for (String sqlKeyword : sqlKeywords) { - if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) { + for (String sqlKeyword : sqlKeywords) + { + if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) + { throw new UtilException("参数存在SQL注入风险"); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java index 928247765..0a8320838 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java @@ -29,6 +29,7 @@ public interface ISysLogininforService * 批量删除系统登录日志 * * @param infoIds 需要删除的登录日志ID + * @return 结果 */ public int deleteLogininforByIds(Long[] infoIds); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 70e794a7f..32ec0077f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -63,9 +63,11 @@ public class SysDeptServiceImpl implements ISysDeptService { tempList.add(dept.getDeptId()); } - for (SysDept dept : depts) { + for (SysDept dept : depts) + { // 如果是顶级节点, 遍历该父节点的所有子节点 - if (!tempList.contains(dept.getParentId())) { + if (!tempList.contains(dept.getParentId())) + { recursionFn(depts, dept); returnList.add(dept); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index c11d5870e..a5637aee2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -46,6 +46,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService * 批量删除系统登录日志 * * @param infoIds 需要删除的登录日志ID + * @return 结果 */ @Override public int deleteLogininforByIds(Long[] infoIds) From b7b4364db20e1f40f7b3ba5b42fe73c8e2f0dc7d Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 12 Feb 2022 13:14:09 +0800 Subject: [PATCH 043/178] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E4=BF=AE=E6=94=B9=E6=89=93=E5=BC=80=E6=96=B0?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/router/index.js | 2 +- ruoyi-ui/src/views/tool/gen/editTable.vue | 2 +- ruoyi-ui/src/views/tool/gen/index.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index e4ccf19a6..447f5b0fa 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -155,7 +155,7 @@ export const dynamicRoutes = [ permissions: ['tool:gen:edit'], children: [ { - path: 'index', + path: 'index/:tableId(\\d+)', component: () => import('@/views/tool/gen/editTable'), name: 'GenEdit', meta: { title: '修改生成配置', activeMenu: '/tool/gen' } diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue index 26571d935..5dc36c33b 100644 --- a/ruoyi-ui/src/views/tool/gen/editTable.vue +++ b/ruoyi-ui/src/views/tool/gen/editTable.vue @@ -159,7 +159,7 @@ export default { }; }, created() { - const tableId = this.$route.query && this.$route.query.tableId; + const tableId = this.$route.params && this.$route.params.tableId; if (tableId) { // 获取表详细信息 getGenTable(tableId).then(res => { diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue index 3b7c90230..98be64e4d 100644 --- a/ruoyi-ui/src/views/tool/gen/index.vue +++ b/ruoyi-ui/src/views/tool/gen/index.vue @@ -321,7 +321,7 @@ export default { /** 修改按钮操作 */ handleEditTable(row) { const tableId = row.tableId || this.ids[0]; - this.$router.push({ path: '/tool/gen-edit/index', query: { tableId: tableId, pageNum: this.queryParams.pageNum } }); + this.$router.push({ path: '/tool/gen-edit/index/' + tableId, query: { pageNum: this.queryParams.pageNum } }); }, /** 删除按钮操作 */ handleDelete(row) { From 21780d81067e48a1e13cd52520392290e025a95b Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 13 Feb 2022 21:06:18 +0800 Subject: [PATCH 044/178] =?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 --- .../java/com/ruoyi/common/utils/file/FileUploadUtils.java | 5 +---- .../main/java/com/ruoyi/common/utils/file/ImageUtils.java | 3 --- .../main/java/com/ruoyi/system/mapper/SysUserMapper.java | 2 +- .../com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 2 +- .../src/main/resources/mapper/system/SysMenuMapper.xml | 8 ++++---- 5 files changed, 7 insertions(+), 13 deletions(-) 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 eba9b1af9..1a89dd9c8 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 @@ -121,10 +121,7 @@ public class FileUploadUtils */ public static final String extractFilename(MultipartFile file) { - String fileName = file.getOriginalFilename(); - String extension = getExtension(file); - fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; - return fileName; + return DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + getExtension(file); } public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java index 485cdd25e..9687bf3b7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -1,7 +1,6 @@ package com.ruoyi.common.utils.file; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; @@ -65,7 +64,6 @@ public class ImageUtils public static byte[] readFile(String url) { InputStream in = null; - ByteArrayOutputStream baos = null; try { if (url.startsWith("http")) @@ -95,7 +93,6 @@ public class ImageUtils finally { IOUtils.closeQuietly(in); - IOUtils.closeQuietly(baos); } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 9190c9e3f..28713f6e6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -20,7 +20,7 @@ public interface SysUserMapper public List selectUserList(SysUser sysUser); /** - * 根据条件分页查询未已配用户角色列表 + * 根据条件分页查询已配用户角色列表 * * @param user 用户信息 * @return 用户信息集合信息 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 68dd15dd9..6ade26809 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -404,7 +404,7 @@ public class SysRoleServiceImpl implements ISysRoleService * 批量选择授权用户角色 * * @param roleId 角色ID - * @param userIds 需要删除的用户数据ID + * @param userIds 需要授权的用户数据ID * @return 结果 */ @Override diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 144adb1b9..fd5f6a313 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -28,7 +28,7 @@ - select menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time + select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time from sys_menu @@ -49,13 +49,13 @@