From f41bfdb8eba36ab3d38c11fff2328e6c11888d4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 01:55:01 +0800
Subject: [PATCH 001/155] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90Service=E7=9A=84=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=E8=AF=B4=E6=98=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/service/impl/SysDataScopeServiceImpl.java | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java
index 2803a59ed..4c86dcd06 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDataScopeServiceImpl.java
@@ -14,6 +14,14 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
+/**
+ * 数据权限 实现
+ *
+ * 注意: 此Service内不允许调用标注`数据权限`注解的方法
+ * 例如: deptMapper.selectList 此 selectList 方法标注了`数据权限`注解 会出现循环解析的问题
+ *
+ * @author Lion Li
+ */
@RequiredArgsConstructor
@Service("sdss")
public class SysDataScopeServiceImpl implements ISysDataScopeService {
From 00549c267f12844655b6e319b27da992230412a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 11:15:21 +0800
Subject: [PATCH 002/155] =?UTF-8?q?update=20=E7=AE=80=E5=8C=96=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E9=83=A8=E9=97=A8=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ruoyi/system/mapper/SysDeptMapper.java | 8 ++++---
.../service/impl/SysDeptServiceImpl.java | 10 +++++++-
.../resources/mapper/system/SysDeptMapper.xml | 23 ++-----------------
3 files changed, 16 insertions(+), 25 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 5c7e68b96..dcd7ea7e9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.mapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.ruoyi.common.annotation.DataColumn;
import com.ruoyi.common.annotation.DataPermission;
import com.ruoyi.common.core.domain.entity.SysDept;
@@ -18,13 +20,13 @@ public interface SysDeptMapper extends BaseMapperPlus selectDeptList(SysDept dept);
+ List selectDeptList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
/**
* 根据角色ID查询部门树信息
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 5cd3fe0e6..97a2617d4 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
@@ -46,7 +46,15 @@ public class SysDeptServiceImpl implements ISysDeptService {
*/
@Override
public List selectDeptList(SysDept dept) {
- return baseMapper.selectDeptList(dept);
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(SysDept::getDelFlag, "0")
+ .eq(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId())
+ .eq(ObjectUtil.isNotNull(dept.getParentId()), SysDept::getParentId, dept.getParentId())
+ .like(StringUtils.isNotBlank(dept.getDeptName()), SysDept::getDeptName, dept.getDeptName())
+ .eq(StringUtils.isNotBlank(dept.getStatus()), SysDept::getStatus, dept.getStatus())
+ .orderByAsc(SysDept::getParentId)
+ .orderByAsc(SysDept::getOrderNum);
+ return baseMapper.selectDeptList(lqw);
}
/**
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index b1ce3f829..35bd1ce7e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -22,27 +22,8 @@
-
- select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
- from sys_dept d
-
-
-
@@ -125,11 +116,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))
-
- AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
-
-
- AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+
+ AND create_time between #{params.beginTime} and #{params.endTime}
order by create_time desc
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
index eebc0a774..3863f66da 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
@@ -17,18 +17,6 @@
-
- select post_id,
- post_code,
- post_name,
- post_sort,
- status,
- create_by,
- create_time,
- remark
- from sys_post
-
-
select p.post_id
from sys_post p
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 15f94f312..718dc3d07 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -54,11 +54,8 @@
AND r.role_key like concat('%', #{role.roleKey}, '%')
-
- and date_format(r.create_time,'%y%m%d') >= date_format(#{role.params.beginTime},'%y%m%d')
-
-
- and date_format(r.create_time,'%y%m%d') <= date_format(#{role.params.endTime},'%y%m%d')
+
+ AND r.create_time between #{role.params.beginTime} and #{role.params.endTime}
order by r.role_sort
@@ -78,11 +75,8 @@
AND r.role_key like concat('%', #{roleKey}, '%')
-
- and date_format(r.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
-
-
- and date_format(r.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+
+ AND r.create_time between #{params.beginTime} and #{params.endTime}
order by r.role_sort
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 7f12db7f6..ef968ad32 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -100,11 +100,8 @@
AND u.phonenumber like concat('%', #{user.phonenumber}, '%')
-
- AND date_format(u.create_time,'%y%m%d') >= date_format(#{user.params.beginTime},'%y%m%d')
-
-
- AND date_format(u.create_time,'%y%m%d') <= date_format(#{user.params.endTime},'%y%m%d')
+
+ AND u.create_time between #{user.params.beginTime} and #{user.params.endTime}
AND (u.dept_id = #{user.deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{user.deptId},
@@ -130,11 +127,8 @@
AND u.phonenumber like concat('%', #{phonenumber}, '%')
-
- AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
-
-
- AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+
+ AND u.create_time between #{params.beginTime} and #{params.endTime}
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
From cf17bcb15c0063335c2e0687450b977ce4be378f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 14:34:13 +0800
Subject: [PATCH 005/155] =?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=E4=BB=8E=20aop=20=E5=88=87?=
=?UTF-8?q?=E6=8D=A2=E5=88=B0=20=E6=8B=A6=E6=88=AA=E5=99=A8=20=E5=AF=BC?=
=?UTF-8?q?=E8=87=B4=E8=8E=B7=E5=8F=96=E4=BB=A3=E7=90=86=E5=A4=B1=E8=B4=A5?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 3 +--
.../com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 5 ++---
.../com/ruoyi/system/service/impl/SysUserServiceImpl.java | 3 +--
3 files changed, 4 insertions(+), 7 deletions(-)
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 97a2617d4..ac9f7826b 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
@@ -14,7 +14,6 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.TreeBuildUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
@@ -163,7 +162,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
if (!LoginHelper.isAdmin()) {
SysDept dept = new SysDept();
dept.setDeptId(deptId);
- List depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
+ List depts = this.selectDeptList(dept);
if (CollUtil.isEmpty(depts)) {
throw new ServiceException("没有权限访问部门数据!");
}
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 81334892f..19f3211f5 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
@@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysRoleDept;
import com.ruoyi.system.domain.SysRoleMenu;
import com.ruoyi.system.domain.SysUserRole;
@@ -102,7 +101,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public List selectRoleAll() {
- return SpringUtils.getAopProxy(this).selectRoleList(new SysRole());
+ return this.selectRoleList(new SysRole());
}
/**
@@ -183,7 +182,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
if (!LoginHelper.isAdmin()) {
SysRole role = new SysRole();
role.setRoleId(roleId);
- List roles = SpringUtils.getAopProxy(this).selectRoleList(role);
+ List roles = this.selectRoleList(role);
if (CollUtil.isEmpty(roles)) {
throw new ServiceException("没有权限访问角色数据!");
}
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 c3ff6f409..6ec437b97 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
@@ -13,7 +13,6 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
@@ -209,7 +208,7 @@ public class SysUserServiceImpl implements ISysUserService {
if (!LoginHelper.isAdmin()) {
SysUser user = new SysUser();
user.setUserId(userId);
- List users = SpringUtils.getAopProxy(this).selectUserList(user);
+ List users = this.selectUserList(user);
if (CollUtil.isEmpty(users)) {
throw new ServiceException("没有权限访问用户数据!");
}
From 56feff0455f33e8ef7b4d0429792a82413fcc98b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 22:05:31 +0800
Subject: [PATCH 006/155] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20RepeatSub?=
=?UTF-8?q?mit=20=E6=B3=A8=E8=A7=A3=20=E6=94=AF=E6=8C=81=E4=B8=9A=E5=8A=A1?=
=?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=B1=E8=B4=A5=20=E4=B8=8E=20=E5=BC=82?=
=?UTF-8?q?=E5=B8=B8=E5=BF=AB=E9=80=9F=E6=94=BE=E8=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../framework/aspectj/RepeatSubmitAspect.java | 37 ++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
index e7bbbdd6b..f519370df 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.ServletUtils;
@@ -14,6 +15,8 @@ import com.ruoyi.framework.config.properties.RepeatSubmitProperties;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@@ -27,7 +30,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
- * 防止重复提交
+ * 防止重复提交(参考美团GTIS防重系统)
*
* @author Lion Li
*/
@@ -37,6 +40,8 @@ import java.util.concurrent.TimeUnit;
@Component
public class RepeatSubmitAspect {
+ private static final ThreadLocal KEY_CACHE = new ThreadLocal<>();
+
private final RepeatSubmitProperties repeatSubmitProperties;
@Before("@annotation(repeatSubmit)")
@@ -64,11 +69,41 @@ public class RepeatSubmitAspect {
String key = RedisUtils.getCacheObject(cacheRepeatKey);
if (key == null) {
RedisUtils.setCacheObject(cacheRepeatKey, "", interval, TimeUnit.MILLISECONDS);
+ KEY_CACHE.set(cacheRepeatKey);
} else {
throw new ServiceException(repeatSubmit.message());
}
}
+ /**
+ * 处理完请求后执行
+ *
+ * @param joinPoint 切点
+ */
+ @AfterReturning(pointcut = "@annotation(repeatSubmit)", returning = "jsonResult")
+ public void doAfterReturning(JoinPoint joinPoint, RepeatSubmit repeatSubmit, Object jsonResult) {
+ if (jsonResult instanceof R) {
+ R> r = (R>) jsonResult;
+ if (r.getCode() == R.SUCCESS) {
+ return;
+ }
+ RedisUtils.deleteObject(KEY_CACHE.get());
+ KEY_CACHE.remove();
+ }
+ }
+
+ /**
+ * 拦截异常操作
+ *
+ * @param joinPoint 切点
+ * @param e 异常
+ */
+ @AfterThrowing(value = "@annotation(repeatSubmit)", throwing = "e")
+ public void doAfterThrowing(JoinPoint joinPoint, RepeatSubmit repeatSubmit, Exception e) {
+ RedisUtils.deleteObject(KEY_CACHE.get());
+ KEY_CACHE.remove();
+ }
+
/**
* 参数拼装
*/
From 2ff36d81a13913c92b2cf52c2df29a35c472330a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 22:55:49 +0800
Subject: [PATCH 007/155] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=98=B2?=
=?UTF-8?q?=E9=87=8D=20=E4=B8=8E=20=E9=99=90=E6=B5=81=20=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=E5=9B=BD=E9=99=85=E5=8C=96=E6=B6=88=E6=81=AF?=
=?UTF-8?q?=E8=BF=94=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/i18n/messages.properties | 2 ++
.../src/main/resources/i18n/messages_en_US.properties | 2 ++
.../src/main/resources/i18n/messages_zh_CN.properties | 2 ++
.../java/com/ruoyi/common/annotation/RepeatSubmit.java | 4 ++--
.../java/com/ruoyi/demo/controller/TestDemoController.java | 2 +-
.../com/ruoyi/framework/aspectj/RateLimiterAspect.java | 3 ++-
.../com/ruoyi/framework/aspectj/RepeatSubmitAspect.java | 7 ++++++-
7 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties
index ee68c98c1..95623088c 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages.properties
@@ -36,3 +36,5 @@ no.update.permission=您没有修改数据的权限,请联系管理员添加
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+repeat.submit.message=不允许重复提交,请稍候再试
+rate.limiter.message="访问过于频繁,请稍候再试"
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 960538a55..5dbdac59d 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
@@ -36,3 +36,5 @@ no.update.permission=You do not have permission to modify data,please contact
no.delete.permission=You do not have permission to delete data,please contact your administrator to add permissions [{0}]
no.export.permission=You do not have permission to export data,please contact your administrator to add permissions [{0}]
no.view.permission=You do not have permission to view data,please contact your administrator to add permissions [{0}]
+repeat.submit.message=Repeat submit is not allowed, please try again later
+rate.limiter.message=Visit too frequently, please try again later
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 ee68c98c1..95623088c 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
@@ -36,3 +36,5 @@ no.update.permission=您没有修改数据的权限,请联系管理员添加
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+repeat.submit.message=不允许重复提交,请稍候再试
+rate.limiter.message="访问过于频繁,请稍候再试"
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java
index a87466768..d30962d0e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java
@@ -22,8 +22,8 @@ public @interface RepeatSubmit {
TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
/**
- * 提示消息
+ * 提示消息 支持国际化 格式为 {code}
*/
- String message() default "不允许重复提交,请稍候再试";
+ String message() default "{repeat.submit.message}";
}
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 593f22adf..d1f994e5d 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
@@ -117,7 +117,7 @@ public class TestDemoController extends BaseController {
@ApiOperation("新增测试单表")
@SaCheckPermission("demo:demo:add")
@Log(title = "测试单表", businessType = BusinessType.INSERT)
- @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "不允许重复提交")
+ @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}")
@PostMapping()
public R add(@RequestBody TestDemoBo bo) {
// 使用校验工具对标 @Validated(AddGroup.class) 注解
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
index 298eb43bf..542b16bfd 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
@@ -3,6 +3,7 @@ package com.ruoyi.framework.aspectj;
import com.ruoyi.common.annotation.RateLimiter;
import com.ruoyi.common.enums.LimitType;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import lombok.extern.slf4j.Slf4j;
@@ -37,7 +38,7 @@ public class RateLimiterAspect {
}
long number = RedisUtils.rateLimiter(combineKey, rateType, count, time);
if (number == -1) {
- throw new ServiceException("访问过于频繁,请稍候再试");
+ throw new ServiceException(MessageUtils.message("rate.limiter.message"));
}
log.info("限制令牌 => {}, 剩余令牌 => {}, 缓存key => '{}'", count, number, combineKey);
} catch (ServiceException e) {
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
index f519370df..d0422e9d7 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
@@ -8,6 +8,7 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.JsonUtils;
+import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
@@ -71,7 +72,11 @@ public class RepeatSubmitAspect {
RedisUtils.setCacheObject(cacheRepeatKey, "", interval, TimeUnit.MILLISECONDS);
KEY_CACHE.set(cacheRepeatKey);
} else {
- throw new ServiceException(repeatSubmit.message());
+ String message = repeatSubmit.message();
+ if (StringUtils.startsWith(message, "{") && StringUtils.endsWith(message, "}")) {
+ message = MessageUtils.message(StringUtils.substring(message, 1, message.length() - 1));
+ }
+ throw new ServiceException(message);
}
}
From 8db5c27d81160e44efe7e61f0709f2fe7ac5f47f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 23:18:20 +0800
Subject: [PATCH 008/155] =?UTF-8?q?update=20=E5=88=A0=E9=99=A4=E6=97=A0?=
=?UTF-8?q?=E7=94=A8=E5=89=8D=E7=BC=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/java/com/ruoyi/common/constant/Constants.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
index 5e07c96c0..e2ffebdc0 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -65,12 +65,12 @@ public interface Constants {
/**
* 登录用户 redis key
*/
- public static final String LOGIN_TOKEN_KEY = "Authorization:login:token:";
+ String LOGIN_TOKEN_KEY = "Authorization:login:token:";
/**
* 在线用户 redis key
*/
- public static final String ONLINE_TOKEN_KEY = "online_tokens:";
+ String ONLINE_TOKEN_KEY = "online_tokens:";
/**
* 防重提交 redis key
From 4d0c84bcf59db6016d5a9e2a9a927448208d8fbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 3 Mar 2022 23:58:09 +0800
Subject: [PATCH 009/155] =?UTF-8?q?remove=20=E5=88=A0=E9=99=A4=E5=A4=9A?=
=?UTF-8?q?=E4=BD=99=E5=BC=95=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/i18n/messages.properties | 2 +-
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties
index 95623088c..522d1bc86 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages.properties
@@ -37,4 +37,4 @@ no.delete.permission=您没有删除数据的权限,请联系管理员添加
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
repeat.submit.message=不允许重复提交,请稍候再试
-rate.limiter.message="访问过于频繁,请稍候再试"
+rate.limiter.message=访问过于频繁,请稍候再试
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 95623088c..522d1bc86 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
@@ -37,4 +37,4 @@ no.delete.permission=您没有删除数据的权限,请联系管理员添加
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
repeat.submit.message=不允许重复提交,请稍候再试
-rate.limiter.message="访问过于频繁,请稍候再试"
+rate.limiter.message=访问过于频繁,请稍候再试
From c1d01fb1e1a0aadab46afd568f61f89bcd8bb9ad 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, 4 Mar 2022 09:26:26 +0800
Subject: [PATCH 010/155] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=83=A8?=
=?UTF-8?q?=E9=97=A8=E4=BF=AE=E6=94=B9=E5=AD=90=E5=85=83=E7=B4=A0=E5=85=B3?=
=?UTF-8?q?=E7=B3=BB=20=E4=BD=BF=E7=94=A8=E6=89=B9=E9=87=8F=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/ruoyi/system/mapper/SysDeptMapper.java | 8 --------
.../system/service/impl/SysDeptServiceImpl.java | 11 ++++++++---
.../main/resources/mapper/system/SysDeptMapper.xml | 13 -------------
3 files changed, 8 insertions(+), 24 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index dcd7ea7e9..7e7a44160 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -37,12 +37,4 @@ public interface SysDeptMapper extends BaseMapperPlus selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly);
- /**
- * 修改子元素关系
- *
- * @param depts 子元素
- * @return 结果
- */
- int updateDeptChildren(@Param("depts") List depts);
-
}
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 ac9f7826b..3875c91d5 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
@@ -21,6 +21,7 @@ import com.ruoyi.system.service.ISysDeptService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -234,11 +235,15 @@ public class SysDeptServiceImpl implements ISysDeptService {
public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) {
List children = baseMapper.selectList(new LambdaQueryWrapper()
.apply("find_in_set({0},ancestors)", deptId));
+ List list = new ArrayList<>();
for (SysDept child : children) {
- child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
+ SysDept dept = new SysDept();
+ dept.setDeptId(child.getDeptId());
+ dept.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
+ list.add(dept);
}
- if (children.size() > 0) {
- baseMapper.updateDeptChildren(children);
+ if (list.size() > 0) {
+ baseMapper.updateBatchById(list);
}
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 35bd1ce7e..00493be9e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -37,17 +37,4 @@
order by d.parent_id, d.order_num
-
- update sys_dept set ancestors =
-
- when #{item.deptId} then #{item.ancestors}
-
- where dept_id in
-
- #{item.deptId}
-
-
-
From 18cffc4678e439cd86e2eba215492df5949ab445 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, 4 Mar 2022 10:20:06 +0800
Subject: [PATCH 011/155] =?UTF-8?q?update=20=E7=AE=80=E5=8C=96=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E8=A7=92=E8=89=B2=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ruoyi/common/constant/UserConstants.java | 5 +++
.../ruoyi/system/mapper/SysRoleMapper.java | 8 ++--
.../service/impl/SysRoleServiceImpl.java | 22 +++++++++-
.../resources/mapper/system/SysRoleMapper.xml | 40 ++-----------------
4 files changed, 34 insertions(+), 41 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
index 03bb84e9f..bbdc6888d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
@@ -27,6 +27,11 @@ public interface UserConstants {
*/
String USER_DISABLE = "1";
+ /**
+ * 角色正常状态
+ */
+ String ROLE_NORMAL = "0";
+
/**
* 角色封禁状态
*/
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
index e37116d9a..e2b3c0190 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.mapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.DataColumn;
import com.ruoyi.common.annotation.DataPermission;
@@ -19,18 +21,18 @@ public interface SysRoleMapper extends BaseMapperPlus selectPageRoleList(@Param("page") Page page, @Param("role") SysRole role);
+ Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
/**
* 根据条件分页查询角色数据
*
- * @param role 角色信息
+ * @param queryWrapper 查询条件
* @return 角色数据集合信息
*/
@DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id")
})
- List selectRoleList(SysRole role);
+ List selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
/**
* 根据用户ID查询角色
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 19f3211f5..e7e5b53c5 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
@@ -2,7 +2,11 @@ package com.ruoyi.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.PageQuery;
@@ -40,7 +44,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override
public TableDataInfo selectPageRoleList(SysRole role, PageQuery pageQuery) {
- Page page = baseMapper.selectPageRoleList(pageQuery.build(), role);
+ Page page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
return TableDataInfo.build(page);
}
@@ -52,7 +56,21 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public List selectRoleList(SysRole role) {
- return baseMapper.selectRoleList(role);
+ return baseMapper.selectRoleList(this.buildQueryWrapper(role));
+ }
+
+ private Wrapper buildQueryWrapper(SysRole role) {
+ Map params = role.getParams();
+ QueryWrapper wrapper = Wrappers.query();
+ wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL)
+ .eq(ObjectUtil.isNotNull(role.getRoleId()), "r.role_id", role.getRoleId())
+ .like(StringUtils.isNotBlank(role.getRoleName()), "r.role_name", role.getRoleName())
+ .eq(StringUtils.isNotBlank(role.getStatus()), "r.status", role.getStatus())
+ .like(StringUtils.isNotBlank(role.getRoleKey()), "r.role_key", role.getRoleKey())
+ .between(params.get("beginTime") != null && params.get("endTime") != null,
+ "r.create_time", params.get("beginTime"), params.get("endTime"))
+ .orderByAsc("r.role_sort");
+ return wrapper;
}
/**
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 718dc3d07..dc54c7e9f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -39,46 +39,14 @@
left join sys_dept d on u.dept_id = d.dept_id
-