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
fd9fb2a6
Commit
fd9fb2a6
authored
Nov 01, 2019
by
dqjdda
Browse files
Merge branch '2.3dev'
parents
7895e547
1839ef8d
Changes
227
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobDTO.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.sql.Timestamp
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
@Data
@Getter
@Setter
@NoArgsConstructor
public
class
JobDTO
implements
Serializable
{
/**
* ID
*/
private
Long
id
;
private
Long
sort
;
/**
* 名称
*/
private
String
name
;
/**
* 状态
*/
private
Boolean
enabled
;
private
DeptDTO
dept
;
/**
* 如果分公司存在相同部门,则显示上级部门名称
*/
private
String
deptSuperiorName
;
/**
* 创建日期
*/
private
Timestamp
createTime
;
public
JobDTO
(
String
name
,
Boolean
enabled
)
{
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobQueryCriteria.java
View file @
fd9fb2a6
...
...
@@ -27,4 +27,10 @@ public class JobQueryCriteria {
@Query
(
propName
=
"id"
,
joinName
=
"dept"
,
type
=
Query
.
Type
.
IN
)
private
Set
<
Long
>
deptIds
;
@Query
(
type
=
Query
.
Type
.
GREATER_THAN
,
propName
=
"createTime"
)
private
Timestamp
startTime
;
@Query
(
type
=
Query
.
Type
.
LESS_THAN
,
propName
=
"createTime"
)
private
Timestamp
endTime
;
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobSmallDTO.java
View file @
fd9fb2a6
...
...
@@ -12,13 +12,7 @@ import java.io.Serializable;
@NoArgsConstructor
public
class
JobSmallDTO
implements
Serializable
{
/**
* ID
*/
private
Long
id
;
/**
* 名称
*/
private
String
name
;
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDTO.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.List
;
import
java.util.Set
;
/**
* @author Zheng Jie
* @date 2018-12-17
*/
@Data
public
class
MenuDTO
{
@Getter
@Setter
public
class
MenuDTO
implements
Serializable
{
private
Long
id
;
private
Integer
type
;
private
String
permission
;
private
String
name
;
private
Long
sort
;
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuQueryCriteria.java
View file @
fd9fb2a6
...
...
@@ -3,6 +3,8 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.sql.Timestamp
;
/**
* 公共查询类
*/
...
...
@@ -12,4 +14,10 @@ public class MenuQueryCriteria {
// 多字段模糊
@Query
(
blurry
=
"name,path,component"
)
private
String
blurry
;
@Query
(
type
=
Query
.
Type
.
GREATER_THAN
,
propName
=
"createTime"
)
private
Timestamp
startTime
;
@Query
(
type
=
Query
.
Type
.
LESS_THAN
,
propName
=
"createTime"
)
private
Timestamp
endTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/PermissionDTO.java
deleted
100644 → 0
View file @
7895e547
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.List
;
/**
* @author Zheng Jie
* @date 2018-12-03
*/
@Data
public
class
PermissionDTO
implements
Serializable
{
private
Long
id
;
private
String
name
;
private
Long
pid
;
private
String
alias
;
private
Timestamp
createTime
;
private
List
<
PermissionDTO
>
children
;
@Override
public
String
toString
()
{
return
"Permission{"
+
"id="
+
id
+
", name='"
+
name
+
'\''
+
", pid="
+
pid
+
", alias='"
+
alias
+
'\''
+
", createTime="
+
createTime
+
'}'
;
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/PermissionQueryCriteria.java
deleted
100644 → 0
View file @
7895e547
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
/**
* 公共查询类
*/
@Data
public
class
PermissionQueryCriteria
{
// 多字段模糊
@Query
(
blurry
=
"name,alias"
)
private
String
blurry
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleDTO.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
...
...
@@ -9,7 +11,8 @@ import java.util.Set;
* @author Zheng Jie
* @date 2018-11-23
*/
@Data
@Getter
@Setter
public
class
RoleDTO
implements
Serializable
{
private
Long
id
;
...
...
@@ -22,7 +25,7 @@ public class RoleDTO implements Serializable {
private
String
remark
;
private
S
et
<
PermissionDTO
>
permission
s
;
private
S
tring
permission
;
private
Set
<
MenuDTO
>
menus
;
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java
View file @
fd9fb2a6
...
...
@@ -3,6 +3,8 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.sql.Timestamp
;
/**
* 公共查询类
*/
...
...
@@ -12,4 +14,10 @@ public class RoleQueryCriteria {
// 多字段模糊
@Query
(
blurry
=
"name,remark"
)
private
String
blurry
;
@Query
(
type
=
Query
.
Type
.
GREATER_THAN
,
propName
=
"createTime"
)
private
Timestamp
startTime
;
@Query
(
type
=
Query
.
Type
.
LESS_THAN
,
propName
=
"createTime"
)
private
Timestamp
endTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleSmallDTO.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
/**
* @author Zheng Jie
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDTO.java
View file @
fd9fb2a6
...
...
@@ -2,7 +2,9 @@ package me.zhengjie.modules.system.service.dto;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Date
;
...
...
@@ -12,7 +14,8 @@ import java.util.Set;
* @author Zheng Jie
* @date 2018-11-23
*/
@Data
@Getter
@Setter
public
class
UserDTO
implements
Serializable
{
@ApiModelProperty
(
hidden
=
true
)
...
...
@@ -31,8 +34,6 @@ public class UserDTO implements Serializable {
@JsonIgnore
private
String
password
;
private
Timestamp
createTime
;
private
Date
lastPasswordResetTime
;
@ApiModelProperty
(
hidden
=
true
)
...
...
@@ -44,4 +45,6 @@ public class UserDTO implements Serializable {
private
DeptSmallDTO
dept
;
private
Long
deptId
;
private
Timestamp
createTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java
View file @
fd9fb2a6
...
...
@@ -3,6 +3,7 @@ package me.zhengjie.modules.system.service.dto;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Set
;
/**
...
...
@@ -26,4 +27,10 @@ public class UserQueryCriteria implements Serializable {
private
Boolean
enabled
;
private
Long
deptId
;
@Query
(
type
=
Query
.
Type
.
GREATER_THAN
,
propName
=
"createTime"
)
private
Timestamp
startTime
;
@Query
(
type
=
Query
.
Type
.
LESS_THAN
,
propName
=
"createTime"
)
private
Timestamp
endTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java
View file @
fd9fb2a6
...
...
@@ -3,17 +3,23 @@ package me.zhengjie.modules.system.service.impl;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.modules.system.domain.Dept
;
import
me.zhengjie.modules.system.service.dto.DeptQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.service.DeptService
;
import
me.zhengjie.modules.system.service.dto.DeptDTO
;
import
me.zhengjie.modules.system.service.mapper.DeptMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -22,28 +28,35 @@ import java.util.stream.Collectors;
* @date 2019-03-25
*/
@Service
@CacheConfig
(
cacheNames
=
"dept"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DeptServiceImpl
implements
DeptService
{
@Autowired
private
DeptRepository
deptRepository
;
private
final
DeptRepository
deptRepository
;
private
final
DeptMapper
deptMapper
;
@Autowired
private
DeptMapper
deptMapper
;
public
DeptServiceImpl
(
DeptRepository
deptRepository
,
DeptMapper
deptMapper
)
{
this
.
deptRepository
=
deptRepository
;
this
.
deptMapper
=
deptMapper
;
}
@Override
@Cacheable
public
List
<
DeptDTO
>
queryAll
(
DeptQueryCriteria
criteria
)
{
return
deptMapper
.
toDto
(
deptRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
DeptDTO
findById
(
Long
id
)
{
Optional
<
Dept
>
dept
=
deptRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
dept
,
"Dept"
,
"id"
,
id
);
return
deptMapper
.
toDto
(
dept
.
get
()
);
Dept
dept
=
deptRepository
.
findById
(
id
)
.
orElseGet
(
Dept:
:
new
)
;
ValidationUtil
.
isNull
(
dept
.
getId
()
,
"Dept"
,
"id"
,
id
);
return
deptMapper
.
toDto
(
dept
);
}
@Override
@Cacheable
public
List
<
Dept
>
findByPid
(
long
pid
)
{
return
deptRepository
.
findByPid
(
pid
);
}
...
...
@@ -54,11 +67,12 @@ public class DeptServiceImpl implements DeptService {
}
@Override
@Cacheable
public
Object
buildTree
(
List
<
DeptDTO
>
deptDTOS
)
{
Set
<
DeptDTO
>
trees
=
new
LinkedHashSet
<>();
Set
<
DeptDTO
>
depts
=
new
LinkedHashSet
<>();
List
<
String
>
deptNames
=
deptDTOS
.
stream
().
map
(
DeptDTO:
:
getName
).
collect
(
Collectors
.
toList
());
B
oolean
isChild
;
b
oolean
isChild
;
for
(
DeptDTO
deptDTO
:
deptDTOS
)
{
isChild
=
false
;
if
(
"0"
.
equals
(
deptDTO
.
getPid
().
toString
()))
{
...
...
@@ -68,7 +82,7 @@ public class DeptServiceImpl implements DeptService {
if
(
it
.
getPid
().
equals
(
deptDTO
.
getId
()))
{
isChild
=
true
;
if
(
deptDTO
.
getChildren
()
==
null
)
{
deptDTO
.
setChildren
(
new
ArrayList
<
DeptDTO
>());
deptDTO
.
setChildren
(
new
ArrayList
<>());
}
deptDTO
.
getChildren
().
add
(
it
);
}
...
...
@@ -83,36 +97,51 @@ public class DeptServiceImpl implements DeptService {
trees
=
depts
;
}
Integer
totalElements
=
deptDTOS
!=
null
?
deptDTOS
.
size
()
:
0
;
Integer
totalElements
=
deptDTOS
.
size
();
Map
map
=
new
HashMap
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>
();
map
.
put
(
"totalElements"
,
totalElements
);
map
.
put
(
"content"
,
CollectionUtils
.
isEmpty
(
trees
)?
deptDTOS:
trees
);
return
map
;
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DeptDTO
create
(
Dept
resources
)
{
return
deptMapper
.
toDto
(
deptRepository
.
save
(
resources
));
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Dept
resources
)
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
}
Optional
<
Dept
>
optionalDept
=
deptRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalDept
,
"Dept"
,
"id"
,
resources
.
getId
());
Dept
dept
=
optionalDept
.
get
();
Dept
dept
=
deptRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Dept:
:
new
);
ValidationUtil
.
isNull
(
dept
.
getId
(),
"Dept"
,
"id"
,
resources
.
getId
());
resources
.
setId
(
dept
.
getId
());
deptRepository
.
save
(
resources
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
deptRepository
.
deleteById
(
id
);
}
@Override
public
void
download
(
List
<
DeptDTO
>
deptDTOs
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
DeptDTO
deptDTO
:
deptDTOs
)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"部门名称"
,
deptDTO
.
getName
());
map
.
put
(
"部门状态"
,
deptDTO
.
getEnabled
()
?
"启用"
:
"停用"
);
map
.
put
(
"创建日期"
,
deptDTO
.
getCreateTime
());
list
.
add
(
map
);
}
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictDetailServiceImpl.java
View file @
fd9fb2a6
...
...
@@ -9,60 +9,68 @@ import me.zhengjie.modules.system.repository.DictDetailRepository;
import
me.zhengjie.modules.system.service.DictDetailService
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.service.mapper.DictDetailMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Map
;
import
java.util.Optional
;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
@Service
@CacheConfig
(
cacheNames
=
"dictDetail"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictDetailServiceImpl
implements
DictDetailService
{
@Autowired
private
DictDetailRepository
dictDetailRepository
;
private
final
DictDetailRepository
dictDetailRepository
;
private
final
DictDetailMapper
dictDetailMapper
;
@Autowired
private
DictDetailMapper
dictDetailMapper
;
public
DictDetailServiceImpl
(
DictDetailRepository
dictDetailRepository
,
DictDetailMapper
dictDetailMapper
)
{
this
.
dictDetailRepository
=
dictDetailRepository
;
this
.
dictDetailMapper
=
dictDetailMapper
;
}
@Override
@Cacheable
public
Map
queryAll
(
DictDetailQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
DictDetail
>
page
=
dictDetailRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictDetailMapper:
:
toDto
));
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
DictDetailDTO
findById
(
Long
id
)
{
Optional
<
DictDetail
>
dictDetail
=
dictDetailRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
dictDetail
,
"DictDetail"
,
"id"
,
id
);
return
dictDetailMapper
.
toDto
(
dictDetail
.
get
()
);
DictDetail
dictDetail
=
dictDetailRepository
.
findById
(
id
)
.
orElseGet
(
DictDetail:
:
new
)
;
ValidationUtil
.
isNull
(
dictDetail
.
getId
()
,
"DictDetail"
,
"id"
,
id
);
return
dictDetailMapper
.
toDto
(
dictDetail
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDetailDTO
create
(
DictDetail
resources
)
{
return
dictDetailMapper
.
toDto
(
dictDetailRepository
.
save
(
resources
));
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
DictDetail
resources
)
{
Optional
<
DictDetail
>
optionalDictDetail
=
dictDetailRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalDictDetail
,
"DictDetail"
,
"id"
,
resources
.
getId
());
DictDetail
dictDetail
=
optionalDictDetail
.
get
();
DictDetail
dictDetail
=
dictDetailRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
DictDetail:
:
new
);
ValidationUtil
.
isNull
(
dictDetail
.
getId
(),
"DictDetail"
,
"id"
,
resources
.
getId
());
resources
.
setId
(
dictDetail
.
getId
());
dictDetailRepository
.
save
(
resources
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
dictDetailRepository
.
deleteById
(
id
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
me.zhengjie.modules.system.domain.Dict
;
import
me.zhengjie.modules.system.service.dto.DictDetailDTO
;
import
me.zhengjie.modules.system.service.dto.DictQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
...
...
@@ -9,60 +12,109 @@ import me.zhengjie.modules.system.repository.DictRepository;
import
me.zhengjie.modules.system.service.DictService
;
import
me.zhengjie.modules.system.service.dto.DictDTO
;
import
me.zhengjie.modules.system.service.mapper.DictMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
@Service
@CacheConfig
(
cacheNames
=
"dict"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DictServiceImpl
implements
DictService
{
@Autowired
private
DictRepository
dictRepository
;
private
final
DictRepository
dictRepository
;
private
final
DictMapper
dictMapper
;
@Autowired
private
DictMapper
dictMapper
;
public
DictServiceImpl
(
DictRepository
dictRepository
,
DictMapper
dictMapper
)
{
this
.
dictRepository
=
dictRepository
;
this
.
dictMapper
=
dictMapper
;
}
@Override
public
Object
queryAll
(
DictQueryCriteria
dict
,
Pageable
pageable
){
@Cacheable
public
Map
<
String
,
Object
>
queryAll
(
DictQueryCriteria
dict
,
Pageable
pageable
){
Page
<
Dict
>
page
=
dictRepository
.
findAll
((
root
,
query
,
cb
)
->
QueryHelp
.
getPredicate
(
root
,
dict
,
cb
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
dictMapper:
:
toDto
));
}
@Override
public
List
<
DictDTO
>
queryAll
(
DictQueryCriteria
dict
)
{
List
<
Dict
>
list
=
dictRepository
.
findAll
((
root
,
query
,
cb
)
->
QueryHelp
.
getPredicate
(
root
,
dict
,
cb
));
return
dictMapper
.
toDto
(
list
);
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
DictDTO
findById
(
Long
id
)
{
Optional
<
Dict
>
dict
=
dictRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
dict
,
"Dict"
,
"id"
,
id
);
return
dictMapper
.
toDto
(
dict
.
get
()
);
Dict
dict
=
dictRepository
.
findById
(
id
)
.
orElseGet
(
Dict:
:
new
)
;
ValidationUtil
.
isNull
(
dict
.
getId
()
,
"Dict"
,
"id"
,
id
);
return
dictMapper
.
toDto
(
dict
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DictDTO
create
(
Dict
resources
)
{
return
dictMapper
.
toDto
(
dictRepository
.
save
(
resources
));
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Dict
resources
)
{
Optional
<
Dict
>
optionalDict
=
dictRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalDict
,
"Dict"
,
"id"
,
resources
.
getId
());
Dict
dict
=
optionalDict
.
get
();
Dict
dict
=
dictRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Dict:
:
new
);
ValidationUtil
.
isNull
(
dict
.
getId
(),
"Dict"
,
"id"
,
resources
.
getId
());
resources
.
setId
(
dict
.
getId
());
dictRepository
.
save
(
resources
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
dictRepository
.
deleteById
(
id
);
}
@Override
public
void
download
(
List
<
DictDTO
>
dictDTOS
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
DictDTO
dictDTO
:
dictDTOS
)
{
if
(
CollectionUtil
.
isNotEmpty
(
dictDTO
.
getDictDetails
())){
for
(
DictDetailDTO
dictDetail
:
dictDTO
.
getDictDetails
())
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"字典名称"
,
dictDTO
.
getName
());
map
.
put
(
"字典描述"
,
dictDTO
.
getRemark
());
map
.
put
(
"字典标签"
,
dictDetail
.
getLabel
());
map
.
put
(
"字典值"
,
dictDetail
.
getValue
());
map
.
put
(
"创建日期"
,
dictDetail
.
getCreateTime
());
list
.
add
(
map
);
}
}
else
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"字典名称"
,
dictDTO
.
getName
());
map
.
put
(
"字典描述"
,
dictDTO
.
getRemark
());
map
.
put
(
"字典标签"
,
null
);
map
.
put
(
"字典值"
,
null
);
map
.
put
(
"创建日期"
,
dictDTO
.
getCreateTime
());
list
.
add
(
map
);
}
}
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java
View file @
fd9fb2a6
...
...
@@ -3,6 +3,7 @@ package me.zhengjie.modules.system.service.impl;
import
me.zhengjie.modules.system.domain.Job
;
import
me.zhengjie.modules.system.repository.DeptRepository
;
import
me.zhengjie.modules.system.service.dto.JobQueryCriteria
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.PageUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
...
...
@@ -10,35 +11,46 @@ import me.zhengjie.modules.system.repository.JobRepository;
import
me.zhengjie.modules.system.service.JobService
;
import
me.zhengjie.modules.system.service.dto.JobDTO
;
import
me.zhengjie.modules.system.service.mapper.JobMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.
Optional
;
import
java.util.
Map
;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
@Service
@CacheConfig
(
cacheNames
=
"job"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
JobServiceImpl
implements
JobService
{
@Autowired
private
JobRepository
jobRepository
;
private
final
JobRepository
jobRepository
;
private
final
JobMapper
jobMapper
;
@Autowired
private
JobMapper
jobMapper
;
private
final
DeptRepository
deptRepository
;
@Autowired
private
DeptRepository
deptRepository
;
public
JobServiceImpl
(
JobRepository
jobRepository
,
JobMapper
jobMapper
,
DeptRepository
deptRepository
)
{
this
.
jobRepository
=
jobRepository
;
this
.
jobMapper
=
jobMapper
;
this
.
deptRepository
=
deptRepository
;
}
@Override
public
Object
queryAll
(
JobQueryCriteria
criteria
,
Pageable
pageable
)
{
@Cacheable
public
Map
<
String
,
Object
>
queryAll
(
JobQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
Job
>
page
=
jobRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
List
<
JobDTO
>
jobs
=
new
ArrayList
<>();
for
(
Job
job
:
page
.
getContent
())
{
...
...
@@ -48,32 +60,55 @@ public class JobServiceImpl implements JobService {
}
@Override
@Cacheable
public
List
<
JobDTO
>
queryAll
(
JobQueryCriteria
criteria
)
{
List
<
Job
>
list
=
jobRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
return
jobMapper
.
toDto
(
list
);
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
JobDTO
findById
(
Long
id
)
{
Optional
<
Job
>
job
=
jobRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
job
,
"Job"
,
"id"
,
id
);
return
jobMapper
.
toDto
(
job
.
get
()
);
Job
job
=
jobRepository
.
findById
(
id
)
.
orElseGet
(
Job:
:
new
)
;
ValidationUtil
.
isNull
(
job
.
getId
()
,
"Job"
,
"id"
,
id
);
return
jobMapper
.
toDto
(
job
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JobDTO
create
(
Job
resources
)
{
return
jobMapper
.
toDto
(
jobRepository
.
save
(
resources
));
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Job
resources
)
{
Optional
<
Job
>
optionalJob
=
jobRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalJob
,
"Job"
,
"id"
,
resources
.
getId
());
Job
job
=
optionalJob
.
get
();
Job
job
=
jobRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Job:
:
new
);
ValidationUtil
.
isNull
(
job
.
getId
(),
"Job"
,
"id"
,
resources
.
getId
());
resources
.
setId
(
job
.
getId
());
jobRepository
.
save
(
resources
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
jobRepository
.
deleteById
(
id
);
}
@Override
public
void
download
(
List
<
JobDTO
>
jobDTOs
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
JobDTO
jobDTO
:
jobDTOs
)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"岗位名称"
,
jobDTO
.
getName
());
map
.
put
(
"所属部门"
,
jobDTO
.
getDept
().
getName
());
map
.
put
(
"岗位状态"
,
jobDTO
.
getEnabled
()
?
"启用"
:
"停用"
);
map
.
put
(
"创建日期"
,
jobDTO
.
getCreateTime
());
list
.
add
(
map
);
}
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
\ No newline at end of file
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.StrUtil
;
import
me.zhengjie.modules.system.domain.Menu
;
import
me.zhengjie.modules.system.domain.vo.MenuMetaVo
;
...
...
@@ -15,52 +14,66 @@ import me.zhengjie.modules.system.service.dto.MenuDTO;
import
me.zhengjie.modules.system.service.dto.MenuQueryCriteria
;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
import
me.zhengjie.modules.system.service.mapper.MenuMapper
;
import
me.zhengjie.utils.FileUtil
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.StringUtils
;
import
me.zhengjie.utils.ValidationUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
@CacheConfig
(
cacheNames
=
"menu"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
MenuServiceImpl
implements
MenuService
{
@Autowired
private
MenuRepository
menuRepository
;
private
final
MenuRepository
menuRepository
;
@Autowired
private
MenuMapper
menuMapper
;
private
final
MenuMapper
menuMapper
;
@Autowired
private
RoleService
roleService
;
private
final
RoleService
roleService
;
public
MenuServiceImpl
(
MenuRepository
menuRepository
,
MenuMapper
menuMapper
,
RoleService
roleService
)
{
this
.
menuRepository
=
menuRepository
;
this
.
menuMapper
=
menuMapper
;
this
.
roleService
=
roleService
;
}
@Override
public
List
queryAll
(
MenuQueryCriteria
criteria
){
@Cacheable
public
List
<
MenuDTO
>
queryAll
(
MenuQueryCriteria
criteria
){
// Sort sort = new Sort(Sort.Direction.DESC,"id");
return
menuMapper
.
toDto
(
menuRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
MenuDTO
findById
(
long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
menu
,
"Menu"
,
"id"
,
id
);
return
menuMapper
.
toDto
(
menu
.
get
()
);
Menu
menu
=
menuRepository
.
findById
(
id
)
.
orElseGet
(
Menu:
:
new
)
;
ValidationUtil
.
isNull
(
menu
.
getId
()
,
"Menu"
,
"id"
,
id
);
return
menuMapper
.
toDto
(
menu
);
}
@Override
public
List
<
MenuDTO
>
findByRoles
(
List
<
RoleSmallDTO
>
roles
)
{
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
for
(
RoleSmallDTO
role
:
roles
)
{
List
<
Menu
>
menus1
=
menuRepository
.
findByRoles_IdOrderBySortAsc
(
role
.
getId
()
).
stream
().
collect
(
Collectors
.
toList
(
));
List
<
Menu
>
menus1
=
new
ArrayList
<>(
menuRepository
.
findByRoles_Id
AndTypeIsNotIn
OrderBySortAsc
(
role
.
getId
()
,
2
));
menus
.
addAll
(
menus1
);
}
return
menus
.
stream
().
map
(
menuMapper:
:
toDto
).
collect
(
Collectors
.
toList
());
}
@Override
@CacheEvict
(
allEntries
=
true
)
public
MenuDTO
create
(
Menu
resources
)
{
if
(
menuRepository
.
findByName
(
resources
.
getName
())
!=
null
){
throw
new
EntityExistException
(
Menu
.
class
,
"name"
,
resources
.
getName
());
...
...
@@ -79,19 +92,19 @@ public class MenuServiceImpl implements MenuService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
public
void
update
(
Menu
resources
)
{
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
}
Optional
<
Menu
>
optionalPermission
=
menuRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalPermission
,
"Permission"
,
"id"
,
resources
.
getId
());
Menu
menu
=
menuRepository
.
findById
(
resources
.
getId
())
.
orElseGet
(
Menu:
:
new
)
;
ValidationUtil
.
isNull
(
menu
.
getId
()
,
"Permission"
,
"id"
,
resources
.
getId
());
if
(
resources
.
getIFrame
()){
if
(!(
resources
.
getPath
().
toLowerCase
().
startsWith
(
"http://"
)||
resources
.
getPath
().
toLowerCase
().
startsWith
(
"https://"
)))
{
throw
new
BadRequestException
(
"外链必须以http://或者https://开头"
);
}
}
Menu
menu
=
optionalPermission
.
get
();
Menu
menu1
=
menuRepository
.
findByName
(
resources
.
getName
());
if
(
menu1
!=
null
&&
!
menu1
.
getId
().
equals
(
menu
.
getId
())){
...
...
@@ -114,6 +127,8 @@ public class MenuServiceImpl implements MenuService {
menu
.
setCache
(
resources
.
getCache
());
menu
.
setHidden
(
resources
.
getHidden
());
menu
.
setComponentName
(
resources
.
getComponentName
());
menu
.
setPermission
(
resources
.
getPermission
());
menu
.
setType
(
resources
.
getType
());
menuRepository
.
save
(
menu
);
}
...
...
@@ -131,6 +146,7 @@ public class MenuServiceImpl implements MenuService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Set
<
Menu
>
menuSet
)
{
for
(
Menu
menu
:
menuSet
)
{
...
...
@@ -140,6 +156,7 @@ public class MenuServiceImpl implements MenuService {
}
@Override
@Cacheable
(
key
=
"'tree'"
)
public
Object
getMenuTree
(
List
<
Menu
>
menus
)
{
List
<
Map
<
String
,
Object
>>
list
=
new
LinkedList
<>();
menus
.
forEach
(
menu
->
{
...
...
@@ -159,13 +176,14 @@ public class MenuServiceImpl implements MenuService {
}
@Override
@Cacheable
(
key
=
"'pid:'+#p0"
)
public
List
<
Menu
>
findByPid
(
long
pid
)
{
return
menuRepository
.
findByPid
(
pid
);
}
@Override
public
Map
buildTree
(
List
<
MenuDTO
>
menuDTOS
)
{
List
<
MenuDTO
>
trees
=
new
ArrayList
<
MenuDTO
>();
public
Map
<
String
,
Object
>
buildTree
(
List
<
MenuDTO
>
menuDTOS
)
{
List
<
MenuDTO
>
trees
=
new
ArrayList
<>();
Set
<
Long
>
ids
=
new
HashSet
<>();
for
(
MenuDTO
menuDTO
:
menuDTOS
)
{
if
(
menuDTO
.
getPid
()
==
0
)
{
...
...
@@ -174,19 +192,19 @@ public class MenuServiceImpl implements MenuService {
for
(
MenuDTO
it
:
menuDTOS
)
{
if
(
it
.
getPid
().
equals
(
menuDTO
.
getId
()))
{
if
(
menuDTO
.
getChildren
()
==
null
)
{
menuDTO
.
setChildren
(
new
ArrayList
<
MenuDTO
>());
menuDTO
.
setChildren
(
new
ArrayList
<>());
}
menuDTO
.
getChildren
().
add
(
it
);
ids
.
add
(
it
.
getId
());
}
}
}
Map
map
=
new
HashMap
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>
();
if
(
trees
.
size
()
==
0
){
trees
=
menuDTOS
.
stream
().
filter
(
s
->
!
ids
.
contains
(
s
.
getId
())).
collect
(
Collectors
.
toList
());
}
map
.
put
(
"content"
,
trees
);
map
.
put
(
"totalElements"
,
menuDTOS
!=
null
?
menuDTOS
.
size
()
:
0
);
map
.
put
(
"totalElements"
,
menuDTOS
.
size
());
return
map
;
}
...
...
@@ -229,7 +247,7 @@ public class MenuServiceImpl implements MenuService {
menuVo
.
setName
(
null
);
menuVo
.
setMeta
(
null
);
menuVo
.
setComponent
(
"Layout"
);
List
<
MenuVo
>
list1
=
new
ArrayList
<
MenuVo
>();
List
<
MenuVo
>
list1
=
new
ArrayList
<>();
list1
.
add
(
menuVo1
);
menuVo
.
setChildren
(
list1
);
}
...
...
@@ -242,8 +260,25 @@ public class MenuServiceImpl implements MenuService {
@Override
public
Menu
findOne
(
Long
id
)
{
Optional
<
Menu
>
menu
=
menuRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
menu
,
"Menu"
,
"id"
,
id
);
return
menu
.
get
();
Menu
menu
=
menuRepository
.
findById
(
id
).
orElseGet
(
Menu:
:
new
);
ValidationUtil
.
isNull
(
menu
.
getId
(),
"Menu"
,
"id"
,
id
);
return
menu
;
}
@Override
public
void
download
(
List
<
MenuDTO
>
menuDTOS
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
MenuDTO
menuDTO
:
menuDTOS
)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"菜单名称"
,
menuDTO
.
getName
());
map
.
put
(
"菜单类型"
,
menuDTO
.
getType
()
==
0
?
"目录"
:
menuDTO
.
getType
()
==
1
?
"菜单"
:
"按钮"
);
map
.
put
(
"权限标识"
,
menuDTO
.
getPermission
());
map
.
put
(
"外链菜单"
,
menuDTO
.
getIFrame
()
?
"是"
:
"否"
);
map
.
put
(
"菜单可见"
,
menuDTO
.
getHidden
()
?
"否"
:
"是"
);
map
.
put
(
"是否缓存"
,
menuDTO
.
getCache
()
?
"是"
:
"否"
);
map
.
put
(
"创建日期"
,
menuDTO
.
getCreateTime
());
list
.
add
(
map
);
}
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java
deleted
100644 → 0
View file @
7895e547
package
me.zhengjie.modules.system.service.impl
;
import
me.zhengjie.modules.system.domain.Permission
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.exception.EntityExistException
;
import
me.zhengjie.modules.system.repository.PermissionRepository
;
import
me.zhengjie.modules.system.service.PermissionService
;
import
me.zhengjie.modules.system.service.RoleService
;
import
me.zhengjie.modules.system.service.dto.PermissionDTO
;
import
me.zhengjie.modules.system.service.dto.PermissionQueryCriteria
;
import
me.zhengjie.modules.system.service.mapper.PermissionMapper
;
import
me.zhengjie.utils.QueryHelp
;
import
me.zhengjie.utils.ValidationUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
/**
* @author Zheng Jie
* @date 2018-12-03
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
PermissionServiceImpl
implements
PermissionService
{
@Autowired
private
PermissionRepository
permissionRepository
;
@Autowired
private
PermissionMapper
permissionMapper
;
@Autowired
private
RoleService
roleService
;
@Override
public
List
<
PermissionDTO
>
queryAll
(
PermissionQueryCriteria
criteria
)
{
return
permissionMapper
.
toDto
(
permissionRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
public
PermissionDTO
findById
(
long
id
)
{
Optional
<
Permission
>
permission
=
permissionRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
permission
,
"Permission"
,
"id"
,
id
);
return
permissionMapper
.
toDto
(
permission
.
get
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
PermissionDTO
create
(
Permission
resources
)
{
if
(
permissionRepository
.
findByName
(
resources
.
getName
())
!=
null
){
throw
new
EntityExistException
(
Permission
.
class
,
"name"
,
resources
.
getName
());
}
return
permissionMapper
.
toDto
(
permissionRepository
.
save
(
resources
));
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Permission
resources
)
{
Optional
<
Permission
>
optionalPermission
=
permissionRepository
.
findById
(
resources
.
getId
());
if
(
resources
.
getId
().
equals
(
resources
.
getPid
()))
{
throw
new
BadRequestException
(
"上级不能为自己"
);
}
ValidationUtil
.
isNull
(
optionalPermission
,
"Permission"
,
"id"
,
resources
.
getId
());
Permission
permission
=
optionalPermission
.
get
();
Permission
permission1
=
permissionRepository
.
findByName
(
resources
.
getName
());
if
(
permission1
!=
null
&&
!
permission1
.
getId
().
equals
(
permission
.
getId
())){
throw
new
EntityExistException
(
Permission
.
class
,
"name"
,
resources
.
getName
());
}
permission
.
setName
(
resources
.
getName
());
permission
.
setAlias
(
resources
.
getAlias
());
permission
.
setPid
(
resources
.
getPid
());
permissionRepository
.
save
(
permission
);
}
@Override
public
Set
<
Permission
>
getDeletePermission
(
List
<
Permission
>
permissions
,
Set
<
Permission
>
permissionSet
)
{
// 递归找出待删除的菜单
for
(
Permission
permission
:
permissions
)
{
permissionSet
.
add
(
permission
);
List
<
Permission
>
permissionList
=
permissionRepository
.
findByPid
(
permission
.
getId
());
if
(
permissionList
!=
null
&&
permissionList
.
size
()!=
0
){
getDeletePermission
(
permissionList
,
permissionSet
);
}
}
return
permissionSet
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Set
<
Permission
>
permissions
)
{
for
(
Permission
permission
:
permissions
)
{
roleService
.
untiedPermission
(
permission
.
getId
());
permissionRepository
.
delete
(
permission
);
}
}
@Override
public
Object
getPermissionTree
(
List
<
Permission
>
permissions
)
{
List
<
Map
<
String
,
Object
>>
list
=
new
LinkedList
<>();
permissions
.
forEach
(
permission
->
{
if
(
permission
!=
null
){
List
<
Permission
>
permissionList
=
permissionRepository
.
findByPid
(
permission
.
getId
());
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"id"
,
permission
.
getId
());
map
.
put
(
"label"
,
permission
.
getAlias
());
if
(
permissionList
!=
null
&&
permissionList
.
size
()!=
0
){
map
.
put
(
"children"
,
getPermissionTree
(
permissionList
));
}
list
.
add
(
map
);
}
}
);
return
list
;
}
@Override
public
List
<
Permission
>
findByPid
(
long
pid
)
{
return
permissionRepository
.
findByPid
(
pid
);
}
@Override
public
Object
buildTree
(
List
<
PermissionDTO
>
permissionDTOS
)
{
List
<
PermissionDTO
>
trees
=
new
ArrayList
<
PermissionDTO
>();
for
(
PermissionDTO
permissionDTO
:
permissionDTOS
)
{
if
(
"0"
.
equals
(
permissionDTO
.
getPid
().
toString
()))
{
trees
.
add
(
permissionDTO
);
}
for
(
PermissionDTO
it
:
permissionDTOS
)
{
if
(
it
.
getPid
().
equals
(
permissionDTO
.
getId
()))
{
if
(
permissionDTO
.
getChildren
()
==
null
)
{
permissionDTO
.
setChildren
(
new
ArrayList
<
PermissionDTO
>());
}
permissionDTO
.
getChildren
().
add
(
it
);
}
}
}
Integer
totalElements
=
permissionDTOS
!=
null
?
permissionDTOS
.
size
():
0
;
Map
map
=
new
HashMap
();
map
.
put
(
"content"
,
trees
.
size
()
==
0
?
permissionDTOS:
trees
);
map
.
put
(
"totalElements"
,
totalElements
);
return
map
;
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
View file @
fd9fb2a6
...
...
@@ -9,15 +9,21 @@ import me.zhengjie.modules.system.service.dto.RoleQueryCriteria;
import
me.zhengjie.modules.system.service.dto.RoleSmallDTO
;
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
org.springframework.beans.factory.annotation.Autowired
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -26,42 +32,51 @@ import java.util.stream.Collectors;
* @date 2018-12-03
*/
@Service
@CacheConfig
(
cacheNames
=
"role"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
RoleServiceImpl
implements
RoleService
{
@Autowired
private
RoleRepository
roleRepository
;
private
final
RoleRepository
roleRepository
;
private
final
RoleMapper
roleMapper
;
@Autowired
private
RoleMapper
roleMapper
;
private
final
RoleSmallMapper
roleSmallMapper
;
@Autowired
private
RoleSmallMapper
roleSmallMapper
;
public
RoleServiceImpl
(
RoleRepository
roleRepository
,
RoleMapper
roleMapper
,
RoleSmallMapper
roleSmallMapper
)
{
this
.
roleRepository
=
roleRepository
;
this
.
roleMapper
=
roleMapper
;
this
.
roleSmallMapper
=
roleSmallMapper
;
}
@Override
@Cacheable
public
Object
queryAll
(
Pageable
pageable
)
{
return
roleMapper
.
toDto
(
roleRepository
.
findAll
(
pageable
).
getContent
());
}
@Override
@Cacheable
public
List
<
RoleDTO
>
queryAll
(
RoleQueryCriteria
criteria
)
{
return
roleMapper
.
toDto
(
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
)));
}
@Override
@Cacheable
public
Object
queryAll
(
RoleQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
Role
>
page
=
roleRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
roleMapper:
:
toDto
));
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
RoleDTO
findById
(
long
id
)
{
Optional
<
Role
>
role
=
roleRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
role
,
"Role"
,
"id"
,
id
);
return
roleMapper
.
toDto
(
role
.
get
()
);
Role
role
=
roleRepository
.
findById
(
id
)
.
orElseGet
(
Role:
:
new
)
;
ValidationUtil
.
isNull
(
role
.
getId
()
,
"Role"
,
"id"
,
id
);
return
roleMapper
.
toDto
(
role
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
RoleDTO
create
(
Role
resources
)
{
if
(
roleRepository
.
findByName
(
resources
.
getName
())
!=
null
){
...
...
@@ -71,13 +86,11 @@ public class RoleServiceImpl implements RoleService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
Role
resources
)
{
Optional
<
Role
>
optionalRole
=
roleRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
optionalRole
,
"Role"
,
"id"
,
resources
.
getId
());
Role
role
=
optionalRole
.
get
();
Role
role
=
roleRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
Role:
:
new
);
ValidationUtil
.
isNull
(
role
.
getId
(),
"Role"
,
"id"
,
resources
.
getId
());
Role
role1
=
roleRepository
.
findByName
(
resources
.
getName
());
...
...
@@ -94,13 +107,7 @@ public class RoleServiceImpl implements RoleService {
}
@Override
public
void
updatePermission
(
Role
resources
,
RoleDTO
roleDTO
)
{
Role
role
=
roleMapper
.
toEntity
(
roleDTO
);
role
.
setPermissions
(
resources
.
getPermissions
());
roleRepository
.
save
(
role
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
public
void
updateMenu
(
Role
resources
,
RoleDTO
roleDTO
)
{
Role
role
=
roleMapper
.
toEntity
(
roleDTO
);
role
.
setMenus
(
resources
.
getMenus
());
...
...
@@ -108,29 +115,27 @@ public class RoleServiceImpl implements RoleService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
untiedMenu
(
Long
id
)
{
roleRepository
.
untiedMenu
(
id
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
untiedPermission
(
Long
id
)
{
roleRepository
.
untiedPermission
(
id
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
roleRepository
.
deleteById
(
id
);
}
@Override
@Cacheable
(
key
=
"'findByUsers_Id:' + #p0"
)
public
List
<
RoleSmallDTO
>
findByUsers_Id
(
Long
id
)
{
return
roleSmallMapper
.
toDto
(
roleRepository
.
findByUsers_Id
(
id
)
.
stream
().
collect
(
Collectors
.
toList
()
));
return
roleSmallMapper
.
toDto
(
new
ArrayList
<>(
roleRepository
.
findByUsers_Id
(
id
)));
}
@Override
@Cacheable
public
Integer
findByRoles
(
Set
<
Role
>
roles
)
{
Set
<
RoleDTO
>
roleDTOS
=
new
HashSet
<>();
for
(
Role
role
:
roles
)
{
...
...
@@ -138,4 +143,19 @@ public class RoleServiceImpl implements RoleService {
}
return
Collections
.
min
(
roleDTOS
.
stream
().
map
(
RoleDTO:
:
getLevel
).
collect
(
Collectors
.
toList
()));
}
@Override
public
void
download
(
List
<
RoleDTO
>
roles
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
RoleDTO
role
:
roles
)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"角色名称"
,
role
.
getName
());
map
.
put
(
"默认权限"
,
role
.
getPermission
());
map
.
put
(
"角色级别"
,
role
.
getLevel
());
map
.
put
(
"描述"
,
role
.
getRemark
());
map
.
put
(
"创建日期"
,
role
.
getCreateTime
());
list
.
add
(
map
);
}
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
View file @
fd9fb2a6
package
me.zhengjie.modules.system.service.impl
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.hutool.poi.excel.ExcelWriter
;
import
me.zhengjie.modules.monitor.service.RedisService
;
import
me.zhengjie.modules.system.domain.User
;
import
me.zhengjie.exception.EntityExistException
;
...
...
@@ -16,16 +13,16 @@ import me.zhengjie.modules.system.service.dto.UserDTO;
import
me.zhengjie.modules.system.service.dto.UserQueryCriteria
;
import
me.zhengjie.modules.system.service.mapper.UserMapper
;
import
me.zhengjie.utils.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
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.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.IOException
;
...
...
@@ -37,44 +34,52 @@ import java.util.stream.Collectors;
* @date 2018-11-23
*/
@Service
@CacheConfig
(
cacheNames
=
"user"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
UserServiceImpl
implements
UserService
{
@Autowired
private
UserRepository
userRepository
;
private
final
UserRepository
userRepository
;
@Autowired
private
UserMapper
userMapper
;
private
final
UserMapper
userMapper
;
@Autowired
private
RedisService
redisService
;
private
final
RedisService
redisService
;
@Autowired
private
UserAvatarRepository
userAvatarRepository
;
private
final
UserAvatarRepository
userAvatarRepository
;
@Value
(
"${file.avatar}"
)
private
String
avatar
;
public
UserServiceImpl
(
UserRepository
userRepository
,
UserMapper
userMapper
,
RedisService
redisService
,
UserAvatarRepository
userAvatarRepository
)
{
this
.
userRepository
=
userRepository
;
this
.
userMapper
=
userMapper
;
this
.
redisService
=
redisService
;
this
.
userAvatarRepository
=
userAvatarRepository
;
}
@Override
@Cacheable
public
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
User
>
page
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
}
@Override
@Cacheable
public
List
<
UserDTO
>
queryAll
(
UserQueryCriteria
criteria
)
{
List
<
User
>
users
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
return
userMapper
.
toDto
(
users
);
}
@Override
@Cacheable
(
key
=
"#p0"
)
public
UserDTO
findById
(
long
id
)
{
Optional
<
User
>
user
=
userRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
user
,
"User"
,
"id"
,
id
);
return
userMapper
.
toDto
(
user
.
get
()
);
User
user
=
userRepository
.
findById
(
id
)
.
orElseGet
(
User:
:
new
)
;
ValidationUtil
.
isNull
(
user
.
getId
()
,
"User"
,
"id"
,
id
);
return
userMapper
.
toDto
(
user
);
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
UserDTO
create
(
User
resources
)
{
...
...
@@ -92,13 +97,11 @@ public class UserServiceImpl implements UserService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
User
resources
)
{
Optional
<
User
>
userOptional
=
userRepository
.
findById
(
resources
.
getId
());
ValidationUtil
.
isNull
(
userOptional
,
"User"
,
"id"
,
resources
.
getId
());
User
user
=
userOptional
.
get
();
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
resources
.
getId
());
User
user1
=
userRepository
.
findByUsername
(
user
.
getUsername
());
User
user2
=
userRepository
.
findByEmail
(
user
.
getEmail
());
...
...
@@ -129,14 +132,16 @@ public class UserServiceImpl implements UserService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Long
id
)
{
userRepository
.
deleteById
(
id
);
}
@Override
@Cacheable
(
key
=
"'loadUserByUsername:'+#p0"
)
public
UserDTO
findByName
(
String
userName
)
{
User
user
=
null
;
User
user
;
if
(
ValidationUtil
.
isEmail
(
userName
)){
user
=
userRepository
.
findByEmail
(
userName
);
}
else
{
...
...
@@ -150,12 +155,14 @@ public class UserServiceImpl implements UserService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updatePass
(
String
username
,
String
pass
)
{
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateAvatar
(
MultipartFile
multipartFile
)
{
User
user
=
userRepository
.
findByUsername
(
SecurityUtils
.
getUsername
());
...
...
@@ -165,6 +172,7 @@ public class UserServiceImpl implements UserService {
oldPath
=
userAvatar
.
getPath
();
}
File
file
=
FileUtil
.
upload
(
multipartFile
,
avatar
);
assert
file
!=
null
;
userAvatar
=
userAvatarRepository
.
save
(
new
UserAvatar
(
userAvatar
,
file
.
getName
(),
file
.
getPath
(),
FileUtil
.
getSize
(
multipartFile
.
getSize
())));
user
.
setUserAvatar
(
userAvatar
);
userRepository
.
save
(
user
);
...
...
@@ -174,6 +182,7 @@ public class UserServiceImpl implements UserService {
}
@Override
@CacheEvict
(
allEntries
=
true
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateEmail
(
String
username
,
String
email
)
{
userRepository
.
updateEmail
(
username
,
email
);
...
...
@@ -184,7 +193,7 @@ public class UserServiceImpl implements UserService {
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
UserDTO
userDTO
:
queryAll
)
{
List
roles
=
userDTO
.
getRoles
().
stream
().
map
(
RoleSmallDTO:
:
getName
).
collect
(
Collectors
.
toList
());
Map
map
=
new
LinkedHashMap
();
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>
();
map
.
put
(
"用户名"
,
userDTO
.
getUsername
());
map
.
put
(
"头像"
,
userDTO
.
getAvatar
());
map
.
put
(
"邮箱"
,
userDTO
.
getEmail
());
...
...
Prev
1
…
4
5
6
7
8
9
10
11
12
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