Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
4a07b410
Commit
4a07b410
authored
May 20, 2020
by
ZhengJie
Browse files
[代码完善](v2.5): v2.5 beta 优化菜单缓存
parent
ed7bfa32
Changes
4
Hide whitespace changes
Inline
Side-by-side
eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java
View file @
4a07b410
...
@@ -160,12 +160,23 @@ public class RedisUtils {
...
@@ -160,12 +160,23 @@ public class RedisUtils {
* 删除缓存
* 删除缓存
* @param key 可以传一个值 或多个
* @param key 可以传一个值 或多个
*/
*/
public
void
del
(
String
...
key
)
{
public
void
del
(
String
...
keys
)
{
if
(
key
!=
null
&&
key
.
length
>
0
)
{
if
(
keys
!=
null
&&
keys
.
length
>
0
)
{
if
(
key
.
length
==
1
)
{
if
(
keys
.
length
==
1
)
{
redisTemplate
.
delete
(
key
[
0
]);
boolean
result
=
redisTemplate
.
delete
(
keys
[
0
]);
System
.
out
.
println
(
"--------------------------------------------"
);
System
.
out
.
println
(
new
StringBuilder
(
"删除缓存:"
).
append
(
keys
[
0
]).
append
(
",结果:"
).
append
(
result
));
System
.
out
.
println
(
"--------------------------------------------"
);
}
else
{
}
else
{
redisTemplate
.
delete
(
CollectionUtils
.
arrayToList
(
key
));
Set
<
Object
>
keySet
=
new
HashSet
<>();
for
(
String
key
:
keys
)
{
keySet
.
addAll
(
redisTemplate
.
keys
(
key
));
}
long
count
=
redisTemplate
.
delete
(
keySet
);
System
.
out
.
println
(
"--------------------------------------------"
);
System
.
out
.
println
(
"成功删除缓存:"
+
keySet
.
toString
());
System
.
out
.
println
(
"缓存删除数量:"
+
count
+
"个"
);
System
.
out
.
println
(
"--------------------------------------------"
);
}
}
}
}
}
}
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/UserRepository.java
View file @
4a07b410
...
@@ -78,7 +78,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
...
@@ -78,7 +78,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
* @return /
* @return /
*/
*/
@Query
(
value
=
"SELECT u.* FROM sys_user u, sys_users_roles r, sys_roles_depts d WHERE "
+
@Query
(
value
=
"SELECT u.* FROM sys_user u, sys_users_roles r, sys_roles_depts d WHERE "
+
"u.user_id = r.user_id AND r.role_id = d.role_id AND r.role_id = ?1"
,
nativeQuery
=
true
)
"u.user_id = r.user_id AND r.role_id = d.role_id AND r.role_id = ?1
group by u.user_id
"
,
nativeQuery
=
true
)
List
<
User
>
findByDeptRoleId
(
Long
id
);
List
<
User
>
findByDeptRoleId
(
Long
id
);
/**
/**
...
@@ -87,7 +87,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
...
@@ -87,7 +87,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
* @return /
* @return /
*/
*/
@Query
(
value
=
"SELECT u.* FROM sys_user u, sys_users_roles ur, sys_roles_menus rm WHERE\n"
+
@Query
(
value
=
"SELECT u.* FROM sys_user u, sys_users_roles ur, sys_roles_menus rm WHERE\n"
+
"u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = ?1"
,
nativeQuery
=
true
)
"u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = ?1
group by u.user_id
"
,
nativeQuery
=
true
)
List
<
User
>
findByMenuId
(
Long
id
);
List
<
User
>
findByMenuId
(
Long
id
);
/**
/**
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
4a07b410
...
@@ -129,9 +129,9 @@ public class MenuServiceImpl implements MenuService {
...
@@ -129,9 +129,9 @@ public class MenuServiceImpl implements MenuService {
resources
.
setSubCount
(
0
);
resources
.
setSubCount
(
0
);
if
(
resources
.
getPid
()
!=
null
){
if
(
resources
.
getPid
()
!=
null
){
// 清理缓存
// 清理缓存
redisUtils
.
del
(
"menu::pid:"
+
resources
.
getPid
());
updateSubCnt
(
resources
.
getPid
());
updateSubCnt
(
resources
.
getPid
());
}
}
redisUtils
.
del
(
"menu::pid:"
+
(
resources
.
getPid
()
==
null
?
0
:
resources
.
getPid
()));
}
}
@Override
@Override
...
@@ -207,10 +207,10 @@ public class MenuServiceImpl implements MenuService {
...
@@ -207,10 +207,10 @@ public class MenuServiceImpl implements MenuService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Set
<
Menu
>
menuSet
)
{
public
void
delete
(
Set
<
Menu
>
menuSet
)
{
for
(
Menu
menu
:
menuSet
)
{
for
(
Menu
menu
:
menuSet
)
{
roleService
.
untiedMenu
(
menu
.
getId
());
menuRepository
.
deleteById
(
menu
.
getId
());
// 清理缓存
// 清理缓存
delCaches
(
menu
.
getId
(),
menu
.
getPid
());
delCaches
(
menu
.
getId
(),
menu
.
getPid
());
roleService
.
untiedMenu
(
menu
.
getId
());
menuRepository
.
deleteById
(
menu
.
getId
());
if
(
menu
.
getPid
()
!=
null
){
if
(
menu
.
getPid
()
!=
null
){
updateSubCnt
(
menu
.
getPid
());
updateSubCnt
(
menu
.
getPid
());
}
}
...
@@ -351,8 +351,6 @@ public class MenuServiceImpl implements MenuService {
...
@@ -351,8 +351,6 @@ public class MenuServiceImpl implements MenuService {
List
<
User
>
users
=
userRepository
.
findByMenuId
(
id
);
List
<
User
>
users
=
userRepository
.
findByMenuId
(
id
);
redisUtils
.
del
(
"menu::id:"
+
id
);
redisUtils
.
del
(
"menu::id:"
+
id
);
redisUtils
.
delByKeys
(
"menu::user:"
,
users
.
stream
().
map
(
User:
:
getId
).
collect
(
Collectors
.
toSet
()));
redisUtils
.
delByKeys
(
"menu::user:"
,
users
.
stream
().
map
(
User:
:
getId
).
collect
(
Collectors
.
toSet
()));
if
(
pid
!=
null
){
redisUtils
.
del
(
"menu::pid:"
+
(
pid
==
null
?
0
:
pid
));
redisUtils
.
del
(
"menu::pid:"
+
pid
);
}
}
}
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
View file @
4a07b410
...
@@ -131,10 +131,6 @@ public class RoleServiceImpl implements RoleService {
...
@@ -131,10 +131,6 @@ public class RoleServiceImpl implements RoleService {
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
untiedMenu
(
Long
menuId
)
{
public
void
untiedMenu
(
Long
menuId
)
{
// 清理缓存
List
<
User
>
users
=
userRepository
.
findByMenuId
(
menuId
);
Set
<
Long
>
userIds
=
users
.
stream
().
map
(
User:
:
getId
).
collect
(
Collectors
.
toSet
());
redisUtils
.
delByKeys
(
"menu::user:"
,
userIds
);
// 更新菜单
// 更新菜单
roleRepository
.
untiedMenu
(
menuId
);
roleRepository
.
untiedMenu
(
menuId
);
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment