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
284c25a1
"vscode:/vscode.git/clone" did not exist on "f1e08b52dc4f109eaf23c605a89dae3b99863c60"
Commit
284c25a1
authored
Dec 01, 2019
by
dqjdda
Browse files
Merge branch '2.4dev' into 2.4opt
parents
175a2eb6
ccca30fc
Changes
48
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java
View file @
284c25a1
...
...
@@ -20,7 +20,7 @@ public class UserQueryCriteria implements Serializable {
@Query
(
propName
=
"id"
,
type
=
Query
.
Type
.
IN
,
joinName
=
"dept"
)
private
Set
<
Long
>
deptIds
;
@Query
(
blurry
=
"email,username"
)
@Query
(
blurry
=
"email,username
,nickName
"
)
private
String
blurry
;
@Query
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
284c25a1
...
...
@@ -66,11 +66,8 @@ public class MenuServiceImpl implements MenuService {
@Override
public
List
<
MenuDto
>
findByRoles
(
List
<
RoleSmallDto
>
roles
)
{
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
for
(
RoleSmallDto
role
:
roles
)
{
List
<
Menu
>
menus1
=
new
ArrayList
<>(
menuRepository
.
findByRoles_IdAndTypeIsNotInOrderBySortAsc
(
role
.
getId
(),
2
));
menus
.
addAll
(
menus1
);
}
Set
<
Long
>
roleIds
=
roles
.
stream
().
map
(
RoleSmallDto:
:
getId
).
collect
(
Collectors
.
toSet
());
LinkedHashSet
<
Menu
>
menus
=
menuRepository
.
findByRoles_IdInAndTypeNotOrderBySortAsc
(
roleIds
,
2
);
return
menus
.
stream
().
map
(
menuMapper:
:
toDto
).
collect
(
Collectors
.
toList
());
}
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
View file @
284c25a1
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.Role
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.modules.system.repository.RoleRepository
;
...
...
@@ -7,17 +8,17 @@ import me.zhengjie.modules.system.service.RoleService;
import
me.zhengjie.modules.system.service.dto.RoleDto
;
import
me.zhengjie.modules.system.service.dto.RoleQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDto
;
import
me.zhengjie.modules.system.service.dto.UserDto
;
import
me.zhengjie.modules.system.service.mapper.RoleMapper
;
import
me.zhengjie.modules.system.service.mapper.RoleSmallMapper
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.utils.*
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.authority.SimpleGrantedAuthority
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -144,6 +145,20 @@ public class RoleServiceImpl implements RoleService {
return
Collections
.
min
(
roleDtos
.
stream
().
map
(
RoleDto:
:
getLevel
).
collect
(
Collectors
.
toList
()));
}
@Override
@Cacheable
(
key
=
"'loadPermissionByUser:' + #p0.username"
)
public
Collection
<
GrantedAuthority
>
mapToGrantedAuthorities
(
UserDto
user
)
{
Set
<
Role
>
roles
=
roleRepository
.
findByUsers_Id
(
user
.
getId
());
Set
<
String
>
permissions
=
roles
.
stream
().
filter
(
role
->
StringUtils
.
isNotBlank
(
role
.
getPermission
())).
map
(
Role:
:
getPermission
).
collect
(
Collectors
.
toSet
());
permissions
.
addAll
(
roles
.
stream
().
flatMap
(
role
->
role
.
getMenus
().
stream
())
.
filter
(
menu
->
StringUtils
.
isNotBlank
(
menu
.
getPermission
()))
.
map
(
Menu:
:
getPermission
).
collect
(
Collectors
.
toSet
())
);
return
permissions
.
stream
().
map
(
SimpleGrantedAuthority:
:
new
)
.
collect
(
Collectors
.
toList
());
}
@Override
public
void
download
(
List
<
RoleDto
>
roles
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
View file @
284c25a1
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.monitor.service.RedisService
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.exception.EntityNotFoundException
;
...
...
@@ -42,17 +41,17 @@ public class UserServiceImpl implements UserService {
private
final
UserMapper
userMapper
;
private
final
Redis
Service
redisService
;
private
final
Redis
Utils
redisUtils
;
private
final
UserAvatarRepository
userAvatarRepository
;
@Value
(
"${file.avatar}"
)
private
String
avatar
;
public
UserServiceImpl
(
UserRepository
userRepository
,
UserMapper
userMapper
,
Redis
Service
redisService
,
UserAvatarRepository
userAvatarRepository
)
{
public
UserServiceImpl
(
UserRepository
userRepository
,
UserMapper
userMapper
,
Redis
Utils
redisUtils
,
UserAvatarRepository
userAvatarRepository
)
{
this
.
userRepository
=
userRepository
;
this
.
userMapper
=
userMapper
;
this
.
redis
Service
=
redis
Service
;
this
.
redis
Utils
=
redis
Utils
;
this
.
userAvatarRepository
=
userAvatarRepository
;
}
...
...
@@ -116,9 +115,9 @@ public class UserServiceImpl implements UserService {
// 如果用户的角色改变了,需要手动清理下缓存
if
(!
resources
.
getRoles
().
equals
(
user
.
getRoles
()))
{
String
key
=
"role::loadPermissionByUser:"
+
user
.
getUsername
();
redis
Service
.
del
ete
(
key
);
redis
Utils
.
del
(
key
);
key
=
"role::findByUsers_Id:"
+
user
.
getId
();
redis
Service
.
del
ete
(
key
);
redis
Utils
.
del
(
key
);
}
user
.
setUsername
(
resources
.
getUsername
());
...
...
@@ -128,6 +127,19 @@ public class UserServiceImpl implements UserService {
user
.
setDept
(
resources
.
getDept
());
user
.
setJob
(
resources
.
getJob
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setNickName
(
resources
.
getNickName
());
user
.
setSex
(
resources
.
getSex
());
userRepository
.
save
(
user
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCenter
(
User
resources
)
{
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
user
.
setNickName
(
resources
.
getNickName
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setSex
(
resources
.
getSex
());
userRepository
.
save
(
user
);
}
...
...
eladmin-system/src/main/resources/config/application-dev.yml
View file @
284c25a1
...
...
@@ -2,7 +2,7 @@
spring
:
datasource
:
druid
:
type
:
com.alibaba.druid.pool.DruidDataSource
db-
type
:
com.alibaba.druid.pool.DruidDataSource
driverClassName
:
net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url
:
jdbc:log4jdbc:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username
:
root
...
...
@@ -44,13 +44,16 @@ spring:
#jwt
jwt
:
header
:
Authorization
secret
:
mySecret
# token 过期时间/毫秒,6小时 1小时 = 3600000 毫秒
expiration
:
21600000
# 令牌前缀
token-start-with
:
Bearer
# 必须使用最少88位的Base64对该令牌进行编码
base64-secret
:
ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
# 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
token-validity-in-seconds
:
14400000
# 在线用户key
online
:
online-token
online
-key
:
online-token
# 验证码
code
K
ey
:
code-key
code
-k
ey
:
code-key
#是否允许生成代码,生产环境设置为false
generator
:
...
...
eladmin-system/src/main/resources/config/application-prod.yml
View file @
284c25a1
...
...
@@ -2,7 +2,7 @@
spring
:
datasource
:
druid
:
type
:
com.alibaba.druid.pool.DruidDataSource
db-
type
:
com.alibaba.druid.pool.DruidDataSource
driverClassName
:
net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url
:
jdbc:log4jdbc:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username
:
root
...
...
@@ -46,13 +46,16 @@ spring:
#jwt
jwt
:
header
:
Authorization
secret
:
mySecret
# token 过期时间 2个小时
expiration
:
7200000
# 令牌前缀
token-start-with
:
Bearer
# 必须使用最少88位的Base64对该令牌进行编码
base64-secret
:
ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
# 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
token-validity-in-seconds
:
7200000
# 在线用户key
online
:
online-token
online
-key
:
online-token
# 验证码
code
K
ey
:
code-key
code
-k
ey
:
code-key
#是否允许生成代码,生产环境设置为false
generator
:
...
...
sql/eladmin-user.sql
0 → 100644
View file @
284c25a1
#
用户加密方式变动,改为
BCryptPasswordEncoder
方式:
SHA
-
256
+
随机盐
+
密钥对密码进行加密,替换后的明文密码为
123456
update
user
set
`password`
=
"$2a$10$HhxyGZy.ulf3RvAwaHUGb.k.2i9PBpv4YbLMJWp8pES7pPhTyRCF."
WHERE
`password`
=
"e10adc3949ba59abbe56e057f20f883e"
\ No newline at end of file
sql/eladmin.sql
View file @
284c25a1
...
...
@@ -257,7 +257,6 @@ INSERT INTO `menu` VALUES (3, b'0', '角色管理', 'system/role/index', 1, 3, '
INSERT
INTO
`menu`
VALUES
(
5
,
b
'0'
,
'菜单管理'
,
'system/menu/index'
,
1
,
5
,
'menu'
,
'menu'
,
b
'0'
,
b
'0'
,
'Menu'
,
'2018-12-18 15:17:28'
,
'menu:list'
,
1
);
INSERT
INTO
`menu`
VALUES
(
6
,
b
'0'
,
'系统监控'
,
NULL
,
0
,
10
,
'monitor'
,
'monitor'
,
b
'0'
,
b
'0'
,
NULL
,
'2018-12-18 15:17:48'
,
NULL
,
0
);
INSERT
INTO
`menu`
VALUES
(
7
,
b
'0'
,
'操作日志'
,
'monitor/log/index'
,
6
,
11
,
'log'
,
'logs'
,
b
'0'
,
b
'0'
,
'Log'
,
'2018-12-18 15:18:26'
,
NULL
,
1
);
INSERT
INTO
`menu`
VALUES
(
8
,
b
'0'
,
'系统缓存'
,
'monitor/redis/index'
,
6
,
15
,
'redis'
,
'redis'
,
b
'0'
,
b
'0'
,
'Redis'
,
'2018-12-18 15:19:01'
,
'redis:list'
,
1
);
INSERT
INTO
`menu`
VALUES
(
9
,
b
'0'
,
'SQL监控'
,
'monitor/sql/index'
,
6
,
18
,
'sqlMonitor'
,
'druid'
,
b
'0'
,
b
'0'
,
'Sql'
,
'2018-12-18 15:19:34'
,
NULL
,
1
);
INSERT
INTO
`menu`
VALUES
(
10
,
b
'0'
,
'组件管理'
,
NULL
,
0
,
50
,
'zujian'
,
'components'
,
b
'0'
,
b
'0'
,
NULL
,
'2018-12-19 13:38:16'
,
NULL
,
0
);
INSERT
INTO
`menu`
VALUES
(
11
,
b
'0'
,
'图标库'
,
'components/icons/index'
,
10
,
51
,
'icon'
,
'icon'
,
b
'0'
,
b
'0'
,
'Icons'
,
'2018-12-19 13:38:49'
,
NULL
,
1
);
...
...
@@ -603,7 +602,6 @@ INSERT INTO `roles_menus` VALUES (3, 1);
INSERT
INTO
`roles_menus`
VALUES
(
5
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
6
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
7
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
8
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
9
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
10
,
1
);
INSERT
INTO
`roles_menus`
VALUES
(
11
,
1
);
...
...
@@ -670,7 +668,6 @@ INSERT INTO `roles_menus` VALUES (2, 2);
INSERT
INTO
`roles_menus`
VALUES
(
3
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
5
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
6
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
8
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
9
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
10
,
2
);
INSERT
INTO
`roles_menus`
VALUES
(
11
,
2
);
...
...
@@ -728,7 +725,7 @@ CREATE TABLE `user` (
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT
INTO
`user`
VALUES
(
1
,
NULL
,
'admin@eladmin.net'
,
1
,
'
e10adc3949ba59abbe56e057f20f883e
'
,
'admin'
,
2
,
'18888888888'
,
11
,
'2018-08-23 09:11:56'
,
'2019-05-18 17:34:21'
);
INSERT
INTO
`user`
VALUES
(
1
,
NULL
,
'admin@eladmin.net'
,
1
,
'
$2a$10$fP.426qKaTmix50Oln8L.uav55gELhAd0Eg66Av4oG86u8km7D/Ky
'
,
'admin'
,
2
,
'18888888888'
,
11
,
'2018-08-23 09:11:56'
,
'2019-05-18 17:34:21'
);
INSERT
INTO
`user`
VALUES
(
3
,
NULL
,
'test@eladmin.net'
,
1
,
'e10adc3949ba59abbe56e057f20f883e'
,
'test'
,
2
,
'17777777777'
,
12
,
'2018-12-27 20:05:26'
,
'2019-04-01 09:15:24'
);
-- ----------------------------
...
...
Prev
1
2
3
Next
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